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:19 UTC

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

Repository: incubator-juneau
Updated Branches:
  refs/heads/master 7e4f63e6d -> 30947fd7a


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream.java
deleted file mode 100755
index 70807a8..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream.java
+++ /dev/null
@@ -1,159 +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.utils;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Output stream that can send output to multiple output streams.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class TeeOutputStream extends OutputStream {
-	private OutputStream[] outputStreams = new OutputStream[0];
-	private Map<String,OutputStream> outputStreamMap;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param outputStreams The list of output streams.
-	 */
-	public TeeOutputStream(OutputStream...outputStreams) {
-		this.outputStreams = outputStreams;
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param outputStreams The list of output streams.
-	 */
-	public TeeOutputStream(Collection<OutputStream> outputStreams) {
-		this.outputStreams = outputStreams.toArray(new OutputStream[outputStreams.size()]);
-	}
-
-	/**
-	 * Adds an output stream to this tee output stream.
-	 *
-	 * @param os The output stream to add to this tee output stream.
-	 * @param close If <jk>false</jk>, then calling {@link #close()} on this stream
-	 * 	will not filter to the specified output stream.
-	 * @return This object (for method chaining).
-	 */
-	public TeeOutputStream add(OutputStream os, boolean close) {
-		if (os == null)
-			return this;
-		if (! close)
-			os = new NoCloseOutputStream(os);
-		if (os == this)
-			throw new RuntimeException("Cannot add this output stream to itself.");
-		for (OutputStream os2 : outputStreams)
-			if (os2 == os)
-				throw new RuntimeException("Cannot add this output stream again.");
-		if (os instanceof TeeOutputStream) {
-			for (OutputStream os2 : ((TeeOutputStream)os).outputStreams)
-				add(os2, true);
-		} else {
-			outputStreams = ArrayUtils.append(outputStreams, os);
-		}
-		return this;
-	}
-
-	/**
-	 * Returns the output stream identified through the <code>id</code> parameter
-	 * passed in through the {@link #add(String, OutputStream, boolean)} method.
-	 *
-	 * @param id The ID associated with the output stream.
-	 * @return The output stream, or <jk>null</jk> if no identifier was specified when the output stream was added.
-	 */
-	public OutputStream getOutputStream(String id) {
-		if (outputStreamMap != null)
-			return outputStreamMap.get(id);
-		return null;
-	}
-
-	/**
-	 * Same as {@link #add(OutputStream, boolean)} but associates the stream with an identifier
-	 * so the stream can be retrieved through {@link #getOutputStream(String)}.
-	 *
-	 * @param id The ID to associate the output stream with.
-	 * @param os The output stream to add.
-	 * @param close Close the specified stream afterwards.
-	 * @return This object (for method chaining).
-	 */
-	public TeeOutputStream add(String id, OutputStream os, boolean close) {
-		if (id != null) {
-			if (outputStreamMap == null)
-				outputStreamMap = new TreeMap<String,OutputStream>();
-			outputStreamMap.put(id, os);
-		}
-		return add(os, close);
-	}
-
-	/**
-	 * Returns the number of inner streams in this tee stream.
-	 *
-	 * @return The number of streams in this tee stream.
-	 */
-	public int size() {
-		return outputStreams.length;
-	}
-
-	@Override /* OutputStream */
-	public void write(int b) throws IOException {
-		for (OutputStream os : outputStreams)
-			os.write(b);
-	}
-
-	@Override /* OutputStream */
-	public void write(byte b[], int off, int len) throws IOException {
-		for (OutputStream os : outputStreams)
-			os.write(b, off, len);
-	}
-
-	@Override /* OutputStream */
-	public void flush() throws IOException {
-		for (OutputStream os : outputStreams)
-			os.flush();
-	}
-
-	@Override /* OutputStream */
-	public void close() throws IOException {
-		for (OutputStream os : outputStreams)
-			os.close();
-	}
-
-	private static class NoCloseOutputStream extends OutputStream {
-		private OutputStream os;
-
-		private NoCloseOutputStream(OutputStream os) {
-			this.os = os;
-		}
-
-		@Override /* OutputStream */
-		public void write(int b) throws IOException {
-			os.write(b);
-		}
-
-		@Override /* OutputStream */
-		public void write(byte b[], int off, int len) throws IOException {
-			os.write(b, off, len);
-		}
-
-		@Override /* OutputStream */
-		public void flush() throws IOException {
-			os.flush();
-		}
-
-		@Override /* OutputStream */
-		public void close() throws IOException {
-			// Do nothing.
-		}
-	}
-}


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/package.html b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/package.html
new file mode 100755
index 0000000..7f1ef7f
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/package.html
@@ -0,0 +1,857 @@
+<!DOCTYPE HTML>
+<!--
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ ***************************************************************************************************************************/
+ -->
+<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>REST client 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='#RestClient'>REST Client API</a></p>
+	<ol>
+		<li><p><a class='doclink' href='#SSL'>SSL Support</a></p>
+		<ol>
+			<li><p><a class='doclink' href='#SSLOpts'>SSLOpts Bean</a></p>
+		</ol>
+		<li><p><a class='doclink' href='#Authentication'>Authentication</a></p>
+		<ol>
+			<li><p><a class='doclink' href='#BASIC'>BASIC Authentication</a></p>
+			<li><p><a class='doclink' href='#FORM'>FORM-based Authentication</a></p>
+			<li><p><a class='doclink' href='#OIDC'>OIDC Authentication</a></p>
+		</ol>
+		<li><p><a class='doclink' href='#ResponsePatterns'>Using Response Patterns</a></p>
+		<li><p><a class='doclink' href='#PipingOutput'>Piping Response Output</a></p>
+		<li><p><a class='doclink' href='#Logging'>Logging</a></p>
+		<li><p><a class='doclink' href='#Interceptors'>Interceptors</a></p>
+		<li><p><a class='doclink' href='#Remoteable'>Remoteable Proxies</a></p>
+		<li><p><a class='doclink' href='#Other'>Other Useful Methods</a></p>
+	</ol>
+</ol>
+
+<!-- ======================================================================================================== -->
+<a id="RestClient"></a>
+<h2 class='topic' onclick='toggle(this)'>1 - REST Client API</h2>
+<div class='topic'>
+	<p>
+		Juneau provides an HTTP client API that makes it extremely simple to connect to remote REST interfaces and 
+		seemlessly send and receive serialized POJOs in requests and responses.  
+	</p>
+	<h6 class='notes'>Features:</h6>
+	<ul class='notes'>
+		<li>Converts POJOs directly to HTTP request message bodies using {@link org.apache.juneau.serializer.Serializer} classes.
+	 	<li>Converts HTTP response message bodies directly to POJOs using {@link org.apache.juneau.parser.Parser} classes.
+		<li>Exposes the full functionality of the Apache HttpClient API by exposing all methods defined on the 
+			{@link org.apache.http.impl.client.HttpClientBuilder} class.
+		<li>Provides various convenience methods for setting up common SSL and authentication methods.
+		<li>Provides a fluent interface that allows you to make complex REST calls in a single line of code.
+	</ul>	
+	<p>
+		The client API is designed to work as a thin layer on top of the proven Apache HttpClient API.  
+		By leveraging the HttpClient library, details such as SSL certificate negotiation, proxies, encoding, etc...
+			are all handled in Apache code. 
+	</p>
+	<p>
+		The Juneau client API prereq's Apache HttpClient 4.1.2+. 
+		At a mimimum, the following jars are required:
+	</p>
+	<ul>
+		<li><code>httpclient-4.5.jar</code>
+		<li><code>httpcore-4.4.1.jar</code>
+		<li><code>httpmime-4.5.jar</code>
+	</ul>
+	<h6 class='topic'>Examples</h6>
+	<p class='bcode'>
+	<jc>// Examples below use the Juneau Address Book resource example</jc>
+
+	<jc>// Create a reusable client with JSON support</jc>
+	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>);
+	
+	<jc>// GET request, ignoring output</jc>
+	<jk>try</jk> {
+		<jk>int</jk> rc = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>).execute();
+		<jc>// Succeeded!</jc>
+	} <jk>catch</jk> (RestCallException e) {
+		<jc>// Failed!</jc>
+		System.<jsf>err</jsf>.println(
+			String.<jsm>format</jsm>(<js>"status=%s, message=%s"</js>, e.getResponseStatus(), e.getResponseMessage())
+		);
+	}
+			
+	<jc>// Remaining examples ignore thrown exceptions.</jc>		
+			
+	<jc>// GET request, secure, ignoring output</jc>
+	client.doGet(<js>"https://localhost:9443/sample/addressBook"</js>).execute();
+			
+	<jc>// GET request, getting output as a String.  No POJO parsing is performed.
+	// Note that when calling one of the getX() methods, you don't need to call connect() or disconnect(), since
+	//	it's automatically called for you.</jc>
+	String output = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
+		.getResponseAsString();
+			
+	<jc>// GET request, getting output as a Reader</jc>
+	Reader r = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
+		.getReader();
+			
+	<jc>// GET request, getting output as an ObjectMap</jc>
+	<jc>// Input must be an object (e.g. "{...}")</jc>
+	ObjectMap m = client.doGet(<js>"http://localhost:9080/sample/addressBook/0"</js>)
+		.getResponse(ObjectMap.<jk>class</jk>);
+			
+	<jc>// GET request, getting output as a ObjectList</jc>
+	<jc>// Input must be an array (e.g. "[...]")</jc>
+	ObjectList l = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
+		.getResponse(ObjectList.<jk>class</jk>);
+			
+	<jc>// GET request, getting output as a parsed bean</jc>
+	<jc>// Input must be an object (e.g. "{...}")</jc>
+	<jc>// Note that you don't have to do any casting!</jc>
+	Person p = client.doGet(<js>"http://localhost:9080/sample/addressBook/0"</js>)
+		.getResponse(Person.<jk>class</jk>);
+			
+	<jc>// GET request, getting output as a parsed bean</jc>
+	<jc>// Input must be an array of objects (e.g. "[{...},{...}]")</jc>
+	Person[] pa = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
+		.getResponse(Person[].<jk>class</jk>);
+			
+	<jc>// Same as above, except as a List&lt;Person&gt;</jc>
+	ClassMeta cm = BeanContext.<jsf>DEFAULT</jsf>.getCollectionClassMeta(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
+	List&lt;Person&gt; pl = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
+		.getResponse(cm);
+			
+	<jc>// GET request, getting output as a parsed string</jc>
+	<jc>// Input must be a string (e.g. "&lt;string&gt;foo&lt;/string&gt;" or "'foo'")</jc>
+	String name = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/name"</js>)
+		.getResponse(String.<jk>class</jk>);
+			
+	<jc>// GET request, getting output as a parsed number</jc>
+	<jc>// Input must be a number (e.g. "&lt;number&gt;123&lt;/number&gt;" or "123")</jc>
+	<jk>int</jk> age = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/age"</js>)
+		.getResponse(Integer.<jk>class</jk>);
+			
+	<jc>// GET request, getting output as a parsed boolean</jc>
+	<jc>// Input must be a boolean (e.g. "&lt;boolean&gt;true&lt;/boolean&gt;" or "true")</jc>
+	<jk>boolean</jk> isCurrent = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/addresses/0/isCurrent"</js>)
+		.getResponse(Boolean.<jk>class</jk>);
+			
+	<jc>// GET request, getting a filtered object</jc>
+	client.getParser().addTransforms(CalendarTransform.<jsf>ISO8601</jsf>.<jk>class</jk>);
+	Calendar birthDate = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>)
+		.getResponse(GregorianCalendar.<jk>class</jk>);
+
+	<jc>// PUT request on regular field</jc>
+	String newName = <js>"John Smith"</js>;
+	<jk>int</jk> rc = client.doPut(<js>"http://localhost:9080/addressBook/0/name"</js>, newName).execute();
+	
+	<jc>// PUT request on filtered field</jc>
+	Calendar newBirthDate = <jk>new</jk> GregorianCalendar(1, 2, 3, 4, 5, 6);
+	rc = client.doPut(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>, newBirthDate).execute();
+	
+	<jc>// POST of a new entry to a list</jc>
+	Address newAddress = <jk>new</jk> Address(<js>"101 Main St"</js>, <js>"Anywhere"</js>, <js>"NY"</js>, 12121, <jk>false</jk>);
+	rc = client.doPost(<js>"http://localhost:9080/addressBook/0/addresses"</js>, newAddress).execute();	
+	</p>
+	
+	<h6 class='notes'>Notes:</h6>
+	<ul class='notes'>
+		<li><p>The {@link org.apache.juneau.client.RestClient} class exposes all the builder methods on the Apache HttpClient {@link org.apache.http.impl.client.HttpClientBuilder} class.
+			Use these methods to provide any customized HTTP client behavior..</p>
+	</ul>
+	
+	<!-- ======================================================================================================== -->
+	<a id="SSL"></a>
+	<h3 class='topic' onclick='toggle(this)'>1.1 - SSL Support</h3>
+	<div class='topic'>
+		<p>
+			The simplest way to enable SSL support in the client is to use the {@link org.apache.juneau.client.RestClient#enableSSL(SSLOpts)} method
+			and one of the predefined {@link org.apache.juneau.client.SSLOpts} instances:
+			<ul>
+				<li>{@link org.apache.juneau.client.SSLOpts#DEFAULT} - Normal certificate and hostname validation.
+				<li>{@link org.apache.juneau.client.SSLOpts#LAX} - Allows for self-signed certificates.
+			</ul>
+		</p>
+		<h6 class='topic'>Example:</h6>
+		<p class='bcode'>
+	<jc>// Create a client that ignores self-signed or otherwise invalid certificates.</jc>
+	RestClient restClient = <jk>new</jk> RestClient() 
+		.enableSSL(SSLOpts.<jsf>LAX</jsf>);
+		
+	<jc>// ...or...</jc>
+	RestClient restClient = <jk>new</jk> RestClient() 
+		.enableLaxSSL();
+		</p>
+		<p>
+			This is functionally equivalent to the following:
+		</p>
+		<p class='bcode'>
+	RestClient restClient = <jk>new</jk> RestClient();
+	
+	HostnameVerifier hv = <jk>new</jk> NoopHostnameVerifier();
+	TrustManager tm = <jk>new</jk> SimpleX509TrustManager(<jk>true</jk>);
+
+	<jk>for</jk> (String p : <jk>new</jk> String[]{<js>"SSL"</js>,<js>"TLS"</js>,<js>"SSL_TLS"</js>}) {
+		SSLContext ctx = SSLContext.<jsm>getInstance</jsm>(p);
+		ctx.init(<jk>null</jk>, <jk>new</jk> TrustManager[] { tm }, <jk>null</jk>);
+		SSLConnectionSocketFactory sf = <jk>new</jk> SSLConnectionSocketFactory(ctx, hv);
+		restClient.setSSLSocketFactory(sf);
+		Registry&lt;ConnectionSocketFactory&gt; r = RegistryBuilder.&lt;ConnectionSocketFactory&gt;<jsm>.create</jsm>().register(<js>"https"</js>, sf).build();
+		restClient.setConnectionManager(<jk>new</jk> PoolingHttpClientConnectionManager(r));
+	}
+		</p>
+		<p>
+			More complex SSL support can be enabled through the various {@link org.apache.http.impl.client.HttpClientBuilder} methods defined on the class.
+		</p>
+		
+		<!-- ======================================================================================================== -->
+		<a id="SSLOpts"></a>
+		<h4 class='topic' onclick='toggle(this)'>1.1.1 - SSLOpts Bean</h4>
+		<div class='topic'>
+	<p>
+				The {@link org.apache.juneau.client.SSLOpts} class itself is a bean that can be created by the parsers.
+				For example, SSL options can be specified in a config file and retrieved as a bean using the {@link org.apache.juneau.ini.ConfigFile} class.
+	</p>
+			<h6 class='figure'>Contents of <code>MyConfig.cfg</code></h6>
+			<p class='bcode'>
+		<jc>#================================================================================
+		# My Connection Settings
+		#================================================================================</jc>
+		[Connection]
+		url = https://myremotehost:9443
+		ssl = {certValidate:'LAX',hostVerify:'LAX'}
+			</p>
+			<h6 class='figure'>Code that reads an <code>SSLOpts</code> bean from the config file</h6>
+			<p class='bcode'>
+		<jc>// Read config file and set SSL options based on what's in that file.</jc>
+		ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.get(<js>"MyConfig.cfg"</js>);
+		SSLOpts ssl = cf.getObject(SSLOpts.<jk>class</jk>, <js>"Connection/ssl"</js>);
+		RestClient rc = <jk>new</jk> RestClient().enableSSL(ssl);
+			</p>
+		</div>
+	</div>	
+
+	<!-- ======================================================================================================== -->
+	<a id="Authentication"></a>
+	<h3 class='topic' onclick='toggle(this)'>1.2 - Authentication</h3>
+	<div class='topic'>
+
+		<!-- ======================================================================================================== -->
+		<a id="BASIC"></a>
+		<h4 class='topic' onclick='toggle(this)'>1.2.1 - BASIC Authentication</h4>
+		<div class='topic'>
+			<p>
+				The {@link org.apache.juneau.client.RestClient#setBasicAuth(String,int,String,String)} method can be used to quickly enable
+				BASIC authentication support.
+			</p>
+			<h6 class='topic'>Example:</h6>
+			<p class='bcode'>
+	<jc>// Create a client that performs BASIC authentication using the specified user/pw.</jc>
+	RestClient restClient = <jk>new</jk> RestClient() 
+		.setBasicAuth(<jsf>HOST</jsf>, <jsf>PORT</jsf>, <jsf>USER</jsf>, <jsf>PW</jsf>);
+		</p>
+		<p>
+			This is functionally equivalent to the following:
+		</p>
+		<p class='bcode'>
+	RestClient restClient = <jk>new</jk> RestClient();
+	AuthScope scope = <jk>new</jk> AuthScope(<jsf>HOST</jsf>, <jsf>PORT</jsf>);
+	Credentials up = <jk>new</jk> UsernamePasswordCredentials(<jsf>USER</jsf>, <jsf>PW</jsf>);
+	CredentialsProvider p = <jk>new</jk> BasicCredentialsProvider();
+	p.setCredentials(scope, up);
+	restClient.setDefaultCredentialsProvider(p);
+			</p>
+		</div>
+	
+		<!-- ======================================================================================================== -->
+		<a id="FORM"></a>
+		<h4 class='topic' onclick='toggle(this)'>1.2.2 - FORM-based Authentication</h4>
+		<div class='topic'>
+			<p>
+				The {@link org.apache.juneau.client.RestClient} class does not itself provide FORM-based authentication since there
+				is no standard way of providing such support. 
+				Typically, to perform FORM-based or other types of authentication, you'll want to create your own
+				subclass of {@link org.apache.juneau.client.RestClient} and override the {@link org.apache.juneau.client.RestClient#createHttpClient()}
+				method to provide an authenticated client.
+			</p>
+			<p>
+				The following example shows how the <code>JazzRestClient</code> class provides
+				FORM-based authentication support.
+			</p>
+			<p class='bcode'>
+	<jd>/**
+	 * Constructor.
+	 */</jd>
+	<jk>public</jk> JazzRestClient(URI jazzUri, String user, String pw) <jk>throws</jk> IOException {
+		...
+	}
+
+	<jd>/**
+	 * Override the createHttpClient() method to return an authenticated client.
+	 */</jd>
+	<ja>@Override</ja> <jc>/* RestClient */</jc>
+	<jk>protected</jk> CloseableHttpClient createHttpClient() <jk>throws</jk> Exception {
+		CloseableHttpClient client = <jk>super</jk>.createHttpClient();
+		formBasedAuthenticate(client);
+		visitAuthenticatedURL(client);
+		<jk>return</jk> client;
+	}
+
+	<jc>/*
+	 * Performs form-based authentication against the Jazz server.
+	 */</jc>
+	<jk>private void</jk> formBasedAuthenticate(HttpClient client) <jk>throws</jk> IOException {
+
+		URI uri2 = <jf>jazzUri</jf>.resolve(<js>"j_security_check"</js>);
+		HttpPost request = <jk>new</jk> HttpPost(uri2);
+		request.setConfig(RequestConfig.<jsm>custom</jsm>().setRedirectsEnabled(<jk>false</jk>).build());
+		
+		<jc>// Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.</jc>
+		request.addHeader(<js>"Content-Type"</js>, <js>"application/x-www-form-urlencoded; charset=utf-8"</js>);
+
+		NameValuePairs params = <jk>new</jk> NameValuePairs()
+			.append(<jk>new</jk> BasicNameValuePair(<js>"j_username""</js>, <jf>user</jf>))
+			.append(<jk>new</jk> BasicNameValuePair(<js>"j_password"</js>, <jf>pw</jf>));
+		request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
+
+		HttpResponse response = client.execute(request);
+		<jk>try</jk> {
+			<jk>int</jk> rc = response.getStatusLine().getStatusCode();
+
+			Header authMsg = response.getFirstHeader(<js>"X-com-ibm-team-repository-web-auth-msg"</js>);
+			<jk>if</jk> (authMsg != <jk>null</jk>)
+				<jk>throw new</jk> IOException(authMsg.getValue());
+
+			<jc>// The form auth request should always respond with a 200 ok or 302 redirect code</jc>
+			<jk>if</jk> (rc == <jsf>SC_MOVED_TEMPORARILY</jsf>) {
+				<jk>if</jk> (response.getFirstHeader(<js>"Location"</js>).getValue().matches(<js>"^.*/auth/authfailed.*$"</js>))
+					<jk>throw new</jk> IOException(<js>"Invalid credentials."</js>);
+			} <jk>else if</jk> (rc != <jsf>SC_OK</jsf>) {
+				<jk>throw new</jk> IOException(<js>"Unexpected HTTP status: "</js> + rc);
+			}
+		} <jk>finally</jk> {
+			EntityUtils.<jsm>consume</jsm>(response.getEntity());
+		}
+	}
+
+	<jc>/*
+	 * This is needed for Tomcat because it responds with SC_BAD_REQUEST when the j_security_check URL is visited before an
+	 * authenticated URL has been visited. This same URL must also be visited after authenticating with j_security_check
+	 * otherwise tomcat will not consider the session authenticated
+	 */</jc>
+	<jk>private int</jk> visitAuthenticatedURL(HttpClient httpClient) <jk>throws</jk> IOException {
+		HttpGet authenticatedURL = <jk>new</jk> HttpGet(<jf>jazzUri</jf>.resolve(<js>"authenticated/identity"</js>));
+		HttpResponse response = httpClient.execute(authenticatedURL);
+		<jk>try</jk> {
+			<jk>return</jk> response.getStatusLine().getStatusCode();
+		} <jk>finally</jk> {
+			EntityUtils.<jsm>consume</jsm>(response.getEntity());
+		}
+	}
+			</p>
+		</div>
+		
+		<!-- ======================================================================================================== -->
+		<a id="OIDC"></a>
+		<h4 class='topic' onclick='toggle(this)'>1.2.3 - OIDC Authentication</h4>
+		<div class='topic'>
+			<p>
+				The following example shows how the <code>JazzRestClient</code> class provides
+				OIDC authentication support.
+			</p>
+	<p class='bcode'>
+	<jd>/**
+	 * Constructor.
+	 */</jd>
+	<jk>public</jk> JazzRestClient(URI jazzUri, String user, String pw) <jk>throws</jk> IOException {
+		...
+	}
+
+	<jd>/**
+	 * Override the createHttpClient() method to return an authenticated client.
+	 */</jd>
+	<ja>@Override</ja> <jc>/* RestClient */</jc>
+	<jk>protected</jk> CloseableHttpClient createHttpClient() <jk>throws</jk> Exception {
+		CloseableHttpClient client = <jk>super</jk>.createHttpClient();
+		oidcAuthenticate(client);
+			<jk>return</jk> client;
+		}
+
+	<jk>private void</jk> oidcAuthenticate(HttpClient client) <jk>throws</jk> IOException {
+
+		HttpGet request = <jk>new</jk> HttpGet(<jf>jazzUri</jf>);
+		request.setConfig(RequestConfig.<jsm>custom</jsm>().setRedirectsEnabled(<jk>false</jk>).build());
+		
+		<jc>// Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.</jc>
+		request.addHeader(<js>"Content-Type"</js>, <js>"application/x-www-form-urlencoded; charset=utf-8"</js>);
+
+		HttpResponse response = client.execute(request);
+		<jk>try</jk> {
+			<jk>int</jk> code = response.getStatusLine().getStatusCode();
+
+			<jc>// Already authenticated</jc>
+			<jk>if</jk> (code == <jsf>SC_OK</jsf>)
+				<jk>return</jk>;
+
+			<jk>if</jk> (code != <jsf>SC_UNAUTHORIZED</jsf>)
+				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication: "</js> + response.getStatusLine());
+
+			<jc>// x-jsa-authorization-redirect</jc>
+			String redirectUri = getHeader(response, <js>"X-JSA-AUTHORIZATION-REDIRECT"</js>);
+
+			<jk>if</jk> (redirectUri == <jk>null</jk>)
+				<jk>throw new</jk> RestCallException(<js>"Expected a redirect URI during OIDC authentication: "</js> + response.getStatusLine());
+
+			<jc>// Handle Bearer Challenge</jc>
+			HttpGet method = <jk>new</jk> HttpGet(redirectUri + <js>"&prompt=none"</js>);
+			addDefaultOidcHeaders(method);
+
+			response = client.execute(method);
+
+			code = response.getStatusLine().getStatusCode();
+
+			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
+				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 2: "</js> + response.getStatusLine());
+
+			String loginRequired = getHeader(response, <js>"X-JSA-LOGIN-REQUIRED"</js>);
+
+			<jk>if</jk> (! <js>"true"</js>.equals(loginRequired))
+				<jk>throw new</jk> RestCallException(<js>"X-JSA-LOGIN-REQUIRED header not found on response during OIDC authentication phase 2: "</js> + response.getStatusLine());
+
+			method = <jk>new</jk> HttpGet(redirectUri + <js>"&prompt=none"</js>);
+
+			addDefaultOidcHeaders(method);
+			response = client.execute(method);
+
+			code = response.getStatusLine().getStatusCode();
+
+			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
+				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 3: "</js> + response.getStatusLine());
+
+			<jc>// Handle JAS Challenge</jc>
+			method = <jk>new</jk> HttpGet(redirectUri);
+			addDefaultOidcHeaders(method);
+
+			response = client.execute(method);
+
+			code = response.getStatusLine().getStatusCode();
+
+			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
+				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 4: "</js> + response.getStatusLine());
+
+			<jf>cookie</jf> = getHeader(response, <js>"Set-Cookie"</js>);
+
+			Header[] defaultHeaders = <jk>new</jk> Header[] {
+				<jk>new</jk> BasicHeader(<js>"User-Agent"</js>, <js>"Jazz Native Client"</js>),
+				<jk>new</jk> BasicHeader(<js>"X-com-ibm-team-configuration-versions"</js>, <js>"com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"</js>),
+				<jk>new</jk> BasicHeader(<js>"Accept"</js>, <js>"text/json"</js>),
+				<jk>new</jk> BasicHeader(<js>"Authorization"</js>, <js>"Basic "</js> + StringUtils.<jsm>base64EncodeToString</jsm>(<jf>user</jf> + <js>":"</js> + <jf>pw</jf>)),
+				<jk>new</jk> BasicHeader(<js>"Cookie"</js>, cookie)
+	};
+
+			setDefaultHeaders(Arrays.<jsm>asList</jsm>(defaultHeaders));
+
+		} <jk>finally</jk> {
+			EntityUtils.<jsm>consume</jsm>(response.getEntity());
+		}
+	}
+
+	<jk>private void</jk> addDefaultOidcHeaders(HttpRequestBase method) {
+		method.addHeader(<js>"User-Agent"</js>, <js>"Jazz Native Client"</js>);
+		method.addHeader(<js>"X-com-ibm-team-configuration-versions"</js>, <js>"com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"</js>);
+		method.addHeader(<js>"Accept"</js>, <js>"text/json"</js>);
+
+		<jk>if</jk> (<jf>cookie</jf> != <jk>null</jk>) {
+			method.addHeader(<js>"Authorization"</js>, <js>"Basic "</js> + StringUtils.<jsm>base64EncodeToString</jsm>(<jf>user</jf> + <js>":"</js> + <jf>pw</jf>));
+			method.addHeader(<js>"Cookie"</js>, cookie);
+		}
+	}
+			</p>	
+		</div>
+	</div>
+
+	<!-- ======================================================================================================== -->
+	<a id="ResponsePatterns"></a>
+	<h3 class='topic' onclick='toggle(this)'>1.3 - Using Response Patterns</h3>
+	<div class='topic'>
+		<p>
+			One issue with REST (and HTTP in general) is that the HTTP response code must be set as a header before the 
+			body of the request is sent.  This can be problematic when REST calls invoke long-running processes, pipes
+			the results through the connection, and then fails after an HTTP 200 has already been sent.
+		</p>
+		<p>
+			One common solution is to serialize some text at the end to indicate whether the long-running process succeeded (e.g. <js>"FAILED"</js> or <js>"SUCCEEDED"</js>).
+		</p>
+		<p>
+			The {@link org.apache.juneau.client.RestClient} class has convenience methods for scanning the response without
+			interfering with the other methods used for retrieving output.  
+		</p>
+		<p>
+			The following example shows how the {@link org.apache.juneau.client.RestCall#successPattern(String)} method can be used
+			to look for a SUCCESS message in the output:
+		</p>	
+		<h6 class='topic'>Example:</h6>
+		<p class='bcode'>
+	<jc>// Throw a RestCallException if SUCCESS is not found in the output.</jc>
+	restClient.doPost(<jsf>URL</jsf>)
+		.successPattern(<js>"SUCCESS"</js>)
+		.run();
+		</p>
+		<p>
+			The {@link org.apache.juneau.client.RestCall#failurePattern(String)} method does the opposite.  
+			It throws an exception if a failure message is detected.
+		</p>	
+		<h6 class='topic'>Example:</h6>
+		<p class='bcode'>
+	<jc>// Throw a RestCallException if FAILURE or ERROR is found in the output.</jc>
+	restClient.doPost(<jsf>URL</jsf>)
+		.failurePattern(<js>"FAILURE|ERROR"</js>)
+		.run();
+		</p>
+		<p>
+			These convenience methods are specialized methods that use the {@link org.apache.juneau.client.RestCall#addResponsePattern(ResponsePattern)}
+				method which uses regular expression matching against the response body.
+			This method can be used to search for arbitrary patterns in the response body.
+		</p>
+		<p>
+			The following example shows how to use a response pattern finder to find and capture patterns for <js>"x=number"</js> and <js>"y=string"</js>
+				from a response body.
+		</p>	
+		<h6 class='topic'>Example:</h6>
+		<p class='bcode'>
+	<jk>final</jk> List&lt;Number&gt; xList = <jk>new</jk> ArrayList&lt;Number&gt;();
+	<jk>final</jk> List&lt;String&gt; yList = <jk>new</jk> ArrayList&lt;String&gt;();
+	
+	String responseText = restClient.doGet(<jsf>URL</jsf>)
+		.addResponsePattern(
+			<jk>new</jk> ResponsePattern(<js>"x=(\\d+)"</js>) {
+				<ja>@Override</ja>
+				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
+					xList.add(Integer.<jsm>parseInt</jsm>(m.group(1)));
+				}
+				<ja>@Override</ja>
+				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
+					<jk>throw new</jk> RestCallException(<js>"No X's found!"</js>);
+				}
+			}
+		)
+		.addResponsePattern(
+			<jk>new</jk> ResponsePattern(<js>"y=(\\S+)"</js>) {
+				<ja>@Override</ja>
+				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
+					yList.add(m.group(1));
+				}
+				<ja>@Override</ja>
+				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
+					<jk>throw new</jk> RestCallException(<js>"No Y's found!"</js>);
+				}
+			}
+		)
+		.getResponseAsString();
+		</p>
+		<p>
+			Using response patterns does not affect the functionality of any of the other methods
+			used to retrieve the response such as {@link org.apache.juneau.client.RestCall#getResponseAsString()} or {@link org.apache.juneau.client.RestCall#getResponse(Class)}.<br>
+			HOWEVER, if you want to retrieve the entire text of the response from inside the match methods,
+			use {@link org.apache.juneau.client.RestCall#getCapturedResponse()} since this method will not absorb the response for those other methods.
+		</p>
+	</div>
+	
+	<!-- ======================================================================================================== -->
+	<a id="#PipingOutput"></a>
+	<h3 class='topic' onclick='toggle(this)'>1.4 - Piping Response Output</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.client.RestCall} class provides various convenience <code>pipeTo()</code> methods 
+			to pipe output to output streams and writers.
+		</p>
+		<p>
+			If you want to pipe output without any intermediate buffering, you can use the {@link org.apache.juneau.client.RestCall#byLines()} method.  
+			This will cause the output to be piped and flushed after every line.  
+			This can be useful if you want to display the results in real-time from a long running process producing
+				output on a REST call.
+		</p>
+		<h6 class='topic'>Example:</h6>
+		<p class='bcode'>
+	<jc>// Pipe output from REST call to System.out in real-time.</jc>
+	restClient.doPost(<jsf>URL</jsf>).byLines().pipeTo(<jk>new</jk> PrintWriter(System.<jk>out</jk>)).run();
+		</p>
+	</div>	
+	
+	<!-- ======================================================================================================== -->
+	<a id="Logging"></a>
+	<h3 class='topic' onclick='toggle(this)'>1.5 - Logging</h3>
+	<div class='topic'>
+		<p>
+			Use the {@link org.apache.juneau.client.RestClient#logTo(Level,Logger)} and {@link org.apache.juneau.client.RestCall#logTo(Level,Logger)} methods
+			to log HTTP calls.
+			These methods will cause the HTTP request and response headers and body to be logged to the specified logger.  
+		</p>
+		<h6 class='topic'>Example:</h6>
+		<p class='bcode'>
+	<jc>// Log the HTTP request/response to the specified logger.</jc>
+	<jk>int</jk> rc = restClient.doGet(<jsf>URL</jsf>).logTo(<jsf>INFO</jsf>, getLogger()).run();
+		</p>
+		<p>
+			The method call is ignored if the logger level is below the specified level.
+		</p>
+		<p>
+			Customized logging can be handled by subclassing the {@link org.apache.juneau.client.RestCallLogger} class and using the 
+			{@link org.apache.juneau.client.RestCall#addInterceptor(RestCallInterceptor)} method.
+		</p>
+	</div>
+	
+	<!-- ======================================================================================================== -->
+	<a id="Interceptors"></a>
+	<h3 class='topic' onclick='toggle(this)'>1.6 - Interceptors</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.client.RestClient#addInterceptor(RestCallInterceptor)} and {@link org.apache.juneau.client.RestCall#addInterceptor(RestCallInterceptor)} methods
+			can be used to intercept responses during specific connection lifecycle events.
+		</p>
+		<p>
+			The {@link org.apache.juneau.client.RestCallLogger} class is an example of an interceptor that uses the various lifecycle methods
+				to log HTTP requests.
+		</p>
+		<p class='bcode'>
+	<jd>/**
+	 * Specialized interceptor for logging calls to a log file.
+	 */</jd>
+	<jk>public class</jk> RestCallLogger <jk>extends</jk> RestCallInterceptor {
+	
+		<jk>private</jk> Level <jf>level</jf>;
+		<jk>private</jk> Logger <jf>log</jf>;
+	
+		<jd>/**
+		 * Constructor.
+		 *
+		 * <ja>@param</ja> level The log level to log messages at.
+		 * <ja>@param</ja> log The logger to log to.
+		 */</jd>
+		<jk>protected</jk> RestCallLogger(Level level, Logger log) {
+			<jk>this</jk>.<jf>level</jf> = level;
+			<jk>this</jk>.<jf>log</jf> = log;
+		}
+	
+		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
+		<jk>public void</jk> onInit(RestCall restCall) {
+			<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>))
+				restCall.captureResponse();
+		}
+	
+		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
+		<jk>public void</jk> onConnect(RestCall restCall, <jk>int</jk> statusCode, HttpRequest req, HttpResponse res) {
+			<jc>// Do nothing.</jc>
+		}
+	
+		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
+		<jk>public void</jk> onRetry(RestCall restCall, <jk>int</jk> statusCode, HttpRequest req, HttpResponse res) {
+			<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>))
+				<jf>log</jf>.log(level, MessageFormat.<jsm>format</jsm>(<js>"Call to {0} returned {1}.  Will retry."</js>, req.getRequestLine().getUri(), statusCode)); 
+		}
+	
+		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
+		<jk>public void</jk> onClose(RestCall restCall) <jk>throws</jk> RestCallException {
+			<jk>try</jk> {
+				<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>)) {
+					String output = restCall.getCapturedResponse();
+					StringBuilder sb = <jk>new</jk> StringBuilder();
+					HttpUriRequest req = restCall.getRequest();
+					HttpResponse res = restCall.getResponse();
+					<jk>if</jk> (req != <jk>null</jk>) {
+						sb.append(<js>"\n=== HTTP Call =================================================================="</js>);
+	
+						sb.append(<js>"\n=== REQUEST ===\n"</js>).append(req);
+						sb.append(<js>"\n---request headers---"</js>);
+						<jk>for</jk> (Header h : req.getAllHeaders())
+							sb.append(<js>"\n"</js>).append(h);
+						<jk>if</jk> (req <jk>instanceof</jk> HttpEntityEnclosingRequestBase) {
+							sb.append(<js>"\n---request entity---"</js>);
+							HttpEntityEnclosingRequestBase req2 = (HttpEntityEnclosingRequestBase)req;
+							HttpEntity e = req2.getEntity();
+							<jk>if</jk> (e == <jk>null</jk>)
+								sb.append(<js>"\nEntity is null"</js>);
+							<jk>else</jk> {
+								<jk>if</jk> (e.getContentType() != <jk>null</jk>)
+									sb.append(<js>"\n"</js>).append(e.getContentType());
+								<jk>if</jk> (e.getContentEncoding() != <jk>null</jk>)
+									sb.append(<js>"\n"</js>).append(e.getContentEncoding());
+								<jk>if</jk> (e.isRepeatable()) {
+									<jk>try</jk> {
+										sb.append(<js>"\n---request content---\n"</js>).append(EntityUtils.<jsm>toString</jsm>(e));
+									} <jk>catch</jk> (Exception ex) {
+										<jk>throw new</jk> RuntimeException(ex);
+									}
+								}
+							}
+						}
+					}
+					<jk>if</jk> (res != <jk>null</jk>) {
+						sb.append(<js>"\n=== RESPONSE ===\n"</js>).append(res.getStatusLine());
+						sb.append(<js>"\n---response headers---"</js>);
+						<jk>for</jk> (Header h : res.getAllHeaders())
+							sb.append(<js>"\n"</js>).append(h);
+						sb.append(<js>"\n---response content---\n"</js>).append(output);
+						sb.append(<js>"\n=== END ========================================================================"</js>);
+					}
+					<jf>log</jf>.log(<jf>level</jf>, sb.toString());
+				}
+			} <jk>catch</jk> (IOException e) {
+				<jf>log</jf>.log(Level.<jsf>SEVERE</jsf>, e.getLocalizedMessage(), e);
+			}
+		}
+	}
+		</p>
+	</div>
+
+	<!-- ======================================================================================================== -->
+	<a id="Remoteable"></a>
+	<h3 class='topic' onclick='toggle(this)'>1.7 - Remotable Proxies</h3>
+	<div class='topic'>
+		<p>
+			Juneau provides the capability of calling methods on POJOs on a server through client-side proxy interfaces.
+			It offers a number of advantages over other similar remote proxy interfaces, such as being much simpler to 
+				use and allowing much more flexibility.
+		</p>
+		<p>
+			Proxy interfaces are retrieved using the {@link org.apache.juneau.client.RestClient#getRemoteableProxy(Class)} method.
+			The {@link org.apache.juneau.client.RestClient#setRemoteableServletUri(String)} method is used to specify the location
+				of the remoteable services servlet running on the server.
+			The remoteable servlet is a specialized subclass of {@link org.apache.juneau.server.RestServlet} that provides a full-blown
+				REST interface for calling interfaces remotely. 
+		</p>
+		<p>
+			In this example, we have the following interface defined that we want to call from the client side against
+				a POJO on the server side (i.e. a Remoteable Service)...
+		<p class='bcode'>
+	<jk>public interface</jk> IAddressBook {
+		Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
+	}
+		</p>			
+		<p>
+			The client side code for invoking this method is shown below...
+		</p>
+		<p class='bcode'>
+	<jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
+	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>)
+		.setRemoteableServletUri(<js>"https://localhost:9080/juneau/sample/remoteable"</js>);
+	
+	<jc>// Create a proxy interface.</jc>
+	IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
+	
+	<jc>// Invoke a method on the server side and get the returned result.</jc>
+	Person p = ab.createPerson(
+		<jk>new</jk> CreatePerson(<js>"Test Person"</js>,
+			AddressBook.<jsm>toCalendar</jsm>(<js>"Aug 1, 1999"</js>),
+			<jk>new</jk> CreateAddress(<js>"Test street"</js>, <js>"Test city"</js>, <js>"Test state"</js>, 12345, <jk>true</jk>))
+	);
+		</p>
+		<p>
+			The requirements for a method to be callable through a remoteable service are:
+			<ul class='spaced-list'>
+				<li>The method must be public.
+				<li>The parameter and return types must be <a href='../../../../org/apache/juneau/package-summary.html#PojoCategories'><u>serializable and parsable</u></a>.
+			</ul>
+		</p>
+		<p>
+			One significant feature is that the remoteable services servlet is a full-blown REST interface.  
+			Therefore, in cases where the interface classes are not available on the client side,
+				the same method calls can be made through pure REST calls.  
+			This can also aid significantly in debugging since calls to the remoteable service
+				can be called directly from a browser with no code involved.
+		</p>
+		<p>
+			See {@link org.apache.juneau.server.remoteable} for more information.
+		</p> 
+	</div>
+
+	<!-- ======================================================================================================== -->
+	<a id="Other"></a>
+	<h3 class='topic' onclick='toggle(this)'>1.8 - Other Useful Methods</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.client.RestClient#setRootUrl(String)} method can be used to specify a root URL on 
+				all requests so that you don't have to use absolute paths on individual calls.
+		</p>
+		<p class='bcode'>
+	<jc>// Create a rest client with a root URL</jc>
+	RestClient rc = <jk>new</jk> RestClient().setRootUrl(<js>"http://localhost:9080/foobar"</js>);
+	String r = rc.doGet(<js>"/baz"</js>).getResponseAsString();  <jc>// Gets "http://localhost:9080/foobar/baz"</jc>
+		</p>
+		<p>
+			The {@link org.apache.juneau.client.RestClient#setProperty(String,Object)} method can be used to set serializer
+			and parser properties.
+			For example, if you're parsing a response into POJOs and you want to ignore fields that aren't on the
+			POJOs, you can use the {@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties} property.
+		</p>
+		<p class='bcode'>
+	<jc>// Create a rest client that ignores unknown fields in the response</jc>
+	RestClient rc = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>)
+		.setProperty(<jsf>BEAN_ignoreUnknownBeanProperties</jsf>, <jk>true</jk>);
+	MyPojo myPojo = rc.doGet(<jsf>URL</jsf>).getResponse(MyPojo.<jk>class</jk>);
+		</p>
+		<p>
+			The {@link org.apache.juneau.client.RestCall#setRetryable(int,long,RetryOn)} method can be used to automatically
+				retry requests on failures.
+			This can be particularly useful if you're attempting to connect to a REST resource that may be in
+				the process of still initializing.
+		</p>
+		<p class='bcode'>
+	<jc>// Create a rest call that retries every 10 seconds for up to 30 minutes as long as a connection fails
+	// or a 400+ is received.</jc>
+	restClient.doGet(<jsf>URL</jsf>)
+		.setRetryable(180, 10000, RetryOn.<jsf>DEFAULT</jsf>)
+		.run();
+	</p>
+	</div>
+</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.microservice.template/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/.classpath b/com.ibm.team.juno.microservice.template/.classpath
index e506ff2..9308111 100755
--- a/com.ibm.team.juno.microservice.template/.classpath
+++ b/com.ibm.team.juno.microservice.template/.classpath
@@ -1,10 +1,30 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/com.ibm.team.juno"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/com.ibm.team.juno.client"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/com.ibm.team.juno.microservice"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/com.ibm.team.juno.server"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry combineaccessrules="false" kind="src" path="/org.apache.juneau"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/org.apache.juneau.client"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/org.apache.juneau.microservice"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/org.apache.juneau.server"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/.project b/com.ibm.team.juno.microservice.template/.project
index bd71c23..ece1e77 100755
--- a/com.ibm.team.juno.microservice.template/.project
+++ b/com.ibm.team.juno.microservice.template/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>com.ibm.team.juno.microservice.template</name>
+	<name>org.apache.juneau.microservice.template</name>
 	<comment></comment>
 	<projects>
 	</projects>
@@ -10,8 +10,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
 </projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno.microservice.template/.settings/org.eclipse.jdt.core.prefs
index 54e493c..6428c68 100755
--- a/com.ibm.team.juno.microservice.template/.settings/org.eclipse.jdt.core.prefs
+++ b/com.ibm.team.juno.microservice.template/.settings/org.eclipse.jdt.core.prefs
@@ -8,4 +8,5 @@ org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
 org.eclipse.jdt.core.compiler.source=1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/META-INF/MANIFEST.MF b/com.ibm.team.juno.microservice.template/META-INF/MANIFEST.MF
index 1e8d419..30add53 100755
--- a/com.ibm.team.juno.microservice.template/META-INF/MANIFEST.MF
+++ b/com.ibm.team.juno.microservice.template/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
-Main-Class: com.ibm.juno.microservice.RestMicroservice
+Main-Class: org.apache.juneau.microservice.RestMicroservice
 Rest-Resources: 
- com.ibm.juno.microservice.sample.RootResources
+ org.apache.juneau.microservice.sample.RootResources
 Main-ConfigFile: microservice.cfg
 Class-Path: 
  lib/commons-codec-1.9.jar 
@@ -12,7 +12,7 @@ Class-Path:
  lib/httpmime-4.5.jar 
  lib/javax.servlet-api-3.0.jar 
  lib/jetty-all-8.1.0.jar 
- lib/juno-all-5.2.jar 
+ lib/juneau-all-5.2.jar 
  lib/org.apache.commons.fileupload_1.3.1.jar
 
  
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/HelloWorldResource.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/HelloWorldResource.class b/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/HelloWorldResource.class
deleted file mode 100644
index 458fd52..0000000
Binary files a/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/HelloWorldResource.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/RootResources.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/RootResources.class b/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/RootResources.class
deleted file mode 100644
index ef2ac44..0000000
Binary files a/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/RootResources.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/nls/Messages.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/nls/Messages.properties b/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/nls/Messages.properties
deleted file mode 100755
index 62b3f1a..0000000
--- a/com.ibm.team.juno.microservice.template/bin/com/ibm/juno/microservice/sample/nls/Messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Licensed Materials - Property of IBM
-# (c) Copyright IBM Corporation 2015, 2016. All Rights Reserved.
-# 
-# Note to U.S. Government Users Restricted Rights:  
-# Use, duplication or disclosure restricted by GSA ADP Schedule 
-# Contract with IBM Corp. 
-###############################################################################
-
-#--------------------------------------------------------------------------------
-# RootResources
-#--------------------------------------------------------------------------------
-RootResources.label = Juno Microservice Template
-RootResources.description = Template for creating REST microservices

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/microservice.cfg
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/microservice.cfg b/com.ibm.team.juno.microservice.template/microservice.cfg
index 95094ed..57ce45a 100755
--- a/com.ibm.team.juno.microservice.template/microservice.cfg
+++ b/com.ibm.team.juno.microservice.template/microservice.cfg
@@ -7,7 +7,7 @@
 # Services
 #================================================================================
 [Services]
-REST = com.ibm.juno.microservice.rest.RestApplication
+REST = org.apache.juneau.microservice.rest.RestApplication
 
 #================================================================================
 # REST settings
@@ -57,7 +57,7 @@ authRealm =
 
 # Stylesheet to use for HTML views.
 # The default options are:
-#  - styles/juno.css
+#  - styles/juneau.css
 #  - styles/devops.css
 # Other stylesheets can be referenced relative to the servlet package or working
 # 	directory.
@@ -171,7 +171,7 @@ count = 5
 # Default log levels.
 # Keys are logger names.
 # Values are serialized Level POJOs.
-levels = { com.ibm.juno:'INFO' }
+levels = { org.apache.juneau:'INFO' }
 
 # Only print unique stack traces once and then refer to them by a simple 8 character hash identifier.
 # Useful for preventing log files from filling up with duplicate stack traces.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/project-root/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/project-root/.classpath b/com.ibm.team.juno.microservice.template/project-root/.classpath
deleted file mode 100755
index 2563b9e..0000000
--- a/com.ibm.team.juno.microservice.template/project-root/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.9.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-io-1.2.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-logging-1.1.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.0.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jetty-all-8.1.0.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/juno-all-5.2.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/org.apache.commons.fileupload_1.3.1.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/project-root/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/project-root/.project b/com.ibm.team.juno.microservice.template/project-root/.project
deleted file mode 100755
index 358082d..0000000
--- a/com.ibm.team.juno.microservice.template/project-root/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>microservice-project</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/project-root/build.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/project-root/build.properties b/com.ibm.team.juno.microservice.template/project-root/build.properties
deleted file mode 100755
index a2aad00..0000000
--- a/com.ibm.team.juno.microservice.template/project-root/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# 
-# Licensed Materials - Property of IBM
-# (c) Copyright IBM Corporation 2015, 2016. All Rights Reserved.
-# 
-# Note to U.S. Government Users Restricted Rights:  
-# Use, duplication or disclosure restricted by GSA ADP Schedule 
-# Contract with IBM Corp. 
-#  
-###############################################################################
-
-jar = microservice.jar
-zip = microservice.zip
-		
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/project-root/build.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/project-root/build.xml b/com.ibm.team.juno.microservice.template/project-root/build.xml
deleted file mode 100755
index 1ca6997..0000000
--- a/com.ibm.team.juno.microservice.template/project-root/build.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version='1.0'?>
-<!--
-    Licensed Materials - Property of IBM
-    (c) Copyright IBM Corporation 2015, 2016. All Rights Reserved.
-   
-    Note to U.S. Government Users Restricted Rights:  
-    Use, duplication or disclosure restricted by GSA ADP Schedule 
-    Contract with IBM Corp. 
- -->
-
-<!--
-	Provides a VERY basic ANT script for creating a microservice zip file.
--->
-<project name='Microservice' default='Microservice.Build'>
-	
-	<target name='Microservice.Build'>
-		<tstamp/>
-		<loadproperties srcFile='build.properties'/>
-		
-		<path id='classpath'>
-			<fileset dir='lib' includes='*.jar'/>
-		</path>
-		
-		<delete dir='build' quiet='true'/>
-
-		<copy todir='build/bin'>
-			<fileset dir='src' excludes='**/*.java'/>
-		</copy>
-		<copy todir='build/microservice'>
-			<fileset dir='.' includes='*.cfg,lib/**'/>
-		</copy>
-		
-		<javac srcdir='src' destdir='build/bin' fork='true' source='1.6' target='1.6' debug='true' includeantruntime='false'>
-			<classpath refid='classpath'/>
-		</javac>
-		
-		<jar jarfile='build/microservice/${jar}' basedir='build/bin' duplicate='fail' level='9' manifest='META-INF/MANIFEST.MF'>
-			<manifest>
-				<attribute name='Built-By' value='${user.name}'/>
-				<attribute name='Build-Date' value='${TODAY}'/>
-				<attribute name='Bundle-Version' value='${version}'/>
-			</manifest>
-		</jar>
-		
-		<zip basedir='build/microservice' destfile='build/${zip}'/>
-
-		<delete dir='build/bin' quiet='true'/>
-	</target>
-
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/project-root/microservice-project.launch
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/project-root/microservice-project.launch b/com.ibm.team.juno.microservice.template/project-root/microservice-project.launch
deleted file mode 100755
index 49785df..0000000
--- a/com.ibm.team.juno.microservice.template/project-root/microservice-project.launch
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-	<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-		<listEntry value="/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/RestMicroservice.java"/>
-	</listAttribute>
-	<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-		<listEntry value="1"/>
-	</listAttribute>
-	<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.juno.microservice.RestMicroservice"/>
-	<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="microservice-project"/>
-</launchConfiguration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/HelloWorldResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/HelloWorldResource.java b/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/HelloWorldResource.java
deleted file mode 100755
index b2da5d5..0000000
--- a/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/HelloWorldResource.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � Copyright IBM Corporation 2014, 2016. 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.microservice.sample;
-
-import com.ibm.juno.microservice.*;
-import com.ibm.juno.server.annotation.*;
-
-/**
- * Sample REST resource that prints out a simple "Hello world!" message.
- */
-@RestResource(
-	label="Hello World example",
-	description="Simplest possible REST resource"
-)
-public class HelloWorldResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	/** GET request handler */
-	@RestMethod(name="GET", path="/*")
-	public String sayHello() {
-		return "Hello world!";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/RootResources.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/RootResources.java b/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/RootResources.java
deleted file mode 100755
index 09f60b2..0000000
--- a/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/RootResources.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � Copyright IBM Corporation 2015, 2016. 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.microservice.sample;
-
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-
-import com.ibm.juno.microservice.*;
-import com.ibm.juno.microservice.resources.*;
-import com.ibm.juno.server.annotation.*;
-
-/**
- * Root microservice page.
- */
-@RestResource(
-	path="/",
-	label="Juno Microservice Template",
-	description="Template for creating REST microservices",
-	properties={
-		@Property(name=HTMLDOC_links, value="{options:'$R{servletURI}?method=OPTIONS'}")
-	},
-	children={
-		HelloWorldResource.class,
-		ConfigResource.class,
-		LogsResource.class
-	}
-)
-public class RootResources extends ResourceGroup {
-	private static final long serialVersionUID = 1L;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/nls/Messages.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/nls/Messages.properties b/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/nls/Messages.properties
deleted file mode 100755
index 62b3f1a..0000000
--- a/com.ibm.team.juno.microservice.template/src/com/ibm/juno/microservice/sample/nls/Messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Licensed Materials - Property of IBM
-# (c) Copyright IBM Corporation 2015, 2016. All Rights Reserved.
-# 
-# Note to U.S. Government Users Restricted Rights:  
-# Use, duplication or disclosure restricted by GSA ADP Schedule 
-# Contract with IBM Corp. 
-###############################################################################
-
-#--------------------------------------------------------------------------------
-# RootResources
-#--------------------------------------------------------------------------------
-RootResources.label = Juno Microservice Template
-RootResources.description = Template for creating REST microservices

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java b/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java
new file mode 100755
index 0000000..4615816
--- /dev/null
+++ b/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java
@@ -0,0 +1,35 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.sample;
+
+import org.apache.juneau.microservice.Resource;
+import org.apache.juneau.server.annotation.RestMethod;
+import org.apache.juneau.server.annotation.RestResource;
+
+/**
+ * Sample REST resource that prints out a simple "Hello world!" message.
+ */
+@RestResource(
+	label="Hello World example",
+	path="/helloworld",
+	description="Simplest possible REST resource"
+)
+public class HelloWorldResource extends Resource {
+	private static final long serialVersionUID = 1L;
+
+	/** GET request handler */
+	@RestMethod(name="GET", path="/*")
+	public String sayHello() {
+		return "Hello world!";
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/RootResources.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/RootResources.java b/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/RootResources.java
new file mode 100755
index 0000000..baafae3
--- /dev/null
+++ b/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/RootResources.java
@@ -0,0 +1,41 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.sample;
+
+import static org.apache.juneau.html.HtmlDocSerializerContext.HTMLDOC_links;
+
+import org.apache.juneau.microservice.ResourceGroup;
+import org.apache.juneau.microservice.resources.ConfigResource;
+import org.apache.juneau.microservice.resources.LogsResource;
+import org.apache.juneau.server.annotation.Property;
+import org.apache.juneau.server.annotation.RestResource;
+
+/**
+ * Root microservice page.
+ */
+@RestResource(
+	path="/",
+	label="Juneau Microservice Template",
+	description="Template for creating REST microservices",
+	properties={
+		@Property(name=HTMLDOC_links, value="{options:'$R{servletURI}?method=OPTIONS'}")
+	},
+	children={
+		HelloWorldResource.class,
+		ConfigResource.class,
+		LogsResource.class
+	}
+)
+public class RootResources extends ResourceGroup {
+	private static final long serialVersionUID = 1L;
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/nls/Messages.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/nls/Messages.properties b/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/nls/Messages.properties
new file mode 100755
index 0000000..8b3634d
--- /dev/null
+++ b/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/nls/Messages.properties
@@ -0,0 +1,19 @@
+# ***************************************************************************************************************************
+# * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+# * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+# * with the License.  You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+# * specific language governing permissions and limitations under the License.
+# *
+# ***************************************************************************************************************************
+
+#--------------------------------------------------------------------------------
+# RootResources
+#--------------------------------------------------------------------------------
+RootResources.label = Juneau Microservice Template
+RootResources.description = Template for creating REST microservices

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.classpath b/com.ibm.team.juno.microservice/.classpath
index 03170d5..8522470 100755
--- a/com.ibm.team.juno.microservice/.classpath
+++ b/com.ibm.team.juno.microservice/.classpath
@@ -1,19 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.9.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-io-1.2.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-logging-1.1.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.0.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jetty-all-8.1.0.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/org.apache.commons.fileupload_1.3.1.jar"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/com.ibm.team.juno.server"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/com.ibm.team.juno.releng"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/com.ibm.team.juno.client"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/com.ibm.team.juno"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.9.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-io-1.2.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-logging-1.1.1.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.1.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jetty-all-8.1.0.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.0.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/org.apache.commons.fileupload_1.3.1.jar"/>
+	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/org.apache.juneau.server"/>
+	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/org.apache.juneau.releng"/>
+	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/org.apache.juneau.client"/>
+	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/org.apache.juneau"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.project b/com.ibm.team.juno.microservice/.project
index ae4204e..8965b6a 100755
--- a/com.ibm.team.juno.microservice/.project
+++ b/com.ibm.team.juno.microservice/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>com.ibm.team.juno.microservice</name>
+	<name>org.apache.juneau.microservice</name>
 	<comment></comment>
 	<projects>
 	</projects>
@@ -10,8 +10,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
 </projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.core.prefs
index f053be0..54e4bf5 100755
--- a/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.core.prefs
+++ b/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.core.prefs
@@ -9,6 +9,7 @@ org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.doc.comment.support=enabled
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
 org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
 org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
 org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.ui.prefs b/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.ui.prefs
index ee3a695..47bdfe0 100755
--- a/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.ui.prefs
+++ b/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.ui.prefs
@@ -49,14 +49,14 @@ cleanup.use_this_for_non_static_field_access=false
 cleanup.use_this_for_non_static_field_access_only_if_necessary=true
 cleanup.use_this_for_non_static_method_access=false
 cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Juno
+cleanup_profile=_Juneau
 cleanup_settings_version=2
 eclipse.preferences.version=1
-formatter_profile=_Juno
+formatter_profile=_Juneau
 formatter_settings_version=12
 org.eclipse.jdt.ui.ignorelowercasenames=true
 org.eclipse.jdt.ui.importorder=java;javax;org;com;
 org.eclipse.jdt.ui.javadoc=false
 org.eclipse.jdt.ui.ondemandthreshold=1
 org.eclipse.jdt.ui.staticondemandthreshold=1
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\r\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on th
 is bean.\r\n * @return This object (for method chaining).\r\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * TODO\r\n * &lt;p&gt;\r\n * \r\n * @author James Bognar (jbognar@us.ibm.com)\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context
 " deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * TODO\r\n * \r\n * $
 {tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbo
 dy">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.
 jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\r\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on th
 is bean.\r\n * @return This object (for method chaining).\r\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * TODO\r\n * &lt;p&gt;\r\n * \r\n * @author James Bognar (james.bognar@salesforce.com)\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcommen
 t_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * TODO\r\n *
  \r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name
 \="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org
 .eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/Dockerfile
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/Dockerfile b/com.ibm.team.juno.microservice/Dockerfile
index 842d17b..c1766b0 100755
--- a/com.ibm.team.juno.microservice/Dockerfile
+++ b/com.ibm.team.juno.microservice/Dockerfile
@@ -1,4 +1,4 @@
-# Dockerfile for creating a Juno microservice container
+# Dockerfile for creating a Juneau microservice container
 
 FROM ubuntu
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/META-INF/MANIFEST.MF b/com.ibm.team.juno.microservice/META-INF/MANIFEST.MF
index f2ed4ea..af2d406 100755
--- a/com.ibm.team.juno.microservice/META-INF/MANIFEST.MF
+++ b/com.ibm.team.juno.microservice/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: com.ibm.team.juno.microservice
-Bundle-SymbolicName: com.ibm.team.juno.microservice
+Bundle-Name: com.ibm.team.juneau.microservice
+Bundle-SymbolicName: org.apache.juneau.microservice
 Bundle-Version: 5.2.0
 Bundle-Vendor: IBM
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$A.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$A.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$A.class
deleted file mode 100755
index 1189531..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$A.class and /dev/null differ

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$E1$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$E1$2.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$E1$2.class
deleted file mode 100755
index 794a5b3..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$E1$2.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$E1$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$E1$3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$E1$3.class
deleted file mode 100755
index 29497df..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/CT_Common$E1$3.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/urlencoding/CT_UonParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/urlencoding/CT_UonParser.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/urlencoding/CT_UonParser.class
deleted file mode 100755
index 579fd8a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/urlencoding/CT_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.test/com/ibm/juno/core/test/urlencoding/CT_UonParserReader$SlowStringReader.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/urlencoding/CT_UonParserReader$SlowStringReader.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/urlencoding/CT_UonParserReader$SlowStringReader.class
deleted file mode 100755
index c4385bd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/urlencoding/CT_UonParserReader$SlowStringReader.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/AsciiSet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/AsciiSet.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/AsciiSet.java
deleted file mode 100755
index 0a35276..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/AsciiSet.java
+++ /dev/null
@@ -1,55 +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.utils;
-
-/**
- * Stores a set of ASCII characters for quick lookup.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class AsciiSet {
-	final boolean[] store = new boolean[128];
-
-	/**
-	 * Constructor.
-	 *
-	 * @param chars The characters to keep in this store.
-	 */
-	public AsciiSet(String chars) {
-		for (int i = 0; i < chars.length(); i++) {
-			char c = chars.charAt(i);
-			if (c < 128)
-				store[c] = true;
-		}
-	}
-
-	/**
-	 * Returns <jk>true<jk> if the specified character is in this store.
-	 *
-	 * @param c The character to check.
-	 * @return <jk>true<jk> if the specified character is in this store.
-	 */
-	public boolean contains(char c) {
-		if (c > 127)
-			return false;
-		return store[c];
-	}
-
-	/**
-	 * Returns <jk>true<jk> if the specified character is in this store.
-	 *
-	 * @param c The character to check.
-	 * @return <jk>true<jk> if the specified character is in this store.
-	 */
-	public boolean contains(int c) {
-		if (c < 0 || c > 127)
-			return false;
-		return store[c];
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache$1.class
deleted file mode 100755
index 898da0a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache$1.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/utils/ByteArrayCache$ByteArray.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache$ByteArray.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache$ByteArray.class
deleted file mode 100755
index 9040d6c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache$ByteArray.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/utils/ByteArrayCache.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache.class
deleted file mode 100755
index da300c1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache.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/utils/ByteArrayCache.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache.java
deleted file mode 100755
index 1baee13..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayCache.java
+++ /dev/null
@@ -1,102 +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.utils;
-
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-/**
- * A utility class for caching byte arrays in memory so that duplicate arrays can be reused.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ByteArrayCache {
-
-	/**
-	 * Default global byte array cache.
-	 * Note that this can't ever get garbage collected so don't add really large arrays!
-	 */
-	public static final ByteArrayCache DEFAULT = new ByteArrayCache();
-
-	private final ConcurrentHashMap<ByteArray,byte[]> cache = new ConcurrentHashMap<ByteArray,byte[]>();
-
-	/**
-	 * Add the specified byte array to this cache.
-	 *
-	 * @param contents The byte array to add to this cache.
-	 * @return Either the same byte array or a previously cached byte array depending on whether the byte array
-	 * 	already exists in the cache.
-	 */
-	public byte[] cache(byte[] contents) {
-		if (contents == null)
-			return null;
-		ByteArray ba = new ByteArray(contents);
-		cache.putIfAbsent(ba, ba.contents);
-		return cache.get(ba);
-	}
-
-	/**
-	 * Add the specified input stream to this cache.
-	 *
-	 * @param contents The input stream whose contents are to be added to this cache.
-	 * @return Either the same byte array or a previously cached byte array depending on whether the byte array
-	 * 	already exists in the cache.
-	 * @throws IOException
-	 */
-	public byte[] cache(InputStream contents) throws IOException {
-		if (contents == null)
-			return null;
-		ByteArray ba = new ByteArray(IOUtils.readBytes(contents, 1024));
-		cache.putIfAbsent(ba, ba.contents);
-		return cache.get(ba);
-	}
-
-	/**
-	 * Returns the number of byte arrays in this cache.
-	 *
-	 * @return The number of byte arrays in this cache.
-	 */
-	public int size() {
-		return cache.size();
-	}
-
-	private static class ByteArray {
-		private int hashCode;
-		private byte[] contents;
-
-		private ByteArray(byte[] contents) {
-			this.contents = contents;
-			int multiplier = 1;
-			for (int i = 0; i < contents.length; i++) {
-				hashCode += contents[i] * multiplier;
-				int shifted = multiplier << 5;
-				multiplier = shifted - multiplier;
-			}
-		}
-
-		@Override /* Object */
-		public int hashCode() {
-			if (hashCode == 0) {
-			}
-			return hashCode;
-		}
-
-		@Override /* Object */
-		public boolean equals(Object o) {
-			if (o instanceof ByteArray) {
-				ByteArray ba = (ByteArray)o;
-				if (ba.hashCode == hashCode)
-					return Arrays.equals(ba.contents, contents);
-			}
-			return false;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayInOutStream.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayInOutStream.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayInOutStream.class
deleted file mode 100755
index 588bee0..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayInOutStream.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/utils/ByteArrayInOutStream.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayInOutStream.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayInOutStream.java
deleted file mode 100755
index 0e94821..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ByteArrayInOutStream.java
+++ /dev/null
@@ -1,28 +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.utils;
-
-import java.io.*;
-
-/**
- * Subclass of a ByteArrayOutputStream that avoids a byte array copy when reading from an input stream.
- * <p>
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ByteArrayInOutStream extends ByteArrayOutputStream {
-
-	/**
-	 * Creates a new input stream from this object.
-	 *
-	 * @return A new input stream from this object.
-	 */
-	public ByteArrayInputStream getInputStream() {
-		return new ByteArrayInputStream(this.buf, 0, this.count);
-	}
-}
\ 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/utils/CharSequenceReader.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CharSequenceReader.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CharSequenceReader.class
deleted file mode 100755
index 4b56124..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CharSequenceReader.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/utils/CharSequenceReader.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CharSequenceReader.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CharSequenceReader.java
deleted file mode 100755
index 9cdd838..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CharSequenceReader.java
+++ /dev/null
@@ -1,96 +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.utils;
-
-import java.io.*;
-
-/**
- * Similar to {@link StringReader} except reads from a generic {@link CharSequenceReader}.
- *
- * @author jbognar
- */
-public final class CharSequenceReader extends BufferedReader {
-
-	private final CharSequence cs;
-	private String s;
-	private StringBuffer sb;
-	private StringBuilder sb2;
-	private int length;
-	private int next = 0;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param cs The char sequence to read from.  Can be <jk>null</jk>.
-	 */
-	public CharSequenceReader(CharSequence cs) {
-		super(new StringReader(""), 1);   // Does not actually use a reader.
-		if (cs == null)
-			cs = "";
-		this.cs = cs;
-		if (cs instanceof String)
-			s = (String)cs;
-		else if (cs instanceof StringBuffer)
-			sb = (StringBuffer)cs;
-		else if (cs instanceof StringBuilder)
-			sb2 = (StringBuilder)cs;
-		this.length = cs.length();
-	}
-
-	@Override /* Reader */
-	public int read() {
-		if (next >= length)
-			return -1;
-		return cs.charAt(next++);
-	}
-
-	@Override /* Reader */
-	public boolean markSupported() {
-		return false;
-	}
-
-	@Override /* Reader */
-	public int read(final char[] cbuf, final int off, final int len) {
-		if (next >= length)
-			return -1;
-		int n = Math.min(length - next, len);
-		if (s != null)
-			s.getChars(next, next + n, cbuf, off);
-		else if (sb != null)
-			sb.getChars(next, next + n, cbuf, off);
-		else if (sb2 != null)
-			sb2.getChars(next, next + n, cbuf, off);
-		else {
-			for (int i = 0; i < n; i++)
-				cbuf[off+i] = cs.charAt(next+i);
-		}
-		next += n;
-		return n;
-	}
-
-	@Override /* Reader */
-	public long skip(long ns) {
-		if (next >= length)
-			return 0;
-		long n = Math.min(length - next, ns);
-		n = Math.max(-next, n);
-		next += n;
-		return n;
-	}
-
-	@Override /* Reader */
-	public void close() {
-		// no-op
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return cs.toString();
-	}
-}
\ 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/utils/ClassUtils$ClassComparator.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils$ClassComparator.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils$ClassComparator.class
deleted file mode 100755
index f894333..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils$ClassComparator.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/utils/ClassUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils.class
deleted file mode 100755
index 95747e7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils.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/utils/ClassUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils.java
deleted file mode 100755
index cf79b9d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ClassUtils.java
+++ /dev/null
@@ -1,211 +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.utils;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Class-related utility methods.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ClassUtils {
-
-	/**
-	 * Given the specified list of objects, return readable names for the class types of the objects.
-	 *
-	 * @param o The objects.
-	 * @return An array of readable class type strings.
-	 */
-	public static ObjectList getReadableClassNames(Object[] o) {
-		ObjectList l = new ObjectList();
-		for (int i = 0; i < o.length; i++)
-			l.add(o[i] == null ? "null" : getReadableClassName(o[i].getClass()));
-		return l;
-	}
-
-	/**
-	 * Shortcut for calling <code><jsm>getReadableClassName</jsm>(c.getName())</code>
-	 *
-	 * @param c The class.
-	 * @return A readable class type name, or <jk>null</jk> if parameter is <jk>null</jk>.
-	 */
-	public static String getReadableClassName(Class<?> c) {
-		if (c == null)
-			return null;
-		return getReadableClassName(c.getName());
-	}
-
-	/**
-	 * Converts the specified class name to a readable form when class name is a special construct like <js>"[[Z"</js>.
-	 * <p>
-	 * Examples:
-	 * <p class='bcode'>
-	 * 	<jsm>getReadableClassName</jsm>(<js>"java.lang.Object"</js>);  <jc>// Returns "java.lang.Object"</jc>
-	 * 	<jsm>getReadableClassName</jsm>(<js>"boolean"</js>);  <jc>// Returns "boolean"</jc>
-	 * 	<jsm>getReadableClassName</jsm>(<js>"[Z"</js>);  <jc>// Returns "boolean[]"</jc>
-	 * 	<jsm>getReadableClassName</jsm>(<js>"[[Z"</js>);  <jc>// Returns "boolean[][]"</jc>
-	 * 	<jsm>getReadableClassName</jsm>(<js>"[Ljava.lang.Object;"</js>);  <jc>// Returns "java.lang.Object[]"</jc>
-	 * 	<jsm>getReadableClassName</jsm>(<jk>null</jk>);  <jc>// Returns null</jc>
-	 * </p>
-	 *
-	 * @param className The class name.
-	 * @return A readable class type name, or <jk>null</jk> if parameter is <jk>null</jk>.
-	 */
-	public static String getReadableClassName(String className) {
-		if (className == null)
-			return null;
-		if (! StringUtils.startsWith(className, '['))
-			return className;
-		int depth = 0;
-		for (int i = 0; i < className.length(); i++) {
-			if (className.charAt(i) == '[')
-				depth++;
-			else
-				break;
-		}
-		char type = className.charAt(depth);
-		String c;
-		switch (type) {
-			case 'Z': c = "boolean"; break;
-			case 'B': c = "byte"; break;
-			case 'C': c = "char"; break;
-			case 'D': c = "double"; break;
-			case 'F': c = "float"; break;
-			case 'I': c = "int"; break;
-			case 'J': c = "long"; break;
-			case 'S': c = "short"; break;
-			default: c = className.substring(depth+1, className.length()-1);
-		}
-		StringBuilder sb = new StringBuilder(c.length() + 2*depth).append(c);
-		for (int i = 0; i < depth; i++)
-			sb.append("[]");
-		return sb.toString();
-	}
-
-	/**
-	 * Returns <jk>true</jk> if <code>parent</code> is a parent class of <code>child</code>.
-	 *
-	 * @param parent The parent class.
-	 * @param child The child class.
-	 * @param strict If <jk>true</jk> returns <jk>false</jk> if the classes are the same.
-	 * @return <jk>true</jk> if <code>parent</code> is a parent class of <code>child</code>.
-	 */
-	public static boolean isParentClass(Class<?> parent, Class<?> child, boolean strict) {
-		return parent.isAssignableFrom(child) && ((!strict) || ! parent.equals(child));
-	}
-
-	/**
-	 * Returns <jk>true</jk> if <code>parent</code> is a parent class or the same as <code>child</code>.
-	 *
-	 * @param parent The parent class.
-	 * @param child The child class.
-	 * @return <jk>true</jk> if <code>parent</code> is a parent class or the same as <code>child</code>.
-	 */
-	public static boolean isParentClass(Class<?> parent, Class<?> child) {
-		return isParentClass(parent, child, false);
-	}
-
-	/**
-	 * Comparator for use with {@link TreeMap TreeMaps} with {@link Class} keys.
-	 *
-	 * @author James Bognar (jbognar@us.ibm.com)
-	 */
-	public final static class ClassComparator implements Comparator<Class<?>>, Serializable {
-
-		private static final long serialVersionUID = 1L;
-
-		@Override /* Comparator */
-		public int compare(Class<?> object1, Class<?> object2) {
-			return object1.getName().compareTo(object2.getName());
-		}
-	}
-
-	/**
-	 * Returns the signature of the specified method.
-	 * For no-arg methods, the signature will be a simple string such as <js>"toString"</js>.
-	 * For methods with one or more args, the arguments will be fully-qualified class names (e.g. <js>"append(java.util.StringBuilder,boolean)"</js>)
-	 *
-	 * @param m The methods to get the signature on.
-	 * @return The methods signature.
-	 */
-	public static String getMethodSignature(Method m) {
-		StringBuilder sb = new StringBuilder(m.getName());
-		Class<?>[] pt = m.getParameterTypes();
-		if (pt.length > 0) {
-			sb.append("(");
-			for (int i = 0; i < pt.length; i++) {
-				if (i > 0)
-					sb.append(",");
-				sb.append(getReadableClassName(pt[i]));
-			}
-			sb.append(")");
-		}
-		return sb.toString();
-	}
-
-	private final static Map<Class<?>, Class<?>> pmap1 = new HashMap<Class<?>, Class<?>>(), pmap2 = new HashMap<Class<?>, Class<?>>();
-	static {
-		pmap1.put(boolean.class, Boolean.class);
-		pmap1.put(byte.class, Byte.class);
-		pmap1.put(short.class, Short.class);
-		pmap1.put(char.class, Character.class);
-		pmap1.put(int.class, Integer.class);
-		pmap1.put(long.class, Long.class);
-		pmap1.put(float.class, Float.class);
-		pmap1.put(double.class, Double.class);
-		pmap2.put(Boolean.class, boolean.class);
-		pmap2.put(Byte.class, byte.class);
-		pmap2.put(Short.class, short.class);
-		pmap2.put(Character.class, char.class);
-		pmap2.put(Integer.class, int.class);
-		pmap2.put(Long.class, long.class);
-		pmap2.put(Float.class, float.class);
-		pmap2.put(Double.class, double.class);
-	}
-
-	/**
-	 * If the specified class is a primitive (e.g. <code><jk>int</jk>.<jk>class</jk></code>)
-	 * 	returns it's wrapper class (e.g. <code>Integer.<jk>class</jk></code>).
-	 *
-	 * @param c The class.
-	 * @return The wrapper class, or <jk>null</jk> if class is not a primitive.
-	 */
-	public static Class<?> getPrimitiveWrapper(Class<?> c) {
-		return pmap1.get(c);
-	}
-
-	/**
-	 * If the specified class is a primitive wrapper (e.g. <code><jk>Integer</jk>.<jk>class</jk></code>)
-	 * 	returns it's primitive class (e.g. <code>int.<jk>class</jk></code>).
-	 *
-	 * @param c The class.
-	 * @return The primitive class, or <jk>null</jk> if class is not a primitive wrapper.
-	 */
-	public static Class<?> getPrimitiveForWrapper(Class<?> c) {
-		return pmap2.get(c);
-	}
-
-	/**
-	 * If the specified class is a primitive (e.g. <code><jk>int</jk>.<jk>class</jk></code>)
-	 * 	returns it's wrapper class (e.g. <code>Integer.<jk>class</jk></code>).
-	 *
-	 * @param c The class.
-	 * @return The wrapper class if it's primitive, or the same class if class is not a primitive.
-	 */
-	public static Class<?> getWrapperIfPrimitive(Class<?> c) {
-		if (! c.isPrimitive())
-			return c;
-		return pmap1.get(c);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CollectionUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CollectionUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CollectionUtils.class
deleted file mode 100755
index 25ba941..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CollectionUtils.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/utils/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CollectionUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CollectionUtils.java
deleted file mode 100755
index bec00b6..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/CollectionUtils.java
+++ /dev/null
@@ -1,53 +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.utils;
-
-import java.util.*;
-
-/**
- * Utility methods for collections.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class CollectionUtils {
-
-	/**
-	 * Reverses the order of a {@link LinkedHashMap}.
-	 *
-	 * @param in The map to reverse the order on.
-	 * @return A new {@link LinkedHashMap} with keys in reverse order.
-	 */
-	public static <K,V> LinkedHashMap<K,V> reverse(LinkedHashMap<K,V> in) {
-		if (in == null)
-			return null;
-		LinkedHashMap<K,V> m = new LinkedHashMap<K,V>();
-
-		// Note:  Entry objects are reusable in an entry set, so we simply can't
-		// create a reversed iteration of that set.
-		List<K> keys = new ArrayList<K>(in.keySet());
-		List<V> values = new ArrayList<V>(in.values());
-		for (int i = in.size()-1; i >= 0; i--)
-			m.put(keys.get(i), values.get(i));
-
-		return m;
-	}
-
-	/**
-	 * Add a value to a list if the value is not null.
-	 *
-	 * @param l The list to add to.
-	 * @param o The element to add.
-	 * @return The same list.
-	 */
-	public static <T> List<T> addIfNotNull(List<T> l, T o) {
-		if (o != null)
-			l.add(o);
-		return l;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap$1.class
deleted file mode 100755
index 4452c8c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap$1.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/utils/DelegateBeanMap$BeanMapEntryOverride.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap$BeanMapEntryOverride.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap$BeanMapEntryOverride.class
deleted file mode 100755
index edd7903..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap$BeanMapEntryOverride.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/utils/DelegateBeanMap.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap.class
deleted file mode 100755
index bd90f1f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap.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/utils/DelegateBeanMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap.java
deleted file mode 100755
index c8e85d4..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateBeanMap.java
+++ /dev/null
@@ -1,111 +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.utils;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Represents a wrapped {@link BeanMap} where property values can be overridden, removed, or reordered
- * 	without affecting the underlying bean.
- * <p>
- * 	Provides the {@link #filterKeys(List)} method for specifying the keys to keep in the bean map
- * 		and in what order they should appear.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type of the wrapped bean.
- */
-@SuppressWarnings("hiding")
-public class DelegateBeanMap<T> extends BeanMap<T> {
-
-	private Set<String> keys = Collections.newSetFromMap(new LinkedHashMap<String,Boolean>());
-	private ObjectMap overrideValues = new ObjectMap();
-
-	@SuppressWarnings("unchecked")
-	DelegateBeanMap(T bean, BeanContext bc) {
-		super(bean, bc.getBeanMeta((Class<T>)bean.getClass()));
-	}
-
-	void addKey(String key) {
-		this.keys.add(key);
-	}
-
-	@Override /* Map */
-	public Object put(String key, Object val) {
-		this.overrideValues.put(key, val);
-		this.keys.add(key);
-		return null;
-	}
-
-	@Override /* Map */
-	public Object get(Object key) {
-		if (overrideValues.containsKey(key))
-			return overrideValues.get(key);
-		return super.get(key);
-	}
-
-	@Override /* Map */
-	public Set<String> keySet() {
-		return keys;
-	}
-
-	/**
-	 * Remove all but the specified properties from this bean map.
-	 * <p>
-	 * This does not affect the underlying bean.
-	 *
-	 * @param keys The remaining keys in the bean map (in the specified order).
-	 */
-	public void filterKeys(List<String> keys) {
-		this.keys.clear();
-		this.keys.addAll(keys);
-	}
-
-	@Override /* Map */
-	public Object remove(Object key) {
-		keys.remove(key);
-		return null;
-	}
-
-	@Override /* BeanMap */
-	public BeanMeta<T> getMeta() {
-		return new BeanMetaFiltered<T>(super.getMeta(), keys);
-	}
-
-	@Override /* Map */
-	public Set<Entry<String,Object>> entrySet() {
-		Set<Entry<String,Object>> s = Collections.newSetFromMap(new LinkedHashMap<Map.Entry<String,Object>,Boolean>());
-		for (final String key : keys) {
-			BeanMapEntry<T> bme;
-			if (overrideValues.containsKey(key))
-				bme = new BeanMapEntryOverride<T>(this, this.getPropertyMeta(key), overrideValues.get(key));
-			else
-				bme = this.getProperty(key);
-			if (bme == null)
-				throw new BeanRuntimeException(super.getClassMeta().getInnerClass(), "Property ''{0}'' not found on class.", key);
-			s.add(bme);
-		}
-		return s;
-	}
-
-	private class BeanMapEntryOverride<T2> extends BeanMapEntry<T2> {
-		Object value;
-
-		private BeanMapEntryOverride(BeanMap<T2> bm, BeanPropertyMeta<T2> bpm, Object value) {
-			super(bm, bpm);
-			this.value = value;
-		}
-
-		@Override /* Map.Entry */
-		public Object getValue() {
-			return value;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateList.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateList.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateList.class
deleted file mode 100755
index c7ab98a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateList.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/utils/DelegateList.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateList.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateList.java
deleted file mode 100755
index 379bfe2..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateList.java
+++ /dev/null
@@ -1,35 +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.utils;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Represents a wrapped {@link Collection} where entries in the list can be removed or reordered without
- * 	affecting the underlying list.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type of the wrapped bean.
- */
-public class DelegateList<T extends Collection<?>> extends ObjectList implements Delegate<T> {
-	private static final long serialVersionUID = 1L;
-
-	private transient ClassMeta<T> classMeta;
-
-	DelegateList(ClassMeta<T> classMeta) {
-		this.classMeta = classMeta;
-	}
-
-	@Override /* Delegate */
-	public ClassMeta<T> getClassMeta() {
-		return classMeta;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateMap.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateMap.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateMap.class
deleted file mode 100755
index 3ed7bb7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateMap.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/utils/DelegateMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateMap.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateMap.java
deleted file mode 100755
index 756546e..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/DelegateMap.java
+++ /dev/null
@@ -1,50 +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.utils;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Represents a wrapped {@link Map} where entries in the map can be removed without
- * 	affecting the underlying map.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type of the wrapped bean.
- */
-public class DelegateMap<T> extends ObjectMap implements Delegate<T> {
-	private static final long serialVersionUID = 1L;
-
-	private transient ClassMeta<T> classMeta;
-
-	DelegateMap(ClassMeta<T> classMeta) {
-		this.classMeta = classMeta;
-	}
-
-	@Override /* Delegate */
-	public ClassMeta<T> getClassMeta() {
-		return classMeta;
-	}
-
-	/**
-	 * Remove all but the specified keys from this map.
-	 * <p>
-	 * This does not affect the underlying map.
-	 *
-	 * @param keys The remaining keys in the map (in the specified order).
-	 */
-	public void filterKeys(List<String> keys) {
-		ObjectMap m2 = new ObjectMap();
-		for (String k : keys)
-			m2.put(k, get(k));
-		this.clear();
-		this.putAll(m2);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FileUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FileUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FileUtils.class
deleted file mode 100755
index 7967b8f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FileUtils.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/utils/FileUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FileUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FileUtils.java
deleted file mode 100755
index 3639cbf..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FileUtils.java
+++ /dev/null
@@ -1,130 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-
-/**
- * File utilities.
- */
-public class FileUtils {
-
-	/**
-	 * Same as {@link File#mkdirs()} except throws a RuntimeExeption if directory could not be created.
-	 *
-	 * @param f The directory to create.  Must not be <jk>null</jk>.
-	 * @param clean If <jk>true</jk>, deletes the contents of the directory if it already exists.
-	 * @return The same file.
-	 * @throws RuntimeException if directory could not be created.
-	 */
-	public static File mkdirs(File f, boolean clean) {
-		assertFieldNotNull(f, "f");
-		if (f.exists()) {
-			if (clean) {
-				if (! delete(f))
-					throw new RuntimeException("Could not clean directory '"+f.getAbsolutePath()+"'");
-			} else {
-				return f;
-			}
-		}
-		if (! f.mkdirs())
-			throw new RuntimeException("Could not create directory '" + f.getAbsolutePath() + "'");
-		return f;
-	}
-
-	/**
-	 * Same as {@link #mkdirs(String, boolean)} but uses String path.
-	 *
-	 * @param path The path of the directory to create.  Must not be <jk>null</jk>
-	 * @param clean If <jk>true</jk>, deletes the contents of the directory if it already exists.
-	 * @return The directory.
-	 */
-	public static File mkdirs(String path, boolean clean) {
-		assertFieldNotNull(path, "path");
-		return mkdirs(new File(path), clean);
-	}
-
-	/**
-	 * Recursively deletes a file or directory.
-	 *
-	 * @param f The file or directory to delete.
-	 * @return <jk>true</jk> if file or directory was successfully deleted.
-	 */
-	public static boolean delete(File f) {
-		if (f == null)
-			return true;
-		if (f.isDirectory()) {
-			File[] cf = f.listFiles();
-			if (cf != null)
-				for (File c : cf)
-					delete(c);
-		}
-		return f.delete();
-	}
-
-	/**
-	 * Creates a file if it doesn't already exist using {@link File#createNewFile()}.
-	 * Throws a {@link RuntimeException} if the file could not be created.
-	 *
-	 * @param f The file to create.
-	 */
-	public static void create(File f) {
-		if (f.exists())
-			return;
-		try {
-			if (! f.createNewFile())
-				throw new RuntimeException("Could not create file '"+f.getAbsolutePath()+"'");
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * Updates the modified timestamp on the specified file.
-	 * Method ensures that the timestamp changes even if it's been modified within the past millisecond.
-	 *
-	 * @param f The file to modify the modified timestamp on.
-	 */
-	public static void modifyTimestamp(File f) {
-		long lm = f.lastModified();
-		long l = System.currentTimeMillis();
-		if (lm == l)
-			l++;
-		if (! f.setLastModified(l))
-			throw new RuntimeException("Could not modify timestamp on file '"+f.getAbsolutePath()+"'");
-
-		// Linux only gives 1s precision, so set the date 1s into the future.
-		if (lm == f.lastModified()) {
-			l += 1000;
-			if (! f.setLastModified(l))
-				throw new RuntimeException("Could not modify timestamp on file '"+f.getAbsolutePath()+"'");
-		}
-	}
-
-	/**
-	 * Create a temporary file with the specified name.
-	 * <p>
-	 * The name is broken into file name and suffix, and the parts
-	 * are passed to {@link File#createTempFile(String, String)}.
-	 * <p>
-	 * {@link File#deleteOnExit()} is called on the resulting file before being returned by this method.
-	 *
-	 * @param name The file name
-	 * @return A newly-created temporary file.
-	 * @throws IOException
-	 */
-	public static File createTempFile(String name) throws IOException {
-		String[] parts = name.split("\\.");
-		File f = File.createTempFile(parts[0], "." + parts[1]);
-		f.deleteOnExit();
-		return f;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap$1.class
deleted file mode 100755
index 69fd5cb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap$1.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/utils/FilteredMap$ListSet.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap$ListSet.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap$ListSet.class
deleted file mode 100755
index cda0c50..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap$ListSet.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/utils/FilteredMap.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap.class
deleted file mode 100755
index 8f0774d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap.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/utils/FilteredMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap.java
deleted file mode 100755
index 9579fe3..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/FilteredMap.java
+++ /dev/null
@@ -1,92 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.util.*;
-
-/**
- * Wrapper around a map where the key names are overridden.
- *
- * @param <K> The key class type.
- * @param <V> The value class type.
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class FilteredMap<K,V> extends AbstractMap<K,V> {
-
-	private Map<K,V> innerMap;
-	private Set<Map.Entry<K,V>> entries;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param innerMap The map being wrapped.  Must not be <jk>null</jk>.
-	 * @param keys The keys in the new map.  Must not be <jk>null</jk>.
-	 */
-	public FilteredMap(Map<K,V> innerMap, K[] keys) {
-		assertFieldNotNull(innerMap, "innerMap");
-		assertFieldNotNull(keys, "keys");
-
-		this.innerMap = innerMap;
-			List<Map.Entry<K,V>> l = new ArrayList<Map.Entry<K,V>>(keys.length);
-			for (K k : keys)
-				if (innerMap.containsKey(k))
-					l.add(createEntry(k));
-			entries = new ListSet<Map.Entry<K,V>>(l);
-		}
-
-	private Map.Entry<K,V> createEntry(final K key) {
-		return new Map.Entry<K,V>() {
-
-			@Override /* Map.Entry */
-			public K getKey() {
-				return key;
-			}
-
-			@Override /* Map.Entry */
-			public V getValue() {
-				return innerMap.get(key);
-			}
-
-			@Override /* Map.Entry */
-			public V setValue(V v) {
-				return innerMap.put(key, v);
-			}
-		};
-	}
-
-
-	@Override /* Map */
-	public Set<Map.Entry<K,V>> entrySet() {
-		return entries;
-	}
-
-	/**
-	 * A set with ordered entries (i.e. a List with a Set API).
-	 */
-	private static class ListSet<E> extends AbstractSet<E> {
-
-		private List<E> entries;
-
-		public ListSet(List<E> entries) {
-			this.entries = entries;
-		}
-
-		@Override /* Set */
-		public Iterator<E> iterator() {
-			return entries.iterator();
-		}
-
-		@Override /* Set */
-		public int size() {
-			return entries.size();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe$LineProcessor.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe$LineProcessor.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe$LineProcessor.class
deleted file mode 100755
index 5a68a01..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe$LineProcessor.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/utils/IOPipe.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe.class
deleted file mode 100755
index 1f79c1c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe.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/utils/IOPipe.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe.java
deleted file mode 100755
index 51d02a8..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOPipe.java
+++ /dev/null
@@ -1,208 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * A utility class for piping input streams and readers to output streams and writers.
- * <p>
- * 	A typical usage is as follows...
- * <p class='bcode'>
- * 	InputStream in = getInputStream();
- * 	Writer out = getWriter();
- * 	IOPipe.create(in, out).closeOut().run();
- * </p>
- * <p>
- * 	By default, the input stream is closed and the output stream is not.
- * 	This can be changed by calling {@link #closeOut()} and {@link #close(boolean, boolean)}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("hiding")
-public class IOPipe {
-
-	private Object input, output;
-	private boolean byLines;
-	private boolean closeIn = true, closeOut;
-	private int buffSize = 1024;
-	private LineProcessor lineProcessor;
-
-	private IOPipe(Object input, Object output) {
-		assertFieldNotNull(input, "input");
-		assertFieldNotNull(output, "output");
-
-		if (input instanceof CharSequence)
-			this.input = new StringReader(input.toString());
-		else if (input instanceof InputStream || input instanceof Reader)
-			this.input = input;
-		else
-			illegalArg("Invalid input class type.  Must be one of the following:  InputStream, Reader, CharSequence");
-
-		if (output instanceof OutputStream || output instanceof Writer)
-			this.output = output;
-		else
-			illegalArg("Invalid output class type.  Must be one of the following:  OutputStream, Writer");
-	}
-
-	/**
-	 * Creates a new pipe with the specified input and output.
-	 *
-	 * @param input The input.  Must be one of the following types:  Reader, InputStream, CharSequence.
-	 * @param output The output.  Must be one of the following types:  Writer, OutputStream.
-	 * @return This object (for method chaining).
-	 */
-	public static IOPipe create(Object input, Object output) {
-		return new IOPipe(input, output);
-	}
-
-	/**
-	 * Close output after piping.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public IOPipe closeOut() {
-		this.closeOut = true;
-		return this;
-	}
-
-	/**
-	 * Specifies whether to close the input and output after piping.
-	 *
-	 * @param in Close input stream.  Default is <jk>true</jk>.
-	 * @param out Close output stream.  Default is <jk>false</jk>.
-	 * @return This object (for method chaining).
-	 */
-	public IOPipe close(boolean in, boolean out) {
-		this.closeIn = in;
-		this.closeOut = out;
-		return this;
-	}
-
-	/**
-	 * Specifies the temporary buffer size.
-	 *
-	 * @param buffSize The buffer size.  Default is <code>1024</code>.
-	 * @return This object (for method chaining).
-	 */
-	public IOPipe buffSize(int buffSize) {
-		assertFieldPositive(buffSize, "buffSize");
-		this.buffSize = buffSize;
-		return this;
-	}
-
-	/**
-	 * Specifies whether the content should be piped line-by-line.
-	 * This can be useful if you're trying to pipe console-based input.
-	 *
-	 * @param byLines Pipe content line-by-line.  Default is <jk>false</jk>.
-	 * @return This object (for method chaining).
-	 */
-	public IOPipe byLines(boolean byLines) {
-		this.byLines = byLines;
-		return this;
-	}
-
-	/**
-	 * Sames as calling {@link #byLines()} with <jk>true</jk>.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public IOPipe byLines() {
-		this.byLines = true;
-		return this;
-	}
-
-	/**
-	 * Specifies a line processor that can be used to process lines before they're piped to the output.
-	 *
-	 * @param lineProcessor The line processor.
-	 * @return This object (for method chaining).
-	 */
-	public IOPipe lineProcessor(LineProcessor lineProcessor) {
-		this.lineProcessor = lineProcessor;
-		return this;
-	}
-
-	/**
-	 * Interface to implement for the {@link #lineProcessor(LineProcessor)} method.
-	 */
-	public interface LineProcessor {
-		/**
-		 * Process the specified line.
-		 *
-		 * @param line The line to process.
-		 * @return The processed line.
-		 */
-		public String process(String line);
-	}
-
-	/**
-	 * Performs the piping of the input to the output.
-	 *
-	 * @return The number of bytes (if streams) or characters (if readers/writers) piped.
-	 * @throws IOException
-	 */
-	public int run() throws IOException {
-
-		int c = 0;
-
-		try {
-		if (input instanceof InputStream && output instanceof OutputStream && lineProcessor == null) {
-			InputStream in = (InputStream)input;
-			OutputStream out = (OutputStream)output;
-			byte[] b = new byte[buffSize];
-			int i;
-				while ((i = in.read(b)) > 0) {
-					c += i;
-					out.write(b, 0, i);
-				}
-		} else {
-				Reader in = (input instanceof Reader ? (Reader)input : new InputStreamReader((InputStream)input, IOUtils.UTF8));
-				Writer out = (output instanceof Writer ? (Writer)output : new OutputStreamWriter((OutputStream)output, IOUtils.UTF8));
-				output = out;
-				input = in;
-				if (byLines || lineProcessor != null) {
-					Scanner s = new Scanner(in);
-					while (s.hasNextLine()) {
-						String l = s.nextLine();
-						if (lineProcessor != null)
-							l = lineProcessor.process(l);
-							if (l != null) {
-						out.write(l);
-						out.write("\n");
-						out.flush();
-						c += l.length() + 1;
-					}
-						}
-				} else {
-					int i;
-					char[] b = new char[buffSize];
-					while ((i = in.read(b)) > 0) {
-						c += i;
-						out.write(b, 0, i);
-					}
-				}
-			}
-			} finally {
-			closeQuietly(input, output);
-		}
-		return c;
-	}
-
-	private void closeQuietly(Object input, Object output) {
-					if (closeIn)
-			IOUtils.closeQuietly(input);
-					if (closeOut)
-			IOUtils.closeQuietly(output);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOUtils.class
deleted file mode 100755
index af415ce..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOUtils.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/utils/IOUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOUtils.java
deleted file mode 100755
index 16065af..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IOUtils.java
+++ /dev/null
@@ -1,352 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-import java.nio.charset.*;
-
-/**
- * Various I/O related utility methods.
- *
- * @author jbognar
- */
-public final class IOUtils {
-
-	/** UTF-8 charset */
-	public static final Charset UTF8 = Charset.forName("UTF-8");
-
-	/**
-	 * Reads the contents of a file into a string.
-	 *
-	 * @param path The path of the file to read using default character encoding.
-	 * @return The contents of the reader as a string, or <jk>null</jk> if file does not exist.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public static String readFile(String path) throws IOException {
-		return read(new File(path));
-	}
-
-	/**
-	 * Reads the contents of a file into a string.
-	 *
-	 * @param in The file to read using default character encoding.
-	 * @return The contents of the reader as a string, or <jk>null</jk> if file does not exist.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public static String read(File in) throws IOException {
-		if (in == null || ! in.exists())
-			return null;
-		Reader r = new InputStreamReader(new FileInputStream(in), Charset.defaultCharset());
-		return read(r, 0, 1024);
-	}
-
-	/**
-	 * Writes the contents of the specified <code>Reader</code> to the specified file.
-	 *
-	 * @param out The file to write the output to.
-	 * @param in The reader to pipe from.
-	 * @return The number of characters written to the file.
-	 * @throws IOException
-	 */
-	public static int write(File out, Reader in) throws IOException {
-		assertFieldNotNull(out, "out");
-		assertFieldNotNull(in, "in");
-		Writer w = new OutputStreamWriter(new FileOutputStream(out), Charset.defaultCharset());
-		try {
-			return IOPipe.create(in, w).closeOut().run();
-		} finally {
-			w.close();
-		}
-	}
-
-	/**
-	 * Reads the contents of a reader into a string.
-	 *
-	 * @param in The input reader.
-	 * @return The contents of the reader as a string.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public static String read(Reader in) throws IOException {
-		return read(in, 0, 1024);
-	}
-
-	/**
-	 * Reads the contents of an input stream into a string using the specified charset.
-	 *
-	 * @param in The input stream.
-	 * @param cs The charset of the contents of the input stream.
-	 * @return The contents of the reader as a string.  <jk>null</jk> if input stream was null.
-	 * @throws IOException If a problem occurred trying to read from the input stream.
-	 */
-	public static String read(InputStream in, Charset cs) throws IOException {
-		if (in == null)
-			return null;
-		return read(new InputStreamReader(in, cs));
-	}
-
-	/**
-	 * Reads the contents of an input stream into a string using the system default charset.
-	 *
-	 * @param in The input stream.
-	 * @return The contents of the reader as a string, or <jk>null</jk> if the input stream is null.
-	 * @throws IOException If a problem occurred trying to read from the input stream.
-	 */
-	public static String read(InputStream in) throws IOException {
-		if (in == null)
-			return null;
-		return read(new InputStreamReader(in, Charset.defaultCharset()));
-	}
-
-	/**
-	 * Read the specified input stream into a byte array and closes the stream.
-	 *
-	 * @param in The input stream.
-	 * @param bufferSize The expected size of the buffer.
-	 * @return The contents of the stream as a byte array.
-	 * @throws IOException Thrown by underlying stream.
-	 */
-	public static byte[] readBytes(InputStream in, int bufferSize) throws IOException {
-		if (in == null)
-			return null;
-		ByteArrayOutputStream buff = new ByteArrayOutputStream(bufferSize);
-		int nRead;
-		byte[] b = new byte[Math.min(bufferSize, 8192)];
-
-		try {
-			while ((nRead = in.read(b, 0, b.length)) != -1)
-				  buff.write(b, 0, nRead);
-
-				buff.flush();
-
-				return buff.toByteArray();
-		} finally {
-			in.close();
-		}
-	}
-
-
-	/**
-	 * Reads the specified input into a {@link String} until the end of the input is reached.
-	 * <p>
-	 * 	The {@code Reader} is automatically closed.
-	 * <p>
-	 * 	If the {@code Reader} is not an instance of a {@code BufferedReader}, then it gets wrapped in a {@code BufferedReader}.
-	 *
-	 * @param in The input reader.
-	 * @param length Specify a positive number if the length of the input is known.
-	 * @param bufferSize Specify the buffer size to use.
-	 * @return The contents of the reader as a string.  <jk>null</jk> if reader was null.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public static String read(Reader in, int length, int bufferSize) throws IOException {
-		if (in == null)
-			return null;
-		length = (length <= 0 ? bufferSize : length);
-		StringBuilder sb = new StringBuilder(length); // Assume they're ASCII characters.
-		try {
-			char[] buf = new char[Math.min(bufferSize, length)];
-			int i = 0;
-			while ((i = in.read(buf)) != -1)
-				sb.append(buf, 0, i);
-			return sb.toString();
-		} finally {
-			in.close();
-		}
-	}
-
-	/**
-	 * Pipes the contents of the specified reader into the writer.
-	 * The reader is closed, the writer is not.
-	 *
-	 * @param in The reader to pipe from.
-	 * @param out The writer to pipe to.
-	 * @throws IOException
-	 */
-   public static void pipe(Reader in, Writer out) throws IOException {
-		assertFieldNotNull(out, "out");
-		assertFieldNotNull(in, "in");
-      IOPipe.create(in, out).run();
-   }
-
-   /**
-	 * Wraps the specified reader in a buffered reader.
-	 * <p>
-	 * Returns the original reader if it's already one of the following:
-	 * <ul>
-	 * 	<li>{@link BufferedReader}
-	 * 	<li>{@link StringReader}
-	 * 	<li>{@link CharSequenceReader}
-	 * </ul>
-	 *
-	 * @param r The reader being wrapped.
-	 * @param buffSize The expected size of the input.
-	 * @param minBuffSize The minimum buffer size to use if buffSize is too small.
-	 * @param maxBuffSize The maximum buffer size to use if buffSize is too large.
-	 * @return The wrapped reader.
-	 */
-	public static Reader getBufferedReader(Reader r, int buffSize, int minBuffSize, int maxBuffSize) {
-		assertFieldNotNull(r, "r");
-		if (r instanceof BufferedReader || r instanceof StringReader)
-			return r;
-		if (buffSize <= 0)
-			buffSize = 1024;
-		if (buffSize < minBuffSize)
-			buffSize = minBuffSize;
-		else if (buffSize > maxBuffSize)
-			buffSize = maxBuffSize;
-		return new BufferedReader(r, buffSize);
-	}
-
-	/**
-	 * Shortcut for {@code getBufferedReader(r, buffSize, 128, 8096)}
-	 *
-	 * @param r The reader being wrapped.
-	 * @param buffSize The expected size of the input.
-	 * @return The reader wrapped in a {@link BufferedReader}, or the original {@link Reader} if it's already
-	 * 	a buffered reader.
-	 */
-	public static Reader getBufferedReader(Reader r, int buffSize) {
-		return getBufferedReader(r, buffSize, 128, 8096);
-	}
-
-	/**
-	 * Counts the number of bytes in the input stream and then closes the stream.
-	 *
-	 * @param is The input stream to read from.
-	 * @return The number of bytes read.
-	 * @throws IOException
-	 */
-	public static long count(InputStream is) throws IOException {
-		assertFieldNotNull(is, "is");
-		long c = 0;
-		long i;
-		try {
-			while ((i = is.skip(1024)) != 0)
-				c += i;
-		} finally {
-			is.close();
-		}
-		return c;
-	}
-
-	/**
-	 * Counts the number of characters in the reader and then closes the reader.
-	 *
-	 * @param r The reader to read from.
-	 * @return The number of characters read.
-	 * @throws IOException
-	 */
-	public static long count(Reader r) throws IOException {
-		assertFieldNotNull(r, "r");
-		long c = 0;
-		long i;
-		try {
-			while ((i = r.skip(1024)) != 0)
-				c += i;
-		} finally {
-			r.close();
-		}
-		return c;
-	}
-
-	/**
-	 * Given the specified <js>"Content-Length"</js> header value, return an appropriate buffer size.
-	 * The maximum buffer size is 1MB.
-	 *
-	 * @param contentLength The value of the <js>"Content-Length"</js> header.
-	 * @return The appropriate buffer size.
-	 */
-	public static int getBufferSize(String contentLength) {
-		try {
-			if (! StringUtils.isEmpty(contentLength)) {
-				long l = Long.decode(contentLength);
-				if (l > 1048576)
-					return 1048576;
-				if (l <= 0)
-					return 8192;
-				return (int)l;
-			}
-		} catch (Exception e) {
-			return 8192;
-		}
-		return 8192;
-	}
-
-	/** 
-	 * Close input stream and ignore any exceptions.
-	 * No-op if input stream is <jk>null</jk>.
-	 *
-	 * @param is The input stream to close.
-	 */
-	public static void closeQuietly(InputStream is) {
-		try {
-			if (is != null)
-				is.close();
-		} catch (IOException e) {}
-	}
-
-	/** 
-	 * Close output stream and ignore any exceptions.
-	 * No-op if output stream is <jk>null</jk>.
-	 *
-	 * @param os The output stream to close.
-	 */
-	public static void closeQuietly(OutputStream os) {
-		try {
-			if (os != null)
-				os.close();
-		} catch (IOException e) {}
-	}
-
-	/** 
-	 * Close reader and ignore any exceptions.
-	 * No-op if reader is <jk>null</jk>.
-	 *
-	 * @param r The reader to close.
-	 */
-	public static void closeQuietly(Reader r) {
-		try {
-			if (r != null)
-				r.close();
-		} catch (IOException e) {}
-	}
-
-	/** 
-	 * Close writer and ignore any exceptions.
-	 * No-op if writer is <jk>null</jk>.
-	 *
-	 * @param w The writer to close.
-	 */
-	public static void closeQuietly(Writer w) {
-		try {
-			if (w != null)
-				w.close();
-		} catch (IOException e) {}
-	}
-
-	/**
-	 * Quietly close all specified input streams, output streams, readers, and writers.
-	 *
-	 * @param o The list of all objects to quietly close.
-	 */
-	public static void closeQuietly(Object...o) {
-		for (Object o2 : o) {
-			if (o2 instanceof InputStream)
-				closeQuietly((InputStream)o2);
-			if (o2 instanceof OutputStream)
-				closeQuietly((OutputStream)o2);
-			if (o2 instanceof Reader)
-				closeQuietly((Reader)o2);
-			if (o2 instanceof Writer)
-				closeQuietly((Writer)o2);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IdentityList.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IdentityList.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IdentityList.class
deleted file mode 100755
index 9f262fc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IdentityList.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/utils/IdentityList.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IdentityList.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IdentityList.java
deleted file mode 100755
index ac14dbd..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/IdentityList.java
+++ /dev/null
@@ -1,45 +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.utils;
-
-import java.util.*;
-
-/**
- * Combination of a {@link LinkedList} and <code>IdentitySet</code>.
- * <ul>
- * 	<li>Duplicate objects (by identity) will be skipped during insertion.
- * 	<li>Order of insertion maintained.
- * </ul>
- * <p>
- * 	Note:  This class is NOT thread safe, and is intended for use on small lists.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> Entry type.
- */
-public class IdentityList<T> extends LinkedList<T> {
-
-	private static final long serialVersionUID = 1L;
-
-	@Override /* List */
-	public boolean add(T t) {
-		for (T t2 : this)
-			if (t2 == t)
-				return false;
-		super.add(t);
-		return true;
-	}
-
-	@Override /* List */
-	public boolean contains(Object t) {
-		for (T t2 : this)
-			if (t2 == t)
-				return true;
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/KeywordSet.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/KeywordSet.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/KeywordSet.class
deleted file mode 100755
index f080e7f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/KeywordSet.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/utils/KeywordSet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/KeywordSet.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/KeywordSet.java
deleted file mode 100755
index e3f995b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/KeywordSet.java
+++ /dev/null
@@ -1,86 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-/**
- * Stores a set of language keywords for quick lookup.
- * <p>
- * Keywords must be:
- * <ul>
- * 	<li>2 or more characters in length.
- * 	<li>Lowercase ASCII.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class KeywordSet {
-	final char[][][][] store;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param keywords The list of keywords.
-	 */
-	public KeywordSet(String... keywords) {
-		this.store = new char[26][][][];
-
-		for (String keyword : keywords) {
-			if (keyword.length() < 2)
-				illegalArg("Invalid keyword '{0}' passed to KeywordStore.", keyword);
-			int c0 = keyword.charAt(0) - 'a';
-			int c1 = keyword.charAt(1) - 'a';
-			if (c0 < 0 || c0 > 25 || c1 < 0 || c1 > 25)
-				illegalArg("Invalid keyword '{0}' passed to KeywordStore.", keyword);
-			if (this.store[c0] == null)
-				this.store[c0] = new char[26][][];
-			char[][][] x1 = this.store[c0];
-			char[][] x2;
-			if (x1[c1] == null)
-				x2 = new char[1][];
-			else {
-				x2 = new char[x1[c1].length+1][];
-				System.arraycopy(x1[c1], 0, x2, 0, x1[c1].length);
-			}
-			x2[x2.length-1] = keyword.toCharArray();
-			x1[c1] = x2;
-		}
-	}
-
-	/**
-	 * Returns <jk>true<jk> if the specified string exists in this store.
-	 *
-	 * @param s The string to check.
-	 * @return <jk>true<jk> if the specified string exists in this store.
-	 */
-	public boolean contains(String s) {
-		if (s == null || s.length() < 2)
-			return false;
-		int c0 = s.charAt(0) - 'a', c1 = s.charAt(1) - 'a';
-		if (c0 < 0 || c0 > 25 || c1 < 0 || c1 > 25)
-			return false;
-		char[][][] x1 = store[c0];
-		if (x1 == null)
-			return false;
-		char[][] x2 = x1[c1];
-		if (x2 == null)
-			return false;
-		for (int i = 0; i < x2.length; i++) {
-			char[] keyword = x2[i];
-			if (keyword.length == s.length()) {
-				for (int j = 0; j < keyword.length; j++)
-					if (keyword[j] != s.charAt(j))
-						return false;
-				return true;
-			}
-		}
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable$1.class
deleted file mode 100755
index 4e47109..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable$1.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/utils/MultiIterable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable.class
deleted file mode 100755
index aaec7a1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable.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/utils/MultiIterable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable.java
deleted file mode 100755
index 089a4e8..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiIterable.java
+++ /dev/null
@@ -1,74 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.util.*;
-
-/**
- * Utility class for defining an iterator over one or more iterables.
- * @param <E> The element class type.
- */
-public class MultiIterable<E> implements Iterable<E> {
-
-	final List<Iterator<E>> iterators = new LinkedList<Iterator<E>>();
-
-	/**
-	 * Constructor.
-	 *
-	 * @param iterators The list of iterators to iterate over.
-	 */
-	public MultiIterable(Iterator<E>...iterators) {
-		for (Iterator<E> i : iterators)
-			append(i);
-	}
-
-	/**
-	 * Appends the specified iterator to this list of iterators.
-	 *
-	 * @param iterator The iterator to append.
-	 * @return This object (for method chaining).
-	 */
-	public MultiIterable<E> append(Iterator<E> iterator) {
-		assertFieldNotNull(iterator, "iterator");
-		this.iterators.add(iterator);
-		return this;
-	}
-
-	@Override /* Iterable */
-	public Iterator<E> iterator() {
-		return new Iterator<E>() {
-			Iterator<Iterator<E>> i1 = iterators.iterator();
-			Iterator<E> i2 = i1.hasNext() ? i1.next() : null;
-
-			@Override /* Iterator */
-			public boolean hasNext() {
-				while (i2 != null && ! i2.hasNext())
-					i2 = (i1.hasNext() ? i1.next() : null);
-				return (i2 != null);
-			}
-
-			@Override /* Iterator */
-			public E next() {
-				hasNext();
-				if (i2 == null)
-					throw new NoSuchElementException();
-				return i2.next();
-			}
-
-			@Override /* Iterator */
-			public void remove() {
-				if (i2 == null)
-					throw new NoSuchElementException();
-				i2.remove();
-			}
-		};
-	}
-}
\ 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/utils/MultiSet$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet$1.class
deleted file mode 100755
index f8ca93b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet$1.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/utils/MultiSet.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet.class
deleted file mode 100755
index 5bd3b5e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet.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/utils/MultiSet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet.java
deleted file mode 100755
index 44da937..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/MultiSet.java
+++ /dev/null
@@ -1,107 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.util.*;
-
-/**
- * Encapsulates multiple collections so they can be iterated over as if they
- * were all part of the same collection.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <E> The object type of this set.
- */
-public class MultiSet<E> extends AbstractSet<E> {
-
-	/** Inner collections. */
-	private List<Collection<E>> l = new ArrayList<Collection<E>>();
-
-	/**
-	 * Create a new Set that consists as a coalesced set of the specified collections.
-	 *
-	 * @param c Zero or more collections to add to this set.
-	 */
-	public MultiSet(Collection<E>...c) {
-		for (Collection<E> cc : c)
-			append(cc);
-	}
-
-	/**
-	 * Appends the specified collection to this set of collections.
-	 *
-	 * @param c The collection to append to this set of collections.
-	 * @return This object (for method chaining).
-	 */
-	public MultiSet<E> append(Collection<E> c) {
-		assertFieldNotNull(c, "c");
-		l.add(c);
-		return this;
-	}
-
-	/**
-	 * Iterates over all entries in all collections.
-	 */
-	@Override /* Set */
-	public Iterator<E> iterator() {
-		return new Iterator<E>() {
-			int i = 0;
-			Iterator<E> i2 = (l.size() > 0 ? l.get(i++).iterator() : null);
-
-			@Override /* Iterator */
-			public boolean hasNext() {
-				if (i2 == null)
-					return false;
-				if (i2.hasNext())
-					return true;
-				for (int j = i; j < l.size(); j++)
-					if (l.get(j).size() > 0)
-						return true;
-				return false;
-			}
-
-			@Override /* Iterator */
-			public E next() {
-				if (i2 == null)
-					throw new NoSuchElementException();
-				while (! i2.hasNext()) {
-					if (i >= l.size())
-						throw new NoSuchElementException();
-					i2 = l.get(i++).iterator();
-				}
-				return i2.next();
-			}
-
-			@Override /* Iterator */
-			public void remove() {
-				if (i2 == null)
-					throw new NoSuchElementException();
-				i2.remove();
-			}
-		};
-	}
-
-	/**
-	 * Enumerates over all entries in all collections.
-	 *
-	 * @return An enumeration wrapper around this set.
-	 */
-	public Enumeration<E> enumerator() {
-		return Collections.enumeration(this);
-	}
-
-	@Override /* Set */
-	public int size() {
-		int i = 0;
-		for (Collection<E> c : l)
-			i += c.size();
-		return i;
-	}
-}
\ 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/utils/PojoIntrospector.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoIntrospector.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoIntrospector.class
deleted file mode 100755
index d21fa8e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoIntrospector.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/utils/PojoIntrospector.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoIntrospector.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoIntrospector.java
deleted file mode 100755
index c051b90..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoIntrospector.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.utils;
-
-import java.io.*;
-import java.lang.reflect.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Used to invoke methods on {@code Objects} using arguments in serialized form.
- *	<p>
- *	Example:
- *	<p class='bcode'>
- *		String s = <js>"foobar"</js>;
- *		String s2 = (String)<jk>new</jk> PojoIntrospector(s).invoke(<js>"substring(int,int)"</js>, <js>"[3,6]"</js>);  <jc>// "bar"</jc>
- *	</p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class PojoIntrospector {
-
-	private final Object o;
-	private final ReaderParser p;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param o The object on which Java methods will be invoked.
-	 * @param p The parser to use to parse the method arguments.  If <jk>null</jk>, {@link JsonParser#DEFAULT} is used.
-	 */
-	public PojoIntrospector(Object o, ReaderParser p) {
-		if (p == null)
-			p = JsonParser.DEFAULT;
-		this.o = o;
-		this.p = p;
-	}
-
-	/**
-	 * Shortcut for calling <code><jk>new</jk> PojoIntrospector(o, <jk>null</jk>);</code>
-	 *
-	 * @param o The object on which Java methods will be invoked.
-	 */
-	public PojoIntrospector(Object o) {
-		this(o, null);
-	}
-
-	/**
-	 * Primary method.  Invokes the specified method on this bean.
-	 *
-	 * @param method The method being invoked.
-	 * @param args The arguments to pass as parameters to the method.<br>
-	 * 	These will automatically be converted to the appropriate object type if possible.<br>
-	 * 	Can be <jk>null</jk> if method has no arguments.
-	 * @return The object returned by the call to the method, or <jk>null</jk> if target object is <jk>null</jk>.
-	 * @throws IllegalAccessException If the <code>Constructor</code> object enforces Java language access control and the underlying constructor is inaccessible.
-	 * @throws IllegalArgumentException If one of the following occurs:
-	 * 	<ul>
-	 * 		<li>The number of actual and formal parameters differ.
-	 * 		<li>An unwrapping conversion for primitive arguments fails.
-	 * 		<li>A parameter value cannot be converted to the corresponding formal parameter type by a method invocation conversion.
-	 * 		<li>The constructor pertains to an enum type.
-	 * 	</ul>
-	 * @throws InvocationTargetException If the underlying constructor throws an exception.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 * @throws IOException
-	 */
-	public Object invokeMethod(Method method, Reader args) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException, ParseException, IOException {
-		if (o == null)
-			return null;
-		ClassMeta<?>[] argTypes = p.getBeanContext().getClassMetas(method.getParameterTypes());
-		Object[] params = args == null ? null : p.parseArgs(args, -1, argTypes);
-		return method.invoke(o, params);
-	}
-
-	/**
-	 * Convenience method for invoking argument from method signature (@see {@link ClassUtils#getMethodSignature(Method)}.
-	 *
-	 * @param method The method being invoked.
-	 * @param args The arguments to pass as parameters to the method.<br>
-	 * 	These will automatically be converted to the appropriate object type if possible.<br>
-	 * 	Can be <jk>null</jk> if method has no arguments.
-	 * @return The object returned by the call to the method, or <jk>null</jk> if target object is <jk>null</jk>.
-	 * @throws NoSuchMethodException If method does not exist.
-	 * @throws IllegalAccessException If the <code>Constructor</code> object enforces Java language access control and the underlying constructor is inaccessible.
-	 * @throws IllegalArgumentException If one of the following occurs:
-	 * 	<ul>
-	 * 		<li>The number of actual and formal parameters differ.
-	 * 		<li>An unwrapping conversion for primitive arguments fails.
-	 * 		<li>A parameter value cannot be converted to the corresponding formal parameter type by a method invocation conversion.
-	 * 		<li>The constructor pertains to an enum type.
-	 * 	</ul>
-	 * @throws InvocationTargetException If the underlying constructor throws an exception.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 * @throws IOException
-	 */
-	public Object invokeMethod(String method, String args) throws NoSuchMethodException, IllegalArgumentException, InvocationTargetException, IllegalAccessException, ParseException, IOException {
-		if (o == null)
-			return null;
-		Method m = p.getBeanContext().getClassMeta(o.getClass()).getPublicMethods().get(method);
-		if (m == null)
-			throw new NoSuchMethodException(method);
-		return invokeMethod(m, args == null ? null : new StringReader(args));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$1.class
deleted file mode 100755
index fb9bbd1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$1.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/utils/PojoQuery$CalendarP.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$CalendarP.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$CalendarP.class
deleted file mode 100755
index 8bf4fcc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$CalendarP.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/utils/PojoQuery$CollectionFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$CollectionFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$CollectionFilter.class
deleted file mode 100755
index c263a15..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$CollectionFilter.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/utils/PojoQuery$DateMatcher.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$DateMatcher.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$DateMatcher.class
deleted file mode 100755
index 709ef8d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$DateMatcher.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/utils/PojoQuery$IMatcher.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$IMatcher.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$IMatcher.class
deleted file mode 100755
index 2c8fc09..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$IMatcher.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
new file mode 100755
index 0000000..371a163
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
@@ -0,0 +1,553 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+
+import javax.servlet.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.ini.*;
+import org.apache.juneau.internal.*;
+import org.apache.juneau.json.*;
+import org.apache.juneau.microservice.resources.*;
+import org.apache.juneau.parser.*;
+import org.apache.juneau.server.annotation.*;
+import org.eclipse.jetty.security.*;
+import org.eclipse.jetty.security.authentication.*;
+import org.eclipse.jetty.server.*;
+import org.eclipse.jetty.server.ssl.*;
+import org.eclipse.jetty.servlet.*;
+import org.eclipse.jetty.util.security.*;
+import org.eclipse.jetty.util.ssl.*;
+
+
+/**
+ * Entry point for Juneau microservice that implements a REST interface using Jetty on a single port.
+ *
+ * <h6 class='topic'>Jetty Server Details</h6>
+ * <p>
+ * The Jetty server is created by the {@link #createServer()} method and started with the {@link #startServer()} method.
+ * These methods can be overridden to provided customized behavior.
+ * <p>
+ *
+ * <h6 class='topic'>Defining REST Resources</h6>
+ * <p>
+ * Top-level REST resources are defined by the {@link #getResourceMap()} method.
+ * This method can be overridden to provide a customized list of REST resources.
+ * <p>
+ *
+ * <h6 class='topic'>Logging</h6>
+ * <p>
+ * Logging is initialized by the {@link #initLogging()} method.
+ * This method can be overridden to provide customized logging behavior.
+ *
+ * <h6 class='topic'>Lifecycle Listener Methods</h6>
+ * Subclasses can optionally implement the following event listener methods:
+ * <ul class='spaced-list'>
+ * 	<li>{@link #onStart()} - Gets executed before {@link #start()}.
+ * 	<li>{@link #onStop()} - Gets executed before {@link #stop()}.
+ * 	<li>{@link #onCreateServer()} - Gets executed before {@link #createServer()}.
+ * 	<li>{@link #onStartServer()} - Gets executed before {@link #startServer()}.
+ * 	<li>{@link #onPostStartServer()} - Gets executed after {@link #startServer()}.
+ * 	<li>{@link #onStopServer()} - Gets executed before {@link #stop()}.
+ * 	<li>{@link #onPostStopServer()} - Gets executed after {@link #stop()}.
+ * </ul>
+ *
+ * @author james.bognar@salesforce.com
+ */
+public class RestMicroservice extends Microservice {
+
+	Server server;
+	int port;
+	Logger logger;
+
+	/**
+	 * Main method.
+	 * Subclasses must also implement this method!
+	 *
+	 * @param args Command line arguments.
+	 * @throws Exception
+	 */
+	public static void main(String[] args) throws Exception {
+		new RestMicroservice(args).start();
+	}
+
+	/**
+	 * Constructor.
+	 *
+	 * @param args The command line arguments.
+	 * @throws Exception
+	 */
+	public RestMicroservice(String[] args) throws Exception {
+		super(args);
+	}
+
+	//--------------------------------------------------------------------------------
+	// Methods implemented on Microservice API
+	//--------------------------------------------------------------------------------
+
+	@Override /* Microservice */
+	protected void start() throws Exception {
+		super.start();
+		initLogging();
+		createServer();
+		startServer();
+	}
+
+	@Override /* Microservice */
+	public void stop() {
+		Thread t = new Thread() {
+			@Override /* Thread */
+			public void run() {
+				try {
+					onStopServer();
+					logger.warning("Stopping server.");
+					System.out.println();
+					server.stop();
+					logger.warning("Server stopped.");
+					onPostStopServer();
+				} catch (Exception e) {
+					logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
+				}
+			}
+		};
+		t.start();
+		try {
+			t.join();
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
+		super.stop();
+	}
+
+	//--------------------------------------------------------------------------------
+	// RestMicroservice API methods.
+	//--------------------------------------------------------------------------------
+
+	/**
+	 * Initialize the logging for this microservice.
+	 * <p>
+	 * Subclasses can override this method to provide customized logging.
+	 * <p>
+	 * The default implementation uses the <cs>Logging</cs> section in the config file to set up logging:
+	 * <p class='bcode'>
+	 * 	<cc>#================================================================================
+	 * 	# Logger settings
+	 * 	# See FileHandler Java class for details.
+	 * 	#================================================================================</cc>
+	 * 	<cs>[Logging]</cs>
+	 *
+	 * 	<cc># The directory where to create the log file.
+	 * 	# Default is ".".</cc>
+	 * 	<ck>logDir</ck> = logs
+	 *
+	 * 	<cc># The name of the log file to create for the main logger.
+	 * 	# The logDir and logFile make up the pattern that's passed to the FileHandler
+	 * 	# constructor.
+	 * 	# If value is not specified, then logging to a file will not be set up.</cc>
+	 * 	<ck>logFile</ck> = microservice.%g.log
+	 *
+	 * 	<cc># Whether to append to the existing log file or create a new one.
+	 * 	# Default is false.</cc>
+	 * 	<ck>append</ck> =
+	 *
+	 * 	<cc># The SimpleDateFormat format to use for dates.
+	 * 	# Default is "yyyy.MM.dd hh:mm:ss".</cc>
+	 * 	<ck>dateFormat</ck> =
+	 *
+	 * 	<cc># The log message format.
+	 * 	# The value can contain any of the following variables:
+	 * 	# 	{date} - The date, formatted per dateFormat.
+	 * 	#	{class} - The class name.
+	 * 	#	{method} - The method name.
+	 * 	#	{logger} - The logger name.
+	 * 	#	{level} - The log level name.
+	 * 	#	{msg} - The log message.
+	 * 	#	{threadid} - The thread ID.
+	 * 	#	{exception} - The localized exception message.
+	 * 	# Default is "[{date} {level}] {msg}%n".</cc>
+	 * 	<ck>format</ck> =
+	 *
+	 * 	<cc># The maximum log file size.
+	 * 	# Suffixes available for numbers.
+	 * 	# See ConfigFile.getInt(String,int) for details.
+	 * 	# Default is 1M.</cc>
+	 * 	<ck>limit</ck> = 10M
+	 *
+	 * 	<cc># Max number of log files.
+	 * 	# Default is 1.</cc>
+	 * 	<ck>count</ck> = 5
+	 *
+	 * 	<cc># Default log levels.
+	 * 	# Keys are logger names.
+	 * 	# Values are serialized Level POJOs.</cc>
+	 * 	<ck>levels</ck> = { org.apache.juneau:'INFO' }
+	 *
+	 * 	<cc># Only print unique stack traces once and then refer to them by a simple 8 character hash identifier.
+	 * 	# Useful for preventing log files from filling up with duplicate stack traces.
+	 * 	# Default is false.</cc>
+	 * 	<ck>useStackTraceHashes</ck> = true
+	 *
+	 * 	<cc># The default level for the console logger.
+	 * 	# Default is WARNING.</cc>
+	 * 	<ck>consoleLevel</ck> = WARNING
+	 * </p>
+	 *
+	 * @throws Exception
+	 */
+	protected void initLogging() throws Exception {
+		ConfigFile cf = getConfig();
+		logger = Logger.getLogger("");
+		String logFile = cf.getString("Logging/logFile");
+		if (! StringUtils.isEmpty(logFile)) {
+			LogManager.getLogManager().reset();
+			String logDir = cf.getString("Logging/logDir", ".");
+			FileUtils.mkdirs(new File(logDir), false);
+			boolean append = cf.getBoolean("Logging/append");
+			int limit = cf.getInt("Logging/limit", 1024*1024);
+			int count = cf.getInt("Logging/count", 1);
+			FileHandler fh = new FileHandler(logDir + '/' + logFile, limit, count, append);
+
+			boolean useStackTraceHashes = cf.getBoolean("Logging/useStackTraceHashes");
+			String format = cf.getString("Logging/format", "[{date} {level}] {msg}%n");
+			String dateFormat = cf.getString("Logging/dateFormat", "yyyy.MM.dd hh:mm:ss");
+			fh.setFormatter(new LogEntryFormatter(format, dateFormat, useStackTraceHashes));
+			logger.addHandler(fh);
+
+			ConsoleHandler ch = new ConsoleHandler();
+			ch.setLevel(Level.parse(cf.getString("Logging/consoleLevel", "WARNING")));
+			ch.setFormatter(new LogEntryFormatter(format, dateFormat, false));
+			logger.addHandler(ch);
+		}
+		ObjectMap loggerLevels = cf.getObject(ObjectMap.class, "Logging/levels");
+		if (loggerLevels != null)
+		for (String l : loggerLevels.keySet())
+			Logger.getLogger(l).setLevel(loggerLevels.get(Level.class, l));
+	}
+
+	/**
+	 * Method used to create (but not start) an instance of a Jetty server.
+	 * <p>
+	 * Subclasses can override this method to customize the Jetty server before it is started.
+	 * <p>
+	 * The default implementation is configured by the following values in the config file:
+	 * <p>
+	 * <p class='bcode'>
+	 * 	<cc>#================================================================================
+	 * 	# REST settings
+	 * 	#================================================================================</cc>
+	 * 	<cs>[REST]</cs>
+	 *
+	 * 	<cc># The HTTP port number to use.
+	 * 	# Default is Rest-Port setting in manifest file, or 8000.</cc>
+	 * 	<ck>port</ck> = 10000
+	 *
+	 * 	<cc># The context root of the Jetty server.
+	 * 	# Default is Rest-ContextPath in manifest file, or "/".</cc>
+	 * 	<ck>contextPath</ck> = 10000
+	 *
+	 * 	<cc># Authentication:  NONE, BASIC.
+	 * 	# Default is Rest-AuthType in manifest file, or NONE.</cc>
+	 * 	<ck>authType</ck> = NONE
+	 *
+	 * 	<cc># The BASIC auth username.
+	 * 	# Default is Rest-LoginUser in manifest file.</cc>
+	 * 	<ck>loginUser</ck> =
+	 *
+	 * 	<cc># The BASIC auth password.
+	 * 	# Default is Rest-LoginPassword in manifest file.</cc>
+	 * 	<ck>loginPassword</ck> =
+	 *
+	 * 	<cc># The BASIC auth realm.
+	 * 	# Default is Rest-AuthRealm in manifest file.</cc>
+	 * 	<ck>authRealm</ck> =
+	 *
+	 * 	<cc># Enable SSL support.</cc>
+	 * 	<ck>useSsl</ck> = false
+	 *
+	 * 	<cc>#================================================================================
+	 * 	# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
+	 * 	#--------------------------------------------------------------------------------
+	 * 	# Ignored if REST/useSsl is false.
+	 * 	#================================================================================</cc>
+	 * 	<cs>[REST-SslContextFactory]</cs>
+	 * 	<ck>keyStorePath</ck> = client_keystore.jks
+	 * 	<ck>keyStorePassword*</ck> = {HRAaRQoT}
+	 * 	<ck>excludeCipherSuites</ck> = TLS_DHE.*, TLS_EDH.*
+	 * 	<ck>excludeProtocols</ck> = SSLv3
+	 * 	<ck>allowRenegotiate</ck> = false
+	 * </p>
+	 *
+	 * @return The newly-created server.
+	 * @throws Exception
+	 */
+	protected Server createServer() throws Exception {
+		onCreateServer();
+
+		ConfigFile cf = getConfig();
+		ObjectMap mf = getManifest();
+
+		port = cf.getInt("REST/port", mf.getInt("Rest-Port", 8000));
+		String contextPath = cf.getString("REST/contextPath", mf.getString("Rest-ContextPath", "/"));
+
+		if (cf.getBoolean("REST/useSsl")) {
+
+			SslContextFactory sslContextFactory = new SslContextFactory();
+
+			// Write the properties in REST-SslContextFactory to the bean setters on sslContextFactory.
+			// Throws an exception if section contains unknown properties.
+			// Only look for bean properties of type String/String/boolean/int since class has multiple
+			// 	setters with the same name (e.g. setKeyStore(KeyStore) and setKeyStore(String)).
+			ObjectMap m = cf.writeProperties("REST-SslContextFactory", sslContextFactory, false, String.class, String[].class, boolean.class, int.class);
+
+			// We're using Jetty 8 that doesn't allow regular expression matching in SslContextFactory.setExcludeCipherSuites(),
+			// so to prevent having the config file list all old cipher suites, exclude the known bad ones.
+			String[] excludeCipherSuites = ArrayUtils.combine(
+				StringUtils.split("SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA", ','),
+				sslContextFactory.getExcludeCipherSuites()
+			);
+			sslContextFactory.setExcludeCipherSuites(excludeCipherSuites);
+
+			logger.log(Level.WARNING, "SSL properties set: {0}", JsonSerializer.DEFAULT_LAX.toString(m));
+
+			SslSocketConnector connector = new SslSocketConnector(sslContextFactory);
+			connector.setPort(port);
+
+			server = new Server();
+			server.setConnectors(new Connector[] { connector });
+
+		} else {
+			server = new Server(port);
+		}
+
+		ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+
+		String authType = cf.getString("REST/authType", mf.getString("Rest-AuthType", "NONE"));
+		if (authType.equals("BASIC"))
+			context.setSecurityHandler(basicAuth(cf, mf));
+
+		context.setContextPath(contextPath);
+		server.setHandler(context);
+
+		for (Map.Entry<String,Class<? extends Servlet>> e : getResourceMap().entrySet())
+			context.addServlet(e.getValue(), e.getKey()).setInitOrder(0);
+
+		return server;
+	}
+
+	/**
+	 * Method used to start the Jetty server created by {@link #createServer()}.
+	 * <p>
+	 * Subclasses can override this method to customize server startup.
+	 *
+	 * @throws Exception
+	 */
+	protected void startServer() throws Exception {
+		onStartServer();
+		server.start();
+		logger.warning("Server started on port " + port);
+		onPostStartServer();
+		server.join();
+	}
+
+	/**
+	 * Returns the resource map to use for this microservice.
+	 * <p>
+	 * <p>
+	 * Subclasses can override this method to programmatically specify their resources.
+	 * <p>
+	 * The default implementation is configured by the following values in the config file:
+	 * <p>
+	 * <p class='bcode'>
+	 *
+	 * 	<cc>#================================================================================
+	 * 	# REST settings
+	 * 	#================================================================================</cc>
+	 * 	<cs>[REST]</cs>
+	 *
+	 * 	<cc># A JSON map of servlet paths to servlet classes.
+	 * 	# Example:
+	 * 	# 	resourceMap = {'/*':'com.ibm.MyServlet'}
+	 * 	# Either resourceMap or resources must be specified if it's not defined in
+	 * 	# the manifest file.</cc>
+	 * 	<ck>resourceMap</ck> =
+	 *
+	 * 	<cc># A comma-delimited list of names of classes that extend from Servlet.
+	 * 	# Resource paths are pulled from @RestResource.path() annotation, or
+	 * 	# 	"/*" if annotation not specified.
+	 * 	# Example:
+	 * 	# 	resources = com.ibm.MyServlet
+	 * 	 * 	# Default is Rest-Resources in manifest file.
+	 * 	# Either resourceMap or resources must be specified if it's not defined in
+	 * 	# the manifest file.</cc>
+	 * 	<ck>resources</ck> =
+	 * </p>
+	 * <p>
+	 * 	In most cases, the rest resources will be specified in the manifest file since
+	 * 	it's not likely to be a configurable property:
+	 * <p>
+	 * <p class='bcode'>
+	 * 	<mk>Rest-Resources:</mk> org.apache.juneau.microservice.sample.RootResources
+	 * </p>
+	 *
+	 * @return The map of REST resources.
+	 * @throws ClassNotFoundException
+	 * @throws ParseException
+	 */
+	@SuppressWarnings("unchecked")
+	protected Map<String,Class<? extends Servlet>> getResourceMap() throws ClassNotFoundException, ParseException {
+		ConfigFile cf = getConfig();
+		ObjectMap mf = getManifest();
+		Map<String,Class<? extends Servlet>> rm = new LinkedHashMap<String,Class<? extends Servlet>>();
+
+		ObjectMap resourceMap = cf.getObject(ObjectMap.class, "REST/resourceMap");
+		String[] resources = cf.getStringArray("REST/resources", mf.getStringArray("Rest-Resources"));
+
+		if (resourceMap != null && ! resourceMap.isEmpty()) {
+			for (Map.Entry<String,Object> e : resourceMap.entrySet()) {
+				Class<?> c = Class.forName(e.getValue().toString());
+				if (! ClassUtils.isParentClass(Servlet.class, c))
+					throw new ClassNotFoundException("Invalid class specified as resource.  Must be a Servlet.  Class='"+c.getName()+"'");
+				rm.put(e.getKey(), (Class<? extends Servlet>)c);
+			}
+		} else if (resources.length > 0) {
+			for (String resource : resources) {
+				Class<?> c = Class.forName(resource);
+				if (! ClassUtils.isParentClass(Servlet.class, c))
+					throw new ClassNotFoundException("Invalid class specified as resource.  Must be a Servlet.  Class='"+c.getName()+"'");
+				RestResource rr = c.getAnnotation(RestResource.class);
+				String path = rr == null ? "/*" : rr.path();
+				if (! path.endsWith("*"))
+					path += (path.endsWith("/") ? "*" : "/*");
+				rm.put(path, (Class<? extends Servlet>)c);
+			}
+		}
+		return rm;
+	}
+
+	/**
+	 * Called when {@link ConfigFile#save()} is called on the config file.
+	 * <p>
+	 * The default behavior is configured by the following value in the config file:
+	 * <p>
+	 * <p class='bcode'>
+	 * 	<cs>[REST]</cs>
+	 *
+	 * 	<cc># What to do when the config file is saved.
+	 * 	# Possible values:
+	 * 	# 	NOTHING - Don't do anything. (default)
+	 * 	#	RESTART_SERVER - Restart the Jetty server.
+	 * 	#	RESTART_SERVICE - Shutdown and exit with code '3'.</cc>
+	 * 	<ck>saveConfigAction</ck> = RESTART_SERVER
+	 * </p>
+	 */
+	@Override /* Microservice */
+	protected void onConfigSave(ConfigFile cf) {
+		try {
+			String saveConfigAction = cf.getString("REST/saveConfigAction", "NOTHING");
+			if (saveConfigAction.equals("RESTART_SERVER")) {
+				new Thread() {
+					@Override /* Thread */
+					public void run() {
+						try {
+							RestMicroservice.this.stop();
+							RestMicroservice.this.start();
+						} catch (Exception e) {
+							logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
+						}
+					}
+				}.start();
+			} else if (saveConfigAction.equals("RESTART_SERVICE")) {
+				stop();
+				System.exit(3);
+			}
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	//--------------------------------------------------------------------------------
+	// Lifecycle listener methods.
+	//--------------------------------------------------------------------------------
+
+	/**
+	 * Called before {@link #createServer()} is called.
+	 * <p>
+	 * Subclasses can override this method to hook into the lifecycle of this application.
+	 */
+	protected void onCreateServer() {}
+
+	/**
+	 * Called before {@link #startServer()} is called.
+	 * <p>
+	 * Subclasses can override this method to hook into the lifecycle of this application.
+	 */
+	protected void onStartServer() {}
+
+	/**
+	 * Called after the Jetty server is started.
+	 * <p>
+	 * Subclasses can override this method to hook into the lifecycle of this application.
+	 */
+	protected void onPostStartServer() {}
+
+	/**
+	 * Called before the Jetty server is stopped.
+	 * <p>
+	 * Subclasses can override this method to hook into the lifecycle of this application.
+	 */
+	protected void onStopServer() {}
+
+	/**
+	 * Called after the Jetty server is stopped.
+	 * <p>
+	 * Subclasses can override this method to hook into the lifecycle of this application.
+	 */
+	protected void onPostStopServer() {}
+
+	//--------------------------------------------------------------------------------
+	// Other methods.
+	//--------------------------------------------------------------------------------
+
+	private static final SecurityHandler basicAuth(ConfigFile cf, ObjectMap mf) {
+
+		HashLoginService l = new HashLoginService();
+		String user = cf.getString("REST/loginUser", mf.getString("Rest-LoginUser"));
+		String pw = cf.getString("REST/loginPassword", mf.getString("Rest-LoginPassword"));
+		String realm = cf.getString("REST/authRealm", mf.getString("Rest-AuthRealm", ""));
+		String ctx = cf.getString("REST/contextPath", mf.getString("Rest-ContextPath", "/"));
+
+		l.putUser(user, Credential.getCredential(pw), new String[] { "user" });
+		l.setName(realm);
+
+		Constraint constraint = new Constraint();
+		constraint.setName(Constraint.__BASIC_AUTH);
+		constraint.setRoles(new String[] { "user" });
+		constraint.setAuthenticate(true);
+
+		ConstraintMapping cm = new ConstraintMapping();
+		cm.setConstraint(constraint);
+		cm.setPathSpec(ctx);
+
+		ConstraintSecurityHandler csh = new ConstraintSecurityHandler();
+		csh.setAuthenticator(new BasicAuthenticator());
+		csh.setRealmName("myrealm");
+		csh.addConstraintMapping(cm);
+		csh.setLoginService(l);
+
+		return csh;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build1.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build1.png
new file mode 100755
index 0000000..008c6b5
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build1.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build2.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build2.png
new file mode 100755
index 0000000..9e55346
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build2.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/helloworld1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/helloworld1.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/helloworld1.png
new file mode 100755
index 0000000..f5f0c7c
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/helloworld1.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions1.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions1.png
new file mode 100755
index 0000000..1234828
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions1.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions2.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions2.png
new file mode 100755
index 0000000..4589f19
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions2.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions3.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions3.png
new file mode 100755
index 0000000..21808c0
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions3.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions4.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions4.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions4.png
new file mode 100755
index 0000000..b5e8471
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions4.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions5.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions5.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions5.png
new file mode 100755
index 0000000..50504de
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions5.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions6.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions6.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions6.png
new file mode 100755
index 0000000..e730d32
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions6.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/manifest1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/manifest1.png b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/manifest1.png
new file mode 100755
index 0000000..77604c1
Binary files /dev/null and b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/manifest1.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/package.html b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/package.html
new file mode 100755
index 0000000..291d0d4
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/package.html
@@ -0,0 +1,949 @@
+<!DOCTYPE HTML>
+<!--
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ ***************************************************************************************************************************/
+ -->
+<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>Juneau Cloud Microservice 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='#Introduction'>Microservice Introduction</a></p> 
+	<li><p><a class='doclink' href='#GettingStarted'>Getting Started</a></p> 
+	<ol>
+		<li><p><a class='doclink' href='#GettingStarted_Installing'>Installing in Eclipse</a></p> 
+		<li><p><a class='doclink' href='#GettingStarted_Running'>Running in Eclipse</a></p> 
+		<li><p><a class='doclink' href='#GettingStarted_Building'>Building and Running from Command-Line</a></p> 
+	</ol>	
+	<li><p><a class='doclink' href='#Manifest'>Manifest File</a></p> 
+	<ol>
+		<li><p><a class='doclink' href='#Manifest_API'>Manifest API</a></p> 
+	</ol>
+	<li><p><a class='doclink' href='#ConfigFile'>Config File</a></p>
+	<ol>
+		<li><p><a class='doclink' href='#ConfigFile_API'>Config File API</a></p>
+	</ol> 
+	<li><p><a class='doclink' href='#ResourceClasses'>Resource Classes</a></p> 
+	<li><p><a class='doclink' href='#RestMicroservice'>RestMicroservice</a></p>
+	<ol> 
+		<li><p><a class='doclink' href='#RestMicroservice_Extending'>Extending RestMicroservice</a></p>
+	</ol>
+</ol>
+
+<!-- ======================================================================================================== -->
+<a id="Introduction"></a>
+<h2 class='topic' onclick='toggle(this)'>1 - Microservice Introduction</h2>
+<div class='topic'>
+	<p>
+		The Juneau Cloud Microservice is an API for creating standalone executable jars that can be used to 
+		start lightweight configurable REST interfaces with all the power of the Juneau REST server and client APIs.
+	</p>
+	<p>
+		The Microservice API consists of a combination of the Juneau Core, Server, and Client APIs and an embedded
+		Eclipse Jetty Servlet Container.  It includes all libraries needed to execute in a Java 1.6+ environment.
+	</p>
+	<p>
+		Features include:
+	</p>
+	<ul class='spaced-list'>
+		<li>An out-of-the-box zipped Eclipse project to get started quickly.
+		<li>Packaged as a simple executable jar and configuration file.
+		<li>All the power of the Juneau Cloud Tools for defining REST servlets and clients with the ability to serialize and parse POJOs as HTML, JSON, XML, RDF, URL-Encoding, and others.
+		<li>An extensible API that allows you to hook into various lifecycle events.
+		<li>Simple-to-use APIs for accessing manifest file entries, command-line arguments, and external configuration file properties.
+		<li>Predefined REST resources for configuring microservice and accessing log files.
+	</ul>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="GettingStarted"></a>
+<h2 class='topic' onclick='toggle(this)'>2 - Getting Started</h2>
+<div class='topic'>
+	<p>
+		The <l>microservice-project.zip</l> file is a zipped eclipse project that includes everything you 
+		need to create a REST microservice in an Eclipse workspace.
+	</p>	
+		
+	<!-- ======================================================================================================== -->
+	<a id="GettingStarted_Installing"></a>
+	<h3 class='topic' onclick='toggle(this)'>2.1 - Installing in Eclipse</h3>
+	<div class='topic'>
+		<p>
+			Follow these instructions to create a new template project in Eclipse.
+		</p>		
+		<ol class='spaced-list'>
+			<li>Download the latest microservice-project zip file (e.g. <l>microservice-project-5.2.zip</l>).
+			<li>In your Eclipse workspace, go to <b>File-&gt;Import-&gt;General-&gt;Existing Projects into Workspace</b> and click <b>Next</b>.<br><br>
+				<img class='bordered' src="doc-files/instructions1.png">
+			<li>Select the zip file and click <b>Finish</b>.<br><br>
+				<img class='bordered' src="doc-files/instructions2.png">
+			<li>In your workspace, you should now see the following project:<br><br>
+				<img class='bordered' src="doc-files/instructions3.png">
+		</ol>
+		<p>
+			The important elements in this project are:
+		</p>
+		<ul class='spaced-list'>
+			<li><l>META-INF/MANIFEST.MF</l> - The manifest file.  <br>
+				This defines the entry point, classpath, top-level REST resources, and location of external configuration file. <br><br>
+				<p class='bcode'>
+	<mk>Main-Class</mk>: org.apache.juneau.microservice.RestMicroservice
+	<mk>Rest-Resources</mk>: 
+	 org.apache.juneau.microservice.sample.RootResources
+	<mk>Main-ConfigFile</mk>: microservice.cfg
+	<mk>Class-Path</mk>: 
+	 lib/commons-codec-1.9.jar 
+	 lib/commons-io-1.2.jar 
+	 lib/commons-logging-1.1.1.jar 
+	 lib/httpclient-4.5.jar 
+	 lib/httpcore-4.4.1.jar 
+	 lib/httpmime-4.5.jar 
+	 lib/javax.servlet-api-3.0.jar 
+	 lib/jetty-all-8.1.0.jar 
+	 lib/juneau-all-5.2.jar 
+	 lib/org.apache.commons.fileupload_1.3.1.jar
+				</p>
+			<li><l>RestMicroservice.java</l> - The application class. <br>
+				This is a specialized microservice in Juneau for exposing REST servlets.
+			<li><l>RootResources.java</l> - The top-level REST resource. <br>
+				This class routes HTTP requests to child resources:<br><br>
+				<p class='bcode'>
+	<jd>/**
+	 * Root microservice page.
+	 */</jd>
+	<ja>@RestResource</ja>(
+		path=<js>"/"</js>,
+		label=<js>"Juneau Microservice Template"</js>,
+		description=<js>"Template for creating REST microservices"</js>,
+		properties={
+			<ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'$R{servletURI}?method=OPTIONS'}"</js>)
+		},
+		children={
+			HelloWorldResource.<jk>class</jk>,
+			ConfigResource.<jk>class</jk>,
+			LogsResource.<jk>class</jk>
+		}
+	)
+	<jk>public class</jk> RootResources <jk>extends</jk> ResourceGroup {
+		<jc>// No actual code!</jc>
+	}		
+				</p>
+			<li><l>microservice.cfg</l> - The external configuration file. <br>
+				A deceivingly simple yet powerful INI-style configuration file:<br><br>
+		<p class='bcode'>
+	<cc>#================================================================================
+	# Basic configuration file for SaaS microservices
+	# Subprojects can use this as a starting point.
+	#================================================================================</cc>
+	
+	<cc>#================================================================================
+	# REST settings
+	#================================================================================</cc>
+	<cs>[REST]</cs>
+	
+	<cc># The HTTP port number to use.
+	# Default is Rest-Port setting in manifest file, or 8000.</cc>
+	<ck>port</ck> = <cv>10000</cv>
+	...
+				</p>
+				
+		</ul>
+		<p>
+			At this point, you're ready to start the microservice from your workspace.
+		</p>
+	</div>
+
+	<!-- ======================================================================================================== -->
+	<a id="GettingStarted_Running"></a>
+	<h3 class='topic' onclick='toggle(this)'>2.2 - Running in Eclipse</h3>
+	<div class='topic'>
+		<p>
+			The <l>microservice-project.launch</l> file is already provided to allow you to quickly start
+			your new microservice.
+		</p>
+		<p>
+			Go to <b>Run-&gt;Run Configurations-&gt;Java Application-&gt;microservice-project</b> and click <b>Run</b>.
+		</p>
+		<img class='bordered' src="doc-files/instructions4.png">
+		<p>
+			In your console view, you should see the following output:
+		</p>
+		<img class='bordered' src="doc-files/instructions5.png">
+		<p>
+			Now open your browser and point to <l>http://localhost:10000</l>.  
+			You should see the following:
+		</p>
+		<img class='bordered' src="doc-files/instructions6.png">
+		<p>
+			You have started a REST interface on port 10000.
+		</p>
+	</div>
+
+	<!-- ======================================================================================================== -->
+	<a id="GettingStarted_Building"></a>
+	<h3 class='topic' onclick='toggle(this)'>2.3 - Building and Running from Command Line</h3>
+	<div class='topic'>
+		<p>
+			The <l>build.xml</l> file is a very basic ANT script for creating your microservice
+			as an executable jar.
+		</p>
+		<p>
+			To build your microservice, right-click on <l>build.xml</l> and select <b>Run As-&gt;Ant Build</b>.
+			Once complete (which should only take about 1 second), if you refresh your project, you should see the following new directory:
+		</p>
+		<img class='bordered' src='doc-files/build1.png'>
+		<p>
+			If you open up a command prompt in the <l>build/microservice</l> folder, you can start your microservice as follows:
+		</p>
+		<img class='bordered' src='doc-files/build2.png'>
+		<p>
+			If you get this error message: <code class='snippet'>java.net.BindException: Address already in use</code>, then this microservice is already running elsewhere and so it cannot bind to port 10000.
+		</p>
+	</div>
+</div>
+
+
+<!-- ======================================================================================================== -->
+<a id="Manifest"></a>
+<h2 class='topic' onclick='toggle(this)'>3 - Manifest File</h2>
+<div class='topic'>
+	<p>
+		The <l>META-INF/MANIFEST.MF</l> file is used to describe the microservice. 
+		If you open it, you'll see the following:
+	</p>
+	<p class='bcode'>
+	<mk>Main-Class</mk>: <mv>org.apache.juneau.microservice.RestMicroservice</mv>
+	<mk>Rest-Resources</mk>: 
+	 <mv>org.apache.juneau.microservice.sample.RootResources</mv>
+	<mk>Main-ConfigFile</mk>: <mv>microservice.cfg</mv>
+	<mk>Class-Path</mk>: 
+	 <mv>lib/commons-codec-1.9.jar 
+	 lib/commons-io-1.2.jar 
+	 lib/commons-logging-1.1.1.jar 
+	 lib/httpclient-4.5.jar 
+	 lib/httpcore-4.4.1.jar 
+	 lib/httpmime-4.5.jar 
+	 lib/javax.servlet-api-3.0.jar 
+	 lib/jetty-all-8.1.0.jar 
+	 lib/juneau-all-5.2.jar 
+	 lib/org.apache.commons.fileupload_1.3.1.jar</mv>
+	</p>
+	<p>
+	 	The <mk>Main-Class</mk> entry is the standard manifest entry describing the entry point for the executable jar.
+	 	In most cases, this value will always be <l>org.apache.juneau.microservice.RestMicroservice</l>.
+	 	However, it is possible to extend this class or implement your own microservice, in which case you'll need
+	 	to modify this value to point to the new class.
+	</p>
+	<p>
+		The <mk>Rest-Resources</mk> entry is a comma-delimited list of REST resources.
+		These are classes that subclass from either {@link org.apache.juneau.microservice.Resource} or {@link org.apache.juneau.microservice.ResourceGroup}.
+		This is a specialized entry when using <l>org.apache.juneau.microservice.RestMicroservice</l>.
+		In most cases, you'll want to specify a single top-level "grouping" REST resource mapped to <l>"/"</l> that extends from {@link org.apache.juneau.microservice.ResourceGroup}
+		so that you can define multiple child resources.
+		In this case, we're pointing to a resource defined in our project: <l>org.apache.juneau.microservice.sample.RootResources</l>.
+	</p>
+	<p>
+		The <mk>Main-ConfigFile</mk> entry points to the location of an external configuration file for our microservice.
+	</p>		
+	<p>
+		The <mk>Class-Path</mk> entry is the standard manifest file entry.
+		However, if you need to add extra libraries to your microservice, you'll need to copy them into your <l>lib</l> 
+		directory and add them to the classpath here.
+	</p>
+	<p>
+		Other manifest file entries are also provided:
+	</p>
+	<ul class='spaced-list'>
+		<li><mk>Rest-Port</mk> - The HTTP port to use.  Default is <l>10000</l>.
+		<li><mk>Rest-ContextPath</mk> - The servlet context path.  Default is <l>"/"</l>.
+		<li><mk>Rest-AuthType</mk> - Authentication support.<br>  
+			Possible values are <l>"NONE"</l> and <l>"BASIC"</l>.<br>  
+			Default is <l>"NONE"</l>.<br>
+			Used with the following additional settings:
+			<ul>
+				<li><mk>Rest-LoginUser</mk>
+				<li><mk>Rest-LoginPassword</mk>
+				<li><mk>Rest-AuthRealm</mk>
+			</ul>
+	</ul>
+	<p>
+		In addition to these predefined manifest entries, you can add your own particular entries to the manifest file
+		and access them through the Manifest API described next. 
+	</p>
+	
+	<!-- ======================================================================================================== -->
+	<a id="Manifest_API"></a>
+	<h3 class='topic' onclick='toggle(this)'>3.1 - Manifest API</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.microservice.Microservice#getManifest()} method is a static method that
+			can be used to retrieve the manifest file as an {@link org.apache.juneau.ObjectMap}.  
+		</p>
+		<p class='bcode'>
+	<jc>// Get Main-Class from manifest file.</jc>
+	String mainClass = Microservice.<jsm>getManifest</jsm>().getString(<js>"Main-Class"</js>, <js>"unknown"</js>);
+	 
+	<jc>// Get Rest-Resources from manifest file.</jc>
+	String[] restResources = Microservice.<jsm>getManifest</jsm>().getStringArray(<js>"Rest-Resources"</js>);
+		</p>
+		<p>
+			Since this method returns an {@link org.apache.juneau.ObjectMap}, it's possible to retrieve entries as a wide variety
+			of object types such as java primitives, arrays, collections, maps, or even POJOs serialized as JSON.
+		</p>
+	</div>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="ConfigFile"></a>
+<h2 class='topic' onclick='toggle(this)'>4 - Config File</h2>
+<div class='topic'>
+	<p>
+		The microservice config file is an external INI-style configuration file that is used to configure
+		your microservice.
+	</p>
+	<p>
+		If you open the <l>microservice.cfg</l> file, you'll see several predefined sections and settings.
+	</p>
+	<p class='bcode'>
+	<cc>#================================================================================
+	# Basic configuration file for SaaS microservices
+	# Subprojects can use this as a starting point.
+	#================================================================================</cc>
+	
+	<cc>#================================================================================
+	# REST settings
+	#================================================================================</cc>
+	<cs>[REST]</cs>
+	
+	<cc># The HTTP port number to use.
+	# Default is Rest-Port setting in manifest file, or 8000.</cc>
+	<ck>port</ck> = <cv>10000</cv>
+	
+	<cc># A JSON map of servlet paths to servlet classes.
+	# Example:  
+	# 	resourceMap = {'/*':'com.ibm.MyServlet'}
+	# Either resourceMap or resources must be specified.</cc>
+	<ck>resourceMap</ck> = 
+
+	<cc># A comma-delimited list of names of classes that extend from Servlet.
+	# Resource paths are pulled from @RestResource.path() annotation, or
+	# 	"/*" if annotation not specified.
+	# Example:  
+	# 	resources = com.ibm.MyServlet
+	# Default is Rest-Resources in manifest file.
+	# Either resourceMap or resources must be specified.</cc>
+	<ck>resources</ck> = 
+
+	<cc># The context root of the Jetty server.
+	# Default is Rest-ContextPath in manifest file, or "/".</cc>
+	<ck>contextPath</ck> = 
+
+	<cc># Authentication:  NONE, BASIC.</cc>
+	<ck>authType</ck> = <cv>NONE</cv>
+	
+	<cc># The BASIC auth username.
+	# Default is Rest-LoginUser in manifest file.</cc>
+	<ck>loginUser</ck> = 
+	
+	<cc># The BASIC auth password.
+	# Default is Rest-LoginPassword in manifest file.</cc>
+	<ck>loginPassword</ck> = 
+	
+	<cc># The BASIC auth realm.
+	# Default is Rest-AuthRealm in manifest file.</cc>
+	<ck>authRealm</ck> = 
+	
+	<cc># Stylesheet to use for HTML views.
+	# The default options are:
+	#  - styles/juneau.css
+	#  - styles/devops.css
+	# Other stylesheets can be referenced relative to the servlet package or working
+	# 	directory.</cc>
+	<ck>stylesheet</ck> = <cv>styles/devops.css</cv>
+	
+	<cc># What to do when the config file is saved.
+	# Possible values:
+	# 	NOTHING - Don't do anything. 
+	#	RESTART_SERVER - Restart the Jetty server.
+	#	RESTART_SERVICE - Shutdown and exit with code '3'.</cc>
+	<ck>saveConfigAction</ck> = <cv>RESTART_SERVER</cv>
+	
+	<cc># Enable SSL support.</cc>
+	<ck>useSsl</ck> = <cv>false</cv>
+	
+	<cc>#================================================================================
+	# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
+	#--------------------------------------------------------------------------------
+	# Ignored if REST/useSsl is false.
+	#================================================================================</cc>
+	<cs>[REST-SslContextFactory]</cs>
+	<ck>keyStorePath</ck> = <cv>client_keystore.jks</cv>
+	<ck>keyStorePassword*</ck> = <cv>{HRAaRQoT}</cv>
+	<ck>excludeCipherSuites</ck> = <cv>TLS_DHE.*, TLS_EDH.*</cv>
+	<ck>excludeProtocols</ck> = <cv>SSLv3</cv>
+	<ck>allowRenegotiate</ck> = <cv>false</cv>
+	
+	<cc>#================================================================================
+	# Logger settings
+	# See FileHandler Java class for details.
+	#================================================================================</cc>
+	<cs>[Logging]</cs>
+
+	<cc># The directory where to create the log file.
+	# Default is "."</cc>
+	<ck>logDir</ck> = <cv>logs</cv>
+	
+	<cc># The name of the log file to create for the main logger.
+	# The logDir and logFile make up the pattern that's passed to the FileHandler
+	# constructor.
+	# If value is not specified, then logging to a file will not be set up.</cc>
+	<ck>logFile</ck> = <cv>microservice.%g.log</cv>
+	
+	<cc># Whether to append to the existing log file or create a new one.
+	# Default is false.</cc>
+	<ck>append</ck> = 
+	
+	<cc># The SimpleDateFormat format to use for dates.
+	# Default is "yyyy.MM.dd hh:mm:ss".</cc>
+	<ck>dateFormat</ck> = 
+	
+	<cc># The log message format.
+	# The value can contain any of the following variables:
+	# 	{date} - The date, formatted per dateFormat.
+	#	{class} - The class name.
+	#	{method} - The method name.
+	#	{logger} - The logger name.
+	#	{level} - The log level name.
+	#	{msg} - The log message.
+	#	{threadid} - The thread ID.
+	#	{exception} - The localized exception message.
+	# Default is "[{date} {level}] {msg}%n".</cc>
+	<ck>format</ck> =
+	
+	<cc># The maximum log file size.
+	# Suffixes available for numbers.
+	# See ConfigFile.getInt(String,int) for details.
+	# Default is 1M.</cc>
+	<ck>limit</ck> = <cv>10M</cv>
+	
+	<cc># Max number of log files.
+	# Default is 1.</cc>
+	<ck>count</ck> = <cv>5</cv>
+	
+	<cc># Default log levels.
+	# Keys are logger names.
+	# Values are serialized Level POJOs.</cc>
+	<ck>levels</ck> = <cv>{ org.apache.juneau:'INFO' }</cv>
+	
+	<cc># Only print unique stack traces once and then refer to them by a simple 8 character hash identifier.
+	# Useful for preventing log files from filling up with duplicate stack traces.
+	# Default is false.</cc>
+	<ck>useStackTraceHashes</ck> = <cv>true</cv>
+	
+	<cc># The default level for the console logger.
+	# Default is WARNING.</cc>
+	<ck>consoleLevel</ck> = 
+	
+	<cc>#================================================================================
+	# System properties
+	#--------------------------------------------------------------------------------
+	# These are arbitrary system properties that are set during startup.
+	#================================================================================</cc>
+	<cs>[SystemProperties]</cs>
+	
+	<cc># Configure Jetty for StdErrLog Logging</cc>
+	<ck>org.eclipse.jetty.util.log.class</ck> = <cv>org.eclipse.jetty.util.log.StrErrLog</cv>
+	
+	<cc># Jetty logging level</cc>
+	<ck>org.eclipse.jetty.LEVEL</ck> = <cv>WARN</cv>		
+	</p>
+	<p class='info'>
+		The predefined config file includes all settings for instructional purposes. 
+		In your microservice, you can remove all lines from your config file that have default values.
+	</p>
+	<p>
+		Although the config file looks deceptively simple, the config file API is a very powerful feature with many capabilities, including:
+	</p>
+	<ul class='spaced-list'>
+		<li>The ability to use variables to reference environment variables, system properties, other config file entries, and a host of other types.
+		<li>The ability to store and retrieve POJOs as JSON.
+		<li>APIs for updating, modifying, and saving configuration files without losing comments or formatting.
+		<li>Extensive listener APIs.
+	</ul>
+	<h6 class='topic'>Examples:</h6>
+	<p class='bcode'>
+	<cc>#--------------------------</cc>
+	<cc># My section</cc>
+	<cc>#--------------------------</cc>
+	<cs>[MySection]</cs>
+	
+	<cc># An integer</cc>
+	<ck>anInt</ck> = <cv>1 </cv>
+	
+	<cc># A boolean</cc>
+	<ck>aBoolean</ck> = <cv>true </cv>
+	
+	<cc># An int array</cc>
+	<ck>anIntArray</ck> = <cv>1,2,3 </cv>
+	
+	<cc># A POJO that can be converted from a String</cc>
+	<ck>aURL</ck> = <cv>http://foo </cv>
+	
+	<cc># An encoded password</cc>
+	<ck>aPassword*</ck> = <cv>{HRAaRQoT}</cv>
+
+	<cc># A POJO that can be converted from JSON</cc>
+	<ck>aBean</ck> = <cv>{foo:'bar',baz:123}</cv>
+	
+	<cc># A system property</cc>
+	<ck>locale</ck> = <cv>$S{java.locale, en_US}</cv>
+	
+	<cc># An environment variable</cc>
+	<ck>path</ck> = <cv>$E{PATH, unknown}</cv>
+	
+	<cc># A manifest file entry</cc>
+	<ck>mainClass</ck> = <cv>$MF{Main-Class}</cv>
+	
+	<cc># Another value in this config file</cc>
+	<ck>sameAsAnInt</ck> = <cv>$C{MySection/anInt}</cv>
+	
+	<cc># A command-line argument in the form "myarg=foo"</cc>
+	<ck>myArg</ck> = <cv>$ARG{myarg}</cv>
+	
+	<cc># The first command-line argument</cc>
+	<ck>firstArg</ck> = <cv>$ARG{0}</cv>
+
+	<cc># Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.</cc>
+	<ck>nested</ck> = <cv>$S{mySystemProperty,$E{MY_ENV_VAR,$ARG{0}}}</cv>
+
+	<cc># A POJO with embedded variables</cc>
+	<ck>aBean2</ck> = <cv>{foo:'$ARG{0}',baz:$C{MySection/anInt}}</cv>
+	
+	</p>
+	<p class='bcode'>
+	<jc>// Java code for accessing config entries above.</jc>
+	ConfigFile cf = Microservice.<jsm>getConfig</jsm>();
+	
+	<jk>int</jk> anInt = cf.getInt(<js>"MySection/anInt"</js>); 
+	<jk>boolean</jk> aBoolean = cf.getBoolean(<js>"MySection/aBoolean"</js>); 
+	<jk>int</jk>[] anIntArray = cf.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"MySection/anIntArray"</js>); 
+	URL aURL = cf.getObject(URL.<jk>class</jk>, <js>"MySection/aURL"</js>); 
+	String aPassword = cf.getString(<js>"MySection/aPassword"</js>);
+	MyBean aBean = cf.getObject(MyBean.<jk>class</jk>, <js>"MySection/aBean"</js>); 
+	Locale locale = cf.getObject(Locale.<jk>class</jk>, <js>"MySection/locale"</js>); 
+	String path = cf.getString(<js>"MySection/path"</js>); 
+	String mainClass = cf.getString(<js>"MySection/mainClass"</js>); 
+	<jk>int</jk> sameAsAnInt = cf.getInt(<js>"MySection/sameAsAnInt"</js>); 
+	String myArg = cf.getString(<js>"MySection/myArg"</js>); 
+	String firstArg = cf.getString(<js>"MySection/firstArg"</js>); 
+	</p>
+	<h6 class='topic'>Additional Information</h6>
+	<ul class='javahierarchy'>
+		<li class='p'><a href='../core/ini/package-summary.html#TOC'><l>org.apache.juneau.ini</l></a> - Juneau Configuration API Javadocs.
+	</ul>
+	
+	<!-- ======================================================================================================== -->
+	<a id="ConfigFile_API"></a>
+	<h3 class='topic' onclick='toggle(this)'>4.1 - Config File API</h3>
+	<div class='topic'>
+		<p>
+			There are 3 primary ways of getting access to the config file.
+		</p>
+		<ul class='javahierarchy'>
+			<li class='m'>{@link org.apache.juneau.microservice.Microservice#getConfig()} - A static method that can be used to access
+				the config file from anywhere in your application.<br>
+				When using this method, any of the following variables can be resolved:
+				<ul>
+					<li><l>$S{key}, $S{key,default}</l> - System properties.
+					<li><l>$E{key}, $E{key,default}</l> - Environment variables.
+					<li><l>$C{key}, $C{key,default}</l> - Config file entries.
+					<li><l>$MF{key}, $MF{key,default}</l> - Manifest file entries.
+					<li><l>$ARG{key}, $ARG{key,default}</l> - Command-line arguments.
+				</ul>
+				Additional user-defined variables can be defined by overriding the {@link org.apache.juneau.microservice.Microservice#createVarResolver()} method.
+			<li class='m'>{@link org.apache.juneau.server.RestServlet#getConfig()} - An instance method to access it from inside a REST servlet.<br>
+				The following variables are available in addition to the variables defined above:
+				<ul>
+					<li><l>$I{key}, $I{key,default}</l> - Servlet initialization parameters.
+				</ul>
+				<h6 class='figure'>Example usage:</h6>
+				<p class='bcode'>
+	<cc>#-------------------------------</cc>
+	<cc># Properties for MyHelloResource </cc>
+	<cc>#-------------------------------</cc>
+	<cs>[MyHelloResource]</cs>
+	<ck>greeting</ck> = <cv>Hello world!</cv> 
+				</p>
+				<p class='bcode'>
+	<ja>@RestResource</ja>(...)
+	<jk>public class</jk> MyHelloResource <jk>extends</jk> Resource {
+		<jc>// Access config file when initializing fields.</jc>
+		<jk>private</jk> String greeting = getConfig().getString(<js>"MyHelloResource/greeting"</js>); 
+		
+		<jc>// Or access config file in servlet init method.</jc>
+		<ja>@Override</ja> <jc>/* Servlet */</jc>
+		<jk>public void</jk> init() {
+			String greeting = getConfig().getString(<js>"MyHelloResource/greeting"</js>); 
+		}
+	}		
+				</p>
+				<p>
+					Additional user-defined variables can be defined at this level by overriding the {@link org.apache.juneau.microservice.Resource#createVarResolver()} method.
+				</p>
+			<li class='m'>{@link org.apache.juneau.server.RestRequest#getConfig()} - An instance method to access it from inside a REST method.<br>
+				The following variables are available in addition to the variables defined above:
+				<ul>
+					<li><l>$L{key}, $L{key,args}</l> - Localized variables pulled from {@link org.apache.juneau.server.RestRequest#getMessage(String, Object...)}.
+					<li><l>$A{key}, $A{key,default}</l> - Request attributes pulled from {@link org.apache.juneau.server.RestRequest#getAttribute(String)}.
+					<li><l>$P{key}, $P{key,default}</l> - Request parameters pulled from {@link org.apache.juneau.server.RestRequest#getParameter(String)}.
+					<li><l>$R{key}</l> - Request variables.
+					<ul>
+			 			<li><l>$R{contextPath}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getContextPath()}.
+			 			<li><l>$R{method}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getMethod()}.
+			 			<li><l>$R{methodDescription}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getMethodDescription()}.
+			 			<li><l>$R{pathInfo}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getPathInfo()}.
+			 			<li><l>$R{requestParentURI}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getRequestParentURI()}.
+			 			<li><l>$R{requestURI}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getRequestURI()}.
+			 			<li><l>$R{servletDescription}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getServletDescription()}.
+			 			<li><l>$R{servletLabel}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getServletLabel()}.
+			 			<li><l>$R{servletParentURI}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getServletParentURI()}.
+			 			<li><l>$R{servletPath}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getServletPath()}.
+			 			<li><l>$R{servletURI}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getServletURI()}.
+			 			<li><l>$R{trimmedRequestURI}</l> - Value returned by {@link org.apache.juneau.server.RestRequest#getTrimmedRequestURI()}.
+					</ul>
+					<li><l>$UE{...}</l> - URL-Encode the specified value by calling {@link org.apache.juneau.server.RestUtils#encode(String)}.
+				</ul>
+				<h6 class='figure'>Example usage:</h6>
+				<p class='bcode'>
+	<cc>#-----------------------------</cc>
+	<cc># Contents of microservice.cfg </cc>
+	<cc>#-----------------------------</cc>
+	<cs>[MyHelloResource]</cs>
+	<ck>greeting</ck> = <cv>Hello $A{person}!</cv> 
+	<ck>localizedGreeting</ck> = <cv>$L{HelloMessage,$A{person}}</cv> 
+				</p>
+				<p class='bcode'>
+	<cc>#---------------------------------</cc>
+	<cc># Contents of MyHelloResource.java </cc>
+	<cc>#---------------------------------</cc>
+	<ja>@RestResource</ja>(
+		path=<js>"/hello"</js>,
+		messages=<js>"nls/Messages"</js>,
+		...
+	)
+	<jk>public class</jk> MyHelloResource <jk>extends</jk> Resource {
+
+		<jd>/** Standard hello message. */</jd>
+		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/{person}"</js>)
+		<jk>public</jk> String sayHello(RestRequest req) {
+			<jk>return</jk> req.getConfig().getString(<js>"MyHelloResource/greeting"</js>);
+		}
+
+		<jd>/** Hello message in users language. */</jd>
+		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/localized/{person}"</js>)
+		<jk>public</jk> String sayLocalizedHello(RestRequest req) {
+			<jk>return</jk> req.getConfig().getString(<js>"MyHelloResource/localizedGreeting"</js>);
+		}
+	}		
+				<p class='bcode'>
+	<cc>#---------------------------------------</cc>
+	<cc># Contents of nls/Messages_en.properties </cc>
+	<cc>#---------------------------------------</cc>
+	<ck>MyHelloResource.HelloMessage</ck> = <cv>Hello {0}!</cv> 
+				</p>
+				<p>
+					Additional user-defined variables can be defined at this level by overriding the {@link org.apache.juneau.server.RestServlet#createVarResolver()} method.
+				</p>
+		</ul>
+		<p>
+			That <l>sayLocalizedHello()</l> example might need some explanation since there's a lot going on there.
+			Here's what happens when an HTTP call is made to <l>GET /hello/localized/Bob</l>:
+		</p>
+		<ol class='spaced-list'>
+			<li>The HTTP call matches the <l>/hello</l> path on the <l>MyHelloResource</l> class.
+			<li>The HTTP call matches the <l>/localized/{person}</l> path on the <l>sayLocalizedHello()</l> method.
+			<li>The request attribute <l>person</l> gets assigned the value <l>"Bob"</l>.
+			<li>The call to <l>req.getConfig().getString("MyHelloResource/localizedGreeting")</l> 
+				finds the value <l>"$L{HelloMessage,$A{person}}"</l>.
+			<li>The arguments in the <l>$L{}</l> variable get resolved, resulting in <l>"$L{HelloMessage,Bob}"</l>.
+			<li>The <l>$L{}</l> variable gets resolved to the message <l>"Hello {0}!"</l> in the localized properties file of the servlet based on the <l>Accept-Language</l> header on the request.
+			<li>The arguments get replaced in the message resulting in <l>"Hello Bob!"</l>. 
+			<li>The resulting message <l>"Hello Bob!"</l> is returned as a POJO to be serialized to whatever content type was specified on the <l>Accept</l> header on the request.
+</ol>
+		<p>
+			This particular example is needlessly complex, but it gives an idea of how variables can be used recursively to produce sophisticated results
+		</p>
+	</div>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="ResourceClasses"></a>
+<h2 class='topic' onclick='toggle(this)'>5 - Resource Classes</h2>
+<div class='topic'>
+	<p>
+		Now let's take a look at the resource classes themselves.  
+		The top-level page:
+	</p>
+	<img class='bordered' src='doc-files/instructions6.png'>
+	<p>
+		...is generated by this class...
+	<p class='bcode'>
+	<jd>/**
+	 * Root microservice page.
+	 */</jd>
+	<ja>@RestResource</ja>(
+		path=<js>"/"</js>,
+		label=<js>"Juneau Microservice Template"</js>,
+		description=<js>"Template for creating REST microservices"</js>,
+		properties={
+			<ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'$R{servletURI}?method=OPTIONS'}"</js>)
+		},
+		children={
+			HelloWorldResource.<jk>class</jk>,
+			ConfigResource.<jk>class</jk>,
+			LogsResource.<jk>class</jk>
+		}
+	)
+	<jk>public class</jk> RootResources <jk>extends</jk> ResourceGroup {
+		<jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L;
+	}		
+	</p>
+	<ul class='spaced-list'>
+		<li>The </l>label</l> and <l>description</l> annotations define the titles on the page.<br>
+			These can be globalized using <l>$L{...}</l> variables, or by defining specially-named properties in the properties
+			file for the resource.
+		<li>In this case, the <l>path</l> annotation defines the context root of your application since it was 
+			not specified in the manifest or config file.<br>
+			Therefore, this resource is mapped to <l>http://localhost:10000</l>.
+		<li>The <l>children</l> annotation make up the list of child resources.<br>
+			These child resources can be anything that extends from <l>Servlet</l>, although usually
+			they will be subclasses of {@link org.apache.juneau.microservice.Resource} or other resource groups.
+	</ul>
+	<p>
+		If you click the <l>helloWorld</l> link in your application, you'll get a simple hello world message:
+	</p>
+	<img class='bordered' src='doc-files/helloworld1.png'>
+	<p>
+		...which is generated by this class...
+	</p>
+	<p class='bcode'>
+	<jd>/**
+	 * Sample REST resource that prints out a simple "Hello world!" message.
+	 */</jd>
+	<ja>@RestResource</ja>(
+		path=<js>"/helloWorld"</js>,
+		label=<js>"Hello World example"</js>,
+		description=<js>"Simplest possible REST resource"</js>
+	)
+	<jk>public class</jk> HelloWorldResource <jk>extends</jk> Resource {
+	
+		<jd>/** GET request handler */</jd>
+		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>)
+		<jk>public</jk> String sayHello() {
+			<jk>return</jk> <js>"Hello world!"</js>;
+		}
+	}		
+	</p>
+	<p>
+		The {@link org.apache.juneau.microservice.Resource} and {@link org.apache.juneau.microservice.ResourceGroup} classes
+		are powerful servlets designed specifically for creating REST APIs using nothing more than serialized and parsed POJOs.
+	</p>
+	<h6 class='topic'>Additional Information</h6>
+	<ul class='javahierarchy'>
+		<li class='p'><a href='../server/package-summary.html#TOC'><l>org.apache.juneau.server</l></a> - Juneau Server API Javadocs.
+	</ul>
+</div>
+
+
+<!-- ======================================================================================================== -->
+<a id="RestMicroservice"></a>
+<h2 class='topic' onclick='toggle(this)'>6 - RestMicroservice</h2>
+<div class='topic'>
+	<p>
+		The {@link org.apache.juneau.microservice.RestMicroservice} class is the main application entrypoint for REST microservices. 
+	</p>
+	<p>
+		The class hierarchy is:
+	</p>
+	<ul class='javahierarchy'>
+		<li class='a'>{@link org.apache.juneau.microservice.Microservice} - Abstract class that defines simple start/stop methods and access to the manifest file, config file, and arguments.
+			<ul>
+				<li class='c'>{@link org.apache.juneau.microservice.RestMicroservice} - Specialized microservice for starting up REST interfaces using Jetty and specifying REST servlets
+					through the manifest file or config file.
+			</ul>
+	</ul>
+	<p>
+		Refer to the Javadocs for these class for more information.
+	</p>
+	
+<!-- ======================================================================================================== -->
+	<a id="RestMicroservice_Extending"></a>
+	<h3 class='topic' onclick='toggle(this)'>6.1 - Extending RestMicroservice</h3>
+<div class='topic'>
+		<p>
+			This example shows how the {@link org.apache.juneau.microservice.RestMicroservice} class
+			can be extended to implement lifecycle listener methods or override existing methods.
+			We'll create a new class <l>com.ibm.SampleCustomRestMicroservice</l>.
+		</p>
+		<p>
+			First, the manifest file needs to be modified to point to our new microservice:
+		</p>
+		<p class='bcode'>
+	<mk>Main-Class:</mk> com.ibm.SampleCustomRestMicroservice
+		</p>
+		<p>
+			Then we define the following class:
+		</p>
+		<p class='bcode'>
+	<jd>/**
+	 * Sample subclass of a RestMicroservice that provides customized behavior.
+	 * This class must be specified in the Main-Class entry in the manifest file and optionally
+	 * 	a Main-ConfigFile entry.
+	 */</jd>
+	<jk>public class</jk> SampleCustomRestMicroservice <jk>extends</jk> RestMicroservice {
+	
+		<jd>/**
+		 * Must implement a main method and call start()!
+		 */</jd>
+		<jk>public static void</jk> main(String[] args) <jk>throws</jk> Exception {
+			<jk>new</jk> SampleCustomRestMicroservice(args).start();
+		}
+	
+		<jd>/**
+		 * Must implement a constructor!
+		 * 
+		 * <ja>@param</ja> args Command line arguments. 
+		 * <ja>@throws</ja> Exception 
+		 */</jd>
+		<jk>public</jk> SampleCustomRestMicroservice(String[] args) <jk>throws</jk> Exception {
+			<jk>super</jk>(args);
+		}
+	
+		<jc>//--------------------------------------------------------------------------------
+		// Methods on Microservice that can be overridden and customized.
+		//--------------------------------------------------------------------------------</jc>
+	
+		<ja>@Override</ja> <jc>/* Microservice */</jc>
+		<jk>protected void</jk> start() <jk>throws</jk> Exception {
+			<jk>super</jk>.start();
+		}
+	
+		<ja>@Override</ja> <jc>/* Microservice */</jc>
+		<jk>public void</jk> stop() {
+			<jk>super</jk>.stop();
+		}
+	
+		<ja>@Override</ja> <jc>/* Microservice */</jc>
+		<jk>public void</jk> kill() {
+			<jk>super</jk>.kill();
+		}
+	
+		<ja>@Override</ja> <jc>/* Microservice */</jc>
+		<jk>public void</jk> onStart() {
+			System.<jsf>err</jsf>.println(<js>"onStart() called!"</js>);
+		}
+	
+		<ja>@Override</ja> <jc>/* Microservice */</jc>
+		<jk>public void</jk> onStop() {
+			System.<jsf>err</jsf>.println(<js>"onStop() called!"</js>);
+		}
+	
+		<jc>//--------------------------------------------------------------------------------
+		// Methods on RestMicroservice that can be overridden and customized.
+		//--------------------------------------------------------------------------------</jc>
+	
+		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
+		<jk>protected void</jk> initLogging() <jk>throws</jk> Exception {
+			<jk>super</jk>.initLogging();
+		}
+	
+		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
+		<jk>protected</jk> Server createServer() <jk>throws</jk> Exception {
+			<jk>return super</jk>.createServer();
+		}
+	
+		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
+		<jk>protected void</jk> startServer() <jk>throws</jk> Exception {
+			<jk>super</jk>.startServer();
+		}
+	
+		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
+		<jk>protected void</jk> onCreateServer() {
+			System.<jsf>err</jsf>.println(<js>"onCreateServer() called!"</js>);
+		}
+	
+		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
+		<jk>protected void</jk> onStartServer() {
+			System.<jsf>err</jsf>.println(<js>"onStartServer() called!"</js>);
+		}
+	
+		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
+		<jk>protected void</jk> onPostStartServer() {
+			System.<jsf>err</jsf>.println(<js>"onPostStartServer() called!"</js>);
+		}
+	
+		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
+		<jk>protected void</jk> onStopServer() {
+			System.<jsf>err</jsf>.println(<js>"onStopServer() called!"</js>);
+		}
+	
+		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
+		<jk>protected void</jk> onPostStopServer() {
+			System.<jsf>err</jsf>.println(<js>"onPostStopServer() called!"</js>);
+		}
+	}
+		</p>
+	</div>	
+</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.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigEdit.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigEdit.html b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigEdit.html
new file mode 100755
index 0000000..1ae3a80
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigEdit.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML>
+<!--
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ ***************************************************************************************************************************/
+ -->
+<html>
+<head>
+	<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
+	<style type='text/css'>
+		@import '$R{servletURI}/style.css';
+	</style>
+</head>
+<body>
+	<h3 class='title'>$R{servletLabel}</h3>
+	<h5 class='description'>Edit config file</h5>
+	<p class='links'><a href='$R{requestParentURI}'>up</a> - <a href='$R{servletURI}?method=OPTIONS'>options</a></p>
+	<form id='form' action='$R{servletURI}' method='POST' enctype='application/x-www-form-urlencoded'>	
+		<div class='data'>
+			<table>
+				<tr><td colspan='2' align='right'><button type='submit'>Submit</button><button type='reset'>Reset</button></td></tr>
+				<tr><th colspan='2'>Contents</th></tr>
+				<tr><td colspan='2'><textarea name='contents' rows='40' cols='120' style='white-space: pre; word-wrap: normal; overflow-x: scroll;'>$A{contents}</textarea></td></tr>
+			</table>
+		</div>
+	</form>	
+</body>
+</html>
+

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java
new file mode 100755
index 0000000..eb70cae
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java
@@ -0,0 +1,187 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.resources;
+
+import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.html.HtmlDocSerializerContext.*;
+import static org.apache.juneau.server.annotation.VarCategory.*;
+
+import java.io.*;
+import java.util.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.ini.*;
+import org.apache.juneau.microservice.*;
+import org.apache.juneau.server.*;
+import org.apache.juneau.server.annotation.*;
+
+/**
+ * Shows contents of the microservice configuration file.
+ */
+@RestResource(
+	path="/config",
+	label="Configuration",
+	description="Contents of configuration file.",
+	properties={
+		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS',edit:'$R{servletURI}/edit'}"),
+	}
+)
+public class ConfigResource extends Resource {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * [GET /] - Show contents of config file.
+	 *
+	 * @return The config file.
+	 * @throws Exception
+	 */
+	@RestMethod(name="GET", path="/", description="Show contents of config file.")
+	public ConfigFile getConfigContents() throws Exception {
+		return getConfig();
+	}
+
+	/**
+	 * [GET /edit] - Show config file edit page.
+	 *
+	 * @param req The HTTP request.
+	 * @return The config file as a reader resource.
+	 * @throws Exception
+	 */
+	@RestMethod(name="GET", path="/edit", description="Show config file edit page.")
+	public ReaderResource getConfigEditPage(RestRequest req) throws Exception {
+		// Note that we don't want variables in the config file to be resolved,
+		// so we need to escape any $ characters we see.
+		req.setAttribute("contents", getConfig().toString().replaceAll("\\$", "\\\\\\$"));
+		return req.getReaderResource("ConfigEdit.html", true);
+	}
+
+	/**
+	 * [GET /{section}] - Show config file section.
+	 *
+	 * @param section The section name.
+	 * @return The config file section.
+	 * @throws Exception
+	 */
+	@RestMethod(name="GET", path="/{section}",
+		description="Show config file section.",
+		input={
+			@Var(category=ATTR, name="section", description="Section name.")
+		}
+	)
+	public ObjectMap getConfigSection(@Attr("section") String section) throws Exception {
+		return getSection(section);
+	}
+
+	/**
+	 * [GET /{section}/{key}] - Show config file entry.
+	 *
+	 * @param section The section name.
+	 * @param key The section key.
+	 * @return The value of the config file entry.
+	 * @throws Exception
+	 */
+	@RestMethod(name="GET", path="/{section}/{key}",
+		description="Show config file entry.",
+		input={
+			@Var(category=ATTR, name="section", description="Section name."),
+			@Var(category=ATTR, name="key", description="Entry name.")
+		}
+	)
+	public String getConfigEntry(@Attr("section") String section, @Attr("key") String key) throws Exception {
+		return getSection(section).getString(key);
+	}
+
+	/**
+	 * [POST /] - Sets contents of config file from a FORM post.
+	 *
+	 * @param contents The new contents of the config file.
+	 * @return The new config file contents.
+	 * @throws Exception
+	 */
+	@RestMethod(name="POST", path="/",
+		description="Sets contents of config file from a FORM post.",
+		input={
+			@Var(category=PARAM, name="contents", description="New contents in INI file format.")
+		}
+	)
+	public ConfigFile setConfigContentsFormPost(@Param("contents") String contents) throws Exception {
+		return setConfigContents(new StringReader(contents));
+	}
+
+	/**
+	 * [PUT /] - Sets contents of config file.
+	 *
+	 * @param contents The new contents of the config file.
+	 * @return The new config file contents.
+	 * @throws Exception
+	 */
+	@RestMethod(name="PUT", path="/",
+		description="Sets contents of config file.",
+		input={
+			@Var(category=CONTENT, description="New contents in INI file format.")
+		}
+	)
+	public ConfigFile setConfigContents(@Content Reader contents) throws Exception {
+		ConfigFile cf2 = ConfigMgr.DEFAULT.create().load(contents);
+		return getConfig().merge(cf2).save();
+	}
+
+	/**
+	 * [PUT /{section}] - Add or overwrite a config file section.
+	 *
+	 * @param section The section name.
+	 * @param contents The new contents of the config file section.
+	 * @return The new section.
+	 * @throws Exception
+	 */
+	@RestMethod(name="PUT", path="/{section}",
+		description="Add or overwrite a config file section.",
+		input={
+			@Var(category=ATTR, name="section", description="Section name."),
+			@Var(category=CONTENT, description="New contents for section as a simple map with string keys and values.")
+		}
+	)
+	public ObjectMap setConfigSection(@Attr("section") String section, @Content Map<String,String> contents) throws Exception {
+		getConfig().setSection(section, contents);
+		return getSection(section);
+	}
+
+	/**
+	 * [PUT /{section}/{key}] - Add or overwrite a config file entry.
+	 *
+	 * @param section The section name.
+	 * @param key The section key.
+	 * @param value The new value.
+	 * @return The new value.
+	 * @throws Exception
+	 */
+	@RestMethod(name="PUT", path="/{section}/{key}",
+		description="Add or overwrite a config file entry.",
+		input={
+			@Var(category=ATTR, name="section", description="Section name."),
+			@Var(category=ATTR, name="key", description="Entry name."),
+			@Var(category=CONTENT, description="New value as a string.")
+		}
+	)
+	public String setConfigSection(@Attr("section") String section, @Attr("key") String key, @Content String value) throws Exception {
+		getConfig().put(section, key, value, false);
+		return getSection(section).getString(key);
+	}
+
+	private ObjectMap getSection(String name) {
+		ObjectMap m = getConfig().getSectionMap(name);
+		if (m == null)
+			throw new RestException(SC_NOT_FOUND, "Section not found.");
+		return m;
+	}
+}


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextFactory.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextFactory.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextFactory.java
deleted file mode 100755
index e69a32b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextFactory.java
+++ /dev/null
@@ -1,454 +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;
-
-import static com.ibm.juno.core.BeanContextProperties.*;
-
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.locks.*;
-
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.ClassUtils.ClassComparator;
-
-/**
- * Factory class for creating instances of {@link BeanContext}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class BeanContextFactory extends Lockable {
-
-	//--------------------------------------------------------------------------------
-	// Static constants
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * The default package pattern exclusion list.
-	 * Any beans in packages in this list will not be considered beans.
-	 */
-	private static final String DEFAULT_NOTBEAN_PACKAGES =
-		"java.lang,java.lang.annotation,java.lang.ref,java.lang.reflect,java.io,java.net,java.nio.*,java.util.*";
-
-	/**
-	 * The default bean class exclusion list.
-	 * Anything in this list will not be considered beans.
-	 */
-	private static final Class<?>[] DEFAULT_NOTBEAN_CLASSES = {
-		Map.class,
-		Collection.class,
-		Reader.class,
-		Writer.class,
-		InputStream.class,
-		OutputStream.class,
-		Throwable.class
-	};
-
-	//--------------------------------------------------------------------------------
-	// Properties
-	//--------------------------------------------------------------------------------
-
-	boolean
-		beansRequireDefaultConstructor = false,
-		beansRequireSerializable = false,
-		beansRequireSettersForGetters = false,
-		beansRequireSomeProperties = true,
-		beanMapPutReturnsOldValue = false,
-		useInterfaceProxies = true,
-		ignoreUnknownBeanProperties = false,
-		ignoreUnknownNullBeanProperties = true,
-		ignorePropertiesWithoutSetters = true,
-		ignoreInvocationExceptionsOnGetters = false,
-		ignoreInvocationExceptionsOnSetters = false,
-		useJavaBeanIntrospector = false;
-
-	Set<String> notBeanPackages = new TreeSet<String>();
-	Set<Class<?>> notBeanClasses = newClassTreeSet();
-	Map<Class<?>,Class<?>> implClasses = newClassTreeMap();
-	Map<String,String> uriVars = new TreeMap<String,String>();
-	LinkedList<Class<?>> filters = new LinkedList<Class<?>>();
-	ClassLoader classLoader = null;
-
-	Visibility
-		beanConstructorVisibility = Visibility.PUBLIC,
-		beanClassVisibility = Visibility.PUBLIC,
-		beanFieldVisibility = Visibility.PUBLIC,
-		beanMethodVisibility = Visibility.PUBLIC;
-
-	// Optional default parser set by setDefaultParser().
-	ReaderParser defaultParser = null;
-
-	// Read-write lock for preventing acess to the getBeanContext() method while this factory is being modified.
-	private ReadWriteLock lock = new ReentrantReadWriteLock();
-
-	// Current BeanContext instance.
-	private BeanContext beanContext;
-
-	//--------------------------------------------------------------------------------
-	// Methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Default constructor.
-	 */
-	public BeanContextFactory() {
-		addNotBeanClasses(DEFAULT_NOTBEAN_CLASSES);
-		setProperty(BEAN_addNotBeanPackages, DEFAULT_NOTBEAN_PACKAGES);
-	}
-
-	/**
-	 * Creates and returns a {@link BeanContext} with settings currently specified on this factory class.
-	 * This method will return the same object until the factory settings are modified at which point
-	 * a new {@link BeanContext} will be constructed.
-	 *
-	 * @return The bean context object.
-	 */
-	public BeanContext getBeanContext() {
-		readLock();
-		try {
-			if (beanContext == null)
-				beanContext = new BeanContext(this);
-			return beanContext;
-		} finally {
-			readUnlock();
-		}
-	}
-
-	/**
-	 * Sets the default parser for this bean context.
-	 * <p>
-	 * The default parser is used in the following methods:
-	 * <ul>
-	 * 	<code>beanContext.newBeanMap(Bean.<jk>class</jk>).load(String)</code> - Used for parsing init properties.
-	 * 	<li>{@link BeanContext#convertToType(Object, ClassMeta)} - Used for converting strings to beans.
-	 * </ul>
-	 *
-	 * @param defaultParser The new default parser.
-	 * @return This object (for method chaining).
-	 */
-	public BeanContextFactory setDefaultParser(ReaderParser defaultParser) {
-		writeLock();
-		try {
-			this.defaultParser = defaultParser;
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Configuration property methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Sets a property on this context.
-	 * <p>
-	 * 	Refer to {@link BeanContextProperties} for a description of available properties.
-	 *
-	 * @param property The property whose value is getting changed.
-	 * @param value The new value.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public BeanContextFactory setProperty(String property, Object value) throws LockedException {
-		writeLock();
-		try {
-			// Note:  Have to use the default bean context to set these properties since calling
-			// convertToType will cause the cache object to be initialized.
-			BeanContext bc = BeanContext.DEFAULT;
-
-			if (property.equals(BEAN_beansRequireDefaultConstructor))
-				beansRequireDefaultConstructor = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_beansRequireSerializable))
-				beansRequireSerializable = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_beansRequireSettersForGetters))
-				beansRequireSettersForGetters = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_beansRequireSomeProperties))
-				beansRequireSomeProperties = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_beanMapPutReturnsOldValue))
-				beanMapPutReturnsOldValue = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_beanConstructorVisibility))
-				beanConstructorVisibility = Visibility.valueOf(value.toString());
-			else if (property.equals(BEAN_beanClassVisibility))
-				beanClassVisibility = Visibility.valueOf(value.toString());
-			else if (property.equals(BEAN_beanFieldVisibility))
-				beanFieldVisibility = Visibility.valueOf(value.toString());
-			else if (property.equals(BEAN_methodVisibility))
-				beanMethodVisibility = Visibility.valueOf(value.toString());
-			else if (property.equals(BEAN_useJavaBeanIntrospector))
-				useJavaBeanIntrospector = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_useInterfaceProxies))
-				useInterfaceProxies = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_ignoreUnknownBeanProperties))
-				ignoreUnknownBeanProperties = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_ignoreUnknownNullBeanProperties))
-				ignoreUnknownNullBeanProperties = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_ignorePropertiesWithoutSetters))
-				ignorePropertiesWithoutSetters = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_ignoreInvocationExceptionsOnGetters))
-				ignoreInvocationExceptionsOnGetters = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_ignoreInvocationExceptionsOnSetters))
-				ignoreInvocationExceptionsOnSetters = bc.convertToType(value, Boolean.class);
-			else if (property.equals(BEAN_addNotBeanPackages)) {
-				Set<String> set = new TreeSet<String>(notBeanPackages);
-				for (String s : value.toString().split(","))
-					set.add(s.trim());
-				notBeanPackages = set;
-			} else if (property.equals(BEAN_removeNotBeanPackages)) {
-				Set<String> set = new TreeSet<String>(notBeanPackages);
-				for (String s : value.toString().split(","))
-					set.remove(s.trim());
-				notBeanPackages = set;
-			}
-		} finally {
-			writeUnlock();
-		}
-		return this;
-	}
-
-	/**
-	 * Sets multiple properties on this context.
-	 * <p>
-	 * 	Refer to {@link BeanContextProperties} for a description of available properties.
-	 *
-	 * @param properties The properties to set.  Ignored if <jk>null</jk>.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public BeanContextFactory setProperties(ObjectMap properties) throws LockedException {
-		writeLock();
-		try {
-			if (properties != null)
-				for (Map.Entry<String,Object> e : properties.entrySet())
-					setProperty(e.getKey(), e.getValue());
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	/**
-	 * Adds an explicit list of Java classes to be excluded from consideration as being beans.
-	 *
-	 * @param classes One or more fully-qualified Java class names.
-	 * @return This object (for method chaining).
-	 */
-	public BeanContextFactory addNotBeanClasses(Class<?>...classes) {
-		writeLock();
-		try {
-			this.notBeanClasses.addAll(Arrays.asList(classes));
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	/**
-	 * Add filters to this context.
-	 * <p>
-	 * 	There are two category of classes that can be passed in through this method:
-	 * <ul>
-	 * 	<li>Subclasses of {@link PojoFilter} and {@link BeanFilter}.
-	 * 	<li>Any other class.
-	 * </ul>
-	 * <p>
-	 * 	When <code>IFilter</code> classes are specified, they identify objects that need to be
-	 * 		transformed into some other type during serialization (and optionally the reverse during parsing).
-	 * <p>
-	 * 	When non-<code>IFilter</code> classes are specified, they are wrapped inside {@link BeanFilter BeanFilters}.
-	 * 	For example, if you have an interface <code>IFoo</code> and a subclass <code>Foo</code>, and you
-	 * 		only want properties defined on <code>IFoo</code> to be visible as bean properties for <code>Foo</code> objects,
-	 * 		you can simply pass in <code>IFoo.<jk>class</jk></code> to this method.
-	 * <p>
-	 * 	The following code shows the order in which filters are applied:
-	 * <p class='bcode'>
-	 * 	<jc>// F3,F4,F1,F2</jc>
-	 * 	beanContext.addFilters(F1.<jk>class</jk>,F2.<jk>class</jk>);
-	 * 	beanContext.addFilters(F3.<jk>class</jk>,F4.<jk>class</jk>);
-	 * </p>
-	 *
-	 * @param classes One or more classes to add as filters to this context.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public BeanContextFactory addFilters(Class<?>...classes) throws LockedException {
-		writeLock();
-		try {
-			classes = Arrays.copyOf(classes, classes.length); // Copy array to prevent modification!
-			Collections.reverse(Arrays.asList(classes));
-			for (Class<?> c : classes)
-				filters.addFirst(c);
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	/**
-	 * Specifies an implementation class for an interface or abstract class.
-	 * <p>
-	 * 	For interfaces and abstract classes this method can be used to specify an implementation
-	 * 	class for the interface/abstract class so that instances of the implementation
-	 * 	class are used when instantiated (e.g. during a parse).
-	 *
-	 * @param <T> The interface class.
-	 * @param interfaceClass The interface class.
-	 * @param implClass The implementation of the interface class.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public <T> BeanContextFactory addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		writeLock();
-		try {
-			this.implClasses.put(interfaceClass, implClass);
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	/**
-	 * Specifies the classloader to use when resolving classes, usually <js>"_class"</js> attributes.
-	 * <p>
-	 * 	Can be used for resolving class names when the classes being created are in a different
-	 * 	classloader from the Juno code.
-	 * <p>
-	 * 	If <jk>null</jk>, <code>Class.forName(String)</code> will be used to resolve classes.
-	 *
-	 * @param classLoader The new classloader.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public BeanContextFactory setClassLoader(ClassLoader classLoader) throws LockedException {
-		writeLock();
-		try {
-			this.classLoader = classLoader;
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods on Lockable
-	//--------------------------------------------------------------------------------
-
-	@Override /* Lockable */
-	public BeanContextFactory lock() {
-		if (! isLocked()) {
-			writeLock();
-			super.lock();
-			try {
-				notBeanPackages = Collections.unmodifiableSet(notBeanPackages);
-				notBeanClasses = Collections.unmodifiableSet(notBeanClasses);
-				implClasses = Collections.unmodifiableMap(implClasses);
-				uriVars = Collections.unmodifiableMap(uriVars);
-			} finally {
-				writeUnlock();
-			}
-		}
-		return this;
-	}
-
-	private void writeLock() {
-		checkLock();
-		lock.writeLock().lock();
-		beanContext = null;
-	}
-
-	private void writeUnlock() {
-		lock.writeLock().unlock();
-	}
-
-	private void readLock() {
-		lock.readLock().lock();
-	}
-
-	private void readUnlock() {
-		lock.readLock().unlock();
-	}
-
-	@Override /* Lockable */
-	public synchronized BeanContextFactory clone() {
-		try {
-			return (BeanContextFactory)super.clone();
-		} catch (CloneNotSupportedException e) {
-			throw new RuntimeException(e); // Shouldn't happen.
-		}
-	}
-
-	@Override /* Lockable */
-	public void onUnclone() {
-		readLock();
-		try {
-			notBeanPackages = new LinkedHashSet<String>(notBeanPackages);
-			filters = new LinkedList<Class<?>>(filters);
-			notBeanClasses = newClassTreeSet(notBeanClasses);
-			implClasses = newClassTreeMap(implClasses);
-			uriVars = new TreeMap<String,String>(uriVars);
-			beanContext = null;
-		} finally {
-			readUnlock();
-		}
-	}
-
-	@Override /* Object */
-	public String toString() {
-		readLock();
-		try {
-			ObjectMap m = new ObjectMap()
-				.append("id", System.identityHashCode(this))
-				.append("beansRequireDefaultConstructor", beansRequireDefaultConstructor)
-				.append("beansRequireSerializable", beansRequireSerializable)
-				.append("beansRequireSettersForGetters", beansRequireSettersForGetters)
-				.append("beansRequireSomeProperties", beansRequireSomeProperties)
-				.append("beanMapPutReturnsOldValue", beanMapPutReturnsOldValue)
-				.append("useInterfaceProxies", useInterfaceProxies)
-				.append("ignoreUnknownBeanProperties", ignoreUnknownBeanProperties)
-				.append("ignoreUnknownNullBeanProperties", ignoreUnknownNullBeanProperties)
-				.append("ignorePropertiesWithoutSetters", ignorePropertiesWithoutSetters)
-				.append("ignoreInvocationExceptionsOnGetters", ignoreInvocationExceptionsOnGetters)
-				.append("ignoreInvocationExceptionsOnSetters", ignoreInvocationExceptionsOnSetters)
-				.append("useJavaBeanIntrospector", useJavaBeanIntrospector)
-				.append("filters", filters)
-				.append("notBeanPackages", notBeanPackages)
-				.append("notBeanClasses", notBeanClasses)
-				.append("implClasses", implClasses)
-				.append("uriVars", uriVars);
-			return m.toString(JsonSerializer.DEFAULT_LAX_READABLE);
-		} catch (SerializeException e) {
-			return e.getLocalizedMessage();
-		} finally {
-			readUnlock();
-		}
-	}
-
-	private TreeMap<Class<?>,Class<?>> newClassTreeMap(Map<Class<?>,Class<?>> m) {
-		TreeMap<Class<?>,Class<?>> tm = newClassTreeMap();
-		tm.putAll(m);
-		return tm;
-	}
-
-	private TreeMap<Class<?>,Class<?>> newClassTreeMap() {
-		return new TreeMap<Class<?>,Class<?>>(new ClassComparator());
-	}
-
-	private TreeSet<Class<?>> newClassTreeSet(Set<Class<?>> s) {
-		TreeSet<Class<?>> ts = newClassTreeSet();
-		ts.addAll(s);
-		return ts;
-	}
-
-	private TreeSet<Class<?>> newClassTreeSet() {
-		return new TreeSet<Class<?>>(new ClassComparator());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextProperties.class
deleted file mode 100755
index 652c6b4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextProperties.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/BeanContextProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextProperties.java
deleted file mode 100755
index 4edaf17..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContextProperties.java
+++ /dev/null
@@ -1,188 +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;
-
-import java.beans.*;
-import java.io.*;
-import java.lang.reflect.*;
-
-import com.ibm.juno.core.annotation.*;
-
-/**
- * Configurable properties on the {@link BeanContextFactory} class.
- * <p>
- * 	Use the {@link BeanContextFactory#setProperty(String, Object)} method to set properties on
- * 	bean contexts.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class BeanContextProperties {
-
-	/**
-	 * Require no-arg constructor ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, a Java class must implement a default no-arg constructor to be considered a bean.
-	 * <p>
-	 * The {@link Bean @Bean} annotation can be used on a class to override this setting when <jk>true</jk>.
-	 */
-	public static final String BEAN_beansRequireDefaultConstructor = "BeanContext.beansRequireDefaultConstructor";
-
-	/**
-	 * Require {@link Serializable} interface ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, a Java class must implement the {@link Serializable} interface to be considered a bean.
-	 * <p>
-	 * The {@link Bean @Bean} annotation can be used on a class to override this setting when <jk>true</jk>.
-	 */
-	public static final String BEAN_beansRequireSerializable = "BeanContext.beansRequireSerializable";
-
-	/**
-	 * Require setters for getters ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, only getters that have equivalent setters will be considered as properties on a bean.
-	 * Otherwise, they will be ignored.
-	 */
-	public static final String BEAN_beansRequireSettersForGetters = "BeanContext.beansRequireSettersForGetters";
-
-	/**
-	 * Require some properties ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * If <jk>true</jk>, then a Java class must contain at least 1 property to be considered a bean.
-	 * <p>
-	 * The {@link Bean @Bean} annotation can be used on a class to override this setting when <jk>true</jk>.
-	 */
-	public static final String BEAN_beansRequireSomeProperties = "BeanContext.beansRequireSomeProperties";
-
-	/**
-	 * Put returns old value ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, then the {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property values.
-	 * <p>
-	 * Disabled by default because it introduces a slight performance penalty.
-	 */
-	public static final String BEAN_beanMapPutReturnsOldValue = "BeanContext.beanMapPutReturnsOldValue";
-
-	/**
-	 * Look for bean constructors with the specified minimum visibility ({@link Visibility}, default={@link Visibility#PUBLIC}).
-	 */
-	public static final String BEAN_beanConstructorVisibility = "BeanContext.beanConstructorVisibility";
-
-	/**
-	 * Look for bean classes with the specified minimum visibility ({@link Visibility}, default={@link Visibility#PUBLIC}).
-	 * <p>
-	 * Classes are not considered beans unless they meet the minimum visibility requirements.
-	 * For example, if the visibility is <code>PUBLIC</code> and the bean class is <jk>protected</jk>, then
-	 * 	the class will not be interpreted as a bean class.
-	 */
-	public static final String BEAN_beanClassVisibility = "BeanContext.beanClassVisibility";
-
-	/**
-	 * Look for bean fields with the specified minimum visibility ({@link Visibility}, default={@link Visibility#PUBLIC}).
-	 * <p>
-	 * Fields are not considered bean properties unless they meet the minimum visibility requirements.
-	 * For example, if the visibility is <code>PUBLIC</code> and the bean field is <jk>protected</jk>, then
-	 * 	the field will not be interpreted as a bean property.
-	 * <p>
-	 * Use {@link Visibility#NONE} to prevent bean fields from being interpreted as bean properties altogether.
-	 */
-	public static final String BEAN_beanFieldVisibility = "BeanContext.beanFieldVisibility";
-
-	/**
-	 * Look for bean methods with the specified minimum visibility ({@link Visibility}, default={@link Visibility#PUBLIC}).
-	 * <p>
-	 * Methods are not considered bean getters/setters unless they meet the minimum visibility requirements.
-	 * For example, if the visibility is <code>PUBLIC</code> and the bean method is <jk>protected</jk>, then
-	 * 	the method will not be interpreted as a bean getter or setter.
-	 */
-	public static final String BEAN_methodVisibility = "BeanContext.methodVisibility";
-
-	/**
-	 * Use Java {@link Introspector} for determining bean properties ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * Using the built-in Java bean introspector will not pick up fields or non-standard getters/setters.
-	 * Most {@link Bean @Bean} annotations will be ignored.
-	 */
-	public static final String BEAN_useJavaBeanIntrospector = "BeanContext.useJavaBeanIntrospector";
-
-	/**
-	 * Use interface proxies ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * If <jk>true</jk>, then interfaces will be instantiated as proxy classes through the use of an {@link InvocationHandler}
-	 * if there is no other way of instantiating them.
-	 */
-	public static final String BEAN_useInterfaceProxies = "BeanContext.useInterfaceProxies";
-
-	/**
-	 * Ignore unknown properties ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, trying to set a value on a non-existent bean property will silently be ignored.
-	 * Otherwise, a {@code RuntimeException} is thrown.
-	 */
-	public static final String BEAN_ignoreUnknownBeanProperties = "BeanContext.ignoreUnknownBeanProperties";
-
-	/**
-	 * Ignore unknown properties with null values ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * If <jk>true</jk>, trying to set a <jk>null</jk> value on a non-existent bean property will silently be ignored.
-	 * Otherwise, a {@code RuntimeException} is thrown.
-	 */
-	public static final String BEAN_ignoreUnknownNullBeanProperties = "BeanContext.ignoreUnknownNullBeanProperties";
-
-	/**
-	 * Ignore properties without setters ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * If <jk>true</jk>, trying to set a value on a bean property without a setter will silently be ignored.
-	 * Otherwise, a {@code RuntimeException} is thrown.
-	 */
-	public static final String BEAN_ignorePropertiesWithoutSetters = "BeanContext.ignorePropertiesWithoutSetters";
-
-	/**
-	 * Ignore invocation errors on getters ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, errors thrown when calling bean getter methods will silently be ignored.
-	 * Otherwise, a {@code BeanRuntimeException} is thrown.
-	 */
-	public static final String BEAN_ignoreInvocationExceptionsOnGetters = "BeanContext.ignoreInvocationExceptionsOnGetters";
-
-	/**
-	 * Ignore invocation errors on setters ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, errors thrown when calling bean setter methods will silently be ignored.
-	 * Otherwise, a {@code BeanRuntimeException} is thrown.
-	 */
-	public static final String BEAN_ignoreInvocationExceptionsOnSetters = "BeanContext.ignoreInvocationExceptionsOnSetters";
-
-	/**
-	 * Add to the list of packages whose classes should not be considered beans ({@link String}, comma-delimited list).
-	 * <p>
-	 * When specified, the current list of ignore packages are appended to.
-	 * The default list of ignore packages are as follows:
-	 * <ul>
-	 * 	<li><code>java.lang</code>
-	 * 	<li><code>java.lang.annotation</code>
-	 * 	<li><code>java.lang.ref</code>
-	 * 	<li><code>java.lang.reflect</code>
-	 * 	<li><code>java.io</code>
-	 * 	<li><code>java.net</code>
-	 * 	<li><code>java.nio.*</code>
-	 * 	<li><code>java.util.*</code>
-	 * </ul>
-	 * Any classes within these packages will be serialized to strings using {@link Object#toString()}.
-	 * <p>
-	 * Note that you can specify prefix patterns to include all subpackages.
-	 */
-	public static final String BEAN_addNotBeanPackages = "BeanContext.addNotBeanPackages";
-
-	/**
-	 * Remove from the list of packages whose classes should not be considered beans ({@link String}, comma-delimited list).
-	 * <p>
-	 * Essentially the opposite of {@link #BEAN_addNotBeanPackages}.
-	 */
-	public static final String BEAN_removeNotBeanPackages = "BeanContext.removeNotBeanPackages";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap$1$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap$1$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap$1$1.class
deleted file mode 100755
index a16cbe6..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap$1$1.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/BeanMap$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap$1.class
deleted file mode 100755
index f6be25f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap$1.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/BeanMap.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap.class
deleted file mode 100755
index 61512ad..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap.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/BeanMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap.java
deleted file mode 100755
index 8aa1fb5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMap.java
+++ /dev/null
@@ -1,461 +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;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Java bean wrapper class.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	A wrapper that wraps Java bean instances inside of a {@link Map} interface that allows
- * 	properties on the wrapped object can be accessed using the {@link Map#get(Object) get()} and {@link Map#put(Object,Object) put()} methods.
- * <p>
- * 	Use the {@link BeanContext} class to create instances of this class.
- *
- *
- * <h6 class='topic'>Bean property order</h6>
- * <p>
- * 	The order of the properties returned by the {@link Map#keySet() keySet()} and {@link Map#entrySet() entrySet()} methods are as follows:
- * 	<ul>
- * 		<li>If {@link Bean @Bean} annotation is specified on class, then the order is the same as the list of properties in the annotation.
- * 		<li>If {@link Bean @Bean} annotation is not specified on the class, then the order is the same as that returned
- * 			by the {@link java.beans.BeanInfo} class (i.e. ordered by definition in the class).
- * 	</ul>
- * 	<br>
- * 	The order can also be overridden through the use of a {@link BeanFilter}.
- *
- *
- * <h6 class='topic'>POJO filters</h6>
- * <p>
- * 	If {@link PojoFilter PojoFilters} are defined on the class types of the properties of this bean or the bean properties themselves, the
- * 	{@link #get(Object)} and {@link #put(Object, Object)} methods will automatically
- * 	transform the property value to and from the serialized form.
- *
- * @author Barry M. Caceres
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> Specifies the type of object that this map encapsulates.
- */
-public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T> {
-
-	/** The wrapped object. */
-	protected T bean;
-
-	/** Temporary holding cache for beans with read-only properties.  Normally null. */
-	protected Map<String,Object> propertyCache;
-
-	/** Temporary holding cache for bean properties of array types when the add() method is being used. */
-	protected Map<String,List<?>> arrayPropertyCache;
-
-	/** The BeanMeta associated with the class of the object. */
-	protected BeanMeta<T> meta;
-
-	/**
-	 * Instance of this class are instantiated through the BeanContext class.
-	 *
-	 * @param bean The bean to wrap inside this map.
-	 * @param meta The metadata associated with the bean class.
-	 */
-	protected BeanMap(T bean, BeanMeta<T> meta) {
-		this.bean = bean;
-		this.meta = meta;
-		if (meta.constructorArgs.length > 0)
-			propertyCache = new TreeMap<String,Object>();
-	}
-
-	/**
-	 * Returns the metadata associated with this bean map.
-	 *
-	 * @return The metadata associated with this bean map.
-	 */
-	public BeanMeta<T> getMeta() {
-		return meta;
-	}
-
-	/**
-	 * Returns the wrapped bean object.
-	 * Triggers bean creation if bean has read-only properties set through a constructor
-	 * 	defined by the {@link BeanConstructor} annotation.
-	 *
-	 * @return The inner bean object.
-	 */
-	public T getBean() {
-		T b = getBean(true);
-
-		// If we have any arrays that need to be constructed, do it now.
-		if (arrayPropertyCache != null) {
-			for (Map.Entry<String,List<?>> e : arrayPropertyCache.entrySet()) {
-				String key = e.getKey();
-				List<?> value = e.getValue();
-				BeanPropertyMeta<T> bpm = getPropertyMeta(key);
-				try {
-					bpm.setArray(b, value);
-				} catch (Exception e1) {
-					throw new RuntimeException(e1);
-				}
-			}
-			arrayPropertyCache = null;
-		}
-		return b;
-	}
-
-	/**
-	 * Returns the wrapped bean object.
-	 * <p>
-	 * If <code>create</code> is <jk>false</jk>, then this method may return <jk>null</jk>
-	 * 	if the bean has read-only properties set through a constructor
-	 * 	defined by the {@link BeanConstructor} annotation.
-	 * <p>
-	 * This method does NOT always return the bean in it's final state.
-	 * 	Array properties temporary stored as ArrayLists are not finalized
-	 * 	until the {@link #getBean()} method is called.
-	 *
-	 * @param create If bean hasn't been instantiated yet, then instantiate it.
-	 * @return The inner bean object.
-	 */
-	public T getBean(boolean create) {
-		/** If this is a read-only bean, then we need to create it. */
-		if (bean == null && create && meta.constructorArgs.length > 0) {
-			String[] props = meta.constructorArgs;
-			Constructor<T> c = meta.constructor;
-			Object[] args = new Object[props.length];
-			for (int i = 0; i < props.length; i++)
-				args[i] = propertyCache.remove(props[i]);
-			try {
-				bean = c.newInstance(args);
-				for (Map.Entry<String,Object> e : propertyCache.entrySet())
-					put(e.getKey(), e.getValue());
-				propertyCache = null;
-			} catch (Exception e) {
-				throw new BeanRuntimeException(e);
-			}
-		}
-		return bean;
-	}
-
-	/**
-	 * Returns the value of the property identified as the URI property (annotated with {@link BeanProperty#beanUri()} as <jk>true</jk>).
-	 *
-	 * @return The URI value, or <jk>null</jk> if no URI property exists on this bean.
-	 */
-	public Object getBeanUri() {
-		BeanMeta<T> bm = getMeta();
-		return bm.hasBeanUriProperty() ? bm.getBeanUriProperty().get(this) : null;
-	}
-
-	/**
-	 * Sets the bean URI property if the bean has a URI property.
-	 * Ignored otherwise.
-	 *
-	 * @param o The bean URI object.
-	 * @return If the bean context setting {@code beanMapPutReturnsOldValue} is <jk>true</jk>, then the old value of the property is returned.
-	 * 		Otherwise, this method always returns <jk>null</jk>.
-	 */
-	public Object putBeanUri(Object o) {
-		BeanMeta<T> bm = getMeta();
-		return bm.hasBeanUriProperty() ? bm.getBeanUriProperty().set(this, o) : null;
-	}
-
-	/**
-	 * Sets a property on the bean.
-	 * <p>
-	 * If there is a {@link PojoFilter} associated with this bean property or bean property type class, then 
-	 * 	you must pass in a filtered value.
-	 * For example, if the bean property type class is a {@link Date} and the bean property has the 
-	 * 	{@link com.ibm.juno.core.filters.DateFilter.ISO8601DT} filter associated with it through the 
-	 * 	{@link BeanProperty#filter() @BeanProperty.filter()} annotation, the value being passed in must be 
-	 * 	a String containing an ISO8601 date-time string value. 
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Construct a bean with a 'birthDate' Date field</jc>
-	 * 	Person p = <jk>new</jk> Person();
-	 *
-	 * 	<jc>// Create a bean context and add the ISO8601 date-time filter</jc>
-	 * 	BeanContext beanContext = <jk>new</jk> BeanContext().addFilter(DateFilter.ISO8601DT.<jk>class</jk>);
-	 *
-	 * 	<jc>// Wrap our bean in a bean map</jc>
-	 * 	BeanMap&lt;Person&gt; b = beanContext.forBean(p);
-	 *
-	 * 	<jc>// Set the field</jc>
-	 * 	myBeanMap.put(<js>"birthDate"</js>, <js>"'1901-03-03T04:05:06-5000'"</js>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param property The name of the property to set.
-	 * @param value The value to set the property to.
-	 * @return If the bean context setting {@code beanMapPutReturnsOldValue} is <jk>true</jk>, then the old value of the property is returned.
-	 * 		Otherwise, this method always returns <jk>null</jk>.
-	 * @throws RuntimeException if any of the following occur.
-	 * 	<ul>
-	 * 		<li>BeanMapEntry does not exist on the underlying object.
-	 * 		<li>Security settings prevent access to the underlying object setter method.
-	 * 		<li>An exception occurred inside the setter method.
-	 * 	</ul>
-	 */
-	@Override /* Map */
-	public Object put(String property, Object value) {
-		BeanPropertyMeta<T> p = meta.properties.get(property);
-		if (p == null) {
-			if (meta.ctx.ignoreUnknownBeanProperties)
-				return null;
-			if (property.equals("<uri>") && meta.uriProperty != null)
-				return meta.uriProperty.set(this, value);
-
-			// If this bean has subtypes, and we haven't set the subtype yet,
-			// store the property in a temporary cache until the bean can be instantiated.
-			// This eliminates the need for requiring that the sub type attribute be provided first.
-			if (meta.subTypeIdProperty != null) {
-				if (propertyCache == null)
-					propertyCache = new TreeMap<String,Object>();
-				return propertyCache.put(property, value);
-			}
-
-			throw new BeanRuntimeException(meta.c, "Bean property ''{0}'' not found.", property);
-		}
-		if (meta.filter != null)
-			if (meta.filter.writeProperty(this.bean, property, value))
-				return null;
-		return p.set(this, value);
-	}
-
-	/**
-	 * Add a value to a collection or array property.
-	 * <p>
-	 * 	As a general rule, adding to arrays is not recommended since the array must be recreate each time
-	 * 	this method is called.
-	 *
-	 * @param property Property name or child-element name (if {@link Xml#childName()} is specified).
-	 * @param value The value to add to the collection or array.
-	 */
-	public void add(String property, Object value) {
-		BeanPropertyMeta<T> p = meta.properties.get(property);
-		if (p == null) {
-			if (meta.ctx.ignoreUnknownBeanProperties)
-				return;
-			throw new BeanRuntimeException(meta.c, "Bean property ''{0}'' not found.", property);
-		}
-		p.add(this, value);
-	}
-
-
-	/**
-	 * Gets a property on the bean.
-	 * <p>
-	 * If there is a {@link PojoFilter} associated with this bean property or bean property type class, then 
-	 * 	this method will return the filtered value.
-	 * For example, if the bean property type class is a {@link Date} and the bean property has the 
-	 * 	{@link com.ibm.juno.core.filters.DateFilter.ISO8601DT} filter associated with it through the 
-	 * 	{@link BeanProperty#filter() @BeanProperty.filter()} annotation, this method will return a String 
-	 * 	containing an ISO8601 date-time string value. 
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Construct a bean with a 'birthDate' Date field</jc>
-	 * 	Person p = <jk>new</jk> Person();
-	 * 	p.setBirthDate(<jk>new</jk> Date(1, 2, 3, 4, 5, 6));
-	 *
-	 * 	<jc>// Create a bean context and add the ISO8601 date-time filter</jc>
-	 * 	BeanContext beanContext = <jk>new</jk> BeanContext().addFilter(DateFilter.ISO8601DT.<jk>class</jk>);
-	 *
-	 * 	<jc>// Wrap our bean in a bean map</jc>
-	 * 	BeanMap&lt;Person&gt; b = beanContext.forBean(p);
-	 *
-	 * 	<jc>// Get the field as a string (i.e. "'1901-03-03T04:05:06-5000'")</jc>
-	 * 	String s = myBeanMap.get(<js>"birthDate"</js>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param property The name of the property to get.
-	 * @throws RuntimeException if any of the following occur.
-	 * 	<ol>
-	 * 		<li>BeanMapEntry does not exist on the underlying object.
-	 * 		<li>Security settings prevent access to the underlying object getter method.
-	 * 		<li>An exception occurred inside the getter method.
-	 * 	</ol>
-	 */
-	@Override /* Map */
-	public Object get(Object property) {
-		BeanPropertyMeta<T> p = meta.properties.get(property);
-		if (p == null)
-			return null;
-		if (meta.filter != null && property != null)
-			return meta.filter.readProperty(this.bean, property.toString(), p.get(this));
-		return p.get(this);
-	}
-
-	/**
-	 * Convenience method for setting multiple property values by passing in JSON (or other) text.
-	 * <p>
-	 * Typically the input is going to be JSON, although the actual data type
-	 * 	depends on the default parser specified by the {@link BeanContextFactory#setDefaultParser(ReaderParser)} method
-	 * 	on the bean context that created this map.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	aPersonBean.load(<js>"{name:'John Smith',age:21}"</js>)
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param input The text that will get parsed into a map and then added to this map.
-	 * @return This object (for method chaining).
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 */
-	public BeanMap<T> load(String input) throws ParseException {
-		putAll(new ObjectMap(input, this.meta.ctx.defaultParser));
-		return this;
-	}
-
-	/**
-	 * Convenience method for setting multiple property values by passing in a reader.
-	 *
-	 * @param r The text that will get parsed into a map and then added to this map.
-	 * @param p The parser to use to parse the text.
-	 * @return This object (for method chaining).
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 * @throws IOException Thrown by <code>Reader</code>.
-	 */
-	public BeanMap<T> load(Reader r, ReaderParser p) throws ParseException, IOException {
-		putAll(new ObjectMap(r, p));
-		return this;
-	}
-
-	/**
-	 * Convenience method for loading this map with the contents of the specified map.
-	 * <p>
-	 * Identical to {@link #putAll(Map)} except as a fluent-style method.
-	 *
-	 * @param entries The map containing the entries to add to this map.
-	 * @return This object (for method chaining).
-	 */
-	@SuppressWarnings({"unchecked","rawtypes"})
-	public BeanMap<T> load(Map entries) {
-		putAll(entries);
-		return this;
-	}
-
-	/**
-	 * Returns the names of all properties associated with the bean.
-	 * <p>
-	 * 	The returned set is unmodifiable.
-	 */
-	@Override /* Map */
-	public Set<String> keySet() {
-		return meta.properties.keySet();
-	}
-
-	/**
-	 * Returns the specified property on this bean map.
-	 * <p>
-	 * 	Allows you to get and set an individual property on a bean without having a
-	 * 	handle to the bean itself by using the {@link BeanMapEntry#getValue()}
-	 * 	and {@link BeanMapEntry#setValue(Object)} methods.
-	 * <p>
-	 * 	This method can also be used to get metadata on a property by
-	 * 	calling the {@link BeanMapEntry#getMeta()} method.
-	 *
-	 * @param propertyName The name of the property to look up.
-	 * @return The bean property, or null if the bean has no such property.
-	 */
-	public BeanMapEntry<T> getProperty(String propertyName) {
-		BeanPropertyMeta<T> p = meta.properties.get(propertyName);
-		if (p == null)
-			return null;
-		return new BeanMapEntry<T>(this, p);
-	}
-
-	/**
-	 * Returns the metadata on the specified property.
-	 *
-	 * @param propertyName The name of the bean property.
-	 * @return Metadata on the specified property, or <jk>null</jk> if that property does not exist.
-	 */
-	public BeanPropertyMeta<T> getPropertyMeta(String propertyName) {
-		return meta.properties.get(propertyName);
-	}
-
-	/**
-	 * Returns the {@link ClassMeta} of the wrapped bean.
-	 *
-	 * @return The class type of the wrapped bean.
-	 */
-	@Override /* Delagate */
-	public ClassMeta<T> getClassMeta() {
-		return this.meta.getClassMeta();
-	}
-
-	/**
-	 * Returns all the properties associated with the bean.
-	 */
-	@Override /* Map */
-	public Set<Entry<String,Object>> entrySet() {
-
-		// Construct our own anonymous set to implement this function.
-		Set<Entry<String,Object>> s = new AbstractSet<Entry<String,Object>>() {
-
-			// Get the list of properties from the meta object.
-			// Note that the HashMap.values() method caches results, so this collection
-			// will really only be constructed once per bean type since the underlying
-			// map never changes.
-			final Collection<BeanPropertyMeta<T>> pSet = meta.properties.values();
-
-			@Override /* Set */
-			public Iterator<java.util.Map.Entry<String, Object>> iterator() {
-
-				// Construct our own anonymous iterator that uses iterators against the meta.properties
-				// map to maintain position.  This prevents us from having to construct any of our own
-				// collection objects.
-				return new Iterator<Entry<String,Object>>() {
-
-					final Iterator<BeanPropertyMeta<T>> pIterator = pSet.iterator();
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return pIterator.hasNext();
-					}
-
-					@Override /* Iterator */
-					public Map.Entry<String, Object> next() {
-						return new BeanMapEntry<T>(BeanMap.this, pIterator.next());
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						throw new UnsupportedOperationException("Cannot remove item from iterator.");
-					}
-				};
-			}
-
-			@Override /* Set */
-			public int size() {
-				return pSet.size();
-			}
-		};
-
-		return s;
-	}
-}
\ 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/BeanMapEntry.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMapEntry.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMapEntry.class
deleted file mode 100755
index eb1afcc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMapEntry.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/BeanMapEntry.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMapEntry.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMapEntry.java
deleted file mode 100755
index c502776..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMapEntry.java
+++ /dev/null
@@ -1,121 +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;
-
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-
-/**
- * Represents a single entry in a bean map.
- * <p>
- * 	This class can be used to get and set property values on a bean, or to get metadata on a property.
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Construct a new bean</jc>
- * 	Person p = <jk>new</jk> Person();
- *
- * 	<jc>// Wrap it in a bean map</jc>
- * 	BeanMap&lt;Person&gt; b = BeanContext.<jsf>DEFAULT</jsf>.forBean(p);
- *
- * 	<jc>// Get a reference to the birthDate property</jc>
- * 	BeanMapEntry birthDate = b.getProperty(<js>"birthDate"</js>);
- *
- * 	<jc>// Set the property value</jc>
- * 	birthDate.setValue(<jk>new</jk> Date(1, 2, 3, 4, 5, 6));
- *
- * 	<jc>// Or if the DateFilter.DEFAULT_ISO8601DT is registered with the bean context, set a filtered value</jc>
- * 	birthDate.setFilteredValue(<js>"'1901-03-03T04:05:06-5000'"</js>);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- *
- * @param <T> The bean type.
- */
-public class BeanMapEntry<T> implements Map.Entry<String,Object> {
-	private final BeanMap<T> beanMap;
-	private final BeanPropertyMeta<T> meta;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param beanMap The bean map that this entry belongs to.
-	 * @param property The bean property.
-	 */
-	protected BeanMapEntry(BeanMap<T> beanMap, BeanPropertyMeta<T> property) {
-		this.beanMap = beanMap;
-		this.meta = property;
-	}
-
-	@Override /* Map.Entry */
-	public String getKey() {
-		return meta.getName();
-	}
-
-	/**
-	 * Returns the value of this property.
-	 * <p>
-	 * If there is a {@link PojoFilter} associated with this bean property or bean property type class, then
-	 * 	this method will return the filtered value.
-	 * For example, if the bean property type class is a {@link Date} and the bean property has the
-	 * 	{@link com.ibm.juno.core.filters.DateFilter.ISO8601DT} filter associated with it through the
-	 * 	{@link BeanProperty#filter() @BeanProperty.filter()} annotation, this method will return a String
-	 * 	containing an ISO8601 date-time string value.
-	 */
-	@Override /* Map.Entry */
-	public Object getValue() {
-		return meta.get(this.beanMap);
-	}
-
-	/**
-	 * Sets the value of this property.
-	 * <p>
-	 * If the property is an array of type {@code X}, then the value can be a {@code Collection<X>} or {@code X[]} or {@code Object[]}.
-	 * <p>
-	 * If the property is a bean type {@code X}, then the value can either be an {@code X} or a {@code Map}.
-	 * <p>
-	 * If there is a {@link PojoFilter} associated with this bean property or bean property type class, then
-	 * 	you must pass in a filtered value.
-	 * For example, if the bean property type class is a {@link Date} and the bean property has the
-	 * 	{@link com.ibm.juno.core.filters.DateFilter.ISO8601DT} filter associated with it through the
-	 * 	{@link BeanProperty#filter() @BeanProperty.filter()} annotation, the value being passed in must be
-	 * 	a String containing an ISO8601 date-time string value.
-	 *
-	 * @return  The set value after it's been converted.
-	 */
-	@Override /* Map.Entry */
-	public Object setValue(Object value) {
-		return meta.set(this.beanMap, value);
-	}
-
-	/**
-	 * Returns the bean map that contains this property.
-	 *
-	 * @return The bean map that contains this property.
-	 */
-	public BeanMap<T> getBeanMap() {
-		return this.beanMap;
-	}
-
-	/**
-	 * Returns the metadata about this bean property.
-	 *
-	 * @return Metadata about this bean property.
-	 */
-	public BeanPropertyMeta<T> getMeta() {
-		return this.meta;
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return this.getKey() + "=" + this.getValue();
-	}
-}
\ 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/BeanMeta$BeanMethod.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta$BeanMethod.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta$BeanMethod.class
deleted file mode 100755
index a4cbf3a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta$BeanMethod.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/BeanMeta$SubTypePropertyMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta$SubTypePropertyMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta$SubTypePropertyMeta.class
deleted file mode 100755
index 2a98356..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta$SubTypePropertyMeta.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/BeanMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta.class
deleted file mode 100755
index c6c554a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta.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/BeanMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta.java
deleted file mode 100755
index d5ac436..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMeta.java
+++ /dev/null
@@ -1,749 +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;
-
-import static com.ibm.juno.core.Visibility.*;
-import static com.ibm.juno.core.utils.ClassUtils.*;
-
-import java.beans.*;
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-import java.util.Map.Entry;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.html.*;
-import com.ibm.juno.core.jena.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-
-/**
- * Encapsulates all access to the properties of a bean class (like a souped-up {@link java.beans.BeanInfo}).
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Uses introspection to find all the properties associated with this class.  If the {@link Bean @Bean} annotation
- * 	is present on the class, or the class has a {@link BeanFilter} registered with it in the bean context,
- * 	then that information is used to determine the properties on the class.
- * 	Otherwise, the {@code BeanInfo} functionality in Java is used to determine the properties on the class.
- *
- *
- * <h6 class='topic'>Bean property ordering</h6>
- * <p>
- * 	The order of the properties are as follows:
- * 	<ul>
- * 		<li>If {@link Bean @Bean} annotation is specified on class, then the order is the same as the list of properties in the annotation.
- * 		<li>If {@link Bean @Bean} annotation is not specified on the class, then the order is based on the following.
- * 			<ul>
- * 				<li>Public fields (same order as {@code Class.getFields()}).
- * 				<li>Properties returned by {@code BeanInfo.getPropertyDescriptors()}.
- * 				<li>Non-standard getters/setters with {@link BeanProperty @BeanProperty} annotation defined on them.
- * 			</ul>
- * 	</ul>
- * 	<br>
- * 	The order can also be overridden through the use of an {@link BeanFilter}.
- *
- *
- * @param <T> The class type that this metadata applies to.
- * @author Barry M. Caceres
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class BeanMeta<T> {
-
-	/** The target class type that this meta object describes. */
-	protected ClassMeta<T> classMeta;
-
-	/** The target class that this meta object describes. */
-	protected Class<T> c;
-
-	/** The properties on the target class. */
-	protected Map<String,BeanPropertyMeta<T>> properties;
-
-	/** The getter properties on the target class. */
-	protected Map<Method,String> getterProps = new HashMap<Method,String>();
-
-	/** The setter properties on the target class. */
-	protected Map<Method,String> setterProps = new HashMap<Method,String>();
-
-	/** The bean context that created this metadata object. */
-	protected BeanContext ctx;
-
-	/** Optional bean filter associated with the target class. */
-	protected BeanFilter<? extends T> filter;
-
-	/** Type variables implemented by this bean. */
-	protected Map<Class<?>,Class<?>[]> typeVarImpls;
-
-	/** The constructor for this bean. */
-	protected Constructor<T> constructor;
-
-	/** For beans with constructors with BeanConstructor annotation, this is the list of constructor arg properties. */
-	protected String[] constructorArgs = new String[0];
-
-	/** XML-related metadata */
-	protected XmlBeanMeta<T> xmlMeta;
-
-	// Other fields
-	BeanPropertyMeta<T> uriProperty;                                 // The property identified as the URI for this bean (annotated with @BeanProperty.beanUri).
-	BeanPropertyMeta<T> subTypeIdProperty;                           // The property indentified as the sub type differentiator property (identified by @Bean.subTypeProperty annotation).
-	PropertyNamer propertyNamer;                                     // Class used for calculating bean property names.
-
-	BeanMeta() {}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param classMeta The target class.
-	 * @param ctx The bean context that created this object.
-	 * @param filter Optional bean filter associated with the target class.  Can be <jk>null</jk>.
-	 */
-	protected BeanMeta(ClassMeta<T> classMeta, BeanContext ctx, com.ibm.juno.core.filter.BeanFilter<? extends T> filter) {
-		this.classMeta = classMeta;
-		this.ctx = ctx;
-		this.filter = filter;
-		this.c = classMeta.getInnerClass();
-	}
-
-	/**
-	 * Returns the {@link ClassMeta} of this bean.
-	 *
-	 * @return The {@link ClassMeta} of this bean.
-	 */
-	@BeanIgnore
-	public ClassMeta<T> getClassMeta() {
-		return classMeta;
-	}
-
-	/**
-	 * Initializes this bean meta, and returns an error message if the specified class is not
-	 * a bean for any reason.
-	 *
-	 * @return Reason why this class isn't a bean, or <jk>null</jk> if no problems detected.
-	 * @throws BeanRuntimeException If unexpected error occurs such as invalid annotations on the bean class.
-	 */
-	@SuppressWarnings("unchecked")
-	protected String init() throws BeanRuntimeException {
-
-		try {
-			Visibility
-				conVis = ctx.beanConstructorVisibility,
-				cVis = ctx.beanClassVisibility,
-				mVis = ctx.beanMethodVisibility,
-				fVis = ctx.beanFieldVisibility;
-
-			// If @Bean.interfaceClass is specified on the parent class, then we want
-			// to use the properties defined on that class, not the subclass.
-			Class<?> c2 = (filter != null && filter.getInterfaceClass() != null ? filter.getInterfaceClass() : c);
-
-			Class<?> stopClass = (filter != null ? filter.getStopClass() : Object.class);
-			if (stopClass == null)
-				stopClass = Object.class;
-
-			Map<String,BeanPropertyMeta<T>> normalProps = new LinkedHashMap<String,BeanPropertyMeta<T>>();
-
-			/// See if this class matches one the patterns in the exclude-class list.
-			if (ctx.isNotABean(c))
-				return "Class matches exclude-class list";
-
-			if (! cVis.isVisible(c.getModifiers()))
-				return "Class is not public";
-
-			if (c.isAnnotationPresent(BeanIgnore.class))
-				return "Class is annotated with @BeanIgnore";
-
-			// Make sure it's serializable.
-			if (filter == null && ctx.beansRequireSerializable && ! isParentClass(Serializable.class, c))
-				return "Class is not serializable";
-
-			// Look for @BeanConstructor constructor.
-			for (Constructor<?> x : c.getConstructors()) {
-				if (x.isAnnotationPresent(BeanConstructor.class)) {
-					if (constructor != null)
-						throw new BeanRuntimeException(c, "Multiple instances of '@BeanConstructor' found.");
-					constructor = (Constructor<T>)x;
-					constructorArgs = x.getAnnotation(BeanConstructor.class).properties();
-					if (constructorArgs.length != x.getParameterTypes().length)
-						throw new BeanRuntimeException(c, "Number of properties defined in '@BeanConstructor' annotation does not match number of parameters in constructor.");
-					if (! setAccessible(constructor))
-						throw new BeanRuntimeException(c, "Could not set accessibility to true on method with @BeanConstructor annotation.  Method=''{0}''", constructor.getName());
-				}
-			}
-
-			// If this is an interface, look for impl classes defined in the context.
-			if (constructor == null)
-				constructor = (Constructor<T>)ctx.getImplClassConstructor(c, conVis);
-
-			if (constructor == null)
-				constructor = (Constructor<T>)ClassMeta.findNoArgConstructor(c, conVis);
-
-			if (constructor == null && filter == null && ctx.beansRequireDefaultConstructor)
-				return "Class does not have the required no-arg constructor";
-
-			if (! setAccessible(constructor))
-				throw new BeanRuntimeException(c, "Could not set accessibility to true on no-arg constructor");
-
-			// Explicitly defined property names in @Bean annotation.
-			Set<String> fixedBeanProps = new LinkedHashSet<String>();
-
-			if (filter != null) {
-
-				// Get the 'properties' attribute if specified.
-				if (filter.getProperties() != null)
-					for (String p : filter.getProperties())
-						fixedBeanProps.add(p);
-
-				if (filter.getPropertyNamer() != null)
-					propertyNamer = filter.getPropertyNamer().newInstance();
-			}
-
-			if (propertyNamer == null)
-				propertyNamer = new PropertyNamerDefault();
-
-			// First populate the properties with those specified in the bean annotation to
-			// ensure that ordering first.
-			for (String name : fixedBeanProps)
-				normalProps.put(name, new BeanPropertyMeta<T>(this, name));
-
-			if (ctx.useJavaBeanIntrospector) {
-				BeanInfo bi = null;
-				if (! c2.isInterface())
-					bi = Introspector.getBeanInfo(c2, stopClass);
-				else
-					bi = Introspector.getBeanInfo(c2, null);
-				if (bi != null) {
-					for (PropertyDescriptor pd : bi.getPropertyDescriptors()) {
-						String name = pd.getName();
-						if (! normalProps.containsKey(name))
-							normalProps.put(name, new BeanPropertyMeta<T>(this, name));
-						normalProps.get(name).setGetter(pd.getReadMethod()).setSetter(pd.getWriteMethod());
-					}
-				}
-
-			} else /* Use 'better' introspection */ {
-
-				for (Field f : findBeanFields(c2, stopClass, fVis)) {
-					String name = findPropertyName(f, fixedBeanProps);
-					if (name != null) {
-						if (! normalProps.containsKey(name))
-							normalProps.put(name, new BeanPropertyMeta<T>(this, name));
-						normalProps.get(name).setField(f);
-					}
-				}
-
-				List<BeanMethod> bms = findBeanMethods(c2, stopClass, mVis, fixedBeanProps, propertyNamer);
-
-				// Iterate through all the getters.
-				for (BeanMethod bm : bms) {
-					String pn = bm.propertyName;
-					Method m = bm.method;
-					if (! normalProps.containsKey(pn))
-						normalProps.put(pn, new BeanPropertyMeta<T>(this, pn));
-					BeanPropertyMeta<?> bpm = normalProps.get(pn);
-					if (! bm.isSetter)
-						bpm.setGetter(m);
-				}
-
-				// Now iterate through all the setters.
-				for (BeanMethod bm : bms) {
-					if (bm.isSetter) {
-						BeanPropertyMeta<?> bpm = normalProps.get(bm.propertyName);
-						if (bm.matchesPropertyType(bpm))
-							bpm.setSetter(bm.method);
-					}
-				}
-			}
-
-			typeVarImpls = new HashMap<Class<?>,Class<?>[]>();
-			findTypeVarImpls(c, typeVarImpls);
-			if (typeVarImpls.isEmpty())
-				typeVarImpls = null;
-
-			// Eliminate invalid properties, and set the contents of getterProps and setterProps.
-			for (Iterator<BeanPropertyMeta<T>> i = normalProps.values().iterator(); i.hasNext();) {
-				BeanPropertyMeta<T> p = i.next();
-				try {
-					if (p.validate()) {
-
-						if (p.getGetter() != null)
-							getterProps.put(p.getGetter(), p.getName());
-
-						if (p.getSetter() != null)
-							setterProps.put(p.getSetter(), p.getName());
-
-						if (p.isBeanUri())
-							uriProperty = p;
-
-					} else {
-						i.remove();
-					}
-				} catch (ClassNotFoundException e) {
-					throw new BeanRuntimeException(c, e.getLocalizedMessage());
-				}
-			}
-
-			// Check for missing properties.
-			for (String fp : fixedBeanProps)
-				if (! normalProps.containsKey(fp))
-					throw new BeanRuntimeException(c, "The property ''{0}'' was defined on the @Bean(properties=X) annotation but was not found on the class definition.", fp);
-
-			// Mark constructor arg properties.
-			for (String fp : constructorArgs) {
-				BeanPropertyMeta<T> m = normalProps.get(fp);
-				if (m == null)
-					throw new BeanRuntimeException(c, "The property ''{0}'' was defined on the @BeanConstructor(properties=X) annotation but was not found on the class definition.", fp);
-				m.setAsConstructorArg();
-			}
-
-			// Make sure at least one property was found.
-			if (filter == null && ctx.beansRequireSomeProperties && normalProps.size() == 0)
-				return "No properties detected on bean class";
-
-			properties = new LinkedHashMap<String,BeanPropertyMeta<T>>();
-
-			if (filter != null && filter.getSubTypeProperty() != null) {
-				String subTypeProperty = filter.getSubTypeProperty();
-				this.subTypeIdProperty = new SubTypePropertyMeta(subTypeProperty, filter.getSubTypes(), normalProps.remove(subTypeProperty));
-				properties.put(subTypeProperty, this.subTypeIdProperty);
-			}
-
-			properties.putAll(normalProps);
-
-			// If a filter is defined, look for inclusion and exclusion lists.
-			if (filter != null) {
-
-				// Eliminated excluded properties if BeanFilter.excludeKeys is specified.
-				String[] includeKeys = filter.getProperties();
-				String[] excludeKeys = filter.getExcludeProperties();
-				if (excludeKeys != null) {
-					for (String k : excludeKeys)
-						properties.remove(k);
-
-				// Only include specified properties if BeanFilter.includeKeys is specified.
-				// Note that the order must match includeKeys.
-				} else if (includeKeys != null) {
-					Map<String,BeanPropertyMeta<T>> properties2 = new LinkedHashMap<String,BeanPropertyMeta<T>>();
-					for (String k : includeKeys) {
-						if (properties.containsKey(k))
-							properties2.put(k, properties.get(k));
-					}
-					properties = properties2;
-				}
-			}
-
-			xmlMeta = new XmlBeanMeta<T>(this, null);
-
-			// We return this through the Bean.keySet() interface, so make sure it's not modifiable.
-			properties = Collections.unmodifiableMap(properties);
-
-		} catch (BeanRuntimeException e) {
-			throw e;
-		} catch (Exception e) {
-			return "Exception:  " + StringUtils.getStackTrace(e);
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns the subtype ID property of this bean if it has one.
-	 * <p>
-	 * The subtype id is specified using the {@link Bean#subTypeProperty()} annotation.
-	 *
-	 * @return The meta property for the sub type property, or <jk>null</jk> if no subtype is defined for this bean.
-	 */
-	public BeanPropertyMeta<T> getSubTypeIdProperty() {
-		return subTypeIdProperty;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this bean has subtypes associated with it.
-	 * Subtypes are defined using the {@link Bean#subTypes()} annotation.
-	 *
-	 * @return <jk>true</jk> if this bean has subtypes associated with it.
-	 */
-	public boolean isSubTyped() {
-		return subTypeIdProperty != null;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if one of the properties on this bean is annotated with {@link BeanProperty#beanUri()} as <jk>true</jk>
-	 *
-	 * @return <jk>true</jk> if this bean has subtypes associated with it. <jk>true</jk> if there is a URI property associated with this bean.
-	 */
-	public boolean hasBeanUriProperty() {
-		return uriProperty != null;
-	}
-
-	/**
-	 * Returns the bean property marked as the URI for the bean (annotated with {@link BeanProperty#beanUri()} as <jk>true</jk>).
-	 *
-	 * @return The URI property, or <jk>null</jk> if no URI property exists on this bean.
-	 */
-	public BeanPropertyMeta<T> getBeanUriProperty() {
-		return uriProperty;
-	}
-
-	/*
-	 * Temporary getter/setter method struct.
-	 */
-	private static class BeanMethod {
-		String propertyName;
-		boolean isSetter;
-		Method method;
-		Class<?> type;
-
-		BeanMethod(String propertyName, boolean isSetter, Method method) {
-			this.propertyName = propertyName;
-			this.isSetter = isSetter;
-			this.method = method;
-			if (isSetter)
-				this.type = method.getParameterTypes()[0];
-			else
-				this.type = method.getReturnType();
-		}
-
-		/*
-		 * Returns true if this method matches the class type of the specified property.
-		 * Only meant to be used for setters.
-		 */
-		boolean matchesPropertyType(BeanPropertyMeta<?> b) {
-			if (b == null)
-				return false;
-
-			// Get the bean property type from the getter/field.
-			Class<?> pt = null;
-			if (b.getGetter() != null)
-				pt = b.getGetter().getReturnType();
-			else if (b.getField() != null)
-				pt = b.getField().getType();
-
-			// Doesn't match if no getter/field defined.
-			if (pt == null)
-				return false;
-
-			// Doesn't match if not same type or super type as getter/field.
-			if (! isParentClass(type, pt))
-				return false;
-
-			// If a setter was previously set, only use this setter if it's a closer
-			// match (e.g. prev type is a superclass of this type).
-			if (b.getSetter() == null)
-				return true;
-
-			Class<?> prevType = b.getSetter().getParameterTypes()[0];
-			return isParentClass(prevType, type, true);
-		}
-
-		@Override /* Object */
-		public String toString() {
-			return method.toString();
-		}
-	}
-
-	/*
-	 * Find all the bean methods on this class.
-	 *
-	 * @param c The filtered class.
-	 * @param stopClass Don't look above this class in the hierarchy.
-	 * @param v The minimum method visibility.
-	 * @param fixedBeanProps Only include methods whose properties are in this list.
-	 * @param pn Use this property namer to determine property names from the method names.
-	 */
-	private static List<BeanMethod> findBeanMethods(Class<?> c, Class<?> stopClass, Visibility v, Set<String> fixedBeanProps, PropertyNamer pn) {
-		List<BeanMethod> l = new LinkedList<BeanMethod>();
-
-		for (Class<?> c2 : findClasses(c, stopClass)) {
-			for (Method m : c2.getDeclaredMethods()) {
-				int mod = m.getModifiers();
-				if (Modifier.isStatic(mod) || Modifier.isTransient(mod))
-					continue;
-				if (m.isAnnotationPresent(BeanIgnore.class))
-					continue;
-				if (m.isBridge())   // This eliminates methods with covariant return types from parent classes on child classes.
-					continue;
-				if (! (v.isVisible(m) || m.isAnnotationPresent(BeanProperty.class)))
-					continue;
-				String n = m.getName();
-				Class<?>[] pt = m.getParameterTypes();
-				Class<?> rt = m.getReturnType();
-				boolean isGetter = false, isSetter = false;
-				if (pt.length == 1 && n.startsWith("set") && (isParentClass(rt, c) || rt.equals(Void.TYPE))) {
-					isSetter = true;
-					n = n.substring(3);
-				} else if (pt.length == 0 && n.startsWith("get") && (! rt.equals(Void.TYPE))) {
-					isGetter = true;
-					n = n.substring(3);
-				} else if (pt.length == 0 && n.startsWith("is") && (rt.equals(Boolean.TYPE) || rt.equals(Boolean.class))) {
-					isGetter = true;
-					n = n.substring(2);
-				}
-				n = pn.getPropertyName(n);
-				if (isGetter || isSetter) {
-					BeanProperty bp = m.getAnnotation(BeanProperty.class);
-					if (bp != null && ! bp.name().equals("")) {
-						n = bp.name();
-						if (! fixedBeanProps.isEmpty())
-							if (! fixedBeanProps.contains(n))
-								throw new BeanRuntimeException(c, "Method property ''{0}'' identified in @BeanProperty, but missing from @Bean", n);
-					}
-					l.add(new BeanMethod(n, isSetter, m));
-				}
-			}
-		}
-		return l;
-	}
-
-	private static Collection<Field> findBeanFields(Class<?> c, Class<?> stopClass, Visibility v) {
-		List<Field> l = new LinkedList<Field>();
-		for (Class<?> c2 : findClasses(c, stopClass)) {
-			for (Field f : c2.getDeclaredFields()) {
-				int m = f.getModifiers();
-				if (Modifier.isStatic(m) || Modifier.isTransient(m))
-					continue;
-				if (f.isAnnotationPresent(BeanIgnore.class))
-					continue;
-				if (! (v.isVisible(f) || f.isAnnotationPresent(BeanProperty.class)))
-					continue;
-				l.add(f);
-			}
-		}
-		return l;
-	}
-
-	private static List<Class<?>> findClasses(Class<?> c, Class<?> stopClass) {
-		LinkedList<Class<?>> l = new LinkedList<Class<?>>();
-		findClasses(c, l, stopClass);
-		return l;
-	}
-
-	private static void findClasses(Class<?> c, LinkedList<Class<?>> l, Class<?> stopClass) {
-		while (c != null && stopClass != c) {
-			l.addFirst(c);
-			for (Class<?> ci : c.getInterfaces())
-				findClasses(ci, l, stopClass);
-			c = c.getSuperclass();
-		}
-	}
-
-	/**
-	 * Returns the metadata on all properties associated with this bean.
-	 *
-	 * @return Metadata on all properties associated with this bean.
-	 */
-	public Collection<BeanPropertyMeta<T>> getPropertyMetas() {
-		return this.properties.values();
-	}
-
-	/**
-	 * Returns the metadata on the specified list of properties.
-	 *
-	 * @param pNames The list of properties to retrieve.  If <jk>null</jk>, returns all properties.
-	 * @return The metadata on the specified list of properties.
-	 */
-	public Collection<BeanPropertyMeta<T>> getPropertyMetas(final String...pNames) {
-		if (pNames == null)
-			return getPropertyMetas();
-		List<BeanPropertyMeta<T>> l = new ArrayList<BeanPropertyMeta<T>>(pNames.length);
-		for (int i = 0; i < pNames.length; i++)
-			l.add(getPropertyMeta(pNames[i]));
-		return l;
-	}
-
-	/**
-	 * Returns XML related metadata for this bean type.
-	 *
-	 * @return The XML metadata for this bean type.
-	 */
-	public XmlBeanMeta<T> getXmlMeta() {
-		return xmlMeta;
-	}
-
-	/**
-	 * Returns metadata about the specified property.
-	 *
-	 * @param name The name of the property on this bean.
-	 * @return The metadata about the property, or <jk>null</jk> if no such property exists
-	 * 	on this bean.
-	 */
-	public BeanPropertyMeta<T> getPropertyMeta(String name) {
-		return this.properties.get(name);
-	}
-
-	/**
-	 * Creates a new instance of this bean.
-	 *
-	 * @param outer The outer object if bean class is a non-static inner member class.
-	 * @return A new instance of this bean if possible, or <jk>null</jk> if not.
-	 * @throws IllegalArgumentException Thrown by constructor.
-	 * @throws InstantiationException Thrown by constructor.
-	 * @throws IllegalAccessException Thrown by constructor.
-	 * @throws InvocationTargetException Thrown by constructor.
-	 */
-	@SuppressWarnings("unchecked")
-	protected T newBean(Object outer) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException {
-		if (classMeta.isMemberClass) {
-			if (constructor != null)
-				return constructor.newInstance(outer);
-		} else {
-			if (constructor != null)
-				return constructor.newInstance((Object[])null);
-			InvocationHandler h = classMeta.getProxyInvocationHandler();
-			if (h != null) {
-				ClassLoader cl = classMeta.beanContext.classLoader;
-				if (cl == null)
-					cl = this.getClass().getClassLoader();
-				return (T)Proxy.newProxyInstance(cl, new Class[] { classMeta.innerClass, java.io.Serializable.class }, h);
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * Returns the property name of the specified field if it's a valid property.
-	 * Returns null if the field isn't a valid property.
-	 */
-	private String findPropertyName(Field f, Set<String> fixedBeanProps) {
-		BeanProperty bp = f.getAnnotation(BeanProperty.class);
-		if (bp != null && ! bp.name().equals("")) {
-			String name = bp.name();
-			if (fixedBeanProps.isEmpty() || fixedBeanProps.contains(name))
-				return name;
-			throw new BeanRuntimeException(c, "Method property ''{0}'' identified in @BeanProperty, but missing from @Bean", name);
-		}
-		String name = propertyNamer.getPropertyName(f.getName());
-		if (fixedBeanProps.isEmpty() || fixedBeanProps.contains(name))
-			return name;
-		return null;
-	}
-
-	/**
-	 * Recursively determines the classes represented by parameterized types in the class hierarchy of
-	 * the specified type, and puts the results in the specified map.<br>
-	 * <p>
-	 * 	For example, given the following classes...
-	 * <p class='bcode'>
-	 * 	public static class BeanA&lt;T> {
-	 * 		public T x;
-	 * 	}
-	 * 	public static class BeanB extends BeanA&lt;Integer>} {...}
-	 * <p>
-	 * 	...calling this method on {@code BeanB.class} will load the following data into {@code m} indicating
-	 * 	that the {@code T} parameter on the BeanA class is implemented with an {@code Integer}:
-	 * <p class='bcode'>
-	 * 	{BeanA.class:[Integer.class]}
-	 * <p>
-	 * 	TODO:  This code doesn't currently properly handle the following situation:
-	 * <p class='bcode'>
-	 * 	public static class BeanB&ltT extends Number> extends BeanA&ltT>;
-	 * 	public static class BeanC extends BeanB&ltInteger>;
-	 * <p>
-	 * 	When called on {@code BeanC}, the variable will be detected as a {@code Number}, not an {@code Integer}.<br>
-	 * 	If anyone can figure out a better way of doing this, please do so!
-	 *
-	 * @param t The type we're recursing.
-	 * @param m Where the results are loaded.
-	 */
-	private static void findTypeVarImpls(Type t, Map<Class<?>,Class<?>[]> m) {
-		if (t instanceof Class) {
-			Class<?> c = (Class<?>)t;
-			findTypeVarImpls(c.getGenericSuperclass(), m);
-			for (Type ci : c.getGenericInterfaces())
-				findTypeVarImpls(ci, m);
-		} else if (t instanceof ParameterizedType) {
-			ParameterizedType pt = (ParameterizedType)t;
-			Type rt = pt.getRawType();
-			if (rt instanceof Class) {
-				Type[] gImpls = pt.getActualTypeArguments();
-				Class<?>[] gTypes = new Class[gImpls.length];
-				for (int i = 0; i < gImpls.length; i++) {
-					Type gt = gImpls[i];
-					if (gt instanceof Class)
-						gTypes[i] = (Class<?>)gt;
-					else if (gt instanceof TypeVariable) {
-						TypeVariable<?> tv = (TypeVariable<?>)gt;
-						for (Type upperBound : tv.getBounds())
-							if (upperBound instanceof Class)
-								gTypes[i] = (Class<?>)upperBound;
-					}
-				}
-				m.put((Class<?>)rt, gTypes);
-				findTypeVarImpls(pt.getRawType(), m);
-			}
-		}
-	}
-
-	/*
-	 * Bean property for getting and setting bean subtype.
-	 */
-	@SuppressWarnings({"rawtypes","unchecked"})
-	private class SubTypePropertyMeta extends BeanPropertyMeta<T> {
-
-		private Map<Class<?>,String> subTypes;
-		private BeanPropertyMeta<T> realProperty;  // Bean property if bean actually has a real subtype field.
-
-		SubTypePropertyMeta(String subTypeAttr, Map<Class<?>,String> subTypes, BeanPropertyMeta<T> realProperty) {
-			super(BeanMeta.this, subTypeAttr, ctx.string());
-			this.subTypes = subTypes;
-			this.realProperty = realProperty;
-			this.htmlMeta = new HtmlBeanPropertyMeta<T>(this);
-			this.xmlMeta = new XmlBeanPropertyMeta<T>(this);
-			this.rdfMeta = new RdfBeanPropertyMeta<T>(this);
-		}
-
-		/*
-		 * Setting this bean property causes the inner bean to be set to the subtype implementation.
-		 */
-		@Override /* BeanPropertyMeta */
-		public Object set(BeanMap<T> m, Object value) throws BeanRuntimeException {
-			if (value == null)
-				throw new BeanRuntimeException("Attempting to set bean subtype property to null.");
-			String subTypeId = value.toString();
-			for (Entry<Class<?>,String> e : subTypes.entrySet()) {
-				if (e.getValue().equals(subTypeId)) {
-					Class subTypeClass = e.getKey();
-					m.meta = ctx.getBeanMeta(subTypeClass);
-					try {
-						m.bean = (T)subTypeClass.newInstance();
-						if (realProperty != null)
-							realProperty.set(m, value);
-						// If subtype attribute wasn't specified first, set them again from the temporary cache.
-						if (m.propertyCache != null)
-							for (Map.Entry<String,Object> me : m.propertyCache.entrySet())
-								m.put(me.getKey(), me.getValue());
-					} catch (Exception e1) {
-						throw new BeanRuntimeException(e1);
-					}
-					return null;
-				}
-			}
-			throw new BeanRuntimeException(c, "Unknown subtype ID ''{0}''", subTypeId);
-		}
-
-		@Override /* BeanPropertyMeta */
-		public Object get(BeanMap<T> m) throws BeanRuntimeException {
-			String subTypeId = filter.getSubTypes().get(c);
-			if (subTypeId == null)
-				throw new BeanRuntimeException(c, "Unmapped sub type class");
-			return subTypeId;
-		}
-	}
-
-	@Override /* Object */
-	public String toString() {
-		StringBuilder sb = new StringBuilder(c.getName());
-		sb.append(" {\n");
-		for (BeanPropertyMeta<?> pm : this.properties.values())
-			sb.append("\t").append(pm.toString()).append(",\n");
-		sb.append("}");
-		return sb.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMetaFiltered.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMetaFiltered.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMetaFiltered.class
deleted file mode 100755
index 6f63839..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMetaFiltered.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/BeanMetaFiltered.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMetaFiltered.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMetaFiltered.java
deleted file mode 100755
index 9effae3..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanMetaFiltered.java
+++ /dev/null
@@ -1,70 +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;
-
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Sames as {@link BeanMeta}, except the list of bean properties are limited
- * by a {@link BeanProperty#properties()} annotation.
- *
- * @param <T> The class type that this metadata applies to.
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class BeanMetaFiltered<T> extends BeanMeta<T> {
-
-	private final BeanMeta<T> innerMeta;
-
-	/**
-	 * Wrapper constructor.
-	 *
-	 * @param innerMeta The unfiltered bean meta of the bean property.
-	 * @param pNames The list of filtered property names.
-	 */
-	public BeanMetaFiltered(BeanMeta<T> innerMeta, String[] pNames) {
-		this.innerMeta = innerMeta;
-		this.properties = new LinkedHashMap<String,BeanPropertyMeta<T>>();
-		for (String p : pNames)
-			properties.put(p, innerMeta.getPropertyMeta(p));
-		this.xmlMeta = new XmlBeanMeta<T>(innerMeta, pNames);
-	}
-
-	/**
-	 * Wrapper constructor.
-	 *
-	 * @param innerMeta The unfiltered bean meta of the bean property.
-	 * @param pNames The list of filtered property names.
-	 */
-	public BeanMetaFiltered(BeanMeta<T> innerMeta, Collection<String> pNames) {
-		this(innerMeta, pNames.toArray(new String[pNames.size()]));
-	}
-
-	@Override /* Delagate */
-	public ClassMeta<T> getClassMeta() {
-		return innerMeta.classMeta;
-	}
-
-	@Override /* BeanMeta */
-	public Collection<BeanPropertyMeta<T>> getPropertyMetas() {
-		return properties.values();
-	}
-
-	@Override /* BeanMeta */
-	public BeanPropertyMeta<T> getPropertyMeta(String name) {
-		return properties.get(name);
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return innerMeta.c.getName();
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWritable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWritable.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWritable.java
deleted file mode 100755
index 503f27b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWritable.java
+++ /dev/null
@@ -1,40 +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.ini;
-
-import java.io.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Wraps a {@link ConfigFile} in a {@link Writable} to be rendered as plain text.
- */
-class ConfigFileWritable implements Writable {
-
-	private ConfigFileImpl cf;
-
-	protected ConfigFileWritable(ConfigFileImpl cf) {
-		this.cf = cf;
-	}
-
-	@Override /* Writable */
-	public void writeTo(Writer out) throws IOException {
-		cf.readLock();
-		try {
-			cf.serializeTo(out);
-		} finally {
-			cf.readUnlock();
-		}
-	}
-
-	@Override /* Writable */
-	public String getMediaType() {
-		return "text/plain";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigMgr.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigMgr.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigMgr.class
deleted file mode 100755
index d074cbd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigMgr.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/ini/ConfigMgr.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigMgr.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigMgr.java
deleted file mode 100755
index 70a95d7..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigMgr.java
+++ /dev/null
@@ -1,312 +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.ini;
-
-import static com.ibm.juno.core.ini.ConfigFileFormat.*;
-
-import java.io.*;
-import java.nio.charset.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Manager for retrieving shared instances of {@link ConfigFile ConfigFiles}.
- * <p>
- * Example:
- * <p class='bcode'>
- * 	ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.get(<js>"MyConfig.cfg"</js>);
- * 	String setting = cf.get(<js>"MySection/mysetting"</js>);
- * </p>
- */
-public class ConfigMgr {
-
-	/**
-	 * Default reusable configuration manager.
-	 * <ul>
-	 * 	<li>Read-only: <jk>false</jk>.
-	 * 	<li>Encoder: {@link XorEncoder}.
-	 * 	<li>Serializer: {@link JsonSerializer#DEFAULT}.
-	 * 	<li>Parser: {@link JsonParser#DEFAULT}.
-	 * 	<li>Charset: {@link Charset#defaultCharset()}.
-	 * 	<li>Search paths: [<js>"."</js>].
-	 * </ul>
-	 */
-	public static final ConfigMgr DEFAULT = new ConfigMgr(false, new XorEncoder(), JsonSerializer.DEFAULT, JsonParser.DEFAULT, Charset.defaultCharset(), new String[]{"."});
-
-	private ConcurrentHashMap<String,File> files = new ConcurrentHashMap<String,File>();
-	private ConcurrentHashMap<File,ConfigFile> configs = new ConcurrentHashMap<File,ConfigFile>();
-	private final WriterSerializer serializer;
-	private final ReaderParser parser;
-	private final Encoder encoder;
-	private final boolean readOnly;
-	private final Charset charset;
-	private final List<File> searchPaths = new LinkedList<File>();
-
-	/**
-	 * Create a custom configuration manager.
-	 *
-	 * @param readOnly Make {@link ConfigFile ConfigFiles} read-only.
-	 * @param encoder Optional.  Specify the encoder to use for encoded config file entries (e.g. <js>"mySecret*={...}"</js>).
-	 * @param serializer Optional.  Specify the serializer to use for serializing POJOs when using {@link ConfigFile#put(String, Object)}.
-	 * @param parser Optional.  Specify the parser to use for parsing POJOs when using {@link ConfigFile#getObject(Class,String)}.
-	 * @param charset Optional.  Specify the config file character encoding.  If <jk>null</jk>, uses {@link Charset#defaultCharset()}.
-	 * @param searchPaths Specify the search paths for config files.  Can contain relative or absolute paths.
-	 */
-	public ConfigMgr(boolean readOnly, Encoder encoder, WriterSerializer serializer, ReaderParser parser, Charset charset, String[] searchPaths) {
-		this.readOnly = readOnly;
-		this.encoder = encoder;
-		this.serializer = serializer;
-		this.parser = parser;
-		this.charset = charset;
-		if (searchPaths != null)
-			for (String p : searchPaths)
-				this.searchPaths.add(new File(p));
-	}
-
-	/**
-	 * Returns the config file with the specified absolute or relative path.
-	 * <p>
-	 * Multiple calls to the same path return the same <code>ConfigFile</code> instance.
-	 *
-	 * @param path The absolute or relative path of the config file.
-	 * @return The config file.
-	 * @throws IOException If config file could not be parsed.
-	 * @throws FileNotFoundException If config file could not be found.
-	 */
-	public ConfigFile get(String path) throws IOException {
-		return get(path, false);
-	}
-
-	/**
-	 * Returns the config file with the specified absolute or relative path.
-	 * <p>
-	 * Multiple calls to the same path return the same <code>ConfigFile</code> instance.
-	 * <p>
-	 * If file doesn't exist and <code>create</code> is <jk>true</jk>, the configuration file will be
-	 * create in the location identified by the first entry in the search paths.
-	 *
-	 * @param path The absolute or relative path of the config file.
-	 * @param create Create the config file if it doesn't exist.
-	 * @return The config file.
-	 * @throws IOException If config file could not be parsed.
-	 * @throws FileNotFoundException If config file could not be found or could not be created.
-	 */
-	public ConfigFile get(String path, boolean create) throws IOException {
-
-		File f = resolve(path, create);
-
-		ConfigFile cf = configs.get(f);
-		if (cf != null)
-			return cf;
-
-		cf = new ConfigFileImpl(f, readOnly, encoder, serializer, parser, charset);
-		configs.putIfAbsent(f, cf);
-		return configs.get(f);
-	}
-
-	/**
-	 * Create a new empty config file not backed by any file.
-	 *
-	 * @return A new config file.
-	 * @throws IOException
-	 */
-	public ConfigFile create() throws IOException {
-		return new ConfigFileImpl(null, false, encoder, serializer, parser, charset);
-	}
-
-	/**
-	 * Create a new config file backed by the specified file.
-	 * Note that {@link #get(String)} is the preferred method for getting access to config files
-	 * 	since this method will create a new config file each time it is called.
-	 * This method is provided primarily for testing purposes.
-	 *
-	 * @param f The file to create a config file from.
-	 * @return A new config file.
-	 * @throws IOException
-	 */
-	public ConfigFile create(File f) throws IOException {
-		return new ConfigFileImpl(f, false, encoder, serializer, parser, charset);
-	}
-
-	/**
-	 * Create a new config file not backed by a file.
-	 *
-	 * @param r The reader containing an INI-formatted file to initialize the config file from.
-	 * @return A new config file.
-	 * @throws IOException
-	 */
-	public ConfigFile create(Reader r) throws IOException {
-		return new ConfigFileImpl(null, false, encoder, serializer, parser, charset).load(r);
-	}
-
-	/**
-	 * Reloads any config files that were modified.
-	 * @throws IOException
-	 */
-	public void loadIfModified() throws IOException {
-		for (ConfigFile cf : configs.values())
-			cf.loadIfModified();
-	}
-
-	/**
-	 * Delete all configuration files registered with this config manager.
-	 */
-	public void deleteAll() {
-		for (File f : configs.keySet())
-			FileUtils.delete(f);
-		files.clear();
-		configs.clear();
-	}
-
-	private File resolve(String path, boolean create) throws IOException {
-
-		// See if it's cached.
-		File f = files.get(path);
-		if (f != null)
-			return f;
-
-		// Handle absolute file.
-		f = new File(path);
-		if (f.isAbsolute()) {
-			if (create)
-				FileUtils.create(f);
-			if (f.exists())
-				return addFile(path, f);
-			throw new FileNotFoundException("Could not find config file '"+path+"'");
-		}
-
-		if (searchPaths.isEmpty())
-			throw new FileNotFoundException("No search paths specified on ConfigMgr.");
-
-		// Handle paths relative to search paths.
-		for (File sf : searchPaths) {
-			f = new File(sf.getAbsolutePath() + "/" + path);
-			if (f.exists())
-				return addFile(path, f);
-		}
-
-		if (create) {
-			f = new File(searchPaths.get(0).getAbsolutePath() + "/" + path);
-			FileUtils.create(f);
-				return addFile(path, f);
-		}
-
-		throw new FileNotFoundException("Could not find config file '"+path+"'");
-	}
-
-	private File addFile(String path, File f) {
-		files.putIfAbsent(path, f);
-		return files.get(path);
-	}
-
-	/**
-	 * Implements command-line features for working with INI configuration files.
-	 * <p>
-	 * Invoke as a normal Java program...
-	 * <p>
-	 * <p class='bcode'>
-	 * 	java com.ibm.juno.core.ini.ConfigMgr [args]
-	 * </p>
-	 * <p>
-	 * Arguments can be any of the following...
-	 * <ul>
-	 * 	<li>No arguments<br>
-	 * 		Prints usage message.<br>
-	 * 		<br>
-	 * 	<li><code>createBatchEnvFile -configfile &lt;configFile&gt; -envfile &lt;batchFile&gt; [-verbose]</code><br>
-	 * 		Creates a batch file that will set each config file entry as an environment variable.<br>
-	 * 		Characters in the keys that are not valid as environment variable names (e.g. <js>'/'</js> and <js>'.'</js>)
-	 * 			will be converted to underscores.<br>
-	 * 		<br>
-	 * 	<li><code>createShellEnvFile -configFile &lt;configFile&gt; -envFile &lt;configFile&gt; [-verbose]</code>
-	 * 		Creates a shell script that will set each config file entry as an environment variable.<br>
-	 * 		Characters in the keys that are not valid as environment variable names (e.g. <js>'/'</js> and <js>'.'</js>)
-	 * 			will be converted to underscores.<br>
-	 * 		<br>
-	 * 	<li><code>setVals -configFile &lt;configFile&gt; -vals [var1=val1 [var2=val2...]] [-verbose]</code>
-	 * 		Sets values in config files.<br>
-	 * </ul>
-	 * <p>
-	 * For example, the following command will create the file <code>'MyConfig.bat'</code> from the contents of the file <code>'MyConfig.cfg'</code>.
-	 * <p class='bcode'>
-	 * 	java com.ibm.juno.core.ini.ConfigMgr createBatchEnvFile -configfile C:\foo\MyConfig.cfg -batchfile C:\foo\MyConfig.bat
-	 * </p>
-	 *
-	 * @param args Command-line arguments
-	 */
-	public static void main(String[] args) {
-
-		Args a = new Args(args);
-		String command = a.getArg(0);
-		String configFile = a.getArg("configFile");
-		String envFile = a.getArg("envFile");
-		List<String> vals = a.getArgs("vals");
-
-		if (command == null || ! (command.equals("createBatchEnvFile") || command.equals("createShellEnvFile") || command.equals("setVals")))
-			printUsageAndExit();
-		else if (configFile.isEmpty())
-			printUsageAndExit();
-		else if (command.equals("setVals") && vals.isEmpty())
-			printUsageAndExit();
-		else if ((command.equals("createBatchEnvFile") || command.equals("createShellEnvFile")) && envFile.isEmpty())
-			printUsageAndExit();
-		else {
-			try {
-				ConfigFile cf = ConfigMgr.DEFAULT.get(configFile);
-
-				if (command.equalsIgnoreCase("setVals")) {
-					for (String val : vals) {
-						String[] x = val.split("\\=");
-						if (x.length != 2)
-							throw new RuntimeException("Invalid format for value: '"+val+"'.  Must be in the format 'key=value'");
-						cf.put(x[0], x[1]);
-					}
-					cf.save();
-					return;
-
-				} else if (command.equalsIgnoreCase("createBatchEnvFile")) {
-					Writer fw = new OutputStreamWriter(new FileOutputStream(envFile), Charset.defaultCharset());
-					try {
-						cf.serializeTo(fw, BATCH);
-					} finally {
-						fw.close();
-					}
-					return;
-
-				} else if (command.equalsIgnoreCase("createShellEnvFile")) {
-					Writer fw = new OutputStreamWriter(new FileOutputStream(envFile), Charset.defaultCharset());
-					try {
-						cf.serializeTo(fw, SHELL);
-					} finally {
-						fw.close();
-					}
-					return;
-				}
-
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	private static void printUsageAndExit() {
-		System.err.println("---Usage---");
-		System.err.println("java -cp juno.jar com.ibm.juno.core.ini.ConfigFile createBatchEnvFile -configFile <configFile> -envFile <envFile> [-verbose]");
-		System.err.println("java -cp juno.jar com.ibm.juno.core.ini.ConfigFile createShellEnvFile -configFile <configFile> -envFile <envFile> [-verbose]");
-		System.err.println("java -cp juno.jar com.ibm.juno.core.ini.ConfigFile setVals -configFile <configFile> -vals [var1 val1 [var2 val2...]] [-verbose]");
-		int rc = Integer.getInteger("exit.2", 2);
-		if (rc != 0)
-			System.exit(rc);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigUtils.class
deleted file mode 100755
index 94ff3b4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigUtils.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/ini/ConfigUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigUtils.java
deleted file mode 100755
index 68e6e53..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigUtils.java
+++ /dev/null
@@ -1,37 +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.ini;
-
-/**
- * Internal utility methods.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ConfigUtils {
-
-	static final String getSectionName(String key) {
-		int i = key.indexOf('/');
-		if (i == -1)
-			return "default";
-		return key.substring(0, i);
-	}
-
-	static final String getSectionKey(String key) {
-		int i = key.indexOf('/');
-		if (i == -1)
-			return key;
-		return key.substring(i+1);
-	}
-
-	static final String getFullKey(String section, String key) {
-		if (section.equals("default"))
-			return key;
-		return section + '/' + key;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Encoder.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Encoder.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Encoder.class
deleted file mode 100755
index 203a1a0..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Encoder.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/ini/Encoder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Encoder.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Encoder.java
deleted file mode 100755
index 5785eef..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Encoder.java
+++ /dev/null
@@ -1,35 +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.ini;
-
-/**
- * API for defining a string encoding/decoding mechanism for entries in {@link ConfigFile}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public interface Encoder {
-
-	/**
-	 * Encode a string.
-	 *
-	 * @param fieldName The field name being encoded.
-	 * @param in The unencoded input string.
-	 * @return The encoded output string.
-	 */
-	public String encode(String fieldName, String in);
-
-	/**
-	 * Decode a string.
-	 *
-	 * @param fieldName The field name being decoded.
-	 * @param in The encoded input string.
-	 * @return The decoded output string.
-	 */
-	public String decode(String fieldName, String in);
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/EntryListener.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/EntryListener.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/EntryListener.class
deleted file mode 100755
index 9b88930..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/EntryListener.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/ini/EntryListener.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/EntryListener.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/EntryListener.java
deleted file mode 100755
index f49de62..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/EntryListener.java
+++ /dev/null
@@ -1,44 +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.ini;
-
-import java.util.*;
-
-
-/**
- * Listener that can be used to listen for change events for a specific entry in a config file.
- * <p>
- * Use the {@link ConfigFile#addListener(ConfigFileListener)} method to register listeners.
- */
-public class EntryListener extends ConfigFileListener {
-
-	private String fullKey;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param fullKey The key in the config file to listen for changes on.
-	 */
-	public EntryListener(String fullKey) {
-		this.fullKey = fullKey;
-	}
-
-	@Override /* ConfigFileListener */
-	public void onChange(ConfigFile cf, Set<String> changes) {
-		if (changes.contains(fullKey))
-			onChange(cf);
-	}
-
-	/**
-	 * Signifies that the config file entry changed.
-	 *
-	 * @param cf The config file being changed.
-	 */
-	public void onChange(ConfigFile cf) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$1$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$1$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$1$1.class
deleted file mode 100755
index a34e642..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$1$1.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/ini/Section$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$1.class
deleted file mode 100755
index 5bf46e2..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$1.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/ini/Section$2$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$2$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$2$1.class
deleted file mode 100755
index c411238..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$2$1.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/ini/Section$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$2.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$2.class
deleted file mode 100755
index b6d0ecc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section$2.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/ini/Section.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section.class
deleted file mode 100755
index e1ce001..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section.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/ini/Section.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section.java
deleted file mode 100755
index 7626602..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/Section.java
+++ /dev/null
@@ -1,577 +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.ini;
-
-import static com.ibm.juno.core.ini.ConfigFileFormat.*;
-import static com.ibm.juno.core.ini.ConfigUtils.*;
-
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.locks.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Defines a section in a config file.
- */
-public class Section implements Map<String,String> {
-
-	private ConfigFileImpl configFile;
-	String name;   // The config section name, or "default" if the default section.  Never null.
-
-	// The data structures that make up this object.
-	// These must be kept synchronized.
-	private LinkedList<String> lines = new LinkedList<String>();
-	private List<String> headerComments = new LinkedList<String>();
-	private Map<String,String> entries;
-
-	private ReadWriteLock lock = new ReentrantReadWriteLock();
-	private boolean readOnly;
-
-	/**
-	 * Constructor.
-	 */
-	public Section() {
-		this.entries = new LinkedHashMap<String,String>();
-	}
-
-	/**
-	 * Constructor with predefined contents.
-	 *
-	 * @param contents Predefined contents to copy into this section.
-	 */
-	public Section(Map<String,String> contents) {
-		this.entries = new LinkedHashMap<String,String>(contents);
-	}
-
-	Section setReadOnly() {
-		// This method is only called once from ConfigFileImpl constructor.
-			this.readOnly = true;
-			this.entries = Collections.unmodifiableMap(entries);
-		return this;
-	}
-
-	/**
-	 * Sets the config file that this section belongs to.
-	 *
-	 * @param configFile The config file that this section belongs to.
-	 * @return This object (for method chaining).
-	 */
-	@ParentProperty
-	public Section setParent(ConfigFileImpl configFile) {
-		this.configFile = configFile;
-		return this;
-	}
-
-	/**
-	 * Sets the section name
-	 *
-	 * @param name The section name.
-	 * @return This object (for method chaining).
-	 */
-	@NameProperty
-	public Section setName(String name) {
-		this.name = name;
-		return this;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Map methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Map */
-	public void clear() {
-		Set<String> changes = createChanges();
-		writeLock();
-		try {
-			if (changes != null)
-				for (String k : keySet())
-					changes.add(getFullKey(name, k));
-			entries.clear();
-			lines.clear();
-			headerComments.clear();
-		} finally {
-			writeUnlock();
-		}
-		signalChanges(changes);
-	}
-
-	@Override /* Map */
-	public boolean containsKey(Object key) {
-		return entries.containsKey(key);
-	}
-
-	@Override /* Map */
-	public boolean containsValue(Object value) {
-		return entries.containsValue(value);
-	}
-
-	@Override /* Map */
-	public Set<Map.Entry<String,String>> entrySet() {
-
-		// We need to create our own set so that entries are removed correctly.
-		return new AbstractSet<Map.Entry<String,String>>() {
-			@Override /* Set */
-			public Iterator<Map.Entry<String,String>> iterator() {
-				return new Iterator<Map.Entry<String,String>>() {
-					Iterator<Map.Entry<String,String>> i = entries.entrySet().iterator();
-					Map.Entry<String,String> i2;
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return i.hasNext();
-					}
-
-					@Override /* Iterator */
-					public Map.Entry<String,String> next() {
-						i2 = i.next();
-						return i2;
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						Set<String> changes = createChanges();
-						String key = i2.getKey(), val = i2.getValue();
-						addChange(changes, key, val, null);
-						writeLock();
-						try {
-							i.remove();
-							removeLine(key);
-						} finally {
-							writeUnlock();
-						}
-						signalChanges(changes);
-					}
-				};
-			}
-
-			@Override /* Set */
-			public int size() {
-				return entries.size();
-			}
-		};
-	}
-
-	@Override /* Map */
-	public String get(Object key) {
-		String s = entries.get(key);
-		if (s != null && s.indexOf('\u0000') != -1)
-			return s.replace("\u0000", "");
-		return s;
-	}
-
-	@Override /* Map */
-	public boolean isEmpty() {
-		return entries.isEmpty();
-	}
-
-	@Override /* Map */
-	public Set<String> keySet() {
-
-		// We need to create our own set so that sections are removed correctly.
-		return new AbstractSet<String>() {
-			@Override /* Set */
-			public Iterator<String> iterator() {
-				return new Iterator<String>() {
-					Iterator<String> i = entries.keySet().iterator();
-					String i2;
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return i.hasNext();
-					}
-
-					@Override /* Iterator */
-					public String next() {
-						i2 = i.next();
-						return i2;
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						Set<String> changes = createChanges();
-						String key = i2;
-						String val = entries.get(key);
-						addChange(changes, key, val, null);
-						writeLock();
-						try {
-							i.remove();
-							removeLine(key);
-						} finally {
-							writeUnlock();
-						}
-						signalChanges(changes);
-					}
-				};
-			}
-
-			@Override /* Set */
-			public int size() {
-				return entries.size();
-			}
-		};
-	}
-
-	@Override /* Map */
-	public String put(String key, String value) {
-		return put(key, value, false);
-	}
-
-	/**
-	 * Sets the specified value in this section.
-	 * @param key The section key.
-	 * @param value The new value.
-	 * @param encoded Whether this value should be encoded during save.
-	 * @return The previous value.
-	 */
-	public String put(String key, String value, boolean encoded) {
-		Set<String> changes = createChanges();
-		String s = put(key, value, encoded, changes);
-		signalChanges(changes);
-		return s;
-	}
-
-	String put(String key, String value, boolean encoded, Set<String> changes) {
-		writeLock();
-		try {
-			addLine(key, encoded);
-			String prev = entries.put(key, value);
-			addChange(changes, key, prev, value);
-			return prev;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	@Override /* Map */
-	public void putAll(Map<? extends String,? extends String> map) {
-		Set<String> changes = createChanges();
-		for (Map.Entry<? extends String,? extends String> e : map.entrySet())
-			put(e.getKey(), e.getValue(), false, changes);
-		signalChanges(changes);
-	}
-
-	@Override /* Map */
-	public String remove(Object key) {
-		Set<String> changes = createChanges();
-		String old = remove(key, changes);
-		signalChanges(changes);
-		return old;
-	}
-
-	String remove(Object key, Set<String> changes) {
-		writeLock();
-		try {
-			String prev = entries.remove(key);
-			addChange(changes, key.toString(), prev, null);
-			removeLine(key.toString());
-			return prev;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	private void removeLine(String key) {
-			for (Iterator<String> i = lines.iterator(); i.hasNext();) {
-				String k = i.next();
-			if (k.startsWith("*") || k.startsWith(">")) {
-				if (k.substring(1).equals(key)) {
-					i.remove();
-					break;
-				}
-			}
-		}
-	}
-
-	@Override /* Map */
-	public int size() {
-		return entries.size();
-	}
-
-	@Override /* Map */
-	public Collection<String> values() {
-		return Collections.unmodifiableCollection(entries.values());
-	}
-
-	//--------------------------------------------------------------------------------
-	// API methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns <jk>true</jk> if the specified entry is encoded.
-	 *
-	 * @param key The key.
-	 * @return <jk>true</jk> if the specified entry is encoded.
-	 */
-	public boolean isEncoded(String key) {
-		readLock();
-		try {
-			for (String s : lines)
-				if (s.length() > 1)
-					if (s.substring(1).equals(key))
-						return s.charAt(0) == '*';
-			return false;
-		} finally {
-			readUnlock();
-		}
-	}
-
-	/**
-	 * Adds header comments to this section.
-	 * @see ConfigFile#addHeaderComments(String, String...) for a description.
-	 * @param comments The comment lines to add to this section.
-	 * @return This object (for method chaining).
-	 */
-	public Section addHeaderComments(List<String> comments) {
-		writeLock();
-		try {
-			for (String c : comments) {
-				if (c == null)
-					c = "";
-				if (! c.startsWith("#"))
-					c = "#" + c;
-				this.headerComments.add(c);
-			}
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	/**
-	 * Removes all header comments from this section.
-	 */
-	public void clearHeaderComments() {
-		writeLock();
-		try {
-			this.headerComments.clear();
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	/**
-	 * Serialize this section.
-	 * @param out What to serialize to.
-	 * @param format The format (e.g. INI, BATCH, SHELL).
-	 */
-	public void writeTo(PrintWriter out, ConfigFileFormat format) {
-		readLock();
-		try {
-			if (format == INI) {
-				String NL = System.getProperty("line.separator");
-				for (String s : headerComments)
-					out.append(s).println();
-				if (! name.equals("default"))
-					out.append('[').append(name).append(']').println();
-				for (String l : lines) {
-					char c = (l.length() > 0 ? l.charAt(0) : 0);
-					if (c == '>' || c == '*'){
-						boolean encode = c == '*';
-						String key = l.substring(1);
-						String val = entries.get(key);
-						val = val.replace("\u0000", "\\"+NL+"\t");
-						out.append(key);
-						if (encode)
-							out.append('*');
-						out.append(" = ");
-						if (encode)
-							out.append('{').append(configFile.getEncoder().encode(key, val)).append('}');
-						else
-							out.append(val);
-						out.println();
-					} else {
-						out.append(l).println();
-					}
-				}
-
-			} else if (format == BATCH) {
-				String section = name.replaceAll("\\.\\/", "_");
-				for (String l : headerComments) {
-					l = trimComment(l);
-					if (! l.isEmpty())
-						out.append("rem ").append(l);
-					out.println();
-				}
-				for (String l : lines) {
-					char c = (l.length() > 0 ? l.charAt(0) : 0);
-					if (c == '>' || c == '*') {
-						String key = l.substring(1);
-						String val = entries.get(key);
-						out.append("set ");
-						if (! name.equals("default"))
-							out.append(section).append("_");
-						out.append(key.replaceAll("\\.\\/", "_")).append(" = ").append(val).println();
-					} else {
-						l = trimComment(l);
-						if (! l.isEmpty())
-							out.append("rem ").append(l);
-						out.println();
-					}
-				}
-
-			} else if (format == SHELL) {
-				String section = name.replaceAll("\\.\\/", "_");
-				for (String l : headerComments) {
-					l = trimComment(l);
-					if (! l.isEmpty())
-						out.append("# ").append(l);
-					out.println();
-				}
-				for (String l : lines) {
-					char c = (l.length() > 0 ? l.charAt(0) : 0);
-					if (c == '>' || c == '*'){
-						String key = l.substring(1);
-						String val = entries.get(key).replaceAll("\\\\", "\\\\\\\\");
-						out.append("export ");
-						if (! name.equals("default"))
-							out.append(section).append("_");
-						out.append(key.replaceAll("\\.\\/", "_")).append('=').append('"').append(val).append('"').println();
-					} else {
-						l = trimComment(l);
-						if (! l.isEmpty())
-							out.append("# ").append(l);
-						out.println();
-					}
-				}
-			}
-		} finally {
-			readUnlock();
-		}
-	}
-
-	//--------------------------------------------------------------------------------
-	// Protected methods used by ConfigFile
-	//--------------------------------------------------------------------------------
-
-	private String pendingMultiline;
-
-	/*
-	 * Add lines to this section.
-	 */
-	Section addLines(Set<String> changes, String...l) {
-		writeLock();
-		try {
-			if (l == null)
-				l = new String[0];
-			for (String line : l) {
-				if (line == null)
-					line = "";
-				if (line.matches("\\s*\\#.*"))
-					this.lines.add(line);
-				else if (line.matches("\\s*\\S+\\s*\\=.*")) {
-					// Key/value pairs are stored as either ">key" or "*key";
-					String key = line.substring(0, line.indexOf('=')).trim();
-					String val = line.substring(line.indexOf('=')+1).trim();
-					boolean encoded = key.length() > 1 && key.endsWith("*");
-					pendingMultiline = val.endsWith("\\") ? key : null;
-					if (pendingMultiline != null)
-						val = val.replaceAll("\\\\$", "\u0000");
-					if (encoded) {
-						key = key.substring(0, key.lastIndexOf('*'));
-						String v = val.toString().trim();
-						if (v.startsWith("{") && v.endsWith("}"))
-							val = configFile.getEncoder().decode(key, v.substring(1, v.length()-1));
-						else
-							configFile.setHasBeenModified();
-					}
-					if (containsKey(key)) {
-						entries.remove(key);
-						lines.remove('*' + key);
-						lines.remove('>' + key);
-					}
-					lines.add((encoded ? '*' : '>') + key);
-					addChange(changes, key, entries.put(key, val), val);
-				} else if (pendingMultiline != null) {
-					line = line.trim();
-					String key = pendingMultiline;
-					String val = entries.get(key);
-					if (line.endsWith("\\")) {
-						pendingMultiline = key;
-						line = line.replaceAll("\\\\$", "\u0000");
-					} else {
-						pendingMultiline = null;
-					}
-					val += line;
-					addChange(changes, key, entries.put(key, val), val);
-				} else
-					this.lines.add(line);
-			}
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	/*
-	 * Remove all "#*" lines at the end of this section so they can
-	 * be associated with the next section.
-	 */
-	List<String> removeTrailingComments() {
-		LinkedList<String> l = new LinkedList<String>();
-		while ((! lines.isEmpty()) && lines.getLast().startsWith("#"))
-			l.addFirst(lines.removeLast());
-		return l;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Private methods
-	//--------------------------------------------------------------------------------
-
-	private void addLine(String key, boolean encoded) {
-		for (Iterator<String> i = lines.iterator(); i.hasNext();) {
-			String k = i.next();
-			if ((k.startsWith("*") || k.startsWith(">")) && k.substring(1).equals(key)) {
-				if (k.startsWith("*") && encoded || k.startsWith(">") && ! encoded)
-					return;
-				i.remove();
-			}
-		}
-		lines.add((encoded ? "*" : ">") + key);
-	}
-
-	private void readLock() {
-		lock.readLock().lock();
-	}
-
-	private void readUnlock() {
-		lock.readLock().unlock();
-	}
-
-	private void writeLock() {
-		if (readOnly)
-			throw new UnsupportedOperationException("Cannot modify read-only ConfigFile.");
-		lock.writeLock().lock();
-	}
-
-	private void writeUnlock() {
-		lock.writeLock().unlock();
-	}
-
-	private String trimComment(String s) {
-		return s.replaceAll("^\\s*\\#\\s*", "").trim();
-	}
-
-	private Set<String> createChanges() {
-		return (configFile != null && configFile.getListeners().size() > 0 ? new LinkedHashSet<String>() : null);
-	}
-
-	private void signalChanges(Set<String> changes) {
-		if (changes != null && ! changes.isEmpty())
-			for (ConfigFileListener l : configFile.getListeners())
-				l.onChange(configFile, changes);
-	}
-
-	private void addChange(Set<String> changes, String key, String oldVal, String newVal) {
-		if (changes != null)
-			if (! StringUtils.isEquals(oldVal, newVal))
-				changes.add(getFullKey(name, key));
-	}
-}
\ 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/ini/SectionListener.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/SectionListener.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/SectionListener.class
deleted file mode 100755
index 65a4787..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/SectionListener.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/ini/SectionListener.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/SectionListener.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/SectionListener.java
deleted file mode 100755
index 88f24da..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/SectionListener.java
+++ /dev/null
@@ -1,59 +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.ini;
-
-import java.util.*;
-
-import com.ibm.juno.core.utils.*;
-
-
-/**
- * Listener that can be used to listen for change events for a specific section in a config file.
- * <p>
- * Use the {@link ConfigFile#addListener(ConfigFileListener)} method to register listeners.
- */
-public class SectionListener extends ConfigFileListener {
-
-	private boolean isDefault;
-	private String prefix;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param section The name of the section in the config file to listen to.
-	 */
-	public SectionListener(String section) {
-		isDefault = StringUtils.isEmpty(section);
-		prefix = isDefault ? null : (section + '/');
-	}
-
-	@Override /* ConfigFileListener */
-	public void onChange(ConfigFile cf, Set<String> changes) {
-		for (String c : changes) {
-			if (isDefault) {
-				if (c.indexOf('/') == -1) {
-					onChange(cf);
-					return;
-				}
-			} else {
-				if (c.startsWith(prefix)) {
-					onChange(cf);
-					return;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Signifies that the config file entry changed.
-	 *
-	 * @param cf The config file being modified.
-	 */
-	public void onChange(ConfigFile cf) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/XorEncoder.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/XorEncoder.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/XorEncoder.class
deleted file mode 100755
index fcc1ac5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/XorEncoder.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/ini/XorEncoder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/XorEncoder.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/XorEncoder.java
deleted file mode 100755
index 5157d20..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/XorEncoder.java
+++ /dev/null
@@ -1,46 +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.ini;
-
-import com.ibm.juno.core.utils.*;
-
-/**
- * Simply XOR+Base64 encoder for obscuring passwords and other sensitive data in INI config files.
- * <p>
- * This is not intended to be used as strong encryption.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class XorEncoder implements Encoder {
-
-	/** Reusable XOR-Encoder instance. */
-	public static final XorEncoder INSTANCE = new XorEncoder();
-
-   private static final String key = System.getProperty("com.ibm.juno.core.ini.XorEncoder.key", "nuy7og796Vh6G9O6bG230SHK0cc8QYkH");	// The super-duper-secret key
-
-	@Override /* Encoder */
-	public String encode(String fieldName, String in) {
-		byte[] b = in.getBytes(IOUtils.UTF8);
-		for (int i = 0; i < b.length; i++) {
-				int j = i % key.length();
-			b[i] = (byte)(b[i] ^ key.charAt(j));
-		}
-		return StringUtils.base64Encode(b);
-	}
-
-	@Override /* Encoder */
-	public String decode(String fieldName, String in) {
-		byte[] b = StringUtils.base64Decode(in);
-		for (int i = 0; i < b.length; i++) {
-			int j = i % key.length();
-			b[i] = (byte)(b[i] ^ key.charAt(j));
-	}
-		return new String(b, IOUtils.UTF8);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config1.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config1.png
deleted file mode 100755
index 531f280..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config1.png 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/ini/doc-files/config2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config2.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config2.png
deleted file mode 100755
index 7f5a4b3..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config2.png 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/ini/doc-files/config3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config3.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config3.png
deleted file mode 100755
index 749da14..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/doc-files/config3.png 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/ini/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/package.html
deleted file mode 100755
index cd94ced..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/package.html
+++ /dev/null
@@ -1,643 +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>INI file support</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='#Overview'>Overview</a></p> 
-	<li><p><a class='doclink' href='#Variables'>Variables</a></p> 
-	<li><p><a class='doclink' href='#Encoded'>Encoded Entries</a></p> 
-	<li><p><a class='doclink' href='#Listeners'>Listeners</a></p> 
-	<li><p><a class='doclink' href='#CommandLine'>Command Line API</a></p> 
-	<li><p><a class='doclink' href='#Serializing'>Serializing Config Files</a></p> 
-	<li><p><a class='doclink' href='#Merging'>Merging Config Files</a></p> 
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="Overview"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Overview</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.core.ini.ConfigMgr} and {@link com.ibm.juno.core.ini.ConfigFile} classes 
-		implement an API for working with INI-style configuration files such as the following:
-	</p>
-	<p class='bcode'>
-	<cc>#--------------------------</cc>
-	<cc># Default section</cc>
-	<cc>#--------------------------</cc>
-	<ck>key1</ck> = <cv>1</cv>
-	<ck>key2</ck> = <cv>true</cv>
-	<ck>key3</ck> = <cv>1,2,3</cv>
-	<ck>key4</ck> = <cv>http://foo</cv>
-	
-	<cc>#--------------------------</cc>
-	<cc># A comment about Section 1</cc>
-	<cc>#--------------------------</cc>
-	<cs>[Section1]</cs>
-	<ck>key1</ck> = <cv>2</cv>
-	<ck>key2</ck> = <cv>false</cv>
-	<ck>key3</ck> = <cv>4,5,6</cv>
-	<ck>key4</ck> = <cv>http://bar</cv>
-	</p>
-	
-	<p>
-		The {@link com.ibm.juno.core.ini.ConfigMgr} class is used to instantiate instances of 
-		{@link com.ibm.juno.core.ini.ConfigFile} which can then be used to retrieve config file values through either <js>"key"</js> or <js>"Section/key"</js> identifiers.
-	</p>
-
-	<p class='bcode'>
-	<jk>int</jk> key1;
-	<jk>boolean</jk> key2;
-	<jk>int</jk>[] key3;
-	URL key4;
-	
-	<jc>// Get our config file using the default config manager</jc>
-	ConfigFile f = ConfigMgr.<jsf>DEFAULT</jsf>.getConfig(<js>"C:/temp/MyConfig.cfg"</js>);
-
-	<jc>// Read values from default section</jc>
-	key1 = f.getInt(<js>"key1"</js>);
-	key2 = f.getBoolean(<js>"key2"</js>);
-	key3 = f.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"key3"</js>);
-	key4 = f.getObject(URL.<jk>class</jk>, <js>"key4"</js>);
-
-	<jc>// Read values from Section #1</jc>
-	key1 = f.getInt(<js>"Section1/key1"</js>);
-	key2 = f.getBoolean(<js>"Section1/key2"</js>);
-	key3 = f.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"Section1/key3"</js>);
-	key4 = f.getObject(URL.<jk>class</jk>, <js>"Section1/key4"</js>);
-	</p>
-
-	<p>
-		The interface also allows config files to be constructed programmatically...
-	</p>
-	
-	<p class='bcode'>
-	<jc>// Construct the sample INI file programmatically</jc>
-	ConfigFile f = ConfigMgr.<jsf>DEFAULT</jsf>.getConfig(<js>"C:/temp/MyConfig.cfg"</js>, <jk>true</jk>)
-		.addLines(<jk>null</jk>,                     <jc>// The default 'null' section</jc>
-			<js>"# Default section"</js>,             <jc>// A regular comment</jc>
-			<js>"key1 = 1"</js>,                      <jc>// A numeric entry</jc>
-			<js>"key2 = true"</js>,                   <jc>// A boolean entry</jc>
-			<js>"key3 = 1,2,3"</js>,                  <jc>// An array entry</jc>
-			<js>"key4 = http://foo"</js>,             <jc>// A POJO entry</jc>
-			<js>""</js>)                              <jc>// A blank line</jc>
-		.addHeaderComments(<js>"Section1"</js>,       <jc>// The 'Section1' section</jc>
-			<js>"A comment about Section 1"</js>)     <jc>// A header comment</jc>
-		.addLines(<js>"Section1"</js>,                <jc>// The 'Section1' section</jc>
-			<js>"key1 = 2"</js>,                      <jc>// A numeric entry</jc>
-			<js>"key2 = false"</js>,                  <jc>// A boolean entry</jc>
-			<js>"key3 = 4,5,6"</js>,                  <jc>// An array entry</jc>
-			<js>"key4 = http://bar"</js>)             <jc>// A POJO entry</jc>
-		.save();                            <jc>// Save to MyConfig.cfg</jc>
-	</p>
-	
-	<p>
-		The following is equivalent, except uses {@link com.ibm.juno.core.ini.ConfigFile#put(String,Object)} to set values.
-		Note how we're setting values as POJOs which will be automatically converted to strings when persisted to disk.
-	<p class='bcode'>
-	<jc>// Construct the sample INI file programmatically</jc>
-	ConfigFile f = ConfigMgr.<jsf>DEFAULT</jsf>.getConfig(<js>"C:/temp/MyConfig.cfg"</js>, <jk>true</jk>)
-		.addLines(<jk>null</jk>,
-			<js>"# Default section"</js>)
-		.addHeaderComments(<js>"Section1"</js>,
-			<js>"A comment about Section 1"</js>);
-	cf.put(<js>"key1"</js>, 1);
-	cf.put(<js>"key2"</js>, <jk>true</jk>);
-	cf.put(<js>"key3"</js>, <jk>new int</jk>[]{1,2,3});
-	cf.put(<js>"key4"</js>, <jk>new</jk> URL(<js>"http://foo"</js>));
-	cf.put(<js>"Section1/key1"</js>, 2);
-	cf.put(<js>"Section1/key2"</js>, <jk>false</jk>);
-	cf.put(<js>"Section1/key3"</js>, <jk>new int</jk>[]{4,5,6});
-	cf.put(<js>"Section1/key4"</js>, <jk>new</jk> URL(<js>"http://bar"</js>));
-	cf.save();
-	</p>
-	<p>
-		Refer to {@link com.ibm.juno.core.ini.ConfigFile#put(String,Object,boolean)} for a description of 
-		formats for various data types.
-	</p>
-	<p>
-		Various convenience getter methods are provided for retrieving different data types:
-	</p>
-	<p class='bcode'>
-	<jc>// Strings with default values</jc>
-	<jc>// key1 = foobar</jc>
-	String key1 = cf.getString(<js>"key1"</js>);
-
-	<jc>// Numbers</jc>
-	<jc>// key2 = 123</jc>
-	<jk>float</jk> key2 = cf.getObject(<jk>float</jk>.<jk>class</jk>, <js>"key2"</js>);
-
-	<jc>// Booleans</jc>
-	<jc>// key3 = true</jc>
-	<jk>boolean</jk> key3 = cf.getBoolean(<js>"key3"</js>);
-
-	<jc>// Objects convertable to and from strings using the JSON serializer and parser</jc>
-	<jc>// key4 = http://foo</jc>
-	URL key4 = cf.getObject(URL.<jk>class</jk>, <js>"key4"</js>);
-
-	<jc>// Arrays of strings</jc>
-	<jc>// key5 = foo, bar</jc>
-	String[] key5 = cf.getStringArray(<js>"key5"</js>);
-
-	<jc>// Arrays of objects</jc>
-	<jc>// key6 = http://foo,http://bar</jc>
-	URL[] key6 = cf.getObject(URL[].<jk>class</jk>, <js>"key6"</js>);
-
-	<jc>// Arrays of primitives</jc>
-	<jc>// key7 = 1,2,3</jc>
-	<jk>int</jk>[] key7 = cf.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"key7"</js>);
-
-	<jc>// Enums</jc>
-	<jc>// key8 = MINUTES</jc>
-	TimeUnit key8 = cf.getObject(TimeUnit.<jk>class</jk>, <js>"key8"</js>);
-
-	<jc>// Beans</jc>
-	<jc>// key9 = {name:'John Smith', addresses:[{street:'101 Main St', city:'Anywhere', state:'TX'}]}</jc>
-	Person key9 = cf.getObject(Person.<jk>class</jk>, <js>"key9"</js>);
-
-	<jc>// Generic Maps</jc>
-	<jc>// key10 = {foo:'bar', baz:123}</jc>
-	Map key10 = cf.getObject(ObjectMap.<jk>class</jk>, <js>"key10"</js>);
-	</p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Variables"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Variables</h2>
-<div class='topic'>
-	<p>
-		Config files can contain variables that get resolved dynamically using the {@link com.ibm.juno.core.utils.StringVarResolver} API.<br>
-	</p>
-	<p>
-		Resolving config files can be retrieved through the following methods:
-		<ul>
-			<li>{@link com.ibm.juno.core.ini.ConfigFile#getResolving()} - Returns a config file that resolves a default set of variables.
-			<li>{@link com.ibm.juno.core.ini.ConfigFile#getResolving(StringVarResolver)} - Returns a config file that resolves a custom set of variables.
-		</ul>
-	</p>	
-	<p>
-		The default {@link com.ibm.juno.core.ini.ConfigFile#getResolving()} method returns a config file that resolves the following
-		variables:
-	</p>
-	<ul>
-		<li><code>$S{key}</code>, <code>$S{key,default}</code> - System properties.
-		<li><code>$E{key}</code>, <code>$E{key,default}</code> - Environment variables.
-		<li><code>$C{key}</code>, <code>$C{key,default}</code> - Values in this configuration file.
-	</ul>
-	<p>
-	<h6 class='topic'>Examples:</h6>
-	<p class='bcode'>
-	<cc>#--------------------------</cc>
-	<cc># Examples </cc>
-	<cc>#--------------------------</cc>
-	<cs>[MyProperties]</cs>
-	<ck>javaHome</ck> = <cv>$S{java.home}</cv>
-	<ck>path</ck> = <cv>$E{PATH}</cv>
-	<ck>customMessage</ck> = <cv>Java home is $C{MyProperties/javaHome} and the environment path is $C{MyProperties/path}.</cv>
-	</p>
-	<p>
-		Resolving config files (and any config files retrieved through the same <code>ConfigMgr</code> that point to the same physical file)
-		share the same underlying config files in memory.  
-		This allows changes in one instance of the config file to be reflected in all.
-	</p>
-	<p>
-		Support for variables is extensible.  You can add support for your own variables by implementing custom 
-		{@link com.ibm.juno.core.utils.StringVarResolver StringVarResolvers}.<br>
-		For example, the microservice <code>Resource</code> class provides access to config files that
-			can contain any of the following variables:
-	</p>
-	<ul>
-		<li><code>$C</code> - Config variables.
-		<li><code>$S</code> - System properties.
-		<li><code>$E</code> - Environment variables.
-		<li><code>$I</code> - Servlet init parameters.
-		<li><code>$ARG</code> - JVM command-line arguments.
-		<li><code>$MF</code> - Main jar manifest file entries.
-		<li><code>$L</code> - Localized strings.
-		<li><code>$A</code> - HTTP request attributes.
-		<li><code>$P</code> - HTTP request URL parameters.
-		<li><code>$R</code> - HTTP request variables.
-		<li><code>$UE</code> - URL-encoding function.
-	</ul>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Encoded"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - Encoded Entries</h2>
-<div class='topic'>
-	<p>
-		If a config file contains sensitive information such as passwords, those values can be 
-		marked for encoding by appending <js>'*'</js> to the end of the key name.<br>
-		If a marked and unencoded value is detected in the file during load, it will be encoded and saved immediately.
-	</p>
-	<p>
-		For example, the following password is marked for encoding....
-	</p>
-	<p class='bcode'>
-		<cs>[MyHost]</cs>
-		<ck>url</ck> = <cv>http://localhost:9080/foo</cv>
-		<ck>user</ck> = <cv>me</cv>
-		<ck>password*</ck> = <cv>mypassword</cv>
-	</p>
-	<p>
-		After initial loading, the file contents will contain an encoded value...
-	</p>
-	<p class='bcode'>
-		<cs>[MyHost]</cs>
-		<ck>url</ck> = <cv>http://localhost:9080/foo</cv>
-		<ck>user</ck> = <cv>me</cv>
-		<ck>password*</ck> = <cv>{AwwJVhwUQFZEMg==}</cv>
-	</p>
-	<p>
-		The default encoder is {@link com.ibm.juno.core.ini.XorEncoder} which is a simple XOR+Base64 encoder.<br>
-		If desired, custom encoder can be used by implementing the {@link com.ibm.juno.core.ini.Encoder}
-		interface and creating your own <code>ConfigMgr</code> using the {@link com.ibm.juno.core.ini.ConfigMgr#ConfigMgr(boolean,Encoder,WriterSerializer,ReaderParser,Charset,String[])}
-		constructor.
-	</p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Listeners"></a>
-<h2 class='topic' onclick='toggle(this)'>4 - Listeners</h2>
-<div class='topic'>
-	<p>
-		The following method is provided for listening to changes made on config files:
-	</p>
-	<p>
-		{@link com.ibm.juno.core.ini.ConfigFile#addListener(ConfigFileListener)}.
-	</p>
-	<p>
-		Subclasses are provided for listening for different kinds of events:
-	</p>
-	<ul>
-		<li>{@link com.ibm.juno.core.ini.ConfigFileListener} - Config file is saved, loaded, or modified.
-		<li>{@link com.ibm.juno.core.ini.SectionListener} - One or more entries in a section are modified.
-		<li>{@link com.ibm.juno.core.ini.EntryListener} - An individual entry is modified.
-	</ul>
-	<h6 class="topic">Example:</h6>
-	<p class='bcode'>
-	<jc>// Get our config file using the default config manager</jc>
-	ConfigFile f = ConfigMgr.<jsf>DEFAULT</jsf>.getConfig(<js>"C:/temp/MyConfig.cfg"</js>);
-
-	<jc>// Add a listener for an entry</jc>
-	f.addListener(
-		<jk>new</jk> EntryListener(<js>"Section1/key1"</js>) {
-			<ja>@Override</ja>
-			<jk>public void</jk> onChange(ConfigFile cf) {
-				System.<jsf>err</jsf>.println(<js>"Entry changed!  New value is "</js> + cf.getString(<js>"Section1/key1"</js>));
-			}
-		}
-	);
-	</p>
-	<p>
-		Note that since {@link com.ibm.juno.core.ini.ConfigFile} instances for the same physical files are shared in {@link com.ibm.juno.core.ini.ConfigMgr}, a change made
-		in once instance of a config file will trigger all listeners defined on that physical file.
-	</p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="CommandLine"></a>
-<h2 class='topic' onclick='toggle(this)'>5 - Command Line API</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.core.ini.ConfigMgr} class contains a {@link com.ibm.juno.core.ini.ConfigMgr#main(String[])}
-			method that can be used to work with config files through a command-line prompt.<br>
-		This is invoked as a normal Java command:
-	</p>
-	<p class='bcode'>
-	java -jar juno.jar com.ibm.juno.core.ini.ConfigMgr [args]
-	</p>
-	<p>
-		Arguments can be any of the following...
-		<ul class='spaced-list'>
-			<li>No arguments<br>
-				Prints usage message.
-			<li><code>createBatchEnvFile -configfile &lt;configFile&gt; -envfile &lt;batchFile&gt; [-verbose]</code><br>
-				Creates a batch file that will set each config file entry as an environment variable.<br>
-				Characters in the keys that are not valid as environment variable names (e.g. <js>'/'</js> and <js>'.'</js>)
-				will be converted to underscores.
-			<li><code>createShellEnvFile -configFile &lt;configFile&gt; -envFile &lt;configFile&gt; [-verbose]</code>
-				Creates a shell script that will set each config file entry as an environment variable.<br>
-				Characters in the keys that are not valid as environment variable names (e.g. <js>'/'</js> and <js>'.'</js>)
-					will be converted to underscores.
-			<li><code>setVals -configFile &lt;configFile&gt; -vals [var1=val1 [var2=val2...]] [-verbose]</code>
-				Sets values in config files.
-		</ul>
-	</p>
-	<p>
-		For example, the following command will create the file <code>'MyConfig.bat'</code> from the contents of the file <code>'MyConfig.cfg'</code>.
-	</p>
-	<p class='bcode'>
-		java com.ibm.juno.core.ini.ConfigMgr createBatchEnvFile -configfile C:\foo\MyConfig.cfg -batchfile C:\foo\MyConfig.bat
-	</p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Serializing"></a>
-<h2 class='topic' onclick='toggle(this)'>6 - Serializing Config Files</h2>
-<div class='topic'>
-	<p>
-		Instances of {@link com.ibm.juno.core.ini.ConfigFile} are POJOs that can be serialized to and parsed from
-			all supported Juno languages.
-	</p>
-	<p>
-		The <code>com.ibm.juno.microservice.resources.ConfigResource</code> is a predefined REST interface that
-			allows access to the config file used by a microservice.<br>
-		The <code>com.ibm.team.juno.samples</code> project is a microservice that includes this resource
-			at <code>http://localhost:10000/sample/config</code>.<br>
-		The sample microservice uses the following config file <code>juno-samples.cfg</code>:
-	</p>
-	<p class='bcode'>
-	<cc>#================================================================================
-	# Basic configuration file for SaaS microservices
-	# Subprojects can use this as a starting point.
-	#================================================================================</cc>
-	
-	<cc>#================================================================================
-	# REST settings
-	#================================================================================</cc>
-	<cs>[REST]</cs>
-	
-	<cc># The HTTP port number to use.
-	# Default is Rest-Port setting in manifest file, or 8000.</cc>
-	<ck>port</ck> = <cv>10000</cv>
-	
-	<cc># A JSON map of servlet paths to servlet classes.
-	# Example:  
-	# 	resourceMap = {'/*':'com.ibm.MyServlet'}
-	# Either resourceMap or resources must be specified.</cc>
-	<ck>resourceMap</ck> = 
-
-	<cc># A comma-delimited list of names of classes that extend from Servlet.
-	# Resource paths are pulled from @RestResource.path() annotation, or
-	# 	"/*" if annotation not specified.
-	# Example:  
-	# 	resources = com.ibm.MyServlet
-	# Default is Rest-Resources in manifest file.
-	# Either resourceMap or resources must be specified.</cc>
-	<ck>resources</ck> = 
-
-	<cc># The context root of the Jetty server.
-	# Default is Rest-ContextPath in manifest file, or "/".</cc>
-	<ck>contextPath</ck> = 
-
-	<cc># Authentication:  NONE, BASIC.</cc>
-	<ck>authType</ck> = <cv>NONE</cv>
-	
-	<cc># The BASIC auth username.
-	# Default is Rest-LoginUser in manifest file.</cc>
-	<ck>loginUser</ck> = 
-	
-	<cc># The BASIC auth password.
-	# Default is Rest-LoginPassword in manifest file.</cc>
-	<ck>loginPassword</ck> = 
-	
-	<cc># The BASIC auth realm.
-	# Default is Rest-AuthRealm in manifest file.</cc>
-	<ck>authRealm</ck> = 
-	
-	<cc># Stylesheet to use for HTML views.
-	# The default options are:
-	#  - styles/juno.css
-	#  - styles/devops.css
-	# Other stylesheets can be referenced relative to the servlet package or working
-	# 	directory.</cc>
-	<ck>stylesheet</ck> = <cv>styles/devops.css</cv>
-	
-	<cc># What to do when the config file is saved.
-	# Possible values:
-	# 	NOTHING - Don't do anything. 
-	#	RESTART_SERVER - Restart the Jetty server.
-	#	RESTART_SERVICE - Shutdown and exit with code '3'.</cc>
-	<ck>saveConfigAction</ck> = <cv>RESTART_SERVER</cv>
-	
-	<cc># Enable SSL support.</cc>
-	<ck>useSsl</ck> = false
-	
-	<cc>#================================================================================
-	# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
-	#--------------------------------------------------------------------------------
-	# Ignored if REST/useSsl is false.
-	#================================================================================</cc>
-	<cs>[REST-SslContextFactory]</cs>
-	<ck>keyStorePath</ck> = <cv>client_keystore.jks</cv>
-	<ck>keyStorePassword*</ck> = <cv>{HRAaRQoT}</cv>
-	<ck>excludeCipherSuites</ck> = <cv>TLS_DHE.*, TLS_EDH.*</cv>
-	<ck>excludeProtocols</ck> = <cv>SSLv3</cv>
-	<ck>allowRenegotiate</ck> = <cv>false</cv>
-	
-	<cc>#================================================================================
-	# Logger settings
-	# See FileHandler Java class for details.
-	#================================================================================</cc>
-	<cs>[Logging]</cs>
-
-	<cc># The directory where to create the log file.
-	# Default is "."</cc>
-	<ck>logDir</ck> = <cv>logs</cv>
-	
-	<cc># The name of the log file to create for the main logger.
-	# The logDir and logFile make up the pattern that's passed to the FileHandler
-	# constructor.
-	# If value is not specified, then logging to a file will not be set up.</cc>
-	<ck>logFile</ck> = <cv>microservice.%g.log</cv>
-	
-	<cc># Whether to append to the existing log file or create a new one.
-	# Default is false.</cc>
-	<ck>append</ck> = 
-	
-	<cc># The SimpleDateFormat format to use for dates.
-	# Default is "yyyy.MM.dd hh:mm:ss".</cc>
-	<ck>dateFormat</ck> = 
-	
-	<cc># The log message format.
-	# The value can contain any of the following variables:
-	# 	{date} - The date, formatted per dateFormat.
-	#	{class} - The class name.
-	#	{method} - The method name.
-	#	{logger} - The logger name.
-	#	{level} - The log level name.
-	#	{msg} - The log message.
-	#	{threadid} - The thread ID.
-	#	{exception} - The localized exception message.
-	# Default is "[{date} {level}] {msg}%n".</cc>
-	<ck>format</ck> =
-	
-	<cc># The maximum log file size.
-	# Suffixes available for numbers.
-	# See ConfigFile.getInt(String,int) for details.
-	# Default is 1M.</cc>
-	<ck>limit</ck> = <cv>10M</cv>
-	
-	<cc># Max number of log files.
-	# Default is 1.</cc>
-	<ck>count</ck> = <cv>5</cv>
-	
-	<cc># Default log levels.
-	# Keys are logger names.
-	# Values are serialized Level POJOs.</cc>
-	<ck>levels</ck> = <cv>{ com.ibm.juno:'INFO' }</cv>
-	
-	<cc># Only print unique stack traces once and then refer to them by a simple 8 character hash identifier.
-	# Useful for preventing log files from filling up with duplicate stack traces.
-	# Default is false.</cc>
-	<ck>useStackTraceHashes</ck> = <cv>true</cv>
-	
-	<cc># The default level for the console logger.
-	# Default is WARNING.</cc>
-	<ck>consoleLevel</ck> = 
-	
-	<cc>#================================================================================
-	# System properties
-	#--------------------------------------------------------------------------------
-	# These are arbitrary system properties that are set during startup.
-	#================================================================================</cc>
-	<cs>[SystemProperties]</cs>
-	
-	<cc># Configure Jetty for StdErrLog Logging</cc>
-	<ck>org.eclipse.jetty.util.log.class</ck> = <cv>org.eclipse.jetty.util.log.StrErrLog</cv>
-	
-	<cc># Jetty logging level</cc>
-	<ck>org.eclipse.jetty.LEVEL</ck> = <cv>WARN</cv>		
-	</p>
-	<p>
-		The config file looks deceivingly simple.
-		However, it should be noticed that the config file is a VERY powerful feature with many capabilities including:
-	</p>
-	<p>
-		When you point your browser to this resource, you'll notice that the contents of the config file
-			are being serialized to HTML as a POJO: 
-	</p>
-	<img class='bordered' src="doc-files/config1.png">
-	<p>
-		Likewise, the config file can also be serialized as any of the supported languages such as JSON: 
-	</p>
-	<img class='bordered' src="doc-files/config2.png">
-	<p>
-		The code for implementing this page could not be any simpler, since it simply returns the config
-			file returned by the <code>RestServlet.getConfig()</code> method.
-	</p>
-	<p class='bcode'>
-		<jd>/** 
-		 * [GET /] - Show contents of config file.
-		 *  
-		 * <ja>@return</ja> The config file.  
-		 * <ja>@throws</ja> Exception 
-		 */</jd>
-		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/"</js>, description=<js>"Show contents of config file."</js>)
-		<jk>public</jk> ConfigFile getConfigContents() <jk>throws</jk> Exception {
-			<jk>return</jk> getConfig();
-		}
-	</p>
-	<p>
-		The edit page takes you to an editor that allows you to modify the contents of the config file: 
-	</p>
-	<img class='bordered' src="doc-files/config3.png">
-	<p>
-		This latter page uses the {@link com.ibm.juno.core.ini.ConfigFile#toString()} method to retrieve the
-		contents of the config file in INI format.
-	</p>
-	<p>
-		Since config files are serializable, that mean they can also be retrieved through the <code>RestClient</code> API.
-	</p>
-	<p class='bcode'>
-	<jc>// Create a new REST client with JSON support</jc>
-	RestClient c = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>);
-
-	<jc>// Retrieve config file through REST interface</jc>
-	ConfigFile cf = c.doGet(<js>"http://localhost:10000/sample/config"</js>).getResponse(ConfigFileImpl.<jk>class</jk>);
-	</p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Merging"></a>
-<h2 class='topic' onclick='toggle(this)'>7 - Merging Config Files</h2>
-<div class='topic'>
-	<p>
-		In the previous example, an edit page was shown that allows you to edit config files through
-		a REST interface.<br>
-		Note that if only a single entry is modified in the config file, we only want to trigger
-		listeners for that change, not trigger all listeners.<br>
-		This is where the {@link com.ibm.juno.core.ini.ConfigFile#merge(ConfigFile)} method comes into play.<br>
-		This method will copy the contents of one config file over to another config file, but only
-		trigger listeners when the values are different.
-	</p>
-	<p>
-		The edit page is implemented with this method which is a simple PUT with the contents of
-			the new INI file as the body of the HTTP request:
-	</p>
-	<p class='bcode'>
-	<jd>/** 
-	 * [PUT /] - Sets contents of config file. 
-	 * 
-	 * <ja>@param</ja> contents The new contents of the config file. 
-	 * <ja>@return</ja> The new config file contents.
-	 * <ja>@throws</ja> Exception 
-	 */</jd>
-	<ja>@RestMethod</ja>(name=<js>"PUT"</js>, path=<js>"/"</js>,
-		description=<js>"Sets contents of config file."</js>,
-		input={
-			<ja>@Var</ja>(category=<jsf>CONTENT</jsf>, description=<js>"New contents in INI file format."</js>)
-		}
-	)
-	<jk>public</jk> ConfigFile setConfigContents(<ja>@Content</ja> Reader contents) <jk>throws</jk> Exception {
-		
-		<jc>// Create a new in-memory config file based on the contents of the HTTP request.</jc>
-		ConfigFile cf2 = ConfigMgr.<jsf>DEFAULT</jsf>.create().load(contents);
-		
-		<jc>// Merge the in-memory config file into the existing config file and save it.
-		// Then return the modified config file to be parsed as a POJO.</jc>
-		<jk>return</jk> getConfig().merge(cf2).save();
-	}
-	</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/jena/Constants.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/Constants.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/Constants.class
deleted file mode 100755
index 0e88fb4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/Constants.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/jena/Constants.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/Constants.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/Constants.java
deleted file mode 100755
index 94f0480..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/Constants.java
+++ /dev/null
@@ -1,91 +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.jena;
-
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Constants used by the {@link RdfSerializer} and {@link RdfParser} classes.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class Constants {
-
-	//--------------------------------------------------------------------------------
-	// Built-in Jena languages.
-	//--------------------------------------------------------------------------------
-
-	/** Jena language support: <js>"RDF/XML"</js>.*/
-	public static final String LANG_RDF_XML = "RDF/XML";
-
-	/** Jena language support: <js>"RDF/XML-ABBREV"</js>.*/
-	public static final String LANG_RDF_XML_ABBREV = "RDF/XML-ABBREV";
-
-	/** Jena language support: <js>"N-TRIPLE"</js>.*/
-	public static final String LANG_NTRIPLE = "N-TRIPLE";
-
-	/** Jena language support: <js>"TURTLE"</js>.*/
-	public static final String LANG_TURTLE = "TURTLE";
-
-	/** Jena language support: <js>"N3"</js>.*/
-	public static final String LANG_N3 = "N3";
-
-
-	//--------------------------------------------------------------------------------
-	// Built-in Juno properties.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * RDF property identifier <js>"items"</js>.
-	 * <p>
-	 * For resources that are collections, this property identifies the RDF Sequence
-	 * 	container for the items in the collection.
-	 */
-	public static final String RDF_junoNs_ITEMS = "items";
-
-	/**
-	 * RDF property identifier <js>"root"</js>.
-	 * <p>
-	 * Property added to root nodes to help identify them as root elements during parsing.
-	 * <p>
-	 * Added if {@link RdfSerializerProperties#RDF_addRootProperty} setting is enabled.
-	 */
-	public static final String RDF_junoNs_ROOT = "root";
-
-	/**
-	 * RDF property identifier <js>"class"</js>.
-	 * <p>
-	 * Property added to bean resources to identify the class type.
-	 * <p>
-	 * Added if {@link SerializerProperties#SERIALIZER_addClassAttrs} setting is enabled.
-	 */
-	public static final String RDF_junoNs_CLASS = "class";
-
-	/**
-	 * RDF property identifier <js>"value"</js>.
-	 * <p>
-	 * Property added to nodes to identify a simple value.
-	 */
-	public static final String RDF_junoNs_VALUE = "value";
-
-	/**
-	 * RDF resource that identifies a <jk>null</jk> value.
-	 */
-	public static final String RDF_NIL = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
-
-	/**
-	 * RDF resource that identifies a <code>Seq</code> value.
-	 */
-	public static final String RDF_SEQ = "http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq";
-
-	/**
-	 * RDF resource that identifies a <code>Bag</code> value.
-	 */
-	public static final String RDF_BAG = "http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfBeanPropertyMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfBeanPropertyMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfBeanPropertyMeta.class
deleted file mode 100755
index a2b5d07..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfBeanPropertyMeta.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/jena/RdfBeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfBeanPropertyMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfBeanPropertyMeta.java
deleted file mode 100755
index 9a0cd4a..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfBeanPropertyMeta.java
+++ /dev/null
@@ -1,78 +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.jena;
-
-import static com.ibm.juno.core.jena.RdfCollectionFormat.*;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.jena.annotation.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Metadata on bean properties specific to the RDF serializers and parsers pulled from the {@link Rdf @Rdf} annotation on the bean property.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The bean class.
- */
-public class RdfBeanPropertyMeta<T> {
-
-	private RdfCollectionFormat collectionFormat = DEFAULT;
-	private Namespace namespace = null;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param bpMeta The metadata of the bean property of this additional metadata.
-	 */
-	public RdfBeanPropertyMeta(BeanPropertyMeta<T> bpMeta) {
-
-		List<Rdf> rdfs = bpMeta.findAnnotations(Rdf.class);
-		List<RdfSchema> schemas = bpMeta.findAnnotations(RdfSchema.class);
-
-		for (Rdf rdf : rdfs)
-			if (collectionFormat == DEFAULT)
-				collectionFormat = rdf.collectionFormat();
-
-		namespace = RdfUtils.findNamespace(rdfs, schemas);
-	}
-
-	/**
-	 * Returns the RDF collection format of this property from the {@link Rdf#collectionFormat} annotation on this bean property.
-	 *
-	 * @return The RDF collection format, or {@link RdfCollectionFormat#DEFAULT} if annotation not specified.
-	 */
-	protected RdfCollectionFormat getCollectionFormat() {
-		return collectionFormat;
-	}
-
-	/**
-	 * Returns the RDF namespace associated with this bean property.
-	 * <p>
-	 * 	Namespace is determined in the following order:
-	 * <ol>
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean property field.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean getter.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean setter.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean package.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean superclasses.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean superclass packages.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean interfaces.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on bean interface packages.
-	 * </ol>
-	 *
-	 * @return The namespace associated with this bean property, or <jk>null</jk> if no namespace is
-	 * 	associated with it.
-	 */
-	public Namespace getNamespace() {
-		return namespace;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfClassMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfClassMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfClassMeta.class
deleted file mode 100755
index 6269aad..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfClassMeta.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/jena/RdfClassMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfClassMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfClassMeta.java
deleted file mode 100755
index d23e2f0..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfClassMeta.java
+++ /dev/null
@@ -1,82 +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.jena;
-
-import java.util.*;
-
-import com.ibm.juno.core.jena.annotation.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Metadata on classes specific to the RDF serializers and parsers pulled from the {@link Rdf @Rdf} annotation on the class.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class RdfClassMeta {
-
-	private final Rdf rdf;
-	private final RdfCollectionFormat collectionFormat;
-	private final Namespace namespace;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param c The class that this annotation is defined on.
-	 */
-	public RdfClassMeta(Class<?> c) {
-		this.rdf = ReflectionUtils.getAnnotation(Rdf.class, c);
-		if (rdf != null) {
-			collectionFormat = rdf.collectionFormat();
-		} else {
-			collectionFormat = RdfCollectionFormat.DEFAULT;
-		}
-		List<Rdf> rdfs = ReflectionUtils.findAnnotations(Rdf.class, c);
-		List<RdfSchema> schemas = ReflectionUtils.findAnnotations(RdfSchema.class, c);
-		this.namespace = RdfUtils.findNamespace(rdfs, schemas);
-	}
-
-	/**
-	 * Returns the {@link Rdf} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Rdf} annotation, or <jk>null</jk> if annotation is not specified.
-	 */
-	protected Rdf getAnnotation() {
-		return rdf;
-	}
-
-	/**
-	 * Returns the {@link Rdf#collectionFormat()} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Rdf#collectionFormat()} annotation, or <jk>null</jk> if annotation is not specified.
-	 */
-	protected RdfCollectionFormat getCollectionFormat() {
-		return collectionFormat;
-	}
-
-	/**
-	 * Returns the RDF namespace associated with this class.
-	 * <p>
-	 * 	Namespace is determined in the following order:
-	 * <ol>
-	 * 	<li>{@link Rdf#prefix()} annotation defined on class.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on package.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on superclasses.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on superclass packages.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on interfaces.
-	 * 	<li>{@link Rdf#prefix()} annotation defined on interface packages.
-	 * </ol>
-	 *
-	 * @return The namespace associated with this class, or <jk>null</jk> if no namespace is
-	 * 	associated with it.
-	 */
-	protected Namespace getNamespace() {
-		return namespace;
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter.java
deleted file mode 100755
index afddef1..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter.java
+++ /dev/null
@@ -1,261 +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.filter;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Used to convert non-serializable objects to a serializable form.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	<code>PojoFilters</code> are used to extend the functionality of the serializers and parsers to be able to handle POJOs
- * 	that aren't automatically handled by the serializers or parsers.  For example, JSON does not have a standard
- * 	representation for rendering dates.  By defining a special {@code Date} filter and associating it with a serializer and
- * 	parser, you can convert a {@code Date} object to a {@code String} during serialization, and convert that {@code String} object back into
- * 	a {@code Date} object during parsing.
- * <p>
- * 	Object filters MUST declare a public no-arg constructor so that the bean context can instantiate them.
- * <p>
- * 	<code>PojoFilters</code> are associated with instances of {@link BeanContext BeanContexts} by passing the filter class to
- * 	the {@link BeanContextFactory#addFilters(Class...)} method.<br>
- * 	When associated with a bean context, fields of the specified type will automatically be converted when the
- * 	{@link BeanMap#get(Object)} or {@link BeanMap#put(String, Object)} methods are called.<br>
- * <p>
- * 	<code>PojoFilters</code> have two parameters:
- * 	<ol>
- * 		<li>{@code <F>} - The filtered representation of an object.
- * 		<li>{@code <T>} - The normal representation of an object.
- * 	</ol>
- * 	<br>
- * 	{@link Serializer Serializers} use object filters to convert objects of type T into objects of type F, and on calls to {@link BeanMap#get(Object)}.<br>
- * 	{@link Parser Parsers} use object filters to convert objects of type F into objects of type T, and on calls to {@link BeanMap#put(String,Object)}.
- *
- *
- * <h6 class='topic'>Filtered Class Type {@code <F>}</h6>
- * <p>
- * 	The filtered object representation of an object must be an object type that the serializers can
- * 	natively convert to JSON (or language-specific equivalent).  The list of valid filtered types are as follows...
- * 	<ul>
- * 		<li>{@link String}
- * 		<li>{@link Number}
- * 		<li>{@link Boolean}
- * 		<li>{@link Collection} containing anything on this list.
- * 		<li>{@link Map} containing anything on this list.
- * 		<li>A java bean with properties of anything on this list.
- * 		<li>An array of anything on this list.
- * 	</ul>
- *
- *
- * <h6 class='topic'>Normal Class Type {@code <T>}</h6>
- * <p>
- * 	The normal object representation of an object.<br>
- *
- *
- * <h6 class='topic'>One-way vs. Two-way Serialization</h6>
- * <p>
- * 	Note that while there is a unified interface for handling filtering during both serialization and parsing,
- * 	in many cases only one of the {@link #filter(Object)} or {@link #unfilter(Object, ClassMeta)} methods will be defined
- * 	because the filter is one-way.  For example, a filter may be defined to convert an {@code Iterator} to a {@code ObjectList}, but
- * 	it's not possible to unfilter an {@code Iterator}.  In that case, the {@code generalize(Object}} method would
- * 	be implemented, but the {@code narrow(ObjectMap)} object would not, and the filter would be associated on
- * 	the serializer, but not the parser.  Also, you may choose to serialize objects like {@code Dates} to readable {@code Strings},
- * 	in which case it's not possible to reparse it back into a {@code Date}, since there is no way for the {@code Parser} to
- * 	know it's a {@code Date} from just the JSON or XML text.
- *
- *
- * <h6 class='topic'>Additional information</h6>
- * 	See {@link com.ibm.juno.core.filter} for more information.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The normal form of the class.
- * @param <F> The filtered form of the class.
- */
-public abstract class PojoFilter<T,F> extends Filter {
-
-	/** Represents no filter. */
-	public static class NULL extends PojoFilter<Object,Object> {}
-
-	Class<T> normalClass;
-	Class<F> filteredClass;
-	ClassMeta<F> filteredClassMeta;
-
-	/**
-	 * Constructor.
-	 */
-	@SuppressWarnings("unchecked")
-	protected PojoFilter() {
-		super();
-
-		Class<?> c = this.getClass().getSuperclass();
-		Type t = this.getClass().getGenericSuperclass();
-		while (c != PojoFilter.class) {
-			t = c.getGenericSuperclass();
-			c = c.getSuperclass();
-		}
-
-		// Attempt to determine the T and G classes using reflection.
-		if (t instanceof ParameterizedType) {
-			ParameterizedType pt = (ParameterizedType)t;
-			Type[] pta = pt.getActualTypeArguments();
-			if (pta.length == 2) {
-				Type nType = pta[0];
-				if (nType instanceof Class) {
-					this.normalClass = (Class<T>)nType;
-
-				// <byte[],x> ends up containing a GenericArrayType, so it has to
-				// be handled as a special case.
-				} else if (nType instanceof GenericArrayType) {
-					Class<?> cmpntType = (Class<?>)((GenericArrayType)nType).getGenericComponentType();
-					this.normalClass = (Class<T>)Array.newInstance(cmpntType, 0).getClass();
-
-				// <Class<?>,x> ends up containing a ParameterizedType, so just use the raw type.
-				} else if (nType instanceof ParameterizedType) {
-					this.normalClass = (Class<T>)((ParameterizedType)nType).getRawType();
-
-				} else
-					throw new RuntimeException("Unsupported parameter type: " + nType);
-				if (pta[1] instanceof Class)
-					this.filteredClass = (Class<F>)pta[1];
-				else if (pta[1] instanceof ParameterizedType)
-					this.filteredClass = (Class<F>)((ParameterizedType)pta[1]).getRawType();
-				else
-					throw new RuntimeException("Unexpected filtered class type: " + pta[1].getClass().getName());
-			}
-		}
-	}
-
-	/**
-	 * Constructor for when the normal and filtered classes are already known.
-	 *
-	 * @param normalClass The normal class (cannot be serialized).
-	 * @param filteredClass The filtered class (serializable).
-	 */
-	protected PojoFilter(Class<T> normalClass, Class<F> filteredClass) {
-		this.normalClass = normalClass;
-		this.filteredClass = filteredClass;
-	}
-
-	/**
-	 * If this filter is to be used to serialize non-serializable POJOs, it must implement this method.
-	 * <p>
-	 * 	The object must be converted into one of the following serializable types:
-	 * 	<ul>
-	 * 		<li>{@link String}
-	 * 		<li>{@link Number}
-	 * 		<li>{@link Boolean}
-	 * 		<li>{@link Collection} containing anything on this list.
-	 * 		<li>{@link Map} containing anything on this list.
-	 * 		<li>A java bean with properties of anything on this list.
-	 * 		<li>An array of anything on this list.
-	 * 	</ul>
-	 *
-	 * @param o The object to be filtered.
-	 * @return The filtered object.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public F filter(T o) throws SerializeException {
-		throw new SerializeException("Generalize method not implemented on filter ''{0}''", this.getClass().getName());
-	}
-
-	/**
-	 * If this filter is to be used to reconstitute POJOs that aren't true Java beans, it must implement this method.
-	 *
-	 * @param f The filtered object.
-	 * @param hint If possible, the parser will try to tell you the object type being created.  For example,
-	 * 	on a serialized date, this may tell you that the object being created must be of type {@code GregorianCalendar}.<br>
-	 * 	This may be <jk>null</jk> if the parser cannot make this determination.
-	 * @return The narrowed object.
-	 * @throws ParseException If this method is not implemented.
-	 */
-	public T unfilter(F f, ClassMeta<?> hint) throws ParseException {
-		throw new ParseException("Narrow method not implemented on filter ''{0}''", this.getClass().getName());
-	}
-
-	/**
-	 * Returns the T class, the normalized form of the class.
-	 *
-	 * @return The normal form of this class.
-	 */
-	public Class<T> getNormalClass() {
-		return normalClass;
-	}
-
-	/**
-	 * Returns the G class, the generialized form of the class.
-	 * <p>
-	 * 	Subclasses must override this method if the generialized class is {@code Object},
-	 * 	meaning it can produce multiple generialized forms.
-	 *
-	 * @return The filtered form of this class.
-	 */
-	public Class<F> getFilteredClass() {
-		return filteredClass;
-	}
-
-	/**
-	 * Returns the {@link ClassMeta} of the filtered class type.
-	 * This value is cached for quick lookup.
-	 *
-	 * @return The {@link ClassMeta} of the filtered class type.
-	 */
-	public ClassMeta<F> getFilteredClassMeta() {
-		if (filteredClassMeta == null)
-			filteredClassMeta = beanContext.getClassMeta(filteredClass);
-		return filteredClassMeta;
-	}
-
-	/**
-	 * Checks if the specified object is an instance of the normal class defined on this filter.
-	 *
-	 * @param o The object to check.
-	 * @return <jk>true</jk> if the specified object is a subclass of the normal class defined on this filter.
-	 * <jk>null</jk> always return <jk>false</jk>.
-	 */
-	public boolean isNormalObject(Object o) {
-		if (o == null)
-			return false;
-		return ClassUtils.isParentClass(normalClass, o.getClass());
-	}
-
-	/**
-	 * Checks if the specified object is an instance of the filtered class defined on this filter.
-	 *
-	 * @param o The object to check.
-	 * @return <jk>true</jk> if the specified object is a subclass of the filtered class defined on this filter.
-	 * <jk>null</jk> always return <jk>false</jk>.
-	 */
-	public boolean isFilteredObject(Object o) {
-		if (o == null)
-			return false;
-		return ClassUtils.isParentClass(filteredClass, o.getClass());
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Filter */
-	public Class<?> forClass() {
-		return normalClass;
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return getClass().getSimpleName() + '<' + getNormalClass().getSimpleName() + "," + getFilteredClass().getSimpleName() + '>';
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/SurrogateFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/SurrogateFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/SurrogateFilter.class
deleted file mode 100755
index 20cf6e9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/SurrogateFilter.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/filter/SurrogateFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/SurrogateFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/SurrogateFilter.java
deleted file mode 100755
index 52faf3d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/SurrogateFilter.java
+++ /dev/null
@@ -1,203 +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.filter;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-
-
-/**
- * Specialized {@link PojoFilter} for surrogate classes.
- * <p>
- * Surrogate classes are used in place of other classes during serialization.
- * For example, you may want to use a surrogate class to change the names or order of bean
- * properties on a bean.
- * <p>
- * The following is an example of a surrogate class change changes a property name:
- * <p class='bcode'>
- * 	<jk>public class</jk> SurrogateClass {
- * 		<jk>public</jk> String surrogateField;  <jc>// New bean property</jc>
- *
- * 		<jk>public</jk> SurrogateClass(NormalClass normalClass) {
- * 			<jk>this</jk>.surrogateField = normalClass.normalField;
- * 		}
- * 	}
- * </p>
- * <p>
- * Optionally, a public static method can be used to unfilter a class during parsing:
- * <p class='bcode'>
- * 	<jk>public class</jk> SurrogateClass {
- * 		...
- * 		<jk>public static</jk> NormalClass <jsm>toNormalClass</jsm>(SurrogateClass surrogateClass) {
- * 			<jk>return new</jk> NormalClass(surrogateClass.filteredField);
- * 		}
- * 	}
- * </p>
- * <p>
- * Surrogate classes must conform to the following:
- * <ul>
- * 	<li>It must have a one or more public constructors that take in a single parameter whose type is the normal types.
- * 		(It is possible to define a class as a surrogate for multiple class types by using multiple constructors with
- * 		different parameter types).
- * 	<li>It optionally can have a public static method that takes in a single parameter whose type is the filtered type
- * 		and returns an instance of the normal type.  This is called the unfilter method.  The method can be called anything.
- * 	<li>If an unfilter method is present, the class must also contain a no-arg constructor (so that the filtered class
- * 		can be instantiated by the parser before being converted into the normal class by the unfilter method).
- * </ul>
- * <p>
- * Surrogate classes are associated with serializers and parsers using the {@link CoreApi#addFilters(Class...)} method.
- * <p class='bcode'>
- * 	<ja>@Test</ja>
- * 	<jk>public void</jk> test() <jk>throws</jk> Exception {
- * 		JsonSerializer s = <jk>new</jk> JsonSerializer.Simple().addFilters(Surrogate.<jk>class</jk>);
- * 		JsonParser p = <jk>new</jk> JsonParser().addFilters(Surrogate.<jk>class</jk>);
- * 		String r;
- * 		Normal n = Normal.<jsm>create</jsm>();
- *
- * 		r = s.serialize(n);
- * 		assertEquals(<js>"{f2:'f1'}"</js>, r);
- *
- * 		n = p.parse(r, Normal.<jk>class</jk>);
- * 		assertEquals(<js>"f1"</js>, n.f1);
- * 	}
- *
- * 	<jc>// The normal class</jc>
- * 	<jk>public class</jk> Normal {
- * 		<jk>public</jk> String f1;
- *
- * 		<jk>public static</jk> Normal <jsm>create</jsm>() {
- * 			Normal n = <jk>new</jk> Normal();
- * 			n.f1 = <js>"f1"</js>;
- * 			<jk>return</jk> n;
- * 		}
- * 	}
- *
- * 	<jc>// The surrogate class</jc>
- * 	<jk>public static class</jk> Surrogate {
- * 		<jk>public</jk> String f2;
- *
- * 		<jc>// Surrogate constructor</jc>
- * 		<jk>public</jk> Surrogate(Normal n) {
- * 			f2 = n.f1;
- * 		}
- *
- * 		<jc>// Constructor used during parsing (only needed if unfilter method specified)</jc>
- * 		<jk>public</jk> Surrogate() {}
- *
- * 		<jc>// Unfilter method (optional)</jc>
- * 		<jk>public static</jk> Normal <jsm>toNormal</jsm>(Surrogate f) {
- * 			Normal n = <jk>new</jk> Normal();
- * 			n.f1 = f.f2;
- * 			<jk>return</jk> n;
- * 		}
- * 	}
- * </p>
- * <p>
- * It should be noted that a surrogate class is functionally equivalent to the following {@link PojoFilter} implementation:
- * <p class='bcode'>
- * 	<jk>public static class</jk> SurrogateFilter <jk>extends</jk> PojoFilter&lt;Normal,Surrogate&gt; {
- * 		<jk>public</jk> Surrogate filter(Normal n) <jk>throws</jk> SerializeException {
- * 			<jk>return new</jk> Surrogate(n);
- * 		}
- * 		<jk>public</jk> Normal unfilter(Surrogate s, ClassMeta<?> hint) <jk>throws</jk> ParseException {
- * 			<jk>return</jk> Surrogate.<jsm>toNormal</jsm>(s);
- * 		}
- * 	}
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type that this filter applies to.
- * @param <F> The filtered class type.
- */
-public class SurrogateFilter<T,F> extends PojoFilter<T,F> {
-
-	private Constructor<F> constructor;   // public F(T t);
-	private Method unfilterMethod;        // public static T valueOf(F f);
-
-	/**
-	 * Constructor.
-	 *
-	 * @param forClass The normal class.
-	 * @param constructor The constructor on the surrogate class that takes the normal class as a parameter.
-	 * @param unfilterMethod The static method that converts surrogate objects into normal objects.
-	 */
-	protected SurrogateFilter(Class<T> forClass, Constructor<F> constructor, Method unfilterMethod) {
-		super(forClass, constructor.getDeclaringClass());
-		this.constructor = constructor;
-		this.unfilterMethod = unfilterMethod;
-	}
-
-	/**
-	 * Given the specified surrogate class, return the list of POJO filters.
-	 * A filter is returned for each public 1-arg constructor found.
-	 * Returns an empty list if no public 1-arg constructors are found.
-	 *
-	 * @param c The surrogate class.
-	 * @return The list of POJO filters that apply to this class.
-	 */
-	@SuppressWarnings({"unchecked", "rawtypes"})
-	public static List<SurrogateFilter<?,?>> findFilters(Class<?> c) {
-		List<SurrogateFilter<?,?>> l = new LinkedList<SurrogateFilter<?,?>>();
-		for (Constructor<?> cc : c.getConstructors()) {
-			if (cc.getAnnotation(BeanIgnore.class) == null) {
-				Class<?>[] pt = cc.getParameterTypes();
-
-				// Only constructors with one parameter.
-				// Ignore instance class constructors.
-				if (pt.length == 1 && pt[0] != c.getDeclaringClass()) {
-					int mod = cc.getModifiers();
-					if (Modifier.isPublic(mod)) {  // Only public constructors.
-
-						// Find the unfilter method if there is one.
-						Method unfilterMethod = null;
-						for (Method m : c.getMethods()) {
-							if (pt[0].equals(m.getReturnType())) {
-								Class<?>[] mpt = m.getParameterTypes();
-								if (mpt.length == 1 && mpt[0].equals(c)) { // Only methods with one parameter and where the return type matches this class.
-									int mod2 = m.getModifiers();
-									if (Modifier.isPublic(mod2) && Modifier.isStatic(mod2))  // Only public static methods.
-										unfilterMethod = m;
-								}
-							}
-						}
-
-						l.add(new SurrogateFilter(pt[0], cc, unfilterMethod));
-					}
-				}
-			}
-		}
-		return l;
-	}
-
-	@Override /* PojoFilter */
-	public F filter(T o) throws SerializeException {
-		try {
-			return constructor.newInstance(o);
-		} catch (Exception e) {
-			throw new SerializeException(e);
-		}
-	}
-
-	@Override /* PojoFilter */
-	@SuppressWarnings("unchecked")
-	public T unfilter(F f, ClassMeta<?> hint) throws ParseException {
-		if (unfilterMethod == null)
-			throw new ParseException("static valueOf({0}) method not implement on surrogate class ''{1}''", f.getClass().getName(), getNormalClass().getName());
-		try {
-			return (T)unfilterMethod.invoke(null, f);
-		} catch (Exception e) {
-			throw new ParseException(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/doc-files/classes.dnx
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/doc-files/classes.dnx b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/doc-files/classes.dnx
deleted file mode 100755
index 72c091b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/doc-files/classes.dnx
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--xtools2_universal_type_manager-->
-<?com.ibm.xtools.emf.core.signature <signature id="com.ibm.xtools.mmi.ui.signatures.diagram" version="7.0.0"><feature description="" name="Rational Modeling Platform (com.ibm.xtools.rmp)" url="" version="7.0.0"/></signature>?>
-<umlnotation:UMLDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xmlns:umlnotation="http://www.ibm.com/xtools/1.5.3/Umlnotation" xmi:id="_14FVwJJREeKbSvxwiT0Fog" type="Class" name="classes.dnx">
-  <eAnnotations xmi:id="_14FVwZJREeKbSvxwiT0Fog" source="com.ibm.xtools.common.ui.reduction.editingCapabilities">
-    <details xmi:id="_14FVwpJREeKbSvxwiT0Fog" key="com.ibm.xtools.viz.java.webservice.capability" value="1"/>
-    <details xmi:id="_14FVw5JREeKbSvxwiT0Fog" key="com.ibm.xtools.activities.javaVisualizerActivity" value="1"/>
-  </eAnnotations>
-  <children xmi:type="umlnotation:UMLShape" xmi:id="_3ZQ0oJJREeKbSvxwiT0Fog" fontName="Segoe UI" fontHeight="8" showListSignature="true" fillColor="14286847" transparency="0" lineColor="3394764" lineWidth="1" roundedBendpointsRadius="4">
-    <children xmi:type="notation:DecorationNode" xmi:id="_3ZSCwJJREeKbSvxwiT0Fog" type="ImageCompartment">
-      <layoutConstraint xmi:type="notation:Size" xmi:id="_3ZSCwZJREeKbSvxwiT0Fog" width="1320" height="1320"/>
-    </children>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_3ZSCwpJREeKbSvxwiT0Fog" type="Stereotype"/>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_3ZSp0JJREeKbSvxwiT0Fog" type="Name"/>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_3ZSp0ZJREeKbSvxwiT0Fog" type="Parent"/>
-    <children xmi:type="notation:ListCompartment" xmi:id="_3ZSp0pJREeKbSvxwiT0Fog" visible="false" type="ANNOTATION_COMPARTMENT"/>
-    <children xmi:type="notation:ListCompartment" xmi:id="_3ZSp05JREeKbSvxwiT0Fog" visible="false" type="ANNOTATED_ATTRIBUTE_COMPARTMENT"/>
-    <children xmi:type="notation:ListCompartment" xmi:id="_3ZTQ4JJREeKbSvxwiT0Fog" visible="false" type="ANNOTATED_OPERATION_COMPARTMENT" filtering="Manual">
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=Filter%5Esign=(QClass%3C*%3E;Z)V%5Bjsrctype%5Ename=Filter%5Bjcu%5Ename=Filter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=forClass%5Esign=()QClass%3C*%3E;%5Bjsrctype%5Ename=Filter%5Bjcu%5Ename=Filter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=isBeanFilter%5Esign=()Z%5Bjsrctype%5Ename=Filter%5Bjcu%5Ename=Filter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-    </children>
-    <element xmi:type="uml:Class" href="mmi:///#jsrctype%5Ename=Filter%5Bjcu%5Ename=Filter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D$uml.Class"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3ZQ0oZJREeKbSvxwiT0Fog" x="9193" y="3170"/>
-  </children>
-  <children xmi:type="umlnotation:UMLShape" xmi:id="_64c4UJJREeKbSvxwiT0Fog" fontName="Segoe UI" fontHeight="8" showListSignature="true" fillColor="14286847" transparency="0" lineColor="3394764" lineWidth="1" roundedBendpointsRadius="4">
-    <children xmi:type="notation:DecorationNode" xmi:id="_64dfYJJREeKbSvxwiT0Fog" type="ImageCompartment">
-      <layoutConstraint xmi:type="notation:Size" xmi:id="_64dfYZJREeKbSvxwiT0Fog" width="1320" height="1320"/>
-    </children>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_64dfYpJREeKbSvxwiT0Fog" type="Stereotype"/>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_64dfY5JREeKbSvxwiT0Fog" type="Name"/>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_64dfZJJREeKbSvxwiT0Fog" type="Parent"/>
-    <children xmi:type="notation:ListCompartment" xmi:id="_64eGcJJREeKbSvxwiT0Fog" visible="false" type="ANNOTATION_COMPARTMENT"/>
-    <children xmi:type="notation:ListCompartment" xmi:id="_64eGcZJREeKbSvxwiT0Fog" visible="false" type="ANNOTATED_ATTRIBUTE_COMPARTMENT" collapsed="true" filtering="Manual">
-      <filteredObjects xmi:type="uml:Property" href="mmi:///#jfield%5Ename=normalClass%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Property"/>
-      <filteredObjects xmi:type="uml:Property" href="mmi:///#jfield%5Ename=filteredClass%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Property"/>
-    </children>
-    <children xmi:type="notation:ListCompartment" xmi:id="_64eGcpJREeKbSvxwiT0Fog" type="ANNOTATED_OPERATION_COMPARTMENT" filtering="Manual">
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=PojoFilter%5Esign=()V%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=forClass%5Esign=()QClass%3C*%3E;%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=getNormalClass%5Esign=()QClass%3CQT;%3E;%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=getFilteredClass%5Esign=()QClass%3CQF;%3E;%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=toString%5Esign=()QString;%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-    </children>
-    <children xmi:type="notation:SemanticListCompartment" xmi:id="_64hJwJJREeKbSvxwiT0Fog" visible="false" type="TemplateCompartment">
-      <element xmi:type="uml:RedefinableTemplateSignature" href="mmi:///#jtsig%5Ename=PojoFilter%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.RedefinableTemplateSignature"/>
-    </children>
-    <element xmi:type="uml:Class" href="mmi:///#jsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D$uml.Class"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_64c4UZJREeKbSvxwiT0Fog" x="11095" y="6974"/>
-  </children>
-  <children xmi:type="umlnotation:UMLShape" xmi:id="_aiL3oJJ9EeKbSvxwiT0Fog" fontName="Segoe UI" fontHeight="8" fillColor="14286847" transparency="0" lineColor="3394764" lineWidth="1" roundedBendpointsRadius="4">
-    <children xmi:type="notation:DecorationNode" xmi:id="_aiMesJJ9EeKbSvxwiT0Fog" type="ImageCompartment">
-      <layoutConstraint xmi:type="notation:Size" xmi:id="_aiMesZJ9EeKbSvxwiT0Fog" width="1320" height="1320"/>
-    </children>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_aiMespJ9EeKbSvxwiT0Fog" type="Stereotype"/>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_aiMes5J9EeKbSvxwiT0Fog" type="Name"/>
-    <children xmi:type="notation:BasicDecorationNode" xmi:id="_aiNFwJJ9EeKbSvxwiT0Fog" type="Parent"/>
-    <children xmi:type="notation:ListCompartment" xmi:id="_aiNFwZJ9EeKbSvxwiT0Fog" visible="false" type="ANNOTATION_COMPARTMENT"/>
-    <children xmi:type="notation:ListCompartment" xmi:id="_aiNFwpJ9EeKbSvxwiT0Fog" visible="false" type="ANNOTATED_ATTRIBUTE_COMPARTMENT" filtering="Manual">
-      <filteredObjects xmi:type="uml:Property" href="mmi:///#jfield%5Ename=properties%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Property"/>
-      <filteredObjects xmi:type="uml:Property" href="mmi:///#jfield%5Ename=excludeProperties%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Property"/>
-    </children>
-    <children xmi:type="notation:ListCompartment" xmi:id="_aiNFw5J9EeKbSvxwiT0Fog" type="ANNOTATED_OPERATION_COMPARTMENT" filtering="Manual">
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=BeanFilter%5Esign=()V%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=BeanFilter%5Esign=(QClass%3CQT;%3E;)V%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=setProperties%5Esign=(%255bQString;)QBeanFilter%3CQT;%3E;%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=setExcludeProperties%5Esign=(%255bQString;)QBeanFilter%3CQT;%3E;%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=setPropertyNamer%5Esign=(QClass%3C+QPropertyNamer;%3E;)QBeanFilter%3CQT;%3E;%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=setSubTypeProperty%5Esign=(QString;)QBeanFilter%3CQT;%3E;%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=setSubTypes%5Esign=(QLinkedHashMap%3CQClass%3C*%3E;QString;%3E;)QBeanFilter%3CQT;%3E;%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=addSubType%5Esign=(QClass%3C*%3E;QString;)QBeanFilter%3CQT;%3E;%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-      <filteredObjects xmi:type="uml:Operation" href="mmi:///#jmethod%5Ename=setInterfaceClass%5Esign=(QClass%3C*%3E;)QBeanFilter%3CQT;%3E;%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Operation"/>
-    </children>
-    <children xmi:type="notation:SemanticListCompartment" xmi:id="_aiRXMJJ9EeKbSvxwiT0Fog" visible="false" type="TemplateCompartment">
-      <element xmi:type="uml:RedefinableTemplateSignature" href="mmi:///#jtsig%5Ename=BeanFilter%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.RedefinableTemplateSignature"/>
-    </children>
-    <element xmi:type="uml:Class" href="mmi:///#jsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D$uml.Class"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aiL3oZJ9EeKbSvxwiT0Fog" x="4755" y="6023"/>
-  </children>
-  <element xsi:nil="true"/>
-  <edges xmi:type="umlnotation:UMLConnector" xmi:id="_681pEJJREeKbSvxwiT0Fog" source="_64c4UJJREeKbSvxwiT0Fog" target="_3ZQ0oJJREeKbSvxwiT0Fog" fontName="Segoe UI" fontHeight="8" roundedBendpointsRadius="4" routing="Rectilinear" lineColor="8421504" lineWidth="1" showStereotype="Text">
-    <children xmi:type="notation:DecorationNode" xmi:id="_682QIJJREeKbSvxwiT0Fog" type="NameLabel">
-      <children xmi:type="notation:BasicDecorationNode" xmi:id="_682QIpJREeKbSvxwiT0Fog" type="Stereotype"/>
-      <children xmi:type="notation:BasicDecorationNode" xmi:id="_682QI5JREeKbSvxwiT0Fog" type="Name"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_682QIZJREeKbSvxwiT0Fog" y="-186"/>
-    </children>
-    <element xmi:type="uml:Generalization" href="mmi:///#jgen%5Bjsrctype%5Ename=PojoFilter%5Bjcu%5Ename=PojoFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D%5Bjsrctype%5Ename=Filter%5Bjcu%5Ename=Filter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Generalization"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_681pEZJREeKbSvxwiT0Fog" points="[-1858, -950, 1012, 1758]$[-1858, -1283, 1012, 1425]$[-2510, -1283, 360, 1425]$[-2510, -2247, 360, 461]"/>
-  </edges>
-  <edges xmi:type="umlnotation:UMLConnector" xmi:id="_ani4wJJ9EeKbSvxwiT0Fog" source="_aiL3oJJ9EeKbSvxwiT0Fog" target="_3ZQ0oJJREeKbSvxwiT0Fog" fontName="Segoe UI" fontHeight="8" roundedBendpointsRadius="4" routing="Rectilinear" lineColor="8421504" lineWidth="1" showStereotype="Text">
-    <children xmi:type="notation:DecorationNode" xmi:id="_anjf0JJ9EeKbSvxwiT0Fog" type="NameLabel">
-      <children xmi:type="notation:BasicDecorationNode" xmi:id="_anjf0pJ9EeKbSvxwiT0Fog" type="Stereotype"/>
-      <children xmi:type="notation:BasicDecorationNode" xmi:id="_anjf05J9EeKbSvxwiT0Fog" type="Name"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_anjf0ZJ9EeKbSvxwiT0Fog" y="-186"/>
-    </children>
-    <element xmi:type="uml:Generalization" href="mmi:///#jgen%5Bjsrctype%5Ename=BeanFilter%5Bjcu%5Ename=BeanFilter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D%5Bjsrctype%5Ename=Filter%5Bjcu%5Ename=Filter.java%5Bjpack%5Ename=com.ibm.juno.core.filter%5Bjsrcroot%5Esrcfolder=src%5Bproject%5Eid=com.ibm.juno%5D%5D%5D%5D%5D$uml.Generalization"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ani4wZJ9EeKbSvxwiT0Fog" points="[1044, -950, -2481, 1758]$[1044, -1283, -2481, 1425]$[2925, -1283, -600, 1425]$[2925, -2247, -600, 461]"/>
-  </edges>
-</umlnotation:UMLDiagram>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/doc-files/classes.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/doc-files/classes.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/doc-files/classes.png
deleted file mode 100755
index 0a2ef0d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/doc-files/classes.png 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/filter/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/package.html
deleted file mode 100755
index 60ca7d2..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/package.html
+++ /dev/null
@@ -1,764 +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>Filter 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='#Filters'>Filters</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#BeanFilters'>BeanFilter Class</a></p>
-		<li><p><a class='doclink' href='#PojoFilters'>PojoFilter Class</a></p>
-		<li><p><a class='doclink' href='#PojoFilters_OneWay'>One-Way PojoFilters</a></p>
-		<li><p><a class='doclink' href='#StopClasses'>Stop Classes</a></p>
-		<li><p><a class='doclink' href='#SurrogateClasses'>Surrogate Classes</a></p>
-		<li><p><a class='doclink' href='#ToObjectMaps'>Serializing to ObjectMaps</a></p>
-	</ol>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="Filters"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Filters</h2>
-<div class='topic'>
-	<p>
-		By default, the Juno framework can serialize and parse a wide variety of POJOs out-of-the-box.  
-		However, a <code>Filter</code> API is provided to tailor how certain Java objects are handled by the framework.
-		The class hierarchy is shown here:
-	</p>
-	<ul class='spaced-list'>
-		<li>{@link com.ibm.juno.core.filter.Filter} - Top-level interface for all filters.
-	<ul>
-		<li>{@link com.ibm.juno.core.filter.BeanFilter} - Filters that alter the way beans are handled.
-		<li>{@link com.ibm.juno.core.filter.PojoFilter} - Filters that transform non-serializable POJOs into serializable POJOs during serialization 
-			(and optionally vis-versa during parsing).
-		</ul>
-	</ul>
-	<p>
-		Filters are added to serializers and parsers in a variety of ways:
-	</p> 
-	<ul>
-		<li>{@link com.ibm.juno.core.serializer.Serializer#addFilters(Class[])} - On serializers.
-		<li>{@link com.ibm.juno.core.serializer.SerializerGroup#addFilters(Class[])} - On groups of serializers.
-		<li>{@link com.ibm.juno.core.parser.Parser#addFilters(Class[])} - On parsers.
-		<li>{@link com.ibm.juno.core.parser.ParserGroup#addFilters(Class[])} - On groups of parsers.
-		<li>{@link com.ibm.juno.client.RestClient#addFilters(Class[])} - On the serializer and parser registered on a REST client.
-		<li>{@link com.ibm.juno.server.annotation.RestResource#filters() @RestResource.filters()} - On all serializers and parsers defined on a REST servlet.
-		<li>{@link com.ibm.juno.server.annotation.RestMethod#filters() @RestMethod.filters()} - On all serializers and parsers defined on a method in a REST servlet.
-		<li>{@link com.ibm.juno.server.jaxrs.JunoProvider#filters()} - On all serializers and parsers defined on a JAX-RS provider.
-	</ul>
-	<p>
-		Filters (typically <code>PojoFilters</code>) can also be associated with classes through the {@link com.ibm.juno.core.annotation.Filter @Filter} annotation. 
-	</p>
-		
-	<!-- ======================================================================================================== -->
-	<a id="BeanFilters"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - BeanFilter Class</h3>
-	<div class='topic'>
-		<p>
-			Bean filters are used to tailor how Juno handles bean classes.
-			They can be used for the following purposes:
-		</p>
-		<ul>
-			<li>Include or exclude which properties are exposed in beans, or the order those properties are serialized.
-			<li>Define property-namers for customizing bean property names.
-			<li>Define bean subtypes.
-			<li>Define bean interface classes.
-		</ul>
-		<p>
-			It should be noted that the {@link com.ibm.juno.core.annotation.Bean @Bean} annotation provides equivalent functionality
-				through annotations.  
-			However, the <code>BeanFilter</code> class allows you to provide the same features when you do
-				not have access to the source code.
-		<p>
-		<h5 class='topic'>Examples</h5>
-
-		<h6 class='topic'>Explicitly specify which properties are visible on a bean class</h6>
-		<p class='bcode'>
-	<jc>// Define filter that orders properties by "age" then "name"</jc>
-	<jk>public class</jk> MyFilter <jk>extends</jk> BeanFilter&ltPerson&gt; {
-		<jk>public</jk> MyFilter() {
-			setProperties(<js>"age"</js>,<js>"name"</js>);
-		}
-	}
-	
-	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(MyFilter.<jk>class</jk>);
-	Person p = getPerson();
-	String json = s.serialize(p);  <jc>// Prints "{age:45,name:'John Smith'}"</jc>
-		</p>
-		<p>
-			Note that this is equivalent to specifying the following annotation on the bean class:
-		</p>
-		<p class='bcode'>
-	<ja>@Bean</ja>(properties={<js>"age"</js>,<js>"name"</js>})
-	<jk>public class</jk> Person {
-		...
-	}
-		</p>
-
-		<h6 class='topic'>Exclude which properties are visible on a bean class</h6>
-		<p class='bcode'>
-	<jc>// Define filter that excludes "name"</jc>
-	<jk>public class</jk> MyFilter <jk>extends</jk> BeanFilter&ltPerson&gt; {
-		<jk>public</jk> MyFilter() {
-			setExcludeProperties(<js>"name"</js>);
-		}
-	}
-	
-	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(MyFilter.<jk>class</jk>);
-	Person p = getPerson();
-	String json = s.serialize(p);  <jc>// Prints "{age:45}"</jc>
-		</p>
-		<p>
-			Note that this is equivalent to specifying the following annotation on the bean class:
-		</p>
-		<p class='bcode'>
-	<ja>@Bean</ja>(excludeProperties={<js>"name"</js>})
-	<jk>public class</jk> Person {
-		...
-	}
-		</p>
-
-		<h6 class='topic'>Define specialized property namers</h6>
-		<p class='bcode'>
-	<jc>// Define filter with our own property namer.</jc>
-	<jk>public class</jk> MyFilter <jk>extends</jk> BeanFilter&ltPerson&gt; {
-		<jk>public</jk> MyFilter() {
-			setPropertyNamer(UpperCasePropertyNamer.<jk>class</jk>);
-		}
-	}
-
-	<jc>// Define property namer that upper-cases the property names</jc>	
-	<jk>public class</jk> UpperCasePropertyNamer <jk>implements</jk> PropertyNamer {
-	
-		<ja>@Override</ja>
-		<jk>public</jk> String getPropertyName(String name) {
-			<jk>return</jk> name.toUpperCase();
-		}
-	}
-	
-	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(MyFilter.<jk>class</jk>);
-	Person person = getPerson();
-	String json = s.serialize(p);  <jc>// Prints "{AGE:45,NAME:'John Smith'}"</jc>
-	
-	<jc>// Parse back into bean</jc>
-	ReaderParser p = <jk>new</jk> JsonParser().addFilters(MyFilter.<jk>class</jk>);
-	person = p.parse(json, Person.class); <jc>// Read back into original object</jc>
-		</p>
-		<p>
-			Note that this is equivalent to specifying the following annotation on the bean class:
-		</p>
-		<p class='bcode'>
-	<ja>@Bean</ja>(propertyNamer=UpperCasePropertyNamer.<jk>class</jk>)
-	<jk>public class</jk> Person {
-		...
-	}
-		</p>
-		
-		<h6 class='topic'>Define bean subtypes</h6>
-		<p>
-			Juno allows you to losslessly serialize and parse abstract class fields back into the original 
-				concrete objects by defining a subtype attribute and a list of subtypes/ids.
-		</p>
-		<p>
-			For example, let's define the following parent class with two subclasses:
-		</p>
-		<p class='bcode'>
-	<jc>// Abstract parent class</jc>
-	<jk>public abstract class</jk> MyClass {
-		<jk>public</jk> String <jf>foo</jf>=<js>"foo"</js>;
-	}
-
-	<jc>// Subclass 1</jc>
-	<jk>public class</jk> MyClassBar <jk>extends</jk> MyClass {
-		<jk>public</jk> String <jf>bar</jf>=<js>"bar"</js>;
-	}
-	
-	<jc>// Subclass 2</jc>
-	<jk>public class</jk> MyClassBaz <jk>extends</jk> MyClass {
-		<jk>public</jk> String <jf>baz</jf>=<js>"baz"</js>;
-	}
-		</p>
-		<p>
-			Normally, when parsing a serialized <code>MyClass</code> object, the parser does not know what subtype to create.
-			This can be fixed by defining the following filter:
-		</p>		
-		<p class='bcode'>
-	<jc>// Define filter with our own property namer.</jc>
-	<jk>public class</jk> MyClassFilter <jk>extends</jk> BeanFilter&ltMyClass&gt; {
-		<jk>public</jk> MyClassFilter() {
-			setSubTypeProperty(<js>"subType"</js>);
-			addSubType(MyClassBar.<jk>class</jk>, <js>"BAR"</js>);
-			addSubType(MyClassBaz.<jk>class</jk>, <js>"BAZ"</js>);
-		}
-	}
-		</p>
-		<p>
-			When serialized, the serialized bean will include a <code>"subType"</code> attribute that identifies the subclass, and
-				allows it to be parsed back into the original subclass.
-		</p>
-		<p class='bcode'>
-	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(MyClassFilter.<jk>class</jk>);
-	MyClass c = <jk>new</jk> MyClassBar();
-	String json = s.serialize(p);  <jc>// Prints "{subType:'BAR',foo:'foo',bar:'bar'}"</jc>
-	
-	<jc>// Parse back into bean</jc>
-	ReaderParser p = <jk>new</jk> JsonParser().addFilters(MyClassFilter.<jk>class</jk>);
-	c = p.parse(json, MyClass.<jk>class</jk>); <jc>// c is an instance of MyClassBar</jc>
-		</p>	
-		<p>
-			It should be noted that the sub type attribute is always rendered first in the JSON object so 
-				that the bean object can be instantiated before the real properties are set on it during parsing.  
-			Beans with subtypes are thus 'lazy-instantiated' when the sub type attribute is set.
-			If the sub type attribute is not listed first, the parser will still be able to parse the input,
-			but with reduced efficiency since it must cache the incoming data until the bean can be instantiated.
-		</p>
-		<p>
-			Note that this filter is equivalent to specifying the following annotation on the bean class:
-		</p>
-		<p class='bcode'>
-	<ja>@Bean</ja>(
-		subTypeProperty=<js>"subType"</js>,
-		subTypes={
-			<ja>@BeanSubType</ja>(type=MyClassBar.<jk>class</jk>, id=<js>"BAR"</js>),
-			<ja>@BeanSubType</ja>(type=MyClassBaz.<jk>class</jk>, id=<js>"BAZ"</js>)
-		}
-	)
-	<jk>public abstract class</jk> MyClass {
-		...
-	}
-		</p>
-			
-		<h6 class='topic'>Limiting bean properties to parent bean classes</h6>
-		<p>
-			Occassionally, you may want to limit bean properties to some parent interface.
-			For example, in the <code>RequestEchoResource</code> class in the sample war file, we serialize instances of
-				<code>HttpServletRequest</code> and <code>HttpServletResponse</code>.
-			However, we really only want to serialize the properties defined on those specific APIs, not 
-				vendor-specific methods on the instances of those classes.
-			This can be done through the <code>interfaceClass</code> property of a bean filter.
-		</p>
-		<p>
-			For example, let's define the following parent class and subclass:
-		</p>
-		<p class='bcode'>
-	<jc>// Abstract parent class</jc>
-	<jk>public abstract class</jk> MyClass {
-		<jk>public</jk> String <jf>foo</jf>=<js>"foo"</js>;
-	}
-
-	<jc>// Subclass 1</jc>
-	<jk>public class</jk> MyClassBar <jk>extends</jk> MyClass {
-		<jk>public</jk> String <jf>bar</jf>=<js>"bar"</js>;
-	}
-		</p>
-		<p>
-			Suppose we only want to render the properties defined on <code>MyClass</code>, not those defined on child classes.
-			To do so, we can define the following filter:
-		</p>
-		<p class='bcode'>
-	<jc>// Define filter that limits properties to only those defined on MyClass</jc>
-	<jk>public class</jk> MyClassFilter <jk>extends</jk> BeanFilter&ltMyClass&gt; {
-		<jk>public</jk> MyClassFilter() {
-			setInterfaceClass(MyClass.<jk>class</jk>);
-		}
-	}
-		</p>
-		<p>
-			When serialized, the serialized bean will only include properties defined on the parent class.
-		</p>
-		<p class='bcode'>
-	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(MyClassFilter.<jk>class</jk>);
-	MyClass c = <jk>new</jk> MyClassBar();
-	String json = s.serialize(p);  <jc>// Prints "{foo:'foo'}"</jc>
-		</p>	
-		<p>
-			The equivalent can be done through an annotation on the parent class, which applies to all child classes:
-		</p>
-		<p class='bcode'>
-	<ja>@Bean</ja>(interfaceClass=MyClass.<jk>class</jk>)
-	<jk>public abstract class</jk> MyClass {
-		<jk>public</jk> String <jf>foo</jf>=<js>"foo"</js>;
-	}
-		</p>
-		<p>
-			The annotation can also be applied on the individual child classes, like so...
-		</p>
-		<p class='bcode'>
-	<ja>@Bean</ja>(interfaceClass=MyClass.<jk>class</jk>)
-	<jk>public class</jk> MyClassBar <jk>extends</jk> MyClass {
-		<jk>public</jk> String <jf>bar</jf>=<js>"bar"</js>;
-	}
-		</p>
-		<p>
-			Also, the <code>addFilters(...)</code> methods will automatically interpret any non-<code>Filter</code> classes
-				passed in as meaning interface classes.  
-			So in the previous example, the <code>BeanFilter</code> class could have been avoided altogether by just 
-				passing in <code>MyClass.<jk>class</jk></code> to the serializer, like so:
-		</p>
-		<p class='bcode'>
-	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(MyClass.<jk>class</jk>);
-		</p>
-		<p>
-			In fact, this is the shortcut used in the <code>RequestEchoResource</code> sample class:
-		</p>
-		<p class='bcode'>
-	<ja>@RestResource</ja>(
-		filters={
-			<jc>// Interpret these as their parent classes, not subclasses</jc>
-			HttpServletRequest.<jk>class</jk>, HttpSession.<jk>class</jk>, ServletContext.<jk>class</jk>
-		}
-	)
-	<jk>public class</jk> RequestEchoResource <jk>extends</jk> RestServletDefault {
-		</p>
-		
-		<h6 class='topic'>Allowing non-public bean classes/methods/fields to be used by the framework</h6>
-		<p>
-			By default, only public classes are interpreted as beans.  Non-public classes are treated as 'other' POJOs that
-			are typically just serialized to strings using the <code>toString()</code> method.
-			Likewise, by default, only public fields/methods are interpreted as bean properties.
-		</p>
-		<p>
-			The following bean context properties can be used to allow non-public classes/methods/fields to be
-			used by the framework:
-		</p>
-		<ul>
-			<li>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanClassVisibility}
-			<li>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanConstructorVisibility}
-			<li>{@link com.ibm.juno.core.BeanContextProperties#BEAN_methodVisibility}
-			<li>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanFieldVisibility}
-		</ul>
-		<p>
-			Also, specifying a {@link com.ibm.juno.core.annotation.BeanProperty @BeanProperty} annotation on non-public getters/setters/fields
-				will also allow them to be detected by the framework.
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> MyBean {
-		<jc>// A bean property</jc>
-		<jk>public int</jk> f1;    
-		
-		<jc>// Not a bean property</jc>
-		<ja>@BeanIgnore</ja>
-		<jk>public int</jk> f2;     
-		
-		<jc>// A bean property</jc>
-		<ja>@BeanProperty</ja>    
-		<jk>protected int</jk> f3;  
-		
-		<jc>// A bean property</jc>
-		<ja>@BeanProperty</ja>    
-		<jk>private int</jk> getF3() {...}
-	}
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="PojoFilters"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.2 - PojoFilter Class</h3>
-	<div class='topic'>
-		<p>
-			{@link com.ibm.juno.core.filter.PojoFilter PojoFilters} are a critical component of the Juno architecture.  
-			They allow the Juno serializers and parsers to be extended to handle virtually any kind of Java object. 
-		</p>
-		<p>
-			As explained in the overview, Juno has built-in support for serializing and parsing specific kinds of objects, like primitive objects, bean, maps, collections, and arrays.  
-			Other kinds of POJOs, such as {@code Date} objects, cannot be serialized properly, since they are not true beans.  
-			This is where <code>PojoFilters</code> come into play.
-		</p>
-		<p>
-			The purpose of an <code>PojoFilter</code> is to convert a non-serializable object to a serializable surrogate form during serialization, and to optionally convert that surrogate form back into the original object during parsing.
-		</p>
-		<p>
-			For example, the following filter can be used to convert {@link java.util.Date} objects to ISO8601 strings during serialization, and {@link java.util.Date} objects from ISO8601 string during parsing:
-		</p>
-		<p class='bcode'>
-	<jc>// Sample filter for converting Dates to ISO8601 strings.</jc>
-	<jk>public class</jk> MyDateFilter <jk>extends</jk> PojoFilter&lt;Date,String&gt; {
-		
-		<jc>// ISO8601 formatter.</jc>
-		<jk>private</jk> DateFormat <jf>format</jf> = <jk>new</jk> SimpleDateFormat(<js>"yyyy-MM-dd'T'HH:mm:ssZ"</js>);
-		
-		<jd>/** Converts a Date object to an ISO8601 string. */</jd>
-		<ja>@Override</ja>
-		<jk>public</jk> String filter(Date o) {
-			<jk>return</jk> <jf>format</jf>.format(o);
-		}
-		
-		<jd>/** Converts an ISO8601 string to a Date object. */</jd>
-		<ja>@Override</ja>
-		<jk>public</jk> Date unfilter(String o, ClassMeta&lt;?&gt; hint) <jk>throws</jk> ParseException {
-			<jk>try</jk> {
-				<jk>return</jk> <jf>format</jf>.parse(o);
-			} <jk>catch</jk> (java.text.ParseException e) {
-				<jk>throw new</jk> ParseException(e);
-			}
-		}
-	}
-		</p>
-		<p>
-			The filter above can then be associated with serializers and parsers as the following example shows:
-		</p>
-		<p class='bcode'>
-	<jc>// Sample bean with a Date field.</jc>
-	<jk>public class</jk> MyBean {
-		<jk>public</jk> Date <jf>date</jf> = <jk>new</jk> Date(112, 2, 3, 4, 5, 6);
-	}
-
-	<jc>// Create a new JSON serializer, associate our date filter with it, and serialize a sample bean.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializer().addFilters(MyDateFilter.<jk>class</jk>);
-	String json = serializer.serialize(<jk>new</jk> MyBean());	<jc>// == "{date:'2012-03-03T04:05:06-0500'}"</jc>
-	
-	<jc>// Create a JSON parser, associate our date filter with it, and reconstruct our bean (including the date).</jc>
-	ReaderParser parser = <jk>new</jk> JsonParser().addFilters(MyDateFilter.<jk>class</jk>);
-	MyBean bean = parser.parse(json, MyBean.<jk>class</jk>);
-	<jk>int</jk> day = bean.<jf>date</jf>.getDay(); 						<jc>// == 3</jc>
-		</p>
-		<p>
-			In addition, the {@link com.ibm.juno.core.BeanMap#get(Object)} and {@link com.ibm.juno.core.BeanMap#put(String,Object)} methods will automatically convert to filtered values as the following example shows:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a new bean context and add our filter.</jc>
-	BeanContext beanContext = <jk>new</jk> BeanContext().addFilters(MyDateFilter.<jk>class</jk>);
-
-	<jc>// Create a new bean.</jc>
-	MyBean myBean = <jk>new</jk> MyBean();
-
-	<jc>// Wrap it in a bean map.</jc>
-	BeanMap&lt;Bean&gt; beanMap = beanContext.forBean(myBean);
-
-	<jc>// Use the get() method to get the date field as an ISO8601 string.</jc>
-	String date = (String)beanMap.get(<js>"date"</js>);				<jc>// == "2012-03-03T04:05:06-0500"</jc> 
-	
-	<jc>// Use the put() method to set the date field to an ISO8601 string.</jc>
-	beanMap.put(<js>"date"</js>, <js>"2013-01-01T12:30:00-0500"</js>);	<jc>// Set it to a new value.</jc> 
-	
-	<jc>// Verify that the date changed on the original bean.</jc>
-	<jk>int</jk> year = myBean.<jf>date</jf>.getYear(); 								<jc>// == 113</jc>
-		</p>
-		<p>
-			Another example of a <code>PojoFilter</code> is one that converts <code><jk>byte</jk>[]</code> arrays to BASE64-encoded strings:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> ByteArrayBase64Filter <jk>extends</jk> PojoFilter&lt;<jk>byte</jk>[],String&gt; {
-	
-		<ja>@Override</ja>
-		<jk>public</jk> String filter(<jk>byte</jk>[] b) <jk>throws</jk> SerializeException {
-			<jk>try</jk> {
-				ByteArrayOutputStream baos = <jk>new</jk> ByteArrayOutputStream();
-				OutputStream b64os = MimeUtility.encode(baos, <js>"base64"</js>);
-				b64os.write(b);
-				b64os.close();
-				<jk>return new</jk> String(baos.toByteArray());
-			} <jk>catch</jk> (Exception e) {
-				<jk>throw new</jk> SerializeException(e);
-			}
-		}
-		
-		<ja>@Override</ja>
-		<jk>public byte</jk>[] unfilter(String s, ClassMeta&lt;?&gt; hint) <jk>throws</jk> ParseException {
-			<jk>try</jk> {
-				<jk>byte</jk>[] b = s.getBytes();
-				ByteArrayInputStream bais = <jk>new</jk> ByteArrayInputStream(b);
-				InputStream b64is = MimeUtility.decode(bais, <js>"base64"</js>);
-				<jk>byte</jk>[] tmp = <jk>new byte</jk>[b.length];
-				<jk>int</jk> n = b64is.read(tmp);
-				<jk>byte</jk>[] res = <jk>new byte</jk>[n];
-				System.<jsm>arraycopy</jsm>(tmp, 0, res, 0, n);
-				<jk>return</jk> res;
-			} <jk>catch</jk> (Exception e) {
-				<jk>throw new</jk> ParseException(e);
-			}
-		}
-	}
-		</p>
-		<p>
-			The following example shows the BASE64 filter in use:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a JSON serializer and register the BASE64 encoding filter with it.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializer().addFilters(ByteArrayBase64Filter.<jk>class</jk>);
-	ReaderParser parser = <jk>new</jk> JsonParser().addFilters(ByteArrayBase64Filter.<jk>class</jk>);
-	
-	<jk>byte</jk>[] a1 = {1,2,3};
-	String s1 = serializer.serialize(a1);		<jc>// Produces "'AQID'"</jc>
-	a1 = parser.parse(s1, <jk>byte</jk>[].<jk>class</jk>);		<jc>// Reproduces {1,2,3}</jc>
-	
-	<jk>byte</jk>[][] a2 = {{1,2,3},{4,5,6},<jk>null</jk>};
-	String s2 = serializer.serialize(a2);		<jc>// Produces "['AQID','BAUG',null]"</jc>
-	a2 = parser.parse(s2, <jk>byte</jk>[][].<jk>class</jk>);		<jc>// Reproduces {{1,2,3},{4,5,6},null}</jc>
-		</p>
-		<p>
-			It should be noted that the sample filters shown above have already been implemented in the {@link com.ibm.juno.core.filters} package.
-			The following are a list of out-of-the-box filters:
-		</p>
-		<ul>
-			<li>{@link com.ibm.juno.core.filters.ByteArrayBase64Filter} - Converts byte arrays to BASE64 encoded strings.
-			<li>{@link com.ibm.juno.core.filters.CalendarFilter} - Filters for converting <code>Calendar</code> objects to various date format strings.
-			<li>{@link com.ibm.juno.core.filters.DateFilter} - Filters for converting <code>Date</code> objects to various date format strings.
-			<li>{@link com.ibm.juno.core.filters.EnumerationFilter} - Filters for converting <code>Enumeration</code> objects to arrays.
-			<li>{@link com.ibm.juno.core.filters.IteratorFilter} - Filters for converting <code>Iterator</code> objects to arrays.
-			<li>{@link com.ibm.juno.core.filters.ReaderFilter} - Filters for converting <code>Readers</code> to objects before serialization.
-			<li>{@link com.ibm.juno.core.filters.XMLGregorianCalendarFilter} - Filters for converting <code>XMLGregorianCalendar</code> objects to ISO8601 strings.
-		</ul>
-		
-		<h6 class='topic'>Valid filtered class types</h6>
-		<p>
-			The filtered class type can be any serializable class type as defined in the <a href='../package-summary.html#PojoCategories'>POJO categories</a> table.
-		</p>
-	</div>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="PojoFilters_OneWay"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.3 - One-Way PojoFilters</h3>
-	<div class='topic'>
-		<p>
-			In the previous section, we defined two-way filters, meaning filters where the original objects could be reconstructing during parsing.  However, there are certain kinds of POJOs that we may want to support for serializing, but that are not possible to reconstruct during parsing.  For these, we can use one-way object filters.
-		</p>
-		<p>
-			A one-way object filter is simply an object filter that only implements the {@code filter()} method.  The {@code unfilter()} method is simply left unimplemented.
-		</p>
-		<p>
-			An example of a one-way filter would be one that allows {@code Iterators} to be serialized as JSON arrays.  It can make sense to be able to render {@code Iterators} as arrays, but in general it's not possible to reconstruct an {@code Iterator} during parsing. 
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> IteratorFilter <jk>extends</jk> PojoFilter&lt;Iterator,List&gt; {
-		
-		<ja>@Override</ja>
-		<jk>public</jk> List filter(Iterator o) {
-			List l = <jk>new</jk> LinkedList();
-			<jk>while</jk> (o.hasNext())
-				l.add(o.next());
-			<jk>return</jk> l;
-		}
-	}
-		</p>
-		<p>
-			Here is an example of our one-way filter being used.  Note that trying to parse the original object will cause a {@link com.ibm.juno.core.parser.ParseException} to be thrown.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a JSON serializer that can serialize Iterators.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializer().addFilters(IteratorFilter.<jk>class</jk>);
-	
-	<jc>// Construct an iterator we want to serialize.</jc>
-	Iterator iterator = <jk>new</jk> ObjectList(1,2,3).iterator();
-	
-	<jc>// Serialize our Iterator</jc>
-	String s = serializer.serialize(iterator);		<jc>// Produces "[1,2,3]"</jc>
-	
-	<jc>// Try to parse it.</jc>
-	ReaderParser parser = <jk>new</jk> JsonParser().addFilters(IteratorFilter.<jk>class</jk>);
-	iterator = parser.parse(s, Iterator.<jk>class</jk>);		<jc>// Throws ParseException!!!</jc>
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="StopClasses"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.4 - Stop Classes</h3>
-	<div class='topic'>
-		<p>
-			Occassionally, you may want to limit bean properties to only those defined on a parent class or interface.  
-			There are a couple of ways of doing this.
-		</p>
-		<p>
-			For example, let's define the following parent class and subclass:
-		</p>
-		<p class='bcode'>
-	<jc>// Abstract parent class</jc>
-	<jk>public abstract class</jk> MyClass {
-		<jk>public</jk> String <jf>foo</jf>=<js>"foo"</js>;
-	}
-
-	<jc>// Subclass 1</jc>
-	<jk>public class</jk> MyClassBar <jk>extends</jk> MyClass {
-		<jk>public</jk> String <jf>bar</jf>=<js>"bar"</js>;
-	}
-		</p>
-		<p>
-			Suppose we only want to render the properties defined on <code>MyClass</code>, not those defined on child classes. 
-			To do so, we can define the following filter:
-		</p>
-		<p class='bcode'>
-	<jc>// Define filter that limits properties to only those defined on MyClass</jc>
-	<jk>public class</jk> MyClassFilter <jk>extends</jk> BeanFilter&ltMyClass&gt; {
-		<jk>public</jk> MyClassFilter() {
-			setInterfaceClass(MyClass.<jk>class</jk>);
-		}
-	}
-		</p>
-		<p>
-			When serialized, the serialized bean will only include properties defined on the parent class.
-		</p>
-		<p class='bcode'>
-	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(MyClassFilter.<jk>class</jk>);
-	MyClass c = <jk>new</jk> MyClassBar();
-	String json = s.serialize(p);  <jc>// Prints "{foo:'foo'}"</jc>
-		</p>	
-		<p>
-			The equivalent can be done through an annotation on the parent class, which applies to all child classes:
-		</p>
-		<p class='bcode'>
-	<ja>@Bean</ja>(interfaceClass=MyClass.<jk>class</jk>)
-	<jk>public abstract class</jk> MyClass {
-		<jk>public</jk> String <jf>foo</jf>=<js>"foo"</js>;
-	}
-		</p>
-		<p>
-			The annotation can also be applied on the individual child classes, like so...
-		</p>
-		<p class='bcode'>
-	<ja>@Bean</ja>(interfaceClass=MyClass.<jk>class</jk>)
-	<jk>public class</jk> MyClassBar <jk>extends</jk> MyClass {
-		<jk>public</jk> String <jf>bar</jf>=<js>"bar"</js>;
-	}
-		</p>
-		<p>
-			Also, the <code>addFilters()</code> methods will automatically interpret any non-Filter classes passed in as meaning interface classes. 
-			So in the previous example, the <code>BeanFilter</code> class could have been avoided altogether by just passing in <code>MyClass.<jk>class</jk></code> to the serializer, like so:
-		</p>
-		<p class='bcode'>
-	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(MyClass.<jk>class</jk>);
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="SurrogateClasses"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.5 - Surrogate Classes</h3>
-	<div class='topic'>
-		<p>
-			Surrogate classes are very similar in concept to one-way <code>PojoFilters</code> except they represent a simpler syntax.
-		</p>
-		<p>
-			For example, let's say we want to be able to serialize the following class, but it's not serializable for some reason (for example, there are no
-			properties exposed):  
-		<p class='bcode'>
-	<jk>public class</jk> MyNonSerializableClass {
-		<jk>protected</jk> String <jf>foo</jf>;
-	}
-		</p>
-		<p>
-			This could be solved with the following <code>PojoFilter</code>.
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> MySerializableSurrogate {
-		<jk>public</jk> String <jf>foo</jf>;
-	}
-		
-	<jk>public class</jk> MyFilter <jk>extends</jk> PojoFilter&lt;MyNonSerializableClass,MySerializableSurrogate&gt; {
-		
-		<ja>@Override</ja>
-		<jk>public</jk> MySerializableSurrogate filter(MyNonSerializableClass o) {
-			MySerializableSurrogate s = <jk>new</jk> MySerializableSurrogate();
-			s.<jf>foo</jf> = o.<jf>foo</jf>;
-			<jk>return</jk> s;
-		}
-	}
-		</p>
-		<p>
-			However, the same can be accomplished by using a surrogate class that simply contains a constructor with the non-serializable class as an argument:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> MySerializableSurrogate {
-		<jk>public</jk> String <jf>foo</jf>;
-		
-		<jk>public</jk> MySerializableSurrogate(MyNonSerializableClass c) {
-			<jk>this</jk>.<jf>foo</jf> = c.<jf>foo</jf>;
-		}
-	}
-		</p>
-		<p>
-			The surrogate class is registered just like any other filter:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a JSON serializer that can serialize Iterators.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializer().addFilters(MySerializableSurrogate.<jk>class</jk>);
-		</p>
-		<p>
-			When the serializer encounters the non-serializable class, it will serialize an instance of the surrogate instead.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="ToObjectMaps"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.6 - Serializing to ObjectMaps</h3>
-	<div class='topic'>
-	<div class='topic'>
-		<p>
-			A shortcut method for filtering is provided that can often be simpler than defining filters.
-			In this case, we add methods to our class to serialize to {@link com.ibm.juno.core.ObjectMap ObjectMaps}
-		</p>
-		<p>
-		<p class='bcode'>
-	<jk>public class</jk> MyClass {
-		<jk>private</jk> String <jf>f1</jf>;
-		
-		<jc>// Constructor that takes in an ObjectMap</jc>
-		<jk>public</jk> MyClass(ObjectMap m) {
-			<jf>f1</jf> = m.getString(<js>"f1"</js>);
-		}
-		
-		<jc>// Method that converts object to an ObjectMap</jc>
-		<jk>public</jk> ObjectMap toObjectMap() {
-			<jk>return new</jk> ObjectMap().append(<js>"f1"</js>, <jf>f1</jf>);
-		}
-		</p>
-		<p>
-			The <code>toObjectMap()</code> method will automatically be used during serialization, and 
-			the constructor will automatically be used during parsing.
-			This will work for all serializers and parsers.
-		</p>
-	</div>
-</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/filters/BeanStringFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/BeanStringFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/BeanStringFilter.class
deleted file mode 100755
index 5314954..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/BeanStringFilter.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/filters/BeanStringFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/BeanStringFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/BeanStringFilter.java
deleted file mode 100755
index 9d26786..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/BeanStringFilter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.filters;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-
-/**
- * Transforms beans into {@link String Strings} by simply calling the {@link Object#toString()} method.
- * <p>
- * 	Allows you to specify classes that should just be converted to {@code Strings} instead of potentially
- * 	being turned into Maps by the {@link BeanContext} (or worse, throwing {@link BeanRuntimeException BeanRuntimeExceptions}).
- * <p>
- * 	This is usually a one-way filter.
- * 	Beans serialized as strings cannot be reconstituted using a parser unless it is a <a class='doclink' href='../package-summary.html#PojoCategories'>Type 5 POJO</a>.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type of the bean.
- */
-public class BeanStringFilter<T> extends PojoFilter<T,String> {
-
-	/**
-	 * Converts the specified bean to a {@link String}.
-	 */
-	@Override /* PojoFilter */
-	public String filter(T o) {
-		return o.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ByteArrayBase64Filter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ByteArrayBase64Filter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ByteArrayBase64Filter.class
deleted file mode 100755
index 86985c7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ByteArrayBase64Filter.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/filters/ByteArrayBase64Filter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ByteArrayBase64Filter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ByteArrayBase64Filter.java
deleted file mode 100755
index 3382ffb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ByteArrayBase64Filter.java
+++ /dev/null
@@ -1,47 +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.filters;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Transforms <code><jk>byte</jk>[]</code> arrays to BASE-64 encoded {@link String Strings}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ByteArrayBase64Filter extends PojoFilter<byte[],String> {
-
-	/**
-	 * Converts the specified <code><jk>byte</jk>[]</code> to a {@link String}.
-	 */
-	@Override /* PojoFilter */
-	public String filter(byte[] b) throws SerializeException {
-		try {
-			return StringUtils.base64Encode(b);
-		} catch (Exception e) {
-			throw new SerializeException(e);
-		}
-	}
-
-	/**
-	 * Converts the specified {@link String} to a <code><jk>byte</jk>[]</code>.
-	 */
-	@Override /* PojoFilter */
-	public byte[] unfilter(String s, ClassMeta<?> hint) throws ParseException {
-		try {
-			return StringUtils.base64Decode(s);
-		} catch (Exception e) {
-			throw new ParseException(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ISO8601DT.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ISO8601DT.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ISO8601DT.class
deleted file mode 100755
index c723505..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ISO8601DT.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/filters/CalendarFilter$ISO8601DTZ.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ISO8601DTZ.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ISO8601DTZ.class
deleted file mode 100755
index 1ac8054..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ISO8601DTZ.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/filters/CalendarFilter$Medium.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$Medium.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$Medium.class
deleted file mode 100755
index afb00ca..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$Medium.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/filters/CalendarFilter$RFC2822D.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822D.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822D.class
deleted file mode 100755
index 8c219ac..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822D.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/filters/CalendarFilter$RFC2822DT.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822DT.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822DT.class
deleted file mode 100755
index 257f747..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822DT.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/filters/CalendarFilter$RFC2822DTZ.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822DTZ.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822DTZ.class
deleted file mode 100755
index c3f9e2f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$RFC2822DTZ.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/filters/CalendarFilter$Simple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$Simple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$Simple.class
deleted file mode 100755
index d3e015f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$Simple.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/filters/CalendarFilter$ToString.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ToString.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ToString.class
deleted file mode 100755
index 151b15e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter$ToString.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/filters/CalendarFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter.class
deleted file mode 100755
index 98a12e5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
new file mode 100755
index 0000000..53b79b9
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@ -0,0 +1,357 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.resources;
+
+import static java.util.logging.Level.*;
+import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.html.HtmlDocSerializerContext.*;
+import static org.apache.juneau.server.RestServletContext.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.logging.*;
+
+import javax.servlet.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+import org.apache.juneau.microservice.*;
+import org.apache.juneau.server.*;
+import org.apache.juneau.server.annotation.*;
+import org.apache.juneau.server.converters.*;
+import org.apache.juneau.transforms.*;
+import org.apache.juneau.utils.*;
+
+/**
+ * REST resource that allows access to a file system directory.
+ * <p>
+ * 	The root directory is specified in one of two ways:
+ * </p>
+ * <ul class='spaced-list'>
+ * 	<li>Specifying the location via a <l>DirectoryResource.rootDir</l> property.
+ * 	<li>Overriding the {@link #getRootDir()} method.
+ * </ul>
+ * <p>
+ * 	Read/write access control is handled through the following properties:
+ * </p>
+ * <ul class='spaced-list'>
+ * 	<li><l>DirectoryResource.allowViews</l> - If <jk>true</jk>, allows view and download access to files.
+ * 	<li><l>DirectoryResource.allowPuts</l> - If <jk>true</jk>, allows files to be created or overwritten.
+ * 	<li><l>DirectoryResource.allowDeletes</l> - If <jk>true</jk>, allows files to be deleted.
+ * </ul>
+ * <p>
+ * 	Access can also be controlled by overriding the {@link #checkAccess(RestRequest)} method.
+ * </p>
+ */
+@RestResource(
+	label="File System Explorer",
+	description="Contents of $A{path}",
+	messages="nls/DirectoryResource",
+	properties={
+		@Property(name=HTML_uriAnchorText, value=PROPERTY_NAME),
+		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.DirectoryResource)'}"),
+		@Property(name=REST_allowMethodParam, value="*"),
+		@Property(name="DirectoryResource.rootDir", value=""),
+		@Property(name="DirectoryResource.allowViews", value="false"),
+		@Property(name="DirectoryResource.allowDeletes", value="false"),
+		@Property(name="DirectoryResource.allowPuts", value="false")
+	}
+)
+public class DirectoryResource extends Resource {
+	private static final long serialVersionUID = 1L;
+
+	private File rootDir;     // The root directory
+
+	// Settings enabled through servlet init parameters
+	private boolean allowDeletes, allowPuts, allowViews;
+
+	private static Logger logger = Logger.getLogger(DirectoryResource.class.getName());
+
+	@Override /* Servlet */
+	public void init() throws ServletException {
+		ObjectMap p = getProperties();
+		rootDir = new File(p.getString("DirectoryResource.rootDir"));
+		allowViews = p.getBoolean("DirectoryResource.allowViews", false);
+		allowDeletes = p.getBoolean("DirectoryResource.allowDeletes", false);
+		allowPuts = p.getBoolean("DirectoryResource.allowPuts", false);
+	}
+
+	/**
+	 * Returns the root directory defined by the 'rootDir' init parameter.
+	 * Subclasses can override this method to provide their own root directory.
+	 * @return The root directory.
+	 */
+	protected File getRootDir() {
+		if (rootDir == null) {
+			rootDir = new File(getProperties().getString("rootDir"));
+			if (! rootDir.exists())
+				if (! rootDir.mkdirs())
+					throw new RuntimeException("Could not create root dir");
+		}
+		return rootDir;
+	}
+
+	/**
+	 * [GET /*]
+	 *  On directories, returns a directory listing.
+	 *  On files, returns information about the file.
+	 *
+	 * @param req The HTTP request.
+	 * @return Either a FileResource or list of FileResources depending on whether it's a
+	 * 	file or directory.
+	 * @throws Exception - If file could not be read or access was not granted.
+	 */
+	@RestMethod(name="GET", path="/*",
+		description="On directories, returns a directory listing.\nOn files, returns information about the file.",
+		converters={Queryable.class}
+	)
+	public Object doGet(RestRequest req) throws Exception {
+		checkAccess(req);
+
+		String pathInfo = req.getPathInfo();
+		File f = pathInfo == null ? rootDir : new File(rootDir.getAbsolutePath() + pathInfo);
+
+		if (!f.exists())
+			throw new RestException(SC_NOT_FOUND, "File not found");
+
+		req.setAttribute("path", f.getAbsolutePath());
+
+		if (f.isDirectory()) {
+			List<FileResource> l = new LinkedList<FileResource>();
+			for (File fc : f.listFiles()) {
+				URL fUrl = new URL(req.getRequestURL().append("/").append(fc.getName()).toString());
+				l.add(new FileResource(fc, fUrl));
+			}
+			return l;
+		}
+
+		return new FileResource(f, new URL(req.getRequestURL().toString()));
+	}
+
+	/**
+	 * [DELETE /*]
+	 *  Delete a file on the file system.
+	 *
+	 * @param req The HTTP request.
+	 * @return The message <js>"File deleted"</js> if successful.
+	 * @throws Exception - If file could not be read or access was not granted.
+	 */
+	@RestMethod(name="DELETE", path="/*",
+		description="Delete a file on the file system."
+	)
+	public Object doDelete(RestRequest req) throws Exception {
+		checkAccess(req);
+
+		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
+		deleteFile(f);
+
+		if (req.getHeader("Accept").contains("text/html"))
+			return new Redirect();
+		return "File deleted";
+	}
+
+	/**
+	 * [PUT /*]
+	 * Add or overwrite a file on the file system.
+	 *
+	 * @param req The HTTP request.
+	 * @return The message <js>"File added"</js> if successful.
+	 * @throws Exception - If file could not be read or access was not granted.
+	 */
+	@RestMethod(name="PUT", path="/*",
+		description="Add or overwrite a file on the file system."
+	)
+	public Object doPut(RestRequest req) throws Exception {
+		checkAccess(req);
+
+		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
+		String parentSubPath = f.getParentFile().getAbsolutePath().substring(rootDir.getAbsolutePath().length());
+		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f));
+		IOPipe.create(req.getInputStream(), bos).closeOut().run();
+		if (req.getContentType().contains("html"))
+			return new Redirect(parentSubPath);
+		return "File added";
+	}
+
+	/**
+	 * [VIEW /*]
+	 * 	View the contents of a file.
+	 * 	Applies to files only.
+	 *
+	 * @param req The HTTP request.
+	 * @param res The HTTP response.
+	 * @return A Reader containing the contents of the file.
+	 * @throws Exception - If file could not be read or access was not granted.
+	 */
+	@RestMethod(name="VIEW", path="/*",
+		description="View the contents of a file.\nApplies to files only."
+	)
+	public Reader doView(RestRequest req, RestResponse res) throws Exception {
+		checkAccess(req);
+
+		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
+
+		if (!f.exists())
+			throw new RestException(SC_NOT_FOUND, "File not found");
+
+		if (f.isDirectory())
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "VIEW not available on directories");
+
+		res.setContentType("text/plain");
+		return new FileReader(f);
+	}
+
+	/**
+	 * [DOWNLOAD /*]
+	 * 	Download the contents of a file.
+	 * 	Applies to files only.
+	 *
+	 * @param req The HTTP request.
+	 * @param res The HTTP response.
+	 * @return A Reader containing the contents of the file.
+	 * @throws Exception - If file could not be read or access was not granted.
+	 */
+	@RestMethod(name="DOWNLOAD", path="/*",
+		description="Download the contents of a file.\nApplies to files only."
+	)
+	public Reader doDownload(RestRequest req, RestResponse res) throws Exception {
+		checkAccess(req);
+
+		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
+
+		if (!f.exists())
+			throw new RestException(SC_NOT_FOUND, "File not found");
+
+		if (f.isDirectory())
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "DOWNLOAD not available on directories");
+
+		res.setContentType("application");
+		return new FileReader(f);
+	}
+
+	/**
+	 * Verify that the specified request is allowed.
+	 * Subclasses can override this method to provide customized behavior.
+	 * Method should throw a {@link RestException} if the request should be disallowed.
+	 *
+	 * @param req The HTTP request.
+	 */
+	protected void checkAccess(RestRequest req) {
+		String method = req.getMethod();
+		if (method.equals("VIEW") && ! allowViews)
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "VIEW not enabled");
+		if (method.equals("PUT") && ! allowPuts)
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "PUT not enabled");
+		if (method.equals("DELETE") && ! allowDeletes)
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "DELETE not enabled");
+		if (method.equals("DOWNLOAD") && ! allowViews)
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "DOWNLOAD not enabled");
+	}
+
+	/** File POJO */
+	public class FileResource {
+		private File f;
+		private URL url;
+
+		/**
+		 * Constructor.
+		 * @param f The file.
+		 * @param url The URL of the file resource.
+		 */
+		public FileResource(File f, URL url) {
+			this.f = f;
+			this.url = url;
+		}
+
+		// Bean property getters
+
+		/**
+		 * @return The URL of the file resource.
+		 */
+		public URL getUrl() {
+			return url;
+		}
+
+		/**
+		 * @return The file type.
+		 */
+		public String getType() {
+			return (f.isDirectory() ? "dir" : "file");
+		}
+
+		/**
+		 * @return The file name.
+		 */
+		public String getName() {
+			return f.getName();
+		}
+
+		/**
+		 * @return The file size.
+		 */
+		public long getSize() {
+			return f.length();
+		}
+
+		/**
+		 * @return The file last modified timestamp.
+		 */
+		@BeanProperty(transform=DateTransform.ISO8601DTP.class)
+		public Date getLastModified() {
+			return new Date(f.lastModified());
+		}
+
+		/**
+		 * @return A hyperlink to view the contents of the file.
+		 * @throws Exception If access is not allowed.
+		 */
+		public URL getView() throws Exception {
+			if (allowViews && f.canRead() && ! f.isDirectory())
+				return new URL(url + "?method=VIEW");
+			return null;
+		}
+
+		/**
+		 * @return A hyperlink to download the contents of the file.
+		 * @throws Exception If access is not allowed.
+		 */
+		public URL getDownload() throws Exception {
+			if (allowViews && f.canRead() && ! f.isDirectory())
+				return new URL(url + "?method=DOWNLOAD");
+			return null;
+		}
+
+		/**
+		 * @return A hyperlink to delete the file.
+		 * @throws Exception If access is not allowed.
+		 */
+		public URL getDelete() throws Exception {
+			if (allowDeletes && f.canWrite())
+				return new URL(url + "?method=DELETE");
+			return null;
+		}
+	}
+
+	/** Utility method */
+	private void deleteFile(File f) {
+		try {
+			if (f.isDirectory())
+				for (File fc : f.listFiles())
+					deleteFile(fc);
+			f.delete();
+		} catch (Exception e) {
+			logger.log(WARNING, "Cannot delete file '" + f.getAbsolutePath() + "'", e);
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
new file mode 100644
index 0000000..413c815
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
@@ -0,0 +1,256 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.resources;
+
+import java.text.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+import java.util.logging.*;
+import java.util.logging.Formatter;
+import java.util.regex.*;
+
+import org.apache.juneau.internal.*;
+
+/**
+ * Log entry formatter.
+ * <p>
+ * 	Uses three simple parameter for configuring log entry formats:
+ * 	<ul class='spaced-list'>
+ * 		<li><code>dateFormat</code> - A {@link SimpleDateFormat} string describing the format for dates.
+ * 		<li><code>format</code> - A string with <code>{...}</code> replacement variables representing predefined fields.
+ * 		<li><code>useStackTraceHashes</code> - A setting that causes duplicate stack traces to be replaced with 8-character hash strings.
+ * 	</ul>
+ * <p>
+ * 	This class converts the format strings into a regular expression that can be used to parse the resulting log file.
+ *
+ * @author jbognar
+ */
+public class LogEntryFormatter extends Formatter {
+
+	private ConcurrentHashMap<String,AtomicInteger> hashes;
+	private DateFormat df;
+	private String format;
+	private Pattern rePattern;
+	private Map<String,Integer> fieldIndexes;
+
+	/**
+	 * Create a new formatter.
+	 *
+	 * @param format The log entry format.  e.g. <js>"[{date} {level}] {msg}%n"</js>
+	 * 	The string can contain any of the following variables:
+	 * 		<ol>
+	 * 			<li><js>"{date}"</js> - The date, formatted per <js>"Logging/dateFormat"</js>.
+	 * 			<li><js>"{class}"</js> - The class name.
+	 * 			<li><js>"{method}"</js> - The method name.
+	 * 			<li><js>"{logger}"</js> - The logger name.
+	 * 			<li><js>"{level}"</js> - The log level name.
+	 * 			<li><js>"{msg}"</js> - The log message.
+	 * 			<li><js>"{threadid}"</js> - The thread ID.
+	 * 			<li><js>"{exception}"</js> - The localized exception message.
+	 *		</ol>
+	 * @param dateFormat The {@link SimpleDateFormat} format to use for dates.  e.g. <js>"yyyy.MM.dd hh:mm:ss"</js>.
+	 * @param useStackTraceHashes If <jk>true</jk>, only print unique stack traces once and then refer to them by a
+	 * 	simple 8 character hash identifier.
+	 */
+	public LogEntryFormatter(String format, String dateFormat, boolean useStackTraceHashes) {
+		this.df = new SimpleDateFormat(dateFormat);
+		if (useStackTraceHashes)
+			hashes = new ConcurrentHashMap<String,AtomicInteger>();
+
+		fieldIndexes = new HashMap<String,Integer>();
+
+		format = format
+			.replaceAll("\\{date\\}", "%1\\$s")
+			.replaceAll("\\{class\\}", "%2\\$s")
+			.replaceAll("\\{method\\}", "%3\\$s")
+			.replaceAll("\\{logger\\}", "%4\\$s")
+			.replaceAll("\\{level\\}", "%5\\$s")
+			.replaceAll("\\{msg\\}", "%6\\$s")
+			.replaceAll("\\{threadid\\}", "%7\\$s")
+			.replaceAll("\\{exception\\}", "%8\\$s");
+
+		this.format = format;
+
+		// Construct a regular expression to match this log entry.
+		int index = 1;
+		StringBuilder re = new StringBuilder();
+		int S1 = 1; // Looking for %
+		int S2 = 2; // Found %, looking for number.
+		int S3 = 3; // Found number, looking for $.
+		int S4 = 4; // Found $, looking for s.
+		int state = 1;
+		int i1 = 0;
+		for (int i = 0; i < format.length(); i++) {
+			char c = format.charAt(i);
+			if (state == S1) {
+				if (c == '%')
+					state = S2;
+				else {
+					if (! (Character.isLetterOrDigit(c) || Character.isWhitespace(c)))
+						re.append('\\');
+					re.append(c);
+				}
+			} else if (state == S2) {
+				if (Character.isDigit(c)) {
+					i1 = i;
+					state = S3;
+				} else {
+					re.append("\\%").append(c);
+					state = S1;
+				}
+			} else if (state == S3) {
+				if (c == '$') {
+					state = S4;
+				} else {
+					re.append("\\%").append(format.substring(i1, i));
+					state = S1;
+				}
+			} else if (state == S4) {
+				if (c == 's') {
+					int group = Integer.parseInt(format.substring(i1, i-1));
+					switch (group) {
+						case 1:
+							fieldIndexes.put("date", index++);
+							re.append("(" + dateFormat.replaceAll("[mHhsSdMy]", "\\\\d").replaceAll("\\.", "\\\\.") + ")");
+							break;
+						case 2:
+							fieldIndexes.put("class", index++);
+							re.append("([\\p{javaJavaIdentifierPart}\\.]+)");
+							break;
+						case 3:
+							fieldIndexes.put("method", index++);
+							re.append("([\\p{javaJavaIdentifierPart}\\.]+)");
+							break;
+						case 4:
+							fieldIndexes.put("logger", index++);
+							re.append("([\\w\\d\\.\\_]+)");
+							break;
+						case 5:
+							fieldIndexes.put("level", index++);
+							re.append("(SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST)");
+							break;
+						case 6:
+							fieldIndexes.put("msg", index++);
+							re.append("(.*)");
+							break;
+						case 7:
+							fieldIndexes.put("threadid", index++);
+							re.append("(\\\\d+)");
+							break;
+						case 8:
+							fieldIndexes.put("exception", index++);
+							re.append("(.*)");
+							break;
+					}
+				} else {
+					re.append("\\%").append(format.substring(i1, i));
+				}
+				state = S1;
+			}
+		}
+
+		// The log parser
+		String sre = re.toString();
+		if (sre.endsWith("\\%n"))
+			sre = sre.substring(0, sre.length()-3);
+
+		// Replace instances of %n.
+		sre = sre.replaceAll("\\\\%n", "\\\\n");
+
+		rePattern = Pattern.compile(sre);
+		fieldIndexes = Collections.unmodifiableMap(fieldIndexes);
+	}
+
+	/**
+	 * Returns the regular expression pattern used for matching log entries.
+	 *
+	 * @return The regular expression pattern used for matching log entries.
+	 */
+	public Pattern getLogEntryPattern() {
+		return rePattern;
+	}
+
+	/**
+	 * Returns the {@link DateFormat} used for matching dates.
+	 *
+	 * @return The {@link DateFormat} used for matching dates.
+	 */
+	public DateFormat getDateFormat() {
+		return df;
+	}
+
+	/**
+	 * Given a matcher that has matched the pattern specified by {@link #getLogEntryPattern()},
+	 * returns the field value from the match.
+	 *
+	 * @param fieldName The field name.  Possible values are:
+	 * 	<ul>
+	 * 		<li><js>"date"</js>
+	 * 		<li><js>"class"</js>
+	 * 		<li><js>"method"</js>
+	 * 		<li><js>"logger"</js>
+	 * 		<li><js>"level"</js>
+	 * 		<li><js>"msg"</js>
+	 * 		<li><js>"threadid"</js>
+	 * 		<li><js>"exception"</js>
+	 *	</ul>
+	 * @param m The matcher.
+	 * @return The field value, or <jk>null</jk> if the specified field does not exist.
+	 */
+	public String getField(String fieldName, Matcher m) {
+		Integer i = fieldIndexes.get(fieldName);
+		return (i == null ? null : m.group(i));
+	}
+
+	@Override /* Formatter */
+	public String format(LogRecord r) {
+		String msg = formatMessage(r);
+		Throwable t = r.getThrown();
+		String hash = null;
+		int c = 0;
+		if (hashes != null && t != null) {
+			hash = hashCode(t);
+			hashes.putIfAbsent(hash, new AtomicInteger(0));
+			c = hashes.get(hash).incrementAndGet();
+			if (c == 1) {
+				msg = '[' + hash + '.' + c + "] " + msg;
+			} else {
+				msg = '[' + hash + '.' + c + "] " + msg + ", " + t.getLocalizedMessage();
+				t = null;
+			}
+		}
+		String s = String.format(format,
+			df.format(new Date(r.getMillis())),
+			r.getSourceClassName(),
+			r.getSourceMethodName(),
+			r.getLoggerName(),
+			r.getLevel(),
+			msg,
+			r.getThreadID(),
+			r.getThrown() == null ? "" : r.getThrown().getMessage());
+		if (t != null)
+			s += String.format("%n%s", StringUtils.getStackTrace(r.getThrown()));
+		return s;
+	}
+
+	private String hashCode(Throwable t) {
+		int i = 0;
+		while (t != null) {
+			for (StackTraceElement e : t.getStackTrace())
+				i ^= e.hashCode();
+			t = t.getCause();
+		}
+		return Integer.toHexString(i);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogParser.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogParser.java
new file mode 100644
index 0000000..3984a45
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogParser.java
@@ -0,0 +1,229 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.resources;
+
+import java.io.*;
+import java.nio.charset.*;
+import java.text.*;
+import java.util.*;
+import java.util.regex.*;
+
+
+/**
+ * Utility class for reading log files.
+ * <p>
+ * Provides the capability of returning splices of log files based on dates and filtering based
+ * on thread and logger names.
+ */
+public class LogParser implements Iterable<LogParser.Entry>, Iterator<LogParser.Entry> {
+	private BufferedReader br;
+	private LogEntryFormatter formatter;
+	private Date start, end;
+	private Set<String> loggerFilter, severityFilter;
+	private String threadFilter;
+	private Entry next;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param formatter The log entry formatter.
+	 * @param f The log file.
+	 * @param start Don't return rows before this date.  If <jk>null</jk>, start from the beginning of the file.
+	 * @param end Don't return rows after this date.  If <jk>null</jk>, go to the end of the file.
+	 * @param thread Only return log entries with this thread name.
+	 * @param loggers Only return log entries produced by these loggers (simple class names).
+	 * @param severity Only return log entries with the specified severity.
+	 * @throws IOException
+	 */
+	public LogParser(LogEntryFormatter formatter, File f, Date start, Date end, String thread, String[] loggers, String[] severity) throws IOException {
+		br = new BufferedReader(new InputStreamReader(new FileInputStream(f), Charset.defaultCharset()));
+		this.formatter = formatter;
+		this.start = start;
+		this.end = end;
+		this.threadFilter = thread;
+		if (loggers != null)
+			this.loggerFilter = new HashSet<String>(Arrays.asList(loggers));
+		if (severity != null)
+			this.severityFilter = new HashSet<String>(Arrays.asList(severity));
+
+		// Find the first line.
+		String line;
+		while (next == null && (line = br.readLine()) != null) {
+			Entry e = new Entry(line);
+			if (e.matches())
+				next = e;
+		}
+	}
+
+	@Override /* Iterator */
+	public boolean hasNext() {
+		return next != null;
+	}
+
+	@Override /* Iterator */
+	public Entry next() {
+		Entry current = next;
+		Entry prev = next;
+		try {
+			next = null;
+			String line = null;
+			while (next == null && (line = br.readLine()) != null) {
+				Entry e = new Entry(line);
+				if (e.isRecord) {
+					if (e.matches())
+						next = e;
+					prev = null;
+ 				} else {
+					if (prev != null)
+						prev.addText(e.line);
+				}
+			}
+		} catch (IOException e) {
+			throw new RuntimeException(e);
+		}
+		return current;
+	}
+
+	@Override /* Iterator */
+	public void remove() {
+		throw new NoSuchMethodError();
+	}
+
+	@Override /* Iterable */
+	public Iterator<Entry> iterator() {
+		return this;
+	}
+
+	/**
+	 * Closes the underlying reader.
+	 *
+	 * @throws IOException
+	 */
+	public void close() throws IOException {
+		br.close();
+	}
+
+	/**
+	 * Serializes the contents of the parsed log file to the specified writer
+	 * and then closes the underlying reader.
+	 *
+	 * @param w The writer to write the log file to.
+	 * @throws IOException
+	 */
+	public void writeTo(Writer w) throws IOException {
+		try {
+			if (! hasNext())
+				w.append("[EMPTY]"); //$NON-NLS-1$
+			else for (LogParser.Entry le : this)
+				le.append(w);
+		} finally {
+			close();
+		}
+	}
+
+	/**
+	 * Represents a single line from the log file.
+	 */
+	@SuppressWarnings("javadoc")
+	public class Entry {
+		public Date date;
+		public String severity, logger;
+		protected String line, text;
+		protected String thread;
+		protected List<String> additionalText;
+		protected boolean isRecord;
+
+		Entry(String line) throws IOException {
+			try {
+				this.line = line;
+				Matcher m = formatter.getLogEntryPattern().matcher(line);
+				if (m.matches()) {
+					isRecord = true;
+					String s = formatter.getField("date", m);
+					if (s != null)
+						date = formatter.getDateFormat().parse(s);
+					thread = formatter.getField("thread", m);
+					severity = formatter.getField("level", m);
+					logger = formatter.getField("logger", m);
+					text = formatter.getField("msg", m);
+					if (logger != null && logger.indexOf('.') > -1)
+						logger = logger.substring(logger.lastIndexOf('.')+1);
+				}
+			} catch (ParseException e) {
+				throw new IOException(e);
+			}
+		}
+
+		private void addText(String t) {
+			if (additionalText == null)
+				additionalText = new LinkedList<String>();
+			additionalText.add(t);
+		}
+
+		public String getText() {
+			if (additionalText == null)
+				return text;
+			int i = text.length();
+			for (String s : additionalText)
+				i += s.length() + 1;
+			StringBuilder sb = new StringBuilder(i);
+			sb.append(text);
+			for (String s : additionalText)
+				sb.append('\n').append(s);
+			return sb.toString();
+		}
+
+		public String getThread() {
+			return thread;
+		}
+
+		public Writer appendHtml(Writer w) throws IOException {
+			w.append(toHtml(line)).append("<br>"); //$NON-NLS-1$
+			if (additionalText != null)
+				for (String t : additionalText)
+					w.append(toHtml(t)).append("<br>"); //$NON-NLS-1$
+			return w;
+		}
+
+		protected Writer append(Writer w) throws IOException {
+			w.append(line).append('\n');
+			if (additionalText != null)
+				for (String t : additionalText)
+					w.append(t).append('\n');
+			return w;
+		}
+
+		private boolean matches() {
+			if (! isRecord)
+				return false;
+			if (start != null && date.before(start))
+				return false;
+			if (end != null && date.after(end))
+				return false;
+			if (threadFilter != null && ! threadFilter.equals(thread))
+				return false;
+			if (loggerFilter != null && ! loggerFilter.contains(logger))
+				return false;
+			if (severityFilter != null && ! severityFilter.contains(severity))
+				return false;
+			return true;
+		}
+	}
+
+	private String toHtml(String s) {
+		if (s.indexOf('<') != -1)
+			return s.replaceAll("<", "&lt;");  //$NON-NLS-1$//$NON-NLS-2$
+		return s;
+	}
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
new file mode 100755
index 0000000..1d945f4
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -0,0 +1,302 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.resources;
+
+import static javax.servlet.http.HttpServletResponse.*;
+import static org.apache.juneau.html.HtmlDocSerializerContext.*;
+import static org.apache.juneau.server.RestServletContext.*;
+
+import java.io.*;
+import java.net.*;
+import java.nio.charset.*;
+import java.util.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+import org.apache.juneau.dto.*;
+import org.apache.juneau.ini.*;
+import org.apache.juneau.internal.*;
+import org.apache.juneau.microservice.*;
+import org.apache.juneau.server.*;
+import org.apache.juneau.server.annotation.*;
+import org.apache.juneau.server.annotation.Properties;
+import org.apache.juneau.server.converters.*;
+import org.apache.juneau.transforms.*;
+
+/**
+ * REST resource for viewing and accessing log files.
+ */
+@RestResource(
+	path="/logs",
+	label="Log files",
+	description="Log files from this service",
+	properties={
+		@Property(name=HTML_uriAnchorText, value=PROPERTY_NAME),
+		@Property(name=REST_allowMethodParam, value="true")
+	},
+	transforms={
+		IteratorTransform.class,       // Allows Iterators and Iterables to be serialized.
+		DateTransform.ISO8601DT.class  // Serialize Date objects as ISO8601 strings.
+	}
+)
+@SuppressWarnings("nls")
+public class LogsResource extends Resource {
+	private static final long serialVersionUID = 1L;
+
+	private ConfigFile cf = getConfig();
+
+	private File logDir = new File(cf.getString("Logging/logDir", "."));
+	private LogEntryFormatter leFormatter = new LogEntryFormatter(
+		cf.getString("Logging/format", "[{date} {level}] {msg}%n"),
+		cf.getString("Logging/dateFormat", "yyyy.MM.dd hh:mm:ss"),
+		cf.getBoolean("Logging/useStackTraceHashes")
+	);
+
+	private final FileFilter filter = new FileFilter() {
+		@Override /* FileFilter */
+		public boolean accept(File f) {
+			return f.isDirectory() || f.getName().endsWith(".log");
+		}
+	};
+
+	/**
+	 * [GET /*] - Get file details or directory listing.
+	 *
+	 * @param req The HTTP request
+	 * @param properties The writable properties for setting the descriptions.
+	 * @param path The log file path.
+	 * @return The log file.
+	 * @throws Exception
+	 */
+	@RestMethod(name="GET", path="/*", rc={200,404})
+	public Object getFileOrDirectory(RestRequest req, @Properties ObjectMap properties, @PathRemainder String path) throws Exception {
+
+		File f = getFile(path);
+
+		if (f.isDirectory()) {
+			Set<FileResource> l = new TreeSet<FileResource>(new FileResourceComparator());
+			for (File fc : f.listFiles(filter)) {
+				URL fUrl = new URL(req.getTrimmedRequestURL().append('/').append(fc.getName()).toString());
+				l.add(new FileResource(fc, fUrl));
+			}
+			properties.put(HTMLDOC_description, "Contents of " + f.getAbsolutePath());
+			return l;
+		}
+
+		properties.put(HTMLDOC_description, "File details on " + f.getAbsolutePath());
+		return new FileResource(f, new URL(req.getTrimmedRequestURL().toString()));
+	}
+
+	/**
+	 * [VIEW /*] - Retrieve the contents of a log file.
+	 *
+	 * @param req The HTTP request.
+	 * @param res The HTTP response.
+	 * @param path The log file path.
+	 * @param properties The writable properties for setting the descriptions.
+	 * @param highlight If <code>true</code>, add color highlighting based on severity.
+	 * @param start Optional start timestamp.  Don't print lines logged before the specified timestamp.  Example:  "&start=2014-01-23 11:25:47".
+	 * @param end Optional end timestamp.  Don't print lines logged after the specified timestamp.  Example:  "&end=2014-01-23 11:25:47".
+	 * @param thread Optional thread name filter.  Only show log entries with the specified thread name.  Example: "&thread=pool-33-thread-1".
+	 * @param loggers Optional logger filter.  Only show log entries if they were produced by one of the specified loggers (simple class name).  Example: "&loggers=(LinkIndexService,LinkIndexRestService)".
+	 * @param severity Optional severity filter.  Only show log entries with the specified severity.  Example: "&severity=(ERROR,WARN)".
+	 * @throws Exception
+	 */
+	@RestMethod(name="VIEW", path="/*", rc={200,404})
+	@SuppressWarnings("nls")
+	public void viewFile(RestRequest req, RestResponse res, @PathRemainder String path, @Properties ObjectMap properties, @Param("highlight") boolean highlight, @Param("start") String start, @Param("end") String end, @Param("thread") String thread, @Param("loggers") String[] loggers, @Param("severity") String[] severity) throws Exception {
+
+		File f = getFile(path);
+		if (f.isDirectory())
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "View not available on directories");
+
+		Date startDate = StringUtils.parseISO8601Date(start), endDate = StringUtils.parseISO8601Date(end);
+
+		if (! highlight) {
+			Object o = getReader(f, startDate, endDate, thread, loggers, severity);
+			res.setContentType("text/plain");
+			if (o instanceof Reader)
+				res.setOutput(o);
+			else {
+				LogParser p = (LogParser)o;
+				Writer w = res.getNegotiatedWriter();
+				try {
+					p.writeTo(w);
+				} finally {
+					w.flush();
+					w.close();
+				}
+			}
+			return;
+		}
+
+		res.setContentType("text/html");
+		PrintWriter w = res.getNegotiatedWriter();
+		try {
+			w.println("<html><body style='font-family:monospace;font-size:8pt;white-space:pre;'>");
+			LogParser lp = getLogParser(f, startDate, endDate, thread, loggers, severity);
+			try {
+				if (! lp.hasNext())
+					w.append("<span style='color:gray'>[EMPTY]</span>");
+				else for (LogParser.Entry le : lp) {
+					char s = le.severity.charAt(0);
+					String color = "black";
+					//SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST
+					if (s == 'I')
+						color = "#006400";
+					else if (s == 'W')
+						color = "#CC8400";
+					else if (s == 'E' || s == 'S')
+						color = "#DD0000";
+					else if (s == 'D' || s == 'F' || s == 'T')
+						color = "#000064";
+					w.append("<span style='color:").append(color).append("'>");
+					le.appendHtml(w).append("</span>");
+				}
+				w.append("</body></html>");
+			} finally {
+				lp.close();
+			}
+		} finally {
+			w.close();
+		}
+	}
+
+	/**
+	 * [VIEW /*] - Retrieve the contents of a log file as parsed entries.
+	 *
+	 * @param req The HTTP request.
+	 * @param path The log file path.
+	 * @param start Optional start timestamp.  Don't print lines logged before the specified timestamp.  Example:  "&start=2014-01-23 11:25:47".
+	 * @param end Optional end timestamp.  Don't print lines logged after the specified timestamp.  Example:  "&end=2014-01-23 11:25:47".
+	 * @param thread Optional thread name filter.  Only show log entries with the specified thread name.  Example: "&thread=pool-33-thread-1".
+	 * @param loggers Optional logger filter.  Only show log entries if they were produced by one of the specified loggers (simple class name).  Example: "&loggers=(LinkIndexService,LinkIndexRestService)".
+	 * @param severity Optional severity filter.  Only show log entries with the specified severity.  Example: "&severity=(ERROR,WARN)".
+	 * @return The parsed contents of the log file.
+	 * @throws Exception
+	 */
+	@RestMethod(name="PARSE", path="/*", converters=Queryable.class, rc={200,404})
+	public LogParser viewParsedEntries(RestRequest req, @PathRemainder String path, @Param("start") String start, @Param("end") String end, @Param("thread") String thread, @Param("loggers") String[] loggers, @Param("severity") String[] severity) throws Exception {
+
+		File f = getFile(path);
+		Date startDate = StringUtils.parseISO8601Date(start), endDate = StringUtils.parseISO8601Date(end);
+
+		if (f.isDirectory())
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "View not available on directories");
+
+		return getLogParser(f, startDate, endDate, thread, loggers, severity);
+	}
+
+	/**
+	 * [DOWNLOAD /*] - Download file.
+	 *
+	 * @param res The HTTP response.
+	 * @param path The log file path.
+	 * @return The contents of the log file.
+	 * @throws Exception
+	 */
+	@RestMethod(name="DOWNLOAD", path="/*", rc={200,404})
+	public Object downloadFile(RestResponse res, @PathRemainder String path) throws Exception {
+
+		File f = getFile(path);
+
+		if (f.isDirectory())
+			throw new RestException(SC_METHOD_NOT_ALLOWED, "Download not available on directories");
+
+		res.setContentType("application/octet-stream"); //$NON-NLS-1$
+		res.setContentLength((int)f.length());
+		return new FileInputStream(f);
+	}
+
+	/**
+	 * [DELETE /*] - Delete a file.
+	 *
+	 * @param path The log file path.
+	 * @return A redirect object to the root.
+	 * @throws Exception
+	 */
+	@RestMethod(name="DELETE", path="/*", rc={200,404})
+	public Object deleteFile(@PathRemainder String path) throws Exception {
+
+		File f = getFile(path);
+
+		if (f.isDirectory())
+			throw new RestException(SC_BAD_REQUEST, "Delete not available on directories.");
+
+		if (f.canWrite())
+			if (! f.delete())
+				throw new RestException(SC_FORBIDDEN, "Could not delete file.");
+
+		return new Redirect(path + "/.."); //$NON-NLS-1$
+	}
+
+	private static BufferedReader getReader(File f) throws IOException {
+		return new BufferedReader(new InputStreamReader(new FileInputStream(f), Charset.defaultCharset()));
+	}
+
+	private File getFile(String path) {
+		if (path != null && path.indexOf("..") != -1)
+			throw new RestException(SC_NOT_FOUND, "File not found.");
+		File f = (path == null ? logDir : new File(logDir.getAbsolutePath() + '/' + path));
+		if (filter.accept(f))
+			return f;
+		throw new RestException(SC_NOT_FOUND, "File not found.");
+	}
+
+	/**
+	 * File bean.
+	 */
+	@SuppressWarnings("javadoc")
+	public static class FileResource {
+		private File f;
+		public String type;
+		public Object name;
+		public Long size;
+		@BeanProperty(transform=DateTransform.Medium.class) public Date lastModified;
+		public URL view, highlighted, parsed, download, delete;
+
+		public FileResource(File f, URL url) throws IOException {
+			this.f = f;
+			this.type = (f.isDirectory() ? "dir" : "file");
+			this.name = f.isDirectory() ? new Link(f.getName(), url.toString()) : f.getName();
+			this.size = f.isDirectory() ? null : f.length();
+			this.lastModified = new Date(f.lastModified());
+			if (f.canRead() && ! f.isDirectory()) {
+				this.view = new URL(url + "?method=VIEW");
+				this.highlighted = new URL(url + "?method=VIEW&highlight=true");
+				this.parsed = new URL(url + "?method=PARSE");
+				this.download = new URL(url + "?method=DOWNLOAD");
+				this.delete = new URL(url + "?method=DELETE");
+			}
+		}
+	}
+
+	private static class FileResourceComparator implements Comparator<FileResource>, Serializable {
+		private static final long serialVersionUID = 1L;
+		@Override /* Comparator */
+		public int compare(FileResource o1, FileResource o2) {
+			int c = o1.type.compareTo(o2.type);
+			return c != 0 ? c : o1.f.getName().compareTo(o2.f.getName());
+		}
+	}
+
+	private Object getReader(File f, final Date start, final Date end, final String thread, final String[] loggers, final String[] severity) throws IOException {
+		if (start == null && end == null && thread == null && loggers == null)
+			return getReader(f);
+		return getLogParser(f, start, end, thread, loggers, severity);
+	}
+
+	private LogParser getLogParser(File f, final Date start, final Date end, final String thread, final String[] loggers, final String[] severity) throws IOException {
+		return new LogParser(leFormatter, f, start, end, thread, loggers, severity);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
new file mode 100755
index 0000000..0dcf933
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
@@ -0,0 +1,31 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.resources;
+
+import org.apache.juneau.microservice.*;
+import org.apache.juneau.server.annotation.*;
+
+/**
+ * Sample root REST resource.
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+@RestResource(
+	path="/",
+	label="Sample Root Resource",
+	description="This is a sample router page",
+	children={ConfigResource.class,LogsResource.class}
+)
+public class SampleRootResource extends ResourceGroup {
+	private static final long serialVersionUID = 1L;
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
new file mode 100755
index 0000000..924a165
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
@@ -0,0 +1,52 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice.resources;
+
+import org.apache.juneau.microservice.*;
+import org.apache.juneau.server.annotation.*;
+
+/**
+ * Provides the capability to shut down this REST microservice through a REST call.
+ */
+@RestResource(
+	path="/shutdown",
+	label="Shut down this resource"
+)
+public class ShutdownResource extends Resource {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * [GET /] - Shutdown this resource.
+	 *
+	 * @return The string <js>"OK"</js>.
+	 * @throws Exception
+	 */
+	@RestMethod(name="GET", path="/", description="Show contents of config file.")
+	public String shutdown() throws Exception {
+		new Thread(
+			new Runnable() {
+				@Override /* Runnable */
+				public void run() {
+					try {
+						Thread.sleep(1000);
+					System.exit(0);
+					} catch (InterruptedException e) {
+						e.printStackTrace();
+					}
+				}
+			}
+		).start();
+		return "OK";
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/package.html b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/package.html
new file mode 100755
index 0000000..422f5d2
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/package.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML>
+<!--
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ ***************************************************************************************************************************/
+ -->
+<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");
+		body { 
+			margin: 20px; 
+		}	
+	</style>
+</head>
+<body>
+<p>Predefined Microservice Resources</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/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/.classpath b/com.ibm.team.juno.releng/.classpath
index 85ebd8a..3ea783e 100755
--- a/com.ibm.team.juno.releng/.classpath
+++ b/com.ibm.team.juno.releng/.classpath
@@ -1,24 +1,25 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry exported="true" kind="lib" path="lib/derby/derby.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jaxrs/jsr311-api-1.1.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/javax.servlet_2.5.0.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.9/commons-codec-1.9.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-fileupload/org.apache.commons.fileupload_1.3.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpclient/commons-logging-1.1.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpclient/httpclient-4.5.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpclient/httpcomponents-client-4.5-src.zip"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpclient/httpcore-4.4.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/httpclient/httpmime-4.5.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jaxrs/wink-common-1.2.1-incubating.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jaxrs/wink-server-1.2.1-incubating.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jena/jena-core-2.7.1-sources.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jena/jena-core-2.7.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jena/jena-iri-0.9.2.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jena/log4j-1.2.16.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jena/slf4j-api-1.6.4.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/jena/slf4j-log4j12-1.6.4.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/junit/hamcrest-core-1.3.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/junit/junit-4.12.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry exported="true" kind="lib" path="lib/derby/derby.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jaxrs/jsr311-api-1.1.1.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/javax.servlet_2.5.0.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.9/commons-codec-1.9.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-fileupload/org.apache.commons.fileupload_1.3.1.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/httpclient/commons-logging-1.1.1.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/httpclient/httpclient-4.5.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/httpclient/httpcomponents-client-4.5-src.zip"/>
+	<classpathentry exported="true" kind="lib" path="lib/httpclient/httpcore-4.4.1.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/httpclient/httpmime-4.5.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jaxrs/wink-common-1.2.1-incubating.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jaxrs/wink-server-1.2.1-incubating.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jena/jena-core-2.7.1-sources.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jena/jena-core-2.7.1.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jena/jena-iri-0.9.2.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jena/log4j-1.2.16.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jena/slf4j-api-1.6.4.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jena/slf4j-log4j12-1.6.4.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/junit/hamcrest-core-1.3.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/junit/junit-4.12.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jena/xercesImpl-2.9.1.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/.project b/com.ibm.team.juno.releng/.project
index 4b21cbb..fa8e64f 100755
--- a/com.ibm.team.juno.releng/.project
+++ b/com.ibm.team.juno.releng/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>com.ibm.team.juno.releng</name>
+	<name>org.apache.juneau.releng</name>
 	<comment></comment>
 	<projects>
 	</projects>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/Juno+SW+Classification+Guidance+&+Questionnaire [v1].doc
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/Juno+SW+Classification+Guidance+&+Questionnaire [v1].doc b/com.ibm.team.juno.releng/Juno+SW+Classification+Guidance+&+Questionnaire [v1].doc
deleted file mode 100755
index dea703b..0000000
Binary files a/com.ibm.team.juno.releng/Juno+SW+Classification+Guidance+&+Questionnaire [v1].doc and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/META-INF/MANIFEST.MF
index 6e3c020..32b19be 100755
--- a/com.ibm.team.juno.releng/META-INF/MANIFEST.MF
+++ b/com.ibm.team.juno.releng/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: Juno Releng
-Bundle-SymbolicName: com.ibm.team.juno.releng
+Bundle-Name: Juneau Releng
+Bundle-SymbolicName: org.apache.juneau.releng
 Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: IBM
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
@@ -12,10 +12,14 @@ Bundle-ClassPath:
  lib/httpclient/httpmime-4.5.jar,
  lib/httpclient/httpcore-4.4.1.jar
 Export-Package: 
+ com.hp.hpl.jena.rdf.model,
+ com.hp.hpl.jena.shared,
  org.apache.derby.jdbc,
  javax.ws.rs,
  javax.ws.rs.core,
  javax.ws.rs.ext,
+ org.apache.commons.fileupload,
+ org.apache.commons.fileupload.servlet,
  org.apache.http,
  org.apache.http.auth,
  org.apache.http.client,

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/Readme.txt
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/Readme.txt b/com.ibm.team.juno.releng/Readme.txt
index 0c2facd..dce0414 100755
--- a/com.ibm.team.juno.releng/Readme.txt
+++ b/com.ibm.team.juno.releng/Readme.txt
@@ -1,15 +1,15 @@
 #================================================================================
-# Juno Components List
+# Juneau Components List
 #================================================================================
 
 ---------------------------------------------------------------------------------
-juno-all.jar
+juneau-all.jar
 Contains all binaries from the Core, Server, Client, and Microservice APIs
 ---------------------------------------------------------------------------------
 
 ---------------------------------------------------------------------------------
 bundles/*
-Contents of juno-all.jar as individual OSGi bundles.
+Contents of juneau-all.jar as individual OSGi bundles.
 ---------------------------------------------------------------------------------
 
 ---------------------------------------------------------------------------------
@@ -18,7 +18,7 @@ Same as the binaries, except includes all the source code as well.
 ---------------------------------------------------------------------------------
 
 ---------------------------------------------------------------------------------
-juno-javadocs.war
+juneau-javadocs.war
 The docs for everything.
 ---------------------------------------------------------------------------------
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/all/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/all/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/bin/all/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index f8481cf..d159b91
--- a/com.ibm.team.juno.releng/bin/all/META-INF/MANIFEST.MF
+++ b/com.ibm.team.juno.releng/bin/all/META-INF/MANIFEST.MF
@@ -1,10 +1,10 @@
 Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.8.3
-Created-By: pwa6470_27sr1-20140411_01 (SR1) (IBM Corporation)
-Built-By: jbognar
-Build-Date: December 30 2015
-Bundle-Name: Juno Cloud API
+Ant-Version: Apache Ant 1.9.6
+Created-By: 1.8.0_77-b03 (Oracle Corporation)
+Built-By: james.bognar
+Build-Date: July 24 2016
+Bundle-Name: Juneau Cloud Tools
 Bundle-Vendor: IBM
-Bundle-SymbolicName: com.ibm.team.juno.all
-Bundle-Version: 5.2.0.0
+Bundle-SymbolicName: org.apache.juneau.all
+Bundle-Version: 6.0.0
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/bin/client/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 6c9827b..937e1bd
--- a/com.ibm.team.juno.releng/bin/client/META-INF/MANIFEST.MF
+++ b/com.ibm.team.juno.releng/bin/client/META-INF/MANIFEST.MF
@@ -1,12 +1,12 @@
 Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.8.3
-Created-By: pwa6470_27sr1-20140411_01 (SR1) (IBM Corporation)
+Ant-Version: Apache Ant 1.9.6
+Created-By: 1.8.0_77-b03 (Oracle Corporation)
 Bundle-ManifestVersion: 2
-Bundle-Name: Juno Cloud API - Client
-Bundle-SymbolicName: com.ibm.team.juno.client
-Bundle-Version: 5.2.0.0
+Bundle-Name: Juneau Cloud Tools - Client
+Bundle-SymbolicName: org.apache.juneau.client
+Bundle-Version: 6.0.0
 Bundle-Vendor: IBM
-Require-Bundle: com.ibm.team.juno
+Require-Bundle: org.apache.juneau
 Import-Package: org.apache.http,org.apache.http.auth,org.apache.http.c
  lient,org.apache.http.client.config,org.apache.http.client.entity,org
  .apache.http.client.methods,org.apache.http.client.params,org.apache.
@@ -17,8 +17,8 @@ Import-Package: org.apache.http,org.apache.http.auth,org.apache.http.c
  apache.http.impl.conn,org.apache.http.impl.cookie,org.apache.http.mes
  sage,org.apache.http.params,org.apache.http.protocol,org.apache.http.
  util
-Export-Package: com.ibm.juno.client,com.ibm.juno.client.jazz
+Export-Package: org.apache.juneau.client
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Built-By: jbognar
-Build-Date: December 30 2015
+Built-By: james.bognar
+Build-Date: July 24 2016
 

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/AllowAllRedirects.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/AllowAllRedirects.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/AllowAllRedirects.java
deleted file mode 100755
index 7f68ef0..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/AllowAllRedirects.java
+++ /dev/null
@@ -1,27 +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.client;
-
-import org.apache.http.impl.client.*;
-
-/**
- * Redirect strategy that allows for redirects on any request type, not just <code>GET</code> or <code>HEAD</code>.
- * <p>
- * Note:  This class is similar to <code>org.apache.http.impl.client.LaxRedirectStrategy</code>
- * 	in Apache HttpClient 4.2, but also allows for redirects on <code>PUTs</code> and <code>DELETEs</code>.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class AllowAllRedirects extends DefaultRedirectStrategy {
-
-   @Override /* DefaultRedirectStrategy */
-   protected boolean isRedirectable(final String method) {
-   	return true;
-   }
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/DateHeader.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/DateHeader.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/DateHeader.java
deleted file mode 100755
index 47247d5..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/DateHeader.java
+++ /dev/null
@@ -1,39 +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.client;
-
-import java.util.*;
-
-import org.apache.http.client.utils.*;
-import org.apache.http.message.*;
-
-/**
- * Convenience class for setting date headers in RFC2616 format.
- * <p>
- * Equivalent to the following code:
- * <p class='bcode'>
- * 	Header h = <jk>new</jk> Header(name, DateUtils.<jsm>formatDate</jsm>(value));
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class DateHeader extends BasicHeader {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Creates a date request property in RFC2616 format.
-	 *
-	 * @param name The header name.
-	 * @param value The header value.
-	 */
-	public DateHeader(String name, Date value) {
-		super(name, DateUtils.formatDate(value));
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/HttpMethod.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/HttpMethod.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/HttpMethod.java
deleted file mode 100755
index 773ada1..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/HttpMethod.java
+++ /dev/null
@@ -1,60 +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.client;
-
-/**
- * Enumeration of HTTP methods.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public enum HttpMethod {
-
-	/** HTTP GET */
-	GET(false),
-
-	/** HTTP PUT */
-	PUT(true),
-
-	/** HTTP POST */
-	POST(true),
-
-	/** HTTP DELETE */
-	DELETE(false),
-
-	/** HTTP OPTIONS */
-	OPTIONS(false),
-
-	/** HTTP HEAD */
-	HEAD(false),
-
-	/** HTTP TRACE */
-	TRACE(false),
-
-	/** HTTP CONNECT */
-	CONNECT(false),
-
-	/** HTTP MOVE */
-	MOVE(false);
-
-	private boolean hasContent;
-
-	HttpMethod(boolean hasContent) {
-		this.hasContent = hasContent;
-	}
-
-	/**
-	 * Returns whether this HTTP method normally has content.
-	 *
-	 * @return <jk>true</jk> if this HTTP method normally has content.
-	 */
-	public boolean hasContent() {
-		return hasContent;
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/NameValuePairs.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/NameValuePairs.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/NameValuePairs.java
deleted file mode 100755
index 9e6e65b..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/NameValuePairs.java
+++ /dev/null
@@ -1,44 +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.client;
-
-import java.util.*;
-
-import org.apache.http.*;
-import org.apache.http.client.entity.*;
-
-/**
- * Convenience class for constructing instances of <code>List&lt;NameValuePair&gt;</code>
- * 	for the {@link UrlEncodedFormEntity} class.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	NameValuePairs params = <jk>new</jk> NameValuePairs()
- * 		.append(<jk>new</jk> BasicNameValuePair(<js>"j_username"</js>, user))
- * 		.append(<jk>new</jk> BasicNameValuePair(<js>"j_password"</js>, pw));
- * 	request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class NameValuePairs extends LinkedList<NameValuePair> {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Appends the specified pair to the end of this list.
-	 *
-	 * @param pair The pair to append to this list.
-	 * @return This object (for method chaining).
-	 */
-	public NameValuePairs append(NameValuePair pair) {
-		super.add(pair);
-		return this;
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/ResponsePattern.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/ResponsePattern.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/ResponsePattern.java
deleted file mode 100755
index a10e939..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/ResponsePattern.java
+++ /dev/null
@@ -1,134 +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.client;
-
-import java.io.*;
-import java.util.regex.*;
-
-/**
- * Used to find regular expression matches in REST responses made through {@link RestCall}.
- * <p>
- * Response patterns are applied to REST calls through the {@link RestCall#addResponsePattern(ResponsePattern)} method.
- * <p>
- * <h6 class='topic'>Example</h6>
- * This example shows how to use a response pattern finder to find and capture patterns for <js>"x=number"</js> and <js>"y=string"</js>
- * 	from a response body.
- * <p>
- * <p class='bcode'>
- * 	<jk>final</jk> List&lt;Number&gt; xList = <jk>new</jk> ArrayList&lt;Number&gt;();
- * 	<jk>final</jk> List&lt;String&gt; yList = <jk>new</jk> ArrayList&lt;String&gt;();
- *
- * 	restClient.doGet(<jsf>URL</jsf>)
- * 		.addResponsePattern(
- * 			<jk>new</jk> ResponsePattern(<js>"x=(\\d+)"</js>) {
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
- * 					xList.add(Integer.<jsm>parseInt</jsm>(m.group(1)));
- * 				}
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
- * 					<jk>throw new</jk> RestCallException(<js>"No X's found!"</js>);
- * 				}
- * 			}
- * 		)
- * 		.addResponsePattern(
- * 			<jk>new</jk> ResponsePattern(<js>"y=(\\S+)"</js>) {
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
- * 					yList.add(m.group(1));
- * 				}
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
- * 					<jk>throw new</jk> RestCallException(<js>"No Y's found!"</js>);
- * 				}
- * 			}
- * 		)
- * 		.run();
- * </p>
- * <p>
- * <h5 class='notes'>Important Notes:</h5>
- * <ol class='notes'>
- * 	<li><p>
- * 		Using response patterns does not affect the functionality of any of the other methods
- * 		used to retrieve the response such as {@link RestCall#getResponseAsString()} or {@link RestCall#getResponse(Class)}.<br>
- * 		HOWEVER, if you want to retrieve the entire text of the response from inside the match methods,
- * 		use {@link RestCall#getCapturedResponse()} since this method will not absorb the response for those other methods.
- * 	</p>
- * 	<li><p>
- * 		Response pattern methods are NOT executed if a REST exception occurs during the request.
- * 	</p>
- * 	<li><p>
- * 		The {@link RestCall#successPattern(String)} and {@link RestCall#failurePattern(String)} methods use instances of
- * 		this class to throw {@link RestCallException RestCallExceptions} when success patterns are not found or failure patterns
- * 		are found.
- * 	</p>
- * 	<li><p>
- * 		{@link ResponsePattern} objects are reusable and thread-safe.
- * 	</p>
- * </ol>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class ResponsePattern {
-
-	private Pattern pattern;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param pattern Regular expression pattern.
-	 */
-	public ResponsePattern(String pattern) {
-		this.pattern = Pattern.compile(pattern);
-	}
-
-	void match(RestCall rc) throws RestCallException {
-		try {
-			Matcher m = pattern.matcher(rc.getCapturedResponse());
-			boolean found = false;
-			while (m.find()) {
-				onMatch(rc, m);
-				found = true;
-			}
-			if (! found)
-				onNoMatch(rc);
-		} catch (IOException e) {
-			throw new RestCallException(e);
-		}
-	}
-
-	/**
-	 * Returns the pattern passed in through the constructor.
-	 *
-	 * @return The pattern passed in through the constructor.
-	 */
-	protected String getPattern() {
-		return pattern.pattern();
-	}
-
-	/**
-	 * Instances can override this method to handle when a regular expression pattern matches
-	 * 	on the output.
-	 * <p>
-	 * This method is called once for every pattern match that occurs in the response text.
-	 *
-	 * @param rc The {@link RestCall} that this pattern finder is being used on.
-	 * @param m The regular expression {@link Matcher}.  Can be used to retrieve group matches in the pattern.
-	 * @throws RestCallException Instances can throw an exception if a failure condition is detected.
-	 */
-	public void onMatch(RestCall rc, Matcher m) throws RestCallException {}
-
-	/**
-	 * Instances can override this method to handle when a regular expression pattern doesn't match on the output.
-	 *
-	 * @param rc The {@link RestCall} that this pattern finder is being used on.
-	 * @throws RestCallException Instances can throw an exception if a failure condition is detected.
-	 */
-	public void onNoMatch(RestCall rc) throws RestCallException {}
-}

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

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

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

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/package.html
deleted file mode 100755
index 790aa41..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/package.html
+++ /dev/null
@@ -1,1410 +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>URL encoding serialization and parsing support</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='#Overview'>URL encoding support overview</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#OverviewExample'>Example</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#UrlEncodingSerializer'>UrlEncodingSerializer and UonSerializer classes</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
-		<li><p><a class='doclink' href='#Collections'>Collections</a></p>
-		<li><p><a class='doclink' href='#Recursion'> Non-tree models and recursion detection</a></p>
-		<li><p><a class='doclink' href='#SerializerConfigurableProperties'>Configurable properties</a></p>
-		<li><p><a class='doclink' href='#SerializerOtherNotes'>Other notes</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#UrlEncodingParser'>UrlEncodingParser and UonParser classes</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#GenericParsing'>Parsing into generic POJO models</a></p>
-		<li><p><a class='doclink' href='#ParserConfigurableProperties'>Configurable properties</a></p>
-		<li><p><a class='doclink' href='#ParserOtherNotes'>Other notes</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#RestApiSupport'>REST API support</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#RestServerSupport'>REST server support</a></p>
-		<ol>
-		<li><p><a class='doclink' href='#RestServletDefault'>Using RestServletDefault</a></p>
-		<li><p><a class='doclink' href='#RestServlet'>Using RestServlet with annotations</a></p>
-		<li><p><a class='doclink' href='#DefaultProvider'>Using JAX-RS DefaultProvider</a></p>
-		<li><p><a class='doclink' href='#BaseProvider'>Using JAX-RS BaseProvider with annotations</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#RestClientSupport'>REST client support</a></p>
-	</ol>	
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="Overview"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - URL encoding support overview</h2>
-<div class='topic'>
-	<p>
-		Juno supports converting arbitrary POJOs to and from URL-encoded strings using ultra-efficient serializers and parsers.<br>
-		The serializer converts POJOs directly to URL-encoded strings without the need for intermediate DOM objects using a highly-efficient state machine.<br>
-		Likewise, the parser creates POJOs directly from URL-encoded strings without the need for intermediate DOM objects. 
-	</p>
-	<p>
-		Juno uses UON (URL-Encoded Object Notation) for representing POJOs.  
-		The UON specification can be found <a href='doc-files/rfc_uon.txt'>here</a>.
-	</p>
-	<p>
-		Juno can serialize and parse instances of any of the following POJO types:
-	</p>
-	<ul>
-		<li>Java primitives and primitive objects (e.g. <code>String</code>, <code>Integer</code>, <code>Boolean</code>, <code>Float</code>).
-		<li>Java Collections Framework objects (e.g. <code>HashSet</code>, <code>TreeMap</code>) containing anything on this list.
-		<li>Multi-dimensional arrays of any type on this list.
-		<li>Java Beans with properties of any type on this list.
-		<li>Classes with standard transformations to and from <code>Strings</code> (e.g. classes containing <code>toString()</code>, <code>fromString()</code>, <code>valueOf()</code>, <code>constructor(String)</code>).
-		<li>Non-serializable classes and properties with associated <code>PojoFilters</code> that convert them to serializable forms.
-	</ul>
-	<p>
-		Refer to <a href='../package-summary.html#PojoCategories' class='doclink'>POJO Categories</a> for a complete definition of supported POJOs.
-	</p>
-	<h6 class='topic'>Prerequisites</h6>
-	<p>
-		The Juno URL-encoding serialization and parsing support does not require any external prerequisites.  
-		It only requires Java 1.6 or above.
-	</p>
-
-	<!-- ======================================================================================================== -->
-	<a id="OverviewExample"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - URL-encoding support overview - example</h3>
-	<div class='topic'>
-		<p>
-			The example shown here is from the Address Book resource located in the <code>com.ibm.juno.sample.war</code> application.<br>
-			The POJO model consists of a <code>List</code> of <code>Person</code> beans, with each <code>Person</code> containing
-				zero or more <code>Address</code> beans.
-		</p>
-		<p>
-			When you point a browser at <code>/sample/addressBook/people/1</code>, the POJO is rendered as HTML:
-		</p>
-		<img class='bordered' src="doc-files/Example_HTML.png">
-		<p>
-			By appending <code>?Accept=application/x-www-form-urlencoded&plainText=true</code> to the URL, you can view the data as a URL-encoded string:
-		</p>
-		<img class='bordered' src="doc-files/Example_UrlEncoding.png">
-		
-		<p>
-			Juno supports two kinds of serialization:
-		</p>
-		<ul>
-			<li>Construction of full URL query parameter strings (e.g. <code>&key=value</code> pairs) from beans and maps.
-			<li>Construction of URL query parameter value strings (e.g. just the <code>value</code> portion of <code>&key=value</code> pairs) from any POJO.  
-		</ul>
-		<p>
-			Top-level beans and maps can serialized as key/value pairs as shown below:
-		</p>
-		<h6 class='figure'>Example:  A bean with 2 string properties, 'foo' and 'baz', serialized to a query string</h6>
-		<p class='bcode'>	http://localhost/sample?<xa>foo</xa>=<xs>bar</xs>&<xa>baz</xa>=<xs>bing</xs></p>
-		<p>
-			Lower-level beans and maps are also serialized as key/value pairs, but are surrounded with a <js>"$o(...)"</js> construct to denote an object mapping, 
-				and uses a comma as the parameter delimiter instead of <js>"&"</js>.<br>
-		</p>
-		<h6 class='figure'>Example:  A bean serialized as a query parameter value.</h6>
-		<p class='bcode'>	http://localhost/sample?<xa>a1</xa>=$o(<xa>foo</xa>=<xs>bar</xs>,<xa>baz</xa>=<xs>bing</xs>)</p>
-		<p>
-			The UON specification defines two separate modes:  
-		</p>
-		<ul>
-			<li>Strict mode - Serialized model is fully equivalent to JSON and can be losslessly converted back and forth into a JSON model without additional information.
-			<li>Lax mode - A shortened form that excludes data type information.  Ideal if the data types of values are fixed and already known by the parser.
-		</ul>
-		<table class='styled' style='border-collapse: collapse;'>
-			<tr><th>Java type</th><th>JSON equivalent</th><th>Strict syntax</th><th>Lax syntax</th></tr>
-			<tr>
-				<td>Maps/beans</td>
-				<td>OBJECT</td>
-				<td class='code'><xa>a1</xa>=$o(<xa>b1</xa>=<xs>x1</xs>,<xa>b2</xa>=<xs>x2</xs>)<br><xa>a1</xa>=$o(<xa>b1</xa>=$o(<xa>c1</xa>=<xs>x1</xs>,<xa>c2</xa>=<xs>x2</xs>))</td>
-				<td class='code'><xa>a1</xa>=(<xa>b1</xa>=<xs>x1</xs>,<xa>b2</xa>=<xs>x2</xs>)<br><xa>a1</xa>=(<xa>b1</xa>=(<xa>c1</xa>=<xs>x1</xs>,<xa>c2</xa>=<xs>x2</xs>))</td>
-			</tr>
-			<tr>
-				<td>Collections/arrays</td>
-				<td>ARRAY</td>
-				<td class='code'><xa>a1</xa>=$a(<xs>x1</xs>,<xs>x2</xs>)<br><xa>a1</xa>=$a($a(<xs>x1</xs>,<xs>x2</xs>),$a(<xs>x3</xs>,<xs>x4</xs>))<br><xa>a1</xa>=$a($o(<xa>b1</xa>=<xs>x1</xs>,<xa>b2</xa>=<xs>x2</xs>),$o(<xa>c1</xa>=<xs>x1</xs>,<xa>c2</xa>=<xs>x2</xs>))</td>
-				<td class='code'><xa>a1</xa>=(<xs>x1</xs>,<xs>x2</xs>)<br><xa>a1</xa>=((<xs>x1</xs>,<xs>x2</xs>),(<xs>x3</xs>,<xs>x4</xs>))<br><xa>a1</xa>=((<xa>b1</xa>=<xs>x1</xs>,<xa>b2</xa>=<xs>x2</xs>),(<xa>c1</xa>=<xs>x1</xs>,<xa>c2</xa>=<xs>x2</xs>))</td>
-			</tr>
-			<tr>
-				<td>Booleans</td>
-				<td>BOOLEAN</td>
-				<td class='code'><xa>a1</xa>=$b(<xs>true</xs>)&<xa>a2</xa>=$b(<xs>false</xs>)</td>
-				<td class='code'><xa>a1</xa>=<xs>true</xs>&<xa>a2</xa>=<xs>false</xs></td>
-			</tr>
-			<tr>
-				<td>int/float/double/...</td>
-				<td>NUMBER</td>
-				<td class='code'><xa>a1</xa>=$n(<xs>123</xs>)&<xa>a2</xa>=$n(<xs>1.23e1</xs>)</td>
-				<td class='code'><xa>a1</xa>=<xs>123</xs>&<xa>a2</xa>=<xs>1.23e1</xs></td>
-			</tr>
-			<tr>
-				<td>null</td>
-				<td>NULL</td>
-				<td class='code'><xa>a1</xa>=<xs>%00</xs></td>
-				<td class='code'><xa>a1</xa>=<xs>%00</xs></td>
-			</tr>
-			<tr>
-				<td>String</td>
-				<td>STRING</td>
-				<td class='code'><xa>a1</xa>=<xs>foobar</xs></td>
-				<td class='code'><xa>a1</xa>=<xs>foobar</xs></td>
-			</tr>
-		</table>
-		<p>
-			Refer to the <a href='doc-files/rfc_uon.txt'>UON specification</a> for a complete set of syntax rules.		
-		<p>
-			Filters can be used to convert non-serializable POJOs into serializable forms, such as converting 
-				<code>Calendar</code> object to ISO8601 strings, or <code><jk>byte</jk>[]</code> arrays to Base-64 encoded strings.<br>
-			These filters can be associated at various levels:
-		</p>
-		<ul>
-			<li>On serializer and parser instances to handle all objects of the class type globally.
-			<li>On classes through the <code><ja>@Bean</ja></code> annotation.
-			<li>On bean properties through the <code><ja>@BeanProperty</ja></code> annotations.
-		</ul>
-		<h6 class='figure'>Example:  A serialized Calendar object using <code>CalendarFilter.RFC2822DTZ</code> filter.</h6>
-		<p class='bcode'>	http://localhost/sample?<xa>a1=<js>Sun~,+03+Mar+1901+09:05:06+GMT</js></p>
-		<p>
-			For more information about filters, refer to {@link com.ibm.juno.core.filter}.
-		</p>
-	</div>
-	
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="UrlEncodingSerializer"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - UrlEncodingSerializer and UonSerializer classes</h2>
-<div class='topic'>
-	<p>
-		{@link com.ibm.juno.core.urlencoding.UrlEncodingSerializer} and {@link com.ibm.juno.core.urlencoding.UonSerializer} classes are used to convert POJOs to URL-encoded strings.<br>
-		The <code>UonSerializer</code> class converts parameter values to UON notation. 
-		The <code>UrlEncodingSerializer</code> class converts a POJO to key/value URL-Encoded pairs using <code>UonSerializer</code> to serialize the values.
-		If you're trying to construct complete URL-Encoded entities, use <code>UrlEncodingSerializer</code>. 
-		If you're constructing your own key/value pairs, use <code>UonSerializer</code>.
-	</p>	
-	<p>
-		The serializers include several configurable settings.<br>
-		Static reusable instances of serializers are provided with commonly-used settings:
-	</p>
-	<ul>
-		<li>{@link com.ibm.juno.core.urlencoding.UrlEncodingSerializer#DEFAULT} - All default settings, strict mode.
-		<li>{@link com.ibm.juno.core.urlencoding.UrlEncodingSerializer#DEFAULT_SIMPLE} - All default settings, lax mode.
-		<li>{@link com.ibm.juno.core.urlencoding.UrlEncodingSerializer#DEFAULT_READABLE} - Use whitespace and indentation for readability.
-		<li>{@link com.ibm.juno.core.urlencoding.UonSerializer#DEFAULT} - All default settings, strict mode.
-		<li>{@link com.ibm.juno.core.urlencoding.UonSerializer#DEFAULT_SIMPLE} - All default settings, lax mode.
-		<li>{@link com.ibm.juno.core.urlencoding.UonSerializer#DEFAULT_READABLE} - Use whitespace and indentation for readability.
-		<li>{@link com.ibm.juno.core.urlencoding.UonSerializer#DEFAULT_ENCODING} - Same as DEFAULT, but use URL-Encoding on special characters.
-		<li>{@link com.ibm.juno.core.urlencoding.UonSerializer#DEFAULT_SIMPLE_ENCODING} - Same as DEFAULT_SIMPLE, but use URL-Encoding on special characters.
-	</ul>
-	<p>
-		The general guidelines on which serializer to use is:
-	</p>
-	<ul>
-		<li>Use strict mode serializers if the data types of the value are not known on the parsing side, and this
-			information needs to be preserved during transmission.
-		<li>Use lax mode serializers if the data types of the value are known on the parsing side. 
-			For example, if you're serializing/parsing beans, lax mode is usually sufficient since the data types
-			can be inferred from the bean properties.
-		<li>Use encoding serializers when you're using the results to construct a URI yourself, and therefore 
-			need invalid URI characters to be encoded.
-		<li>Use unencoding serializers when you're creating parameter values and passing them off to some other
-			utility class that will itself encode invalid URI characters.
-		<li>Use the readable serializer for debugging purposes.
-	</ul>
-
-	<h6 class='topic'>Notes about examples</h6>
-	<p>
-		The examples shown in this document will use default strict settings.<br>
-		For brevity, the examples will use public fields instead of getters/setters to reduce the size of the examples.<br>
-		In the real world, you'll typically want to use standard bean getters and setters.
-	</p>
-	<p>
-		To start off simple, we'll begin with the following simplified bean and build upon it.
-	</p>
-	<p class='bcode'>
-	<jk>public class</jk> Person {
-		<jc>// Bean properties</jc>
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>name</jf>;
-
-		<jc>// Bean constructor (needed by parser)</jc>
-		<jk>public</jk> Person() {}
-
-		<jc>// Normal constructor</jc>
-		<jk>public</jk> Person(<jk>int</jk> id, String name) {
-			<jk>this</jk>.<jf>id</jf> = id;
-			<jk>this</jk>.<jf>name</jf> = name;
-		}
-	}
-	</p>
-	<p>
-		The following code shows how to convert this to a URL-encoded value:
-	</p>
-	<p class='bcode'>
-	<jc>// Use serializer with readable output, simple mode.</jc>
-	UonSerializer s = UonSerializer.<jsf>DEFAULT</jsf>;
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>);
-
-	<jc>// Serialize the bean to URL-encoded parameter value.</jc>
-	String urlencoded = s.serialize(p);
-	</p>
-	<p>
-		The code above produces the following output:
-	</p>
-	<p class='bcode'>
-	$o(<xa>id</xa>=$n(<xs>1</xs>),<xa>name</xa>=<xs>John+Smith</xs>)
-	</p>
-	<p>
-		The {@link com.ibm.juno.core.urlencoding.UrlEncodingSerializer} class converts
-		maps and beans into top-level query parameter strings.
-	</p>
-	<p class='bcode'>
-	<jc>// Use serializer with readable output, simple mode.</jc>
-	UrlEncodingSerializer s = UrlEncodingSerializer.<jsf>DEFAULT</jsf>;
-	
-	<jc>// Serialize the bean to URL-encoded query string.</jc>
-	String urlencoded = s.serialize(p);
-	</p>
-	<p>
-		The code above produces the following output:
-	</p>
-	<p class='bcode'>
-	<xa>id</xa>=$n(<xs>1</xs>)&<xa>name</xa>=<xs>John+Smith</xs>
-	</p>
-	<p>
-		The general method guidelines are as follows:
-	</p>
-	<ul>
-		<li>Use <code>UonSerializer</code> to create individual query parameter values.
-		<li>Use <code>UrlEncodingSerializer</code> to create complete URL-encoded query strings.
-	</ul>
-	<p>
-		By default, the <code>UrlEncodingSerializer</code> class will URL-Encode special characters, and the <code>UonSerializer</code> will NOT URL-encode special characters.  
-	</p>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="BeanAnnotations"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.1 - @Bean and @BeanProperty annotations</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.core.annotation.Bean @Bean} and {@link com.ibm.juno.core.annotation.BeanProperty @BeanProperty} annotations
-				are used to customize the behavior of beans across the entire framework.<br>
-			They have various uses:
-		</p>
-		<ul>
-			<li>Hiding bean properties.
-			<li>Specifying the ordering of bean properties.
-			<li>Overriding the names of bean properties.
-			<li>Associating filters at both the class and property level (to convert non-serializable POJOs to serializable forms).
-		</ul>
-		<p>
-			For example, we now add a <code>birthDate</code> property, and associate a filter with it to transform
-				it to an ISO8601 date-time string in GMT time.<br>
-			We'll also add a couple of <code>URI</code> properties.<br>
-			By default, <code>Calendars</code> are treated as beans by the framework, which is usually not how you want them serialized.<br>
-			Using filters, we can convert them to standardized string forms.
-		</p>
-		<p class='bcode'>	
-	<jk>public class</jk> Person {
-		<jc>// Bean properties</jc>
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>name</jf>;
-		<jk>public</jk> URI <jf>uri</jf>;
-		<jk>public</jk> URI <jf>addressBookUri</jf>;
-
-		<ja>@BeanProperty</ja>(filter=CalendarFilter.ISO8601DTZ.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
-
-
-		<jc>// Bean constructor (needed by parser)</jc>
-		<jk>public</jk> Person() {}
-
-		<jc>// Normal constructor</jc>
-		<jk>public</jk> Person(<jk>int</jk> id, String name, String uri, String addressBookUri, String birthDate) <jk>throws</jk> Exception {
-			<jk>this</jk>.<jf>id</jf> = id;
-			<jk>this</jk>.<jf>name</jf> = name;
-			<jk>this</jk>.<jf>uri</jf> = <jk>new</jk> URI(uri);
-			<jk>this</jk>.<jf>addressBookUri</jf> = <jk>new</jk> URI(addressBookUri);
-			<jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> GregorianCalendar();
-			<jk>this</jk>.<jf>birthDate</jf>.setTime(DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
-		}
-	}
-		</p>
-		<p>
-			Next, we alter our code to pass in the birthdate:
-		</p>
-		<p class='bcode'>
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-		</p>
-		<p>
-			Now when we rerun the sample code, we'll get the following:
-		</p>
-		<p class='bcode'>
-	$o(<xa>id</xa>=$n(<xs>1</xs>),<xa>name</xa>=<xs>John+Smith</xs>,<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>,<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>)
-		</p>
-		<p>
-			Using <code>UrlEncodingSerializer</code> instead would create the following:
-		</p>
-		<p class='bcode'>
-	<xa>id</xa>=$n(<xs>1</xs>)&<xa>name</xa>=<xs>John+Smith</xs>&<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>&<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>&<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>
-		</p>
-		<p>
-			Another useful feature is the {@link com.ibm.juno.core.annotation.Bean#propertyNamer()} annotation that allows you to plug in your own
-				logic for determining bean property names.<br>
-			The {@link com.ibm.juno.core.PropertyNamerDashedLC} is an example of an alternate property namer.
-			It converts bean property names to lowercase-dashed format.
-		</p>
-		<h6 class='figure'>Example</h6>
-		<p class='bcode'>	
-	<ja>@Bean</ja>(propertyNamer=PropertyNamerDashedLC.<jk>class</jk>)
-	<jk>public class</jk> Person {
-		...
-		</p>
-		<h6 class='figure'>Results</h6>
-		<p class='bcode'>
-	$o(<xa>id</xa>=$n(<xs>1</xs>),<xa>name</xa>=<xs>John+Smith</xs>,<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>,<xa>address-book-uri</xa>=<xs>http://sample/addressBook</xs>,<xa>birth-date</xa>=<xs>1946-08-12T00:00:00Z</xs>)
-		</p>
-	</div>
-	
-		
-	<!-- ======================================================================================================== -->
-	<a id="Collections"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.2 - Collections</h3>
-	<div class='topic'>
-		<p>
-			In our example, let's add a list-of-beans property to our sample class:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> Person {
-		
-		<jc>// Bean properties</jc>
-		<jk>public</jk> LinkedList&lt;Address&gt; <jf>addresses</jf> = <jk>new</jk> LinkedList&lt;Address&gt;();
-		...
-	}
-		</p>
-		<p>
-			The <code>Address</code> class has the following properties defined:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> Address {
-
-		<jc>// Bean properties</jc>
-		<jk>public</jk> URI <jf>uri</jf>;
-		<jk>public</jk> URI <jf>personUri</jf>;
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>, <jf>state</jf>;
-		<jk>public int</jk> <jf>zip</jf>;
-		<jk>public boolean</jk> <jf>isCurrent</jf>;
-	}
-		</p>
-		<p>
-			Next, add some quick-and-dirty code to add an address to our person bean:
-		</p>
-		<p class='bcode'>
-	<jc>// Use serializer with readable output, simple mode.</jc>
-	UonSerializer s = UonSerializer.<jsf>DEFAULT_READABLE</jsf>;
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-	Address a = <jk>new</jk> Address();
-	a.<jf>uri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/address/1"</js>);
-	a.<jf>personUri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/person/1"</js>);
-	a.<jf>id</jf> = 1;
-	a.<jf>street</jf> = <js>"100 Main Street"</js>;
-	a.<jf>city</jf> = <js>"Anywhereville"</js>;
-	a.<jf>state</jf> = <js>"NY"</js>;
-	a.<jf>zip</jf> = 12345;
-	a.<jf>isCurrent</jf> = <jk>true</jk>;
-	p.<jf>addresses</jf>.add(a);	
-		</p>
-		<p>
-			Now when we run the sample code, we get the following (in readable format):
-		</p>
-		<p class='bcode'>
-	$o(
-		<xa>id</xa>=$n(<xs>1</xs>), 
-		<xa>name</xa>=<xs>John+Smith</xs>, 
-		<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-		<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,
-		<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>,
-		<xa>addresses</xa>=$a(
-			$o(
-				<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>, 
-				<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-				<xa>id</xa>=$n(<xs>1</xs>), 
-				<xa>street</xa>=<xs>100+Main+Street</xs>, 
-				<xa>city</xa>=<xs>Anywhereville</xs>, 
-				<xa>state</xa>=<xs>NY</xs>, 
-				<xa>zip</xa>=$n(<xs>12345</xs>), 
-				<xa>isCurrent</xa>=$b(<xs>true</xs>)
-			)
-		)
-	)
-		</p>
-		<p>
-			If we were to use lax mode instead, we would get the following:
-		</p>
-		<p class='bcode'>
-	(
-		<xa>id</xa>=<xs>1</xs>, 
-		<xa>name</xa>=<xs>John+Smith</xs>, 
-		<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-		<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,
-		<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>,
-		<xa>addresses</xa>=(
-			(
-				<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>, 
-				<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-				<xa>id</xa>=<xs>1</xs>, 
-				<xa>street</xa>=<xs>100+Main+Street</xs>, 
-				<xa>city</xa>=<xs>Anywhereville</xs>, 
-				<xa>state</xa>=<xs>NY</xs>, 
-				<xa>zip</xa>=<xs>12345</xs>, 
-				<xa>isCurrent</xa>=<xs>true</xs>
-			)
-		)
-	)
-		</p>
-		<p>
-			Note how the data type information is removed, so it's not possible to distinguish between numbers/booleans/strings, and between objects/arrays.
-			However, this is fine if we're parsing back into the same beans, since we can inver the data types from the bean property metadata.
-		</p>
-		<p>
-			If we were to use <code>UrlEncodingSerializer</code> instead, we would get the following:
-		</p>
-		<p class='bcode'>
-	<xa>id</xa>=$n(<xs>1</xs>)& 
-	<xa>name</xa>=<xs>John+Smith</xs>& 
-	<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>& 
-	<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>&
-	<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>&
-	<xa>addresses</xa>=$a(
-		$o(
-			<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>, 
-			<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-			<xa>id</xa>=$n(<xs>1</xs>), 
-			<xa>street</xa>=<xs>100+Main+Street</xs>, 
-			<xa>city</xa>=<xs>Anywhereville</xs>, 
-			<xa>state</xa>=<xs>NY</xs>, 
-			<xa>zip</xa>=$n(<xs>12345</xs>), 
-			<xa>isCurrent</xa>=$b(<xs>true</xs>)
-		)
-	)
-		</p>
-	</div>
-	<p>
-		Note how the top level <code>Person</code> bean is serialized using the standard <js>'&'</js> delimiter, whereas the lower-level <code>Address</code>
-			bean is serialized using the <js>','</js> character to prevent the <code>addresses</code> field from being incompletely parsed.
-	</p>
-	
-
-
-
-	<!-- ======================================================================================================== -->
-	<a id="Recursion"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.3 - Non-tree models and recursion detection</h3>
-	<div class='topic'>
-		<p>
-			The URL-encoding serializer is designed to be used against POJO tree structures. <br> 
-			It expects that there not be loops in the POJO model (e.g. children with references to parents, etc...).<br>
-			If you try to serialize models with loops, you will usually cause a <code>StackOverflowError</code> to 
-				be thrown (if {@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_maxDepth} is not reached first).
-		</p>
-		<p>
-			If you still want to use the URL-encoding serializer on such models, Juno provides the 
-				{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_detectRecursions} setting.<br>
-			It tells the serializer to look for instances of an object in the current branch of the tree and
-				skip serialization when a duplicate is encountered.
-		</p>
-		<p>
-			For example, let's make a POJO model out of the following classes:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> A {
-		<jk>public</jk> B b;
-	}
-	
-	<jk>public class</jk> B {
-		<jk>public</jk> C c;
-	}
-	
-	<jk>public class</jk> C {
-		<jk>public</jk> A a;
-	}
-		</p>
-		<p>
-			Now we create a model with a loop and serialize the results.
-		</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(SerializerProperties.<jsf>SERIALIZER_detectRecursions</jsf>, <jk>true</jk>);
-
-	<jc>// Create a recursive loop.</jc>
-	A a = <jk>new</jk> A();
-	a.<jf>b</jf> = <jk>new</jk> B();
-	a.<jf>b</jf>.<jf>c</jf> = <jk>new</jk> C();
-	a.<jf>b</jf>.<jf>c</jf>.<jf>a</jf> = a;
-	
-	<jc>// Serialize.</jc>
-	String json = s.serialize(a);
-		</p>
-		<p>
-			What we end up with is the following, which does not serialize the contents of the <code>c</code> field:
-		</p>
-		<p class='bcode'>
-	$o(
-		<xa>b</xa>=$o(
-			<xa>c</xa>=$o()
-		)
-	)
-		</p>
-		<p>
-			Without recursion detection enabled, this would cause a stack-overflow error.
-		</p>
-		<p>
-			Recursion detection introduces a performance penalty of around 20%.<br>
-			For this reason the setting is disabled by default.
-		</p>
-	</div>
-
-
-	<!-- ======================================================================================================== -->
-	<a id="SerializerConfigurableProperties"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.4 - Configurable properties</h3>
-	<div class='topic'>
-		<p>
-			The full list of configurable settings applicable to the <code>UrlEncodingSerializer</code> class is shown below:
-		</p>
-		<table class='styled' style='border-collapse: collapse;'>
-			<tr><th>Property</th><th>Short Description</th></tr>
-			<tr>
-				<td>{@link com.ibm.juno.core.urlencoding.UonSerializerProperties#UON_simpleMode}</td>
-				<td>Use UON lax mode instead of strict mode</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.urlencoding.UonSerializerProperties#UON_useWhitespace}</td>
-				<td>Use whitespace in output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.urlencoding.UonSerializerProperties#UON_encodeChars}</td>
-				<td>Encode invalid URI characters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_maxDepth}</td>
-				<td>Maximum serialization depth</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_detectRecursions}</td>
-				<td>Automatically detect POJO recursions</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_useIndentation}</td>
-				<td>Use indentation in output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimNullProperties}</td>
-				<td>Trim null bean property values from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimEmptyLists}</td>
-				<td>Trim empty lists and arrays from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimEmptyMaps}</td>
-				<td>Trim empty maps from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_relativeUriBase}</td>
-				<td>URI context root for relative URIs</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_absolutePathUriBase}</td>
-				<td>URI authority for absolute path relative URIs</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireDefaultConstructor}</td>
-				<td>Beans require no-arg constructors</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSerializable}</td>
-				<td>Beans require <code>Serializable</code> interface</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSettersForGetters}</td>
-				<td>Beans require setters for getters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSomeProperties}</td>
-				<td>Beans require some properties</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanConstructorVisibility}</td>
-				<td>Look for bean constructors with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanClassVisibility}</td>
-				<td>Look for bean classes with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanFieldVisibility}</td>
-				<td>Look for bean fields with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_methodVisibility}</td>
-				<td>Look for bean methods with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_useInterfaceProxies}</td>
-				<td>Use interface proxies</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownBeanProperties}</td>
-				<td>Ignore unknown properties</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownNullBeanProperties}</td>
-				<td>Ignore unknown properties with null values</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignorePropertiesWithoutSetters}</td>
-				<td>Ignore properties without setters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreInvocationExceptionsOnGetters}</td>
-				<td>Ignore invocation errors when calling getters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreInvocationExceptionsOnSetters}</td>
-				<td>Ignore invocation errors when calling setters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_addNotBeanPackages}</td>
-				<td>Add to the list of packages whose classes should not be considered beans</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_removeNotBeanPackages}</td>
-				<td>Remove from the list of packages whose classes should not be considered beans</td>
-			</tr>	
-		</table>	
-	</div>		
-
-
-	<!-- ======================================================================================================== -->
-	<a id="SerializerOtherNotes"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.5 - Other notes</h3>
-	<div class='topic'>
-		<ul>
-			<li>Like all other Juno serializers, the URL-encoding serializers are thread safe and maintain an internal cache of bean classes encountered.<br>
-				For performance reasons, it's recommended that serializers be reused whenever possible instead of always creating new instances.
-		</ul>
-	</div>
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="UrlEncodingParser"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - UrlEncodingParser and UonParser classes</h2>
-<div class='topic'>
-	<p>
-		{@link com.ibm.juno.core.urlencoding.UrlEncodingParser} and {@link com.ibm.juno.core.urlencoding.UonParser} classes are used to convert URL-encoded strings back into POJOs.<br>
-		The <code>UonParser</code> class converts UON-encoded parameter values to POJOs.
-		The <code>UrlEncodingParser</code> class converts entire URL-Encoded strings to POJOs using <code>UonSerializer</code> to serialize indivisual values.
-		If you're trying to parse an entire URL-Encoded string, use <code>UrlEncodingParser</code>. 
-		If you're trying to parse an individual value (such as that returned by <code>RestServlet.getParameter(name)</code>), use <code>UonParser</code>.
-	</p>	
-	<p>
-		The following static reusable instances of <code>UrlEncodingParser</code> are provided for convenience:
-	</p>
-	<ul>
-		<li>{@link com.ibm.juno.core.urlencoding.UrlEncodingParser#DEFAULT} - Default parser for entire URL-encoded strings, decode <code>%xx</code> sequences.
-		<li>{@link com.ibm.juno.core.urlencoding.UonParser#DEFAULT} - Default parser for URL-encoded parameter values, don't decode <code>%xx</code> sequences.
-		<li>{@link com.ibm.juno.core.urlencoding.UonParser#DEFAULT_DECODING} - Default parser for URL-encoded parameter values, decode <code>%xx</code> sequences.
-	</ul>
-	<p>
-		The general guildlines on which parser to use is:
-	</p>
-	<ul>
-		<li>Use the <code>DEFAULT</code> parser for parameter values that have already had <code>%xx</code> sequences decoded, 
-			such as when using <code>HttpServletRequest.getParameter(name)</code>.
-		<li>Use the <code>DEFAULT_ENCODED</code> parser if the input has not already had <code>%xx</code> sequences decoded.
-	</ul>
-	<p>
-		Let's build upon the previous example and parse the generated URL-encoded string back into the original bean.<br>
-		We start with the URL-encoded string that was generated.
-	</p>
-	<p class='bcode'>
-	<jc>// Use serializer with readable output.</jc>
-	UonSerializer s = UonSerializer.<jsf>DEFAULT_READABLE</jsf>;
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-	Address a = <jk>new</jk> Address();
-	a.<jf>uri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/address/1"</js>);
-	a.<jf>personUri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/person/1"</js>);
-	a.<jf>id</jf> = 1;
-	a.<jf>street</jf> = <js>"100 Main Street"</js>;
-	a.<jf>city</jf> = <js>"Anywhereville"</js>;
-	a.<jf>state</jf> = <js>"NY"</js>;
-	a.<jf>zip</jf> = 12345;
-	a.<jf>isCurrent</jf> = <jk>true</jk>;
-	p.<jf>addresses</jf>.add(a);	
-
-	<jc>// Serialize the bean.</jc>
-	String urlencoded = s.serialize(p);
-	</p>
-	<p>
-		This code produced the following:
-	</p>
-	<p class='bcode'>
-	$o(
-		<xa>id</xa>=$n(<xs>1</xs>), 
-		<xa>name</xa>=<xs>John+Smith</xs>, 
-		<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-		<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,
-		<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>,
-		<xa>addresses</xa>=$a(
-			$o(
-				<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>, 
-				<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-				<xa>id</xa>=$n(<xs>1</xs>), 
-				<xa>street</xa>=<xs>100+Main+Street</xs>, 
-				<xa>city</xa>=<xs>Anywhereville</xs>, 
-				<xa>state</xa>=<xs>NY</xs>, 
-				<xa>zip</xa>=$n(<xs>12345</xs>), 
-				<xa>isCurrent</xa>=$b(<xs>true</xs>)
-			)
-		)
-	)
-	</p>
-	<p>
-		The code to convert this back into a bean is:
-	</p>
-	<p class='bcode'>
-	<jc>// Parse it back into a bean using the reusable JSON parser.</jc>
-	Person p = UonParser.<jsf>DEFAULT</jsf>.parse(urlencoded, Person.<jk>class</jk>);
-
-	<jc>// Render it back as JSON.</jc>
-	json = JsonSerializer.<jsf>DEFAULT_SIMPLE_READABLE</jsf>.serialize(p);
-	</p>
-	<p>
-		We print it back out to JSON to show that all the data has been preserved:
-	</p>
-	<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>, 
-				id: <jk>1</jk>, 
-				street: <js>'100 Main Street'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				state: <js>'NY'</js>, 
-				zip: <jk>12345</jk>, 
-				isCurrent: <jk>true</jk>
-			}
-		]
-	}	
-	</p>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="GenericParsing"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.1 - Parsing into generic POJO models</h3>
-	<div class='topic'>
-		<p>
-			The URL-encoding parser is not limited to parsing back into the original bean classes.<br>  
-			If the bean classes are not available on the parsing side, the parser can also be used to 
-				parse into a generic model consisting of <code>Maps</code>, <code>Collections</code>, and primitive
-				objects.
-		</p>
-		<p>
-			You can parse into any <code>Map</code> type (e.g. <code>HashMap</code>, <code>TreeMap</code>), but
-				using {@link com.ibm.juno.core.ObjectMap} is recommended since it has many convenience methods
-				for converting values to various types.<br> 
-			The same is true when parsing collections.  You can use any Collection (e.g. <code>HashSet</code>, <code>LinkedList</code>)
-				or array (e.g. <code>Object[]</code>, <code>String[]</code>, <code>String[][]</code>), but using 
-				{@link com.ibm.juno.core.ObjectList} is recommended.
-		</p>
-		<p>
-			When the map or list type is not specified, or is the abstract <code>Map</code>, <code>Collection</code>, or <code>List</code> types, 
-				the parser will use <code>ObjectMap</code> and <code>ObjectList</code> by default.
-		</p>
-		<p>
-			Starting back with our original URL-encoded string:
-		</p>
-		<p class='bcode'>
-	$o(
-		<xa>id</xa>=$n(<xs>1</xs>), 
-		<xa>name</xa>=<xs>John+Smith</xs>, 
-		<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-		<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,
-		<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>,
-		<xa>addresses</xa>=$a(
-			$o(
-				<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>, 
-				<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>, 
-				<xa>id</xa>=$n(<xs>1</xs>), 
-				<xa>street</xa>=<xs>100+Main+Street</xs>, 
-				<xa>city</xa>=<xs>Anywhereville</xs>, 
-				<xa>state</xa>=<xs>NY</xs>, 
-				<xa>zip</xa>=$n(<xs>12345</xs>), 
-				<xa>isCurrent</xa>=$b(<xs>true</xs>)
-			)
-		)
-	)
-		</p>
-		<p>
-			We can parse this into a generic <code>ObjectMap</code>:
-		</p>
-		<p class='bcode'>	
-	<jc>// Parse URL-encoded string into a generic POJO model.</jc>
-	ObjectMap m = UonParser.<jsf>DEFAULT</jsf>.parse(urlencoded, ObjectMap.<jk>class</jk>);
-
-	<jc>// Convert it back to JSON.</jc>
-	String json = JsonSerializer.<jsf>DEFAULT_SIMPLE_READABLE</jsf>.serialize(m);
-		</p>
-		<p>
-			What we end up with is the exact same output.<br>
-			Even the numbers and booleans are preserved because they are parsed into <code>Number</code> and <code>Boolean</code> objects
-				when parsing into generic models.
-		</p>
-		<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>, 
-				id: <jk>1</jk>, 
-				street: <js>'100 Main Street'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				state: <js>'NY'</js>, 
-				zip: <jk>12345</jk>, 
-				isCurrent: <jk>true</jk>
-			}
-		]
-	}
-		</p>
-		<p>
-			Once parsed into a generic model, various convenience methods are provided on the <code>ObjectMap</code>
-				and <code>ObjectList</code> classes to retrieve values:
-		</p>
-		<p class='bcode'>
-	<jc>// Parse URL-encoded string into a generic POJO model.</jc>
-	ObjectMap m = UonParser.<jsf>DEFAULT</jsf>.parse(urlencoded, ObjectMap.<jk>class</jk>);
-
-	<jc>// Get some simple values.</jc>
-	String name = m.getString(<js>"name"</js>);
-	<jk>int</jk> id = m.getInt(<js>"id"</js>);
-
-	<jc>// Get a value convertable from a String.</jc>
-	URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
-
-	<jc>// Get a value using a filter.</jc>
-	CalendarFilter filter = <jk>new</jk> CalendarFilter.ISO8601DTZ();
-	Calendar birthDate = m.get(filter, <js>"birthDate"</js>);
-
-	<jc>// Get the addresses.</jc>
-	ObjectList addresses = m.getObjectList(<js>"addresses"</js>);
-
-	<jc>// Get the first address and convert it to a bean.</jc>
-	Address address = addresses.get(Address.<jk>class</jk>, 0);
-		</p>
-
-		<p>
-			As a general rule, parsing into beans is often more efficient than parsing into generic models.<br>
-			And working with beans is often less error prone than working with generic models.
-		</p>		
-	</div>
-
-
-	<!-- ======================================================================================================== -->
-	<a id="ParserConfigurableProperties"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.2 - Configurable properties</h3>
-	<div class='topic'>
-		<p>
-			The full list of configurable settings applicable to the <code>UrlEncodingParser</code> class is shown below:
-		</p>
-		<table class='styled' style='border-collapse: collapse;'>
-			<tr><th>Property</th><th>Short Description</th></tr>
-			<tr>
-				<td>{@link com.ibm.juno.core.urlencoding.UonParserProperties#UON_decodeChars}</td>
-				<td>Decode <js>"%xx"</js> sequences</td>
-			</tr>	
-		</table>
-	</div>		
-
-
-	<!-- ======================================================================================================== -->
-	<a id="ParserOtherNotes"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.3 - Other notes</h3>
-	<div class='topic'>
-		<ul>
-			<li>Like all other Juno parsers, the URL-encoding parsers are thread safe and maintain an internal cache of bean classes encountered.<br>
-				For performance reasons, it's recommended that parser be reused whenever possible instead of always creating new instances.
-		</ul>
-	</div>
-	
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="RestApiSupport"></a>
-<h2 class='topic' onclick='toggle(this)'>4 - REST API support</h2>
-<div class='topic'>
-	<p>
-		Juno provides fully-integrated support for URL-encoding serialization/parsing in the REST server and client APIs.<br>
-		The next two sections describe these in detail.
-	</p>
-
-	<!-- ======================================================================================================== -->
-	<a id="RestServerSupport"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.1 - REST server support</h3>
-	<div class='topic'>
-		<p>
-			There are four general ways of defining REST interfaces with support for JSON.
-			Two using the built-in Juno Server API, and two using the JAX-RS integration component.
-		</p>
-		<ul>
-			<li>Create a servlet that subclasses from {@link com.ibm.juno.server.RestServletDefault}.<br>
-					This includes URL-encoding serialization/parsing support by default, in addition to several other media types.<br><br>
-			<li>Create a servlet that subclasses from {@link com.ibm.juno.server.RestServlet} and specify the
-					URL-encoding serializer and/or parser using the {@link com.ibm.juno.server.annotation.RestResource#serializers()} and
-					{@link com.ibm.juno.server.annotation.RestResource#parsers()} on the entire servlet class, or 
-					the {@link com.ibm.juno.server.annotation.RestMethod#serializers()} and {@link com.ibm.juno.server.annotation.RestMethod#parsers()}
-					annotations on individual methods within the class.<br><br>
-			<li>Register {@link com.ibm.juno.server.jaxrs.DefaultProvider} with JAX-RS.<br>
-					This includes URL-encoding serialization/parsing support by default, in addition to several other media types.<br><br>
-			<li>Create and register a subclass of {@link com.ibm.juno.server.jaxrs.BaseProvider} and specify the serializers and parsers to use on JAX-RS resources.
-		</ul>
-		<p>
-			In general, the Juno REST server API is much more configurable and easier to use than JAX-RS, but beware that the author may be slightly biased in this statement.
-		</p>
-
-		<!-- ======================================================================================================== -->
-		<a id="RestServletDefault"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.1 - Using RestServletDefault</h4>
-		<div class='topic'>
-			<p>
-				The quickest way to implement a REST resource with URL-encoding support is to create a subclass of {@link com.ibm.juno.server.RestServletDefault}.<br>
-				This class provides support for JSON, XML, HTML, URL-Encoding, and others.
-			</p>
-			<p>
-				The <code>AddressBookResource</code> example shown in the first chapter uses the <code>RestServletJenaDefault</code> class
-					which is a subclass of <code>RestServletDefault</code> with additional support for RDF languages.<br>
-				The start of the class definition is shown below:
-			</p>
-			<p class='bcode'>
-	<jc>// Proof-of-concept resource that shows off the capabilities of working with POJO resources.
-	// Consists of an in-memory address book repository.</jc>
-	<ja>@RestResource</ja>(
-		messages=<js>"nls/AddressBookResource"</js>,
-		properties={
-			<ja>@Property</ja>(name=UonSerializerProperties.<jsf>UON_simpleMode</jsf>, value=<js>"true"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, value=<js>"$L{title}"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_description</jsf>, value=<js>"$L{description}"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'?method=OPTIONS',doc:'doc'}"</js>)
-		},
-		encoders=GzipEncoder.<jk>class</jk>
-	)
-	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {
-			</p>
-			<p>
-				Notice how serializer and parser properties can be specified using the <code>@RestResource.properties()</code> annotation.<br>
-				In this case, we're overriding the <jsf>UON_simpleMode</jsf> property to produce lax UON notation.
-				The remaining properties are specific to the HTML serializer.
-			</p>
-			<p>
- 				The <code>$L{...}</code> variable represent localized strings pulled from the resource bundle identified by the <code>messages</code> annotation.
- 				These variables are replaced at runtime based on the HTTP request locale.
-				Several built-in runtime variable types are defined, and the API can be extended to include user-defined variables.
-				See {@link com.ibm.juno.server.RestServlet#getVarResolver()} for more information.
-			</p>
-			<p>
-				This document won't go into all the details of the Juno <code>RestServlet</code> class.<br>
-				Refer to the {@link com.ibm.juno.server} documentation for more information on the REST servlet class in general.
-			</p>
-			<p>
-				The rest of the code in the resource class consists of REST methods that simply accept and return POJOs.<br>
-				The framework takes care of all content negotiation, serialization/parsing, and error handling.<br>
-				Below are 3 of those methods to give you a general idea of the concept:
-			</p>
-			<p class='bcode'>
-	<jc>// GET person request handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>, rc={200,404})
-	<jk>public</jk> Person getPerson(RestRequest req, <ja>@Attr</ja> <jk>int</jk> id) throws Exception {
-		properties.put(HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, req.getPathInfo());
-		<jk>return</jk> findPerson(id);
-	}
-	
-	<jc>// POST person handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/people"</js>, guards=AdminGuard.<jk>class</jk>, rc={307,404})
-	<jk>public void</jk> createPerson(RestResponse res, <ja>@Content</ja> CreatePerson cp) <jk>throws</jk> Exception {
-		Person p = addressBook.createPerson(cp);
-		res.sendRedirect(p.<jf>uri</jf>);
-	}
-
-	<jc>// DELETE person handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"DELETE"</js>, path=<js>"/people/{id}"</js>, guards=AdminGuard.<jk>class</jk>, rc={200,404})
-	<jk>public</jk> String deletePerson(RestResponse res, <ja>@Attr</ja> <jk>int</jk> id) <jk>throws</jk> Exception {
-		Person p = findPerson(id);
-		addressBook.remove(p);
-		<jk>return</jk> <js>"DELETE successful"</js>;			
-	}	
-			</p>
-			<p>
-				The resource class can be registered with the web application like any other servlet, or can be 
-					defined as a child of another resource through the {@link com.ibm.juno.server.annotation.RestResource#children()} annotation.
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="RestServlet"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.2 - Using RestServlet with annotations</h4>
-		<div class='topic'>
-			<p>
-				For fine-tuned control of media types, the {@link com.ibm.juno.server.RestServlet} class 
-					can be subclassed directly.<br>
-				The serializers/parsers can be specified through annotations at the class and/or method levels.
-			</p>
-			<p>
-				An equivalent <code>AddressBookResource</code> class could be defined to only support URL-encoding using
-					the following definition:
-			</p>
-			<p class='bcode'>
-	<ja>@RestResource</ja>(
-		serializers={UrlEncodingSerializer.<jk>class</jk>},
-		parsers={UrlEncodingParser.<jk>class</jk>},
-		properties={
-			<ja>@Property</ja>(name=UonSerializerProperties.<jsf>UON_simpleMode</jsf>, value=<js>"true"</js>)
-		}
-	)
-	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServlet {
-			</p>
-			<p>
-				Likewise, serializers and parsers can be specified/augmented/overridden at the method level like so:
-			</p>
-			<p class='bcode'>
-	<jc>// GET person request handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>, rc={200,404},
-		serializers={UrlEncodingSerializer.<jk>class</jk>},
-		parsers={UrlEncodingParser.<jk>class</jk>},
-		properties={
-			<ja>@Property</ja>(name=UonSerializerProperties.<jsf>UON_simpleMode</jsf>, value=<js>"true"</js>)
-		}
-	)
-	<jk>public</jk> Person getPerson(RestRequest req, <ja>@Attr</ja> <jk>int</jk> id) throws Exception {
-		properties.put(HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, req.getPathInfo());
-		<jk>return</jk> findPerson(id);
-	}
-			</p>
-			<p>
-				The {@link com.ibm.juno.server.annotation.RestMethod#serializersInherit()} and 
-					{@link com.ibm.juno.server.annotation.RestMethod#parsersInherit()} control how various artifacts
-					are inherited from the parent class.<br>
-				Refer to {@link com.ibm.juno.server} for additional information on using these annotations.
-			</p>
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="DefaultProvider"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.3 - Using JAX-RS DefaultProvider</h4>
-		<div class='topic'>
-			<p>
-				URL-encoding media type support in JAX-RS can be achieved by using the {@link com.ibm.juno.server.jaxrs.DefaultProvider} class.<br>
-				It implements the JAX-RS <code>MessageBodyReader</code> and <code>MessageBodyWriter</code> interfaces for all Juno supported media types.
-			</p>
-			<p>
-				The <code>DefaultProvider</code> class definition is shown below:
-			</p>
-			<p class='bcode'>
-	<ja>@Provider</ja>
-	<ja>@Produces</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>,                 <jc>// JsonSerializer</jc>
-		<js>"application/json+simple"</js>,<js>"text/json+simple"</js>,    <jc>// JsonSerializer.Simple</jc>
-		<js>"application/json+schema"</js>,<js>"text/json+schema"</js>,    <jc>// JsonSchemaSerializer</jc>
-		<js>"text/xml"</js>,                                      <jc>// XmlDocSerializer</jc>
-		<js>"text/xml+simple"</js>,                               <jc>// XmlDocSerializer.Simple</jc>
-		<js>"text/xml+schema"</js>,                               <jc>// XmlSchemaDocSerializer</jc>
-		<js>"text/html"</js>,                                     <jc>// HtmlDocSerializer</jc>
-		<js>"text/uon"</js>,                                      <jc>// UonSerializer</jc>
-		<js>"application/x-www-form-urlencoded"</js>,             <jc>// UrlEncodingSerializer</jc>
-		<js>"text/xml+soap"</js>,                                 <jc>// SoapXmlSerializer</jc>
-		<js>"application/x-java-serialized-object"</js>           <jc>// JavaSerializedObjectSerializer</jc>
-	})
-	<ja>@Consumes</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>,                 <jc>// JsonParser</jc>
-		<js>"text/xml"</js>,                                      <jc>// XmlParser</jc>
-		<js>"text/html"</js>,                                     <jc>// HtmlParser</jc>
-		<js>"text/uon"</js>,                                      <jc>// UonParser</jc>
-		<js>"application/x-www-form-urlencoded"</js>,             <jc>// UrlEncodingParser</jc>
-		<js>"application/x-java-serialized-object"</js>           <jc>// JavaSerializedObjectParser</jc>
-	})
-	<ja>@JunoProvider</ja>(
-		serializers={
-			JsonSerializer.<jk>class</jk>,
-			JsonSerializer.Simple.<jk>class</jk>,
-			JsonSchemaSerializer.<jk>class</jk>,
-			XmlDocSerializer.<jk>class</jk>,
-			XmlDocSerializer.Simple.<jk>class</jk>,
-			XmlSchemaDocSerializer.<jk>class</jk>,
-			HtmlDocSerializer.<jk>class</jk>,
-			UonSerializer.<jk>class</jk>,
-			UrlEncodingSerializer.<jk>class</jk>,
-			SoapXmlSerializer.<jk>class</jk>,
-			JavaSerializedObjectSerializer.<jk>class</jk>
-		},
-		parsers={
-			JsonParser.<jk>class</jk>,
-			XmlParser.<jk>class</jk>,
-			HtmlParser.<jk>class</jk>,
-			UonParser.<jk>class</jk>,
-			UrlEncodingParser.<jk>class</jk>,
-			JavaSerializedObjectParser.<jk>class</jk>,
-		}
-	)
-	<jk>public final class</jk> DefaultProvider <jk>extends</jk> BaseProvider {}
-			</p>
-			<p>
-				That's the entire class.  It consists of only annotations to hook up media types to Juno serializers and parsers.
-				The <ja>@Provider</ja>, <ja>@Produces</ja>, and <ja>@Consumes</ja> annotations are standard JAX-RS annotations, and the <ja>@JunoProvider</ja> annotation is from Juno.
-			</p>
-			<p>
-				To enable the provider, you need to make the JAX-RS environment aware of it.
-				In Wink, this is accomplished by adding an entry to a config file.
-			</p>
-			<p class='bcode'>
-	<xt>&lt;web-app</xt> <xa>version</xa>=<xs>"2.3"</xs><xt>&gt;</xt>
-		<xt>&lt;servlet&gt;</xt>
-			<xt>&lt;servlet-name&gt;</xt>WinkService<xt>&lt;/servlet-name&gt;</xt>
-			<xt>&lt;servlet-class&gt;</xt>org.apache.wink.server.internal.servlet.RestServlet<xt>&lt;/servlet-class&gt;</xt>
-			<xt>&lt;init-param&gt;</xt>
-				<xt>&lt;param-name&gt;</xt>applicationConfigLocation<xt>&lt;/param-name&gt;</xt>
-				<xt>&lt;param-value&gt;</xt>/WEB-INF/wink.cfg<xt>&lt;/param-value&gt;</xt>
-			<xt>&lt;/init-param&gt;</xt>
-		<xt>&lt;/servlet&gt;</xt>
-			</p>
-			<p>
-				Simply include a reference to the provider in the configuration file.
-			<p class='bcode'>
-	com.ibm.juno.server.jaxrs.DefaultProvider
-			</p>
-			<p>
-				Properties can be specified on providers through the {@link com.ibm.juno.server.jaxrs.JunoProvider#properties()} annotation.<br>
-				Properties can also be specified at the method level by using the {@link com.ibm.juno.server.annotation.RestMethod#properties} annotation, like so:
-			</p>
-			<p class='bcode'>
-	<ja>@GET</ja>
-	<ja>@Produces</ja>(<js>"*/*"</js>)
-	<ja>@RestMethod</ja>( <jc>/* Override some properties */</jc>
-		properties={
-			<ja>@Property</ja>(name=UonSerializerProperties.<jsf>UON_simpleMode</jsf>, value=<js>"true"</js>)
-		}
-	)
-	<jk>public</jk> Message getMessage() {
-		<jk>return</jk> message;
-	}
-			</p>
-			<h6 class='topic'>Limitations</h6>
-			<p>
-				In general, the Juno REST API is considerably more flexible than the JAX-RS API, since you can specify and override
-					serializers, parsers, properties, filters, converters, guards, etc... at both the class and method levels.<br>
-				Therefore, the JAX-RS API has the following limitations that the Juno Server API does not:
-			</p>
-			<ul>
-				<li>The ability to specify different media type providers at the class and method levels.<br> 
-					For example, you may want to use <code>JsonSerializer</code> with one set of properties on 
-						one class, and another instance with different properties on another class.<br>
-					There is currently no way to define this at the class level.<br>
-					You can override properties at the method level, but this can be cumbersome since it would have to be
-						done for all methods in the resource.<br><br>
-				<li>The Juno Server API allows you to manipulate properties programatically through the {@link com.ibm.juno.server.RestResponse#setProperty(String,Object)}
-					method, and through the {@link com.ibm.juno.server.annotation.Properties} annotation.<br>
-					There is no equivalent in JAX-RS.
-			</ul>
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="BaseProvider"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.4 - Using JAX-RS BaseProvider with annotations</h4>
-		<div class='topic'>
-			<p>
-				To provide support for only JSON media types, you can define your own provider class, like so:
-			</p>
-			<p class='bcode'>
-	<ja>@Provider</ja>
-	<ja>@Produces</ja>({
-		<js>"application/x-www-form-urlencoded"</js>,                 <jc>// UrlEncodingSerializer</jc>
-	})
-	<ja>@Consumes</ja>({
-		<js>"application/x-www-form-urlencoded"</js>                  <jc>// UrlEncodingParser</jc>
-	})
-	<ja>@JunoProvider</ja>(
-		serializers={
-			UrlEncodingSerializer.<jk>class</jk>
-		},
-		parsers={
-			UrlEncodingParser.<jk>class</jk>,
-		}
-		properties={
-			<ja>@Property</ja>(name=UonSerializerProperties.<jsf>UON_simpleMode</jsf>, value=<js>"true"</js>)
-		}
-	)
-	<jk>public final class</jk> MyUrlEncodingProvider <jk>extends</jk> BaseProvider {}
-			</p>
-			<p>
-				Then register it with Wink the same way as <code>DefaultProvider</code>.
-			</p>
-		</div>
-
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="RestClientSupport"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.2 - REST client support</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient} class provides an easy-to-use REST client interface with 
-				pluggable media type handling using any of the Juno serializers and parsers.<br>
-			Defining a client to support the URL-encoding media type on HTTP requests and responses can be done in one line of code:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a client to handle URL-encoded requests and responses.</jc>
-	RestClient client = <jk>new</jk> RestClient(UrlEncodingSerializer.<jk>class</jk>, UrlEncodingParser.<jk>class</jk>);
-		</p>
-		<p>
-			The client handles all content negotiation based on the registered serializers and parsers.
-		</p>
-		<p>
-			The following code is pulled from the main method of the <code>ClientTest</code> class in the sample web application, and
-				is run against the <code>AddressBookResource</code> class running within the sample app.<br>
-			It shows how the client can be used to interact with the REST API while completely hiding the negotiated content type and working with nothing more than beans.
-		</p>
-		<h6 class='figure'>Example</h6>
-		<p class='bcode'>
-	String root = <js>"http://localhost:9080/sample/addressBook"</js>;
-	
-	<jc>// Get the current contents of the address book</jc>
-	AddressBook ab = client.doGet(root).getResponse(AddressBook.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Number of entries = "</js> + ab.size());
-	
-	<jc>// Delete the existing entries</jc>
-	<jk>for</jk> (Person p : ab) {
-		String r = client.doDelete(p.<jf>uri</jf>).getResponse(String.<jk>class</jk>);
-		System.<jsm>out</jsm>.println(<js>"Deleted person "</js> + p.<jf>name</jf> + <js>", response = "</js> + r);
-	}
-	
-	<jc>// Make sure they're gone</jc>
-	ab = client.doGet(root).getResponse(AddressBook.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Number of entries = "</js> + ab.size());
-	
-	<jc>// Add 1st person again</jc>
-	CreatePerson cp = <jk>new</jk> CreatePerson(
-		<js>"Barack Obama"</js>, 
-		<jsm>toCalendar</jsm>(<js>"Aug 4, 1961"</js>),
-		<jk>new</jk> CreateAddress(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>true</jk>),
-		<jk>new</jk> CreateAddress(<js>"5046 S Greenwood Ave"</js>, <js>"Chicago"</js>, <js>"IL"</js>, 60615, <jk>false</jk>)
-	); 
-	Person p = client.doPost(root + <js>"/people"</js>, cp).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created person "</js> + p.<jf>name</jf> + <js>", uri = "</js> + p.<jf>uri</jf>);
-	
-	<jc>// Add 2nd person again, but add addresses separately</jc>
-	cp = <jk>new</jk> CreatePerson(
-		<js>"George Walker Bush"</js>, 
-		toCalendar(<js>"Jul 6, 1946"</js>)
-	);
-	p = client.doPost(root + <js>"/people"</js>, cp).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created person "</js> + p.<jf>name</jf> + <js>", uri = "</js> + p.<jf>uri</jf>);
-	
-	<jc>// Add addresses to 2nd person</jc>
-	CreateAddress ca = <jk>new</jk> CreateAddress(<js>"43 Prairie Chapel Rd"</js>, <js>"Crawford"</js>, <js>"TX"</js>, 76638, <jk>true</jk>);
-	Address a = client.doPost(p.<jf>uri</jf> + <js>"/addresses"</js>, ca).getResponse(Address.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created address "</js> + a.<jf>uri</jf>);
-				
-	ca = <jk>new</jk> CreateAddress(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>false</jk>);
-	a = client.doPost(p.<jf>uri</jf> + "/addresses"</js>, ca).getResponse(Address.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created address "</js> + a.<jf>uri</jf>);
-	
-	<jc>// Find 1st person, and change name</jc>
-	Person[] pp = client.doGet(root + <js>"?q={name:\"'Barack+Obama'\"}"</js>).getResponse(Person[].<jk>class</jk>);
-	String r = client.doPut(pp[0].<jf>uri</jf> + <js>"/name"</js>, <js>"Barack Hussein Obama"</js>).getResponse(String.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Changed name, response = "</js> + r);
-	p = client.doGet(pp[0].<jf>uri</jf>).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"New name = "</js> + p.<jf>name</jf>);
-		</p>
-		<h6 class='figure'>Results</h6>
-		<p class='bcode'>
-	Number of entries = 2
-	Deleted person Barack Obama, response = DELETE successful
-	Deleted person George Walker Bush, response = DELETE successful
-	Number of entries = 0
-	Created person Barack Obama, uri = http://localhost:9080/sample/addressBook/people/3
-	Created person George Walker Bush, uri = http://localhost:9080/sample/addressBook/people/4
-	Created address http://localhost:9080/sample/addressBook/addresses/7
-	Created address http://localhost:9080/sample/addressBook/addresses/8
-	Changed name, response = PUT successful
-	New name = Barack Hussein Obama
-		</p>
-	</div>
-</div>
-<p align="center"><i><b>*** f�n ***</b></i></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/utils/Args.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/Args.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/Args.class
deleted file mode 100755
index f781f70..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/Args.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/utils/Args.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/Args.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/Args.java
deleted file mode 100755
index 9d64bb1..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/Args.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.utils;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Utility class to make it easier to work with command-line arguments pass in through a <code>main(String[] args)</code> method.
- * <p>
- * Used to parse command-line arguments of the form <js>"[zero or more main arguments] [zero or more optional arguments]"</js>.
- * <p>
- * The format of a main argument is a token that does not start with <js>'-'</js>.
- * <p>
- * The format of an optional argument is <js>"-argName [zero or more tokens]"</js>.
- * <p>
- * <h6 class='topic'>Command-line examples</h6>
- * <ul>
- * 	<li><code>java com.sample.MyClass mainArg1</code>
- * 	<li><code>java com.sample.MyClass mainArg1 mainArg2</code>
- * 	<li><code>java com.sample.MyClass mainArg1 -optArg1</code>
- * 	<li><code>java com.sample.MyClass -optArg1</code>
- * 	<li><code>java com.sample.MyClass mainArg1 -optArg1 optArg1Val</code>
- * 	<li><code>java com.sample.MyClass mainArg1 -optArg1 optArg1Val1 optArg1Val2</code>
- * 	<li><code>java com.sample.MyClass mainArg1 -optArg1 optArg1Val1 -optArg1 optArg1Val2</code>
- * </ul>
- *
- * <h6 class='topic'>Code examples</h6>
- * <p class='bcode'>
- *
- * 	<jc>// Main method with arguments</jc>
- * 	<jk>public static void</jk> <jsm>main</jsm>(String[] args) {
- *
- * 		<jc>// Wrap in Args</jc>
- * 		Args a = new Args(args);
- *
- * 		<jc>// One main argument</jc>
- * 		<jc>// a1</jc>
- * 		String a1 = a.getArg(0); <jc>// "a1"</jc>
- * 		String a2 = a.getArg(1); <jc>// null</jc>
- *
- * 		<jc>// Two main arguments</jc>
- * 		<jc>// a1 a2</jc>
- * 		String a1 = a.getArg(0); <jc>// "a1"</jc>
- * 		String a2 = a.getArg(1); <jc>// "a2"</jc>
- *
- * 		<jc>// One main argument and one optional argument with no value</jc>
- * 		<jc>// a1 -a2</jc>
- * 		String a1 = a.getArg(0);
- * 		<jk>boolean</jk> hasA2 = a.hasArg(<js>"a2"</js>); <jc>// true</jc>
- * 		<jk>boolean</jk> hasA3 = a.hasArg(<js>"a3"</js>); <jc>// false</jc>
- *
- * 		<jc>// One main argument and one optional argument with one value</jc>
- * 		<jc>// a1 -a2 v2</jc>
- * 		String a1 = a.getArg(0);
- * 		String a2 = a.getArg(<js>"a2"</js>); <jc>// "v2"</jc>
- * 		String a3 = a.getArg(<js>"a3"</js>); <jc>// null</jc>
- *
- * 		<jc>// One main argument and one optional argument with two values</jc>
- * 		<jc>// a1 -a2 v2a v2b</jc>
- * 		String a1 = a.getArg(0);
- * 		List&lt;String&gt; a2 = a.getArgs(<js>"a2"</js>); <jc>// Contains ["v2a","v2b"]</jc>
- * 		List&lt;String&gt; a3 = a.getArgs(<js>"a3"</js>); <jc>// Empty list</jc>
- *
- * 		<jc>// Same as previous, except specify optional argument name multiple times</jc>
- * 		<jc>// a1 -a2 v2a -a2 v2b</jc>
- * 		String a1 = a.getArg(0);
- * 		List&lt;String&gt; a2 = a.getArgs(<js>"a2"</js>); <jc>// Contains ["v2a","v2b"]</jc>
- * 	}
- * </p>
- * <p>
- * Main arguments are available through numeric string keys (e.g. <js>"0"</js>, <js>"1"</js>, ...).
- * So you could use the {@link ObjectMap} API to convert main arguments directly to POJOs, such as an <code>Enum</code>
- * <p class='bcode'>
- * 	<jc>// Get 1st main argument as an Enum</jc>
- * 	MyEnum e = a.get(MyEnum.<jk>class</jk>, <js>"0"</js>);
- *
- * 	<jc>// Get 1st main argument as an integer</jc>
- * 	int i = a.get(<jk>int</jk>.<jk>class</jk>, <js>"0"</js>);
- * </p>
- * <p>
- * Equivalent operations are available on optional arguments through the {@link #getArg(Class, String)} method.
- *
- * @author jbognar
- */
-public final class Args extends ObjectMap {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param args Arguments passed in through a <code>main(String[] args)</code> method.
-	 */
-	public Args(String[] args) {
-		List<String> argList = new LinkedList<String>(Arrays.asList(args));
-
-		// Capture the main arguments.
-		Integer i = 0;
-		while (! argList.isEmpty()) {
-			String s = argList.get(0);
-			if (StringUtils.startsWith(s,'-'))
-				break;
-			put(i.toString(), argList.remove(0));
-			i++;
-		}
-
-		// Capture the mapped arguments.
-		String key = null;
-		while (! argList.isEmpty()) {
-			String s = argList.remove(0);
-			if (StringUtils.startsWith(s, '-')) {
-				key = s.substring(1);
-				if (key.matches("\\d*"))
-					throw new RuntimeException("Invalid optional key name '"+key+"'");
-				if (! containsKey(key))
-					put(key, new ObjectList());
-			} else {
-				((ObjectList)get(key)).add(s);
-			}
-		}
-	}
-
-	/**
-	 * Returns main argument at the specified index, or <jk>null</jk> if the index is out of range.
-	 * <p>
-	 * Can be used in conjuction with {@link #hasArg(int)} to check for existence of arg.
-	 * <p class='bcode'>
-	 * 	<jc>// Check for no arguments</jc>
-	 * 	<jk>if</jk> (! args.hasArg(0))
-	 * 		printUsageAndExit();
-	 *
-	 * 	<jc>// Get the first argument</jc>
-	 * 	String firstArg = args.getArg(0);
-	 * </p>
-	 * <p>
-	 * Since main arguments are stored as numeric keys, this method is essentially equivalent to...
-	 * <p class='bcode'>
-	 * 	<jc>// Check for no arguments</jc>
-	 * 	<jk>if</jk> (! args.containsKey(<js>"0"</js>))
-	 * 		printUsageAndExit();
-	 *
-	 * 	<jc>// Get the first argument</jc>
-	 * 	String firstArg = args.getString("0");
-	 * </p>
-	 *
-	 * @param i The index position of the main argument (zero-indexed).
-	 * @return The main argument value, or <js>""</js> if argument doesn't exist at that position.
-	 */
-	public String getArg(int i) {
-		return getString(Integer.toString(i));
-	}
-
-	/**
-	 * Returns <jk>true</jk> if argument exists at specified index.
-	 *
-	 * @param i The zero-indexed position of the argument.
-	 * @return <jk>true</jk> if argument exists at specified index.
-	 */
-	public boolean hasArg(int i) {
-		return containsKey(Integer.toString(i));
-	}
-
-	/**
-	 * Returns the optional argument value, or blank if the optional argument was not specified.
-	 * <p>
-	 * If the optional arg has multiple values, returns values as a comma-delimited list.
-	 *
-	 * @param name The optional argument name.
-	 * @return The optional argument value, or blank if the optional argument was not specified.
-	 */
-	public String getArg(String name) {
-		ObjectList l = (ObjectList)get(name);
-		if (l == null || l.size() == 0)
-			return null;
-		if (l.size() == 1)
-			return l.get(0).toString();
-		return Arrays.toString(l.toArray()).replaceAll("[\\[\\]]", "");
-	}
-
-	/**
-	 * Returns the optional argument value converted to the specified object type.
-	 * <p>
-	 * If the optional arg has multiple values, returns only the first converted value.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Command:  java com.sample.MyClass -verbose true -debug 5</jc>
-	 * 	<jk>boolean</jk> b = args.getArg(<jk>boolean</jk>.<jk>class</jk>, <js>"verbose"</js>);
-	 * 	<jk>int</jk> i = args.getArg(<jk>int</jk>.<jk>class</jk>, <js>"debug"</js>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param c The class type to convert the value to.
-	 * @param <T> The class type to convert the value to.
-	 * @param name The optional argument name.
-	 * @return The optional argument value, or blank if the optional argument was not specified.
-	 */
-	public <T> T getArg(Class<T> c, String name) {
-		ObjectList l = (ObjectList)get(name);
-		if (l == null || l.size() == 0)
-			return null;
-		return l.get(c, 0);
-	}
-
-	/**
-	 * Returns the optional argument values as a list of strings.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Command:  java com.sample.MyClass -extraArgs foo bar baz</jc>
-	 * 	List&lt;String&gt; l1 = args.getArgs(<js>"extraArgs"</js>); <jc>// ['foo','bar','baz']</jc>
-	 * 	List&lt;String&gt; l2 = args.getArgs(<js>"nonExistentArgs"</js>); <jc>// An empty list</jc>
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param name The optional argument name.
-	 * @return The optional argument values, or an empty list if the optional argument was not specified.
-	 */
-	@SuppressWarnings({"rawtypes", "unchecked"})
-	public List<String> getArgs(String name) {
-		List l = (ObjectList)get(name);
-		if (l == null)
-			return Collections.emptyList();
-		return l;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$1$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$1$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$1$1.class
deleted file mode 100755
index 157067c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$1$1.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/utils/ArrayUtils$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$1.class
deleted file mode 100755
index 3b7e54a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$1.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/utils/ArrayUtils$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$2.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$2.class
deleted file mode 100755
index 7ab64ff..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils$2.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/utils/ArrayUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils.class
deleted file mode 100755
index 64841df..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils.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/utils/ArrayUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils.java
deleted file mode 100755
index 22923df..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ArrayUtils.java
+++ /dev/null
@@ -1,273 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-/**
- * Quick and dirty utilities for working with arrays.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ArrayUtils {
-
-	/**
-	 * Appends one or more elements to an array.
-	 *
-	 * @param <T> The element type.
-	 * @param array The array to append to.
-	 * @param newElements The new elements to append to the array.
-	 * @return A new array with the specified elements appended.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> T[] append(T[] array, T...newElements) {
-		assertNotNull(array, "Array cannot be null.");
-		if (newElements.length == 0)
-			return array;
-		T[] a = (T[])Array.newInstance(array.getClass().getComponentType(), array.length + newElements.length);
-		for (int i = 0; i < array.length; i++)
-			a[i] = array[i];
-		for (int i = 0; i < newElements.length; i++)
-			a[i+array.length] = newElements[i];
-		return a;
-	}
-
-	/**
-	 * Appends one or more elements to an array.
-	 *
-	 * @param <T> The element type.
-	 * @param array The array to append to.
-	 * @param newElements The new elements to append to the array.
-	 * @return A new array with the specified elements appended.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> T[] append(T[] array, Collection<T> newElements) {
-		assertFieldNotNull(array, "array");
-		if (newElements.size() == 0)
-			return array;
-		T[] a = (T[])Array.newInstance(array.getClass().getComponentType(), array.length + newElements.size());
-		for (int i = 0; i < array.length; i++)
-			a[i] = array[i];
-		int l = array.length;
-		for (T t : newElements)
-			a[l++] = t;
-		return a;
-	}
-
-	/**
-	 * Combine an arbitrary number of arrays into a single array.
-	 *
-	 * @param arrays Collection of arrays to combine.
-	 * @return A new combined array, or <jk>null</jk> if all arrays are <jk>null</jk>.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> T[] combine(T[]...arrays) {
-		assertFieldNotNull(arrays, "arrays");
-		int l = 0;
-		T[] a1 = null;
-		for (T[] a : arrays) {
-			if (a1 == null && a != null)
-				a1 = a;
-			l += (a == null ? 0 : a.length);
-		}
-		if (a1 == null)
-			return null;
-		T[] a = (T[])Array.newInstance(a1.getClass().getComponentType(), l);
-		int i = 0;
-		for (T[] aa : arrays)
-			if (aa != null)
-				for (T t : aa)
-					a[i++] = t;
-		return a;
-	}
-
-	/**
-	 * Creates a new array with reversed entries.
-	 *
-	 * @param <T> The class type of the array.
-	 * @param array The array to reverse.
-	 * @return A new array with reversed entries, or <jk>null</jk> if the array was <jk>null</jk>.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> T[] reverse(T[] array) {
-		assertFieldNotNull(array, "array");
-		Class<T> c = (Class<T>)array.getClass().getComponentType();
-		T[] a2 = (T[])Array.newInstance(c, array.length);
-		for (int i = 0; i < array.length; i++)
-			a2[a2.length-i-1] = array[i];
-		return a2;
-	}
-
-	/**
-	 * Converts the specified array to a <code>Set</code>.
-	 * <p>
-	 * 	The order of the entries in the set are the same as the array.
-	 *
-	 * @param <T> The entry type of the array.
-	 * @param array The array being wrapped in a <code>Set</code> interface.
-	 * @return The new set.
-	 */
-	public static <T> Set<T> asSet(final T[] array) {
-		assertFieldNotNull(array, "array");
-		return new AbstractSet<T>() {
-
-			@Override /* Set */
-			public Iterator<T> iterator() {
-				return new Iterator<T>() {
-					int i = 0;
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return i < array.length;
-					}
-
-					@Override /* Iterator */
-					public T next() {
-						if (i >= array.length)
-							throw new NoSuchElementException();
-						T t = array[i];
-						i++;
-						return t;
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						throw new UnsupportedOperationException();
-					}
-				};
-			}
-
-			@Override /* Set */
-			public int size() {
-				return array.length;
-			}
-		};
-	}
-
-	/**
-	 * Returns an iterator against an array.
-	 * This works with any array type (e.g. <code>String[]</code>, <code>Object[]</code>, <code><jk>int</jk>[]</code>, etc...).
-	 *
-	 * @param array The array to create an iterator over.
-	 * @return An iterator over the specified array.
-	 */
-	public static Iterator<Object> iterator(final Object array) {
-		return new Iterator<Object>() {
-			int i = 0;
-			int length = array == null ? 0 : Array.getLength(array);
-
-			@Override /* Iterator */
-			public boolean hasNext() {
-				return i < length;
-			}
-
-			@Override /* Iterator */
-			public Object next() {
-				if (i >= length)
-					throw new NoSuchElementException();
-				return Array.get(array, i++);
-			}
-
-			@Override /* Iterator */
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-		};
-	}
-
-	/**
-	 * Converts the specified collection to an array.
-	 * Works on both object and primitive arrays.
-	 *
-	 * @param c The collection to convert to an array.
-	 * @param componentType The component type of the collection.
-	 * @return A new array.
-	 */
-	public static <T> Object toArray(Collection<T> c, Class<T> componentType) {
-		Object a = Array.newInstance(componentType, c.size());
-		Iterator<T> it = c.iterator();
-		int i = 0;
-		while (it.hasNext())
-			Array.set(a, i++, it.next());
-		return a;
-	}
-
-	/**
-	 * Copies the specified array into the specified list.
-	 * Works on both object and primitive arrays.
-	 *
-	 * @param array The array to copy into a list.
-	 * @param list The list to copy the values into.
-	 */
-	@SuppressWarnings({"unchecked","rawtypes"})
-	public static void copyToList(Object array, List list) {
-		if (array != null) {
-			int length = Array.getLength(array);
-			for (int i = 0; i < length; i++)
-				list.add(Array.get(array, i));
-		}
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified array contains the specified element
-	 * 	using the {@link Object#equals(Object)} method.
-	 *
-	 * @param element The element to check for.
-	 * @param array The array to check.
-	 * @return <jk>true</jk> if the specified array contains the specified element,
-	 * 	<jk>false</jk> if the array or element is <jk>null</jk>.
-	 */
-	public static <T> boolean contains(T element, T[] array) {
-		return indexOf(element, array) != -1;
-	}
-
-	/**
-	 * Returns the index position of the element in the specified array
-	 * 	using the {@link Object#equals(Object)} method.
-	 *
-	 * @param element The element to check for.
-	 * @param array The array to check.
-	 * @return The index position of the element in the specified array, or
-	 * 	<code>-1</code> if the array doesn't contain the element, or the array or element is <jk>null</jk>.
-	 */
-	public static <T> int indexOf(T element, T[] array) {
-		if (element == null)
-			return -1;
-		if (array == null)
-			return -1;
-		for (int i = 0; i < array.length; i++)
-			if (element.equals(array[i]))
-				return i;
-		return -1;
-	}
-
-	/**
-	 * Converts a primitive wrapper array (e.g. <code>Integer[]</code>) to a primitive array (e.g. <code><jk>int</jk>[]</code>).
-	 *
-	 * @param o The array to convert.  Must be a primitive wrapper array.
-	 * @return A new array.
-	 * @throws IllegalArgumentException If object is not a wrapper object array.
-	 */
-	public static Object toPrimitiveArray(Object o) {
-		Class<?> c = o.getClass();
-		if (! c.isArray())
-			throw new IllegalArgumentException("Cannot pass non-array objects to toPrimitiveArray()");
-		int l = Array.getLength(o);
-		Class<?> tc = ClassUtils.getPrimitiveForWrapper(c.getComponentType());
-		if (tc == null)
-			throw new IllegalArgumentException("Array type is not a primitive wrapper array.");
-		Object a = Array.newInstance(tc, l);
-		for (int i = 0; i < l; i++)
-			Array.set(a, i, Array.get(o, i));
-		return a;
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerWriter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerWriter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerWriter.java
deleted file mode 100755
index 4fa6458..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerWriter.java
+++ /dev/null
@@ -1,262 +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.json;
-
-import java.io.*;
-
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Specialized writer for serializing JSON.
- * <p>
- * 	<b>Note:  This class is not intended for external use.</b>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class JsonSerializerWriter extends SerializerWriter {
-
-	private final boolean laxMode, escapeSolidus;
-
-	// Characters that trigger special handling of serializing attribute values.
-	private static final AsciiSet
-		encodedChars = new AsciiSet("\n\t\b\f\r'\"\\"),
-		encodedChars2 = new AsciiSet("\n\t\b\f\r'\"\\/");
-
-	private static final KeywordSet reservedWords = new KeywordSet(
-		"arguments","break","case","catch","class","const","continue","debugger","default","delete",
-		"do","else","enum","eval","export","extends","false","finally","for","function","if",
-		"implements","import","in","instanceof","interface","let","new","null","package",
-		"private","protected","public","return","static","super","switch","this","throw",
-		"true","try","typeof","var","void","while","with","undefined","yield"
-	);
-
-
-	// Characters that represent attribute name characters that don't trigger quoting.
-	// These are actually more strict than the actual Javascript specification, but
-	// can be narrowed in the future if necessary.
-	// For example, we quote attributes that start with $ even though we don't need to.
-	private static final AsciiSet validAttrChars = new AsciiSet("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_");
-	private static final AsciiSet validFirstAttrChars = new AsciiSet("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_");
-
-	private final AsciiSet ec;
-
-	/**
-	 * Constructor.
-	 * @param out The writer being wrapped.
-	 * @param useIndentation If <jk>true</jk>, tabs will be used in output.
-	 * @param useWhitespace If <jk>true</jk>, whitespace will be used in output.
-	 * @param escapeSolidus If <jk>true</jk>, forward slashes should be escaped in the output.
-	 * @param quoteChar The quote character to use (i.e. <js>'\''</js> or <js>'"'</js>)
-	 * @param laxMode If <jk>true</jk>, JSON attributes will only be quoted when necessary.
-	 * @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>).
-	 */
-	protected JsonSerializerWriter(Writer out, boolean useIndentation, boolean useWhitespace, boolean escapeSolidus, char quoteChar, boolean laxMode, String relativeUriBase, String absolutePathUriBase) {
-		super(out, useIndentation, useWhitespace, quoteChar, relativeUriBase, absolutePathUriBase);
-		this.laxMode = laxMode;
-		this.escapeSolidus = escapeSolidus;
-		this.ec = escapeSolidus ? encodedChars2 : encodedChars;
-	}
-
-	/**
-	 * Serializes the specified object as a JSON string value.
-	 * @param o The object being serialized.
-	 * @return This object (for method chaining).
-	 * @throws IOException Should never happen.
-	 */
-	public JsonSerializerWriter stringValue(Object o) throws IOException {
-		 /*
-		  * Fixes up a Java string so that it can be used as a JSON string.<br>
-		  * Does the following:<br>
-		  * <ul>
-		  *  <li> Replaces {@code \r?\n} with {@code \\n}<br>
-		  *  <li> Replaces {@code \t} with {@code \\t}<br>
-		  *  <li> Replaces {@code '} with {@code \\'}<br>
-		  *  <li> Replaces {@code "} with {@code \\"}<br>
-		  * </ul>
-		  */
-		if (o == null)
-			return this;
-		String s = o.toString();
-		boolean doConvert = false;
-		for (int i = 0; i < s.length() && ! doConvert; i++) {
-			char c = s.charAt(i);
-			doConvert |= ec.contains(c);
-		}
-		q();
-		if (! doConvert) {
-			out.append(s);
-		} else {
-			for (int i = 0; i < s.length(); i++) {
-				char c = s.charAt(i);
-				if (ec.contains(c)) {
-					if (c == '\n')
-						out.append('\\').append('n');
-					else if (c == '\t')
-						out.append('\\').append('t');
-					else if (c == '\b')
-						out.append('\\').append('b');
-					else if (c == '\f')
-						out.append('\\').append('f');
-					else if (c == quoteChar)
-						out.append('\\').append(quoteChar);
-					else if (c == '\\')
-						out.append('\\').append('\\');
-					else if (c == '/' && escapeSolidus)
-						out.append('\\').append('/');
-					else if (c != '\r')
-						out.append(c);
-				} else {
-					out.append(c);
-				}
-			}
-		}
-		q();
-		return this;
-	}
-
-	/**
-	 * Serializes the specified object as a JSON attribute name.
-	 * @param o The object being serialized.
-	 * @return This object (for method chaining).
-	 * @throws IOException Should never happen.
-	 */
-	public JsonSerializerWriter attr(Object o) throws IOException {
-		/*
-		 * Converts a Java string to an acceptable JSON attribute name. If
-		 * useStrictJson is false, then quotes will only be used if the attribute
-		 * name consists of only alphanumeric characters.
-		 */
-		boolean doConvert = ! laxMode;		// Always convert when not in lax mode.
-
-		String s = null;
-
-		// If the attribute is null, it must always be printed as null without quotes.
-		// Technically, this isn't part of the JSON spec, but it does allow for null key values.
-		if (o == null) {
-			s = "null";
-			doConvert = false;
-
-		} else {
-			s = o.toString();
-
-			// Look for characters that would require the attribute to be quoted.
-			// All possible numbers should be caught here.
-			if (! doConvert) {
-				for (int i = 0; i < s.length() && ! doConvert; i++) {
-					char c = s.charAt(i);
-					doConvert |= ! (i == 0 ? validFirstAttrChars.contains(c) : validAttrChars.contains(c));
-				}
-			}
-
-			// Reserved words and blanks must be quoted.
-			if (! doConvert) {
-				if (s.isEmpty() || reservedWords.contains(s))
-					doConvert = true;
-			}
-		}
-
-		// If no conversion necessary, just print the attribute as-is.
-		if (doConvert)
-			stringValue(s);
-		else
-			out.append(s);
-
-		return this;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter cr(int depth) throws IOException {
-		super.cr(depth);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter appendln(int indent, String text) throws IOException {
-		super.appendln(indent, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter appendln(String text) throws IOException {
-		super.appendln(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter append(int indent, String text) throws IOException {
-		super.append(indent, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter append(int indent, char c) throws IOException {
-		super.append(indent, c);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter s() throws IOException {
-		super.s();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter q() throws IOException {
-		super.q();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter i(int indent) throws IOException {
-		super.i(indent);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter nl() throws IOException {
-		super.nl();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter append(Object text) throws IOException {
-		super.append(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter append(String text) throws IOException {
-		super.append(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter appendIf(boolean b, String text) throws IOException {
-		super.appendIf(b, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter appendIf(boolean b, char c) throws IOException {
-		super.appendIf(b, c);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public JsonSerializerWriter append(char c) throws IOException {
-		super.append(c);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/Json.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/Json.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/Json.class
deleted file mode 100755
index b375a8d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/Json.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/json/annotation/Json.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/Json.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/Json.java
deleted file mode 100755
index d4b0f0a..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/Json.java
+++ /dev/null
@@ -1,72 +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.json.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Annotation for specifying various JSON options for the JSON serializers and parsers.
- * <p>
- * 	Can be applied to Java types.
- * <p>
- * 	Can be used for the following:
- * <ul>
- * 	<li>Wrap bean instances inside wrapper object (e.g. <code>{'wrapperAttr':bean}</code>).
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({TYPE})
-@Retention(RUNTIME)
-@Inherited
-public @interface Json {
-
-	/**
-	 * Wraps beans in a JSON object with the specified attribute name.
-	 * <p>
-	 * 	Applies only to {@link ElementType#TYPE}.
-	 * <p>
-	 * 	This annotation can be applied to beans as well as other objects serialized to other types (e.g. strings).
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<ja>@Json</ja>(wrapperAttr=<js>"myWrapper"</js>)
-	 * 	<jk>public class</jk> MyBean {
-	 * 		<jk>public int</jk> f1 = 123;
-	 * 	}
-	 * </p>
-	 * <p>
-	 * 	Without the <ja>@Xml</ja> annotations, serializing this bean as JSON would have produced the following...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	{
-	 * 		f1: 123
-	 * 	}
-	 * </p>
-	 * <p>
-	 * 	With the annotations, serializing this bean as XML produces the following...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	{
-	 * 		myWrapper: {
-	 * 			f1: 123
-	 * 		}
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String wrapperAttr() default "";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/package.html
deleted file mode 100755
index 3d37d51..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/annotation/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>JSON annotations</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/json/doc-files/Example_HTML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_HTML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_HTML.png
deleted file mode 100755
index b4a3576..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_HTML.png 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/json/doc-files/Example_JSON.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSON.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSON.png
deleted file mode 100755
index 13b5c22..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSON.png 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/json/doc-files/Example_JSONSchema.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSONSchema.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSONSchema.png
deleted file mode 100755
index bf1cdc6..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSONSchema.png 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/json/doc-files/Example_JSONSimple.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSONSimple.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSONSimple.png
deleted file mode 100755
index 935e8a9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/doc-files/Example_JSONSimple.png 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/json/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/package.html
deleted file mode 100755
index d9a78ec..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/package.html
+++ /dev/null
@@ -1,1460 +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>JSON serialization and parsing support</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='#Overview'>JSON support overview</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#OverviewExample'>Example</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#JsonSerializer'>JsonSerializer class</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
-		<li><p><a class='doclink' href='#Collections'>Collections</a></p>
-		<li><p><a class='doclink' href='#JsonSchemaSupport'>JSON-Schema support</a></p>
-		<li><p><a class='doclink' href='#Recursion'> Non-tree models and recursion detection</a></p>
-		<li><p><a class='doclink' href='#SerializerConfigurableProperties'>Configurable properties</a></p>
-		<li><p><a class='doclink' href='#SerializerOtherNotes'>Other notes</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#JsonParser'>JsonParser class</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#GenericParsing'>Parsing into generic POJO models</a></p>
-		<li><p><a class='doclink' href='#ParserConfigurableProperties'>Configurable properties</a></p>
-		<li><p><a class='doclink' href='#ParserOtherNotes'>Other notes</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#RestApiSupport'>REST API support</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#RestServerSupport'>REST server support</a></p>
-		<ol>
-		<li><p><a class='doclink' href='#RestServletDefault'>Using RestServletDefault</a></p>
-		<li><p><a class='doclink' href='#RestServlet'>Using RestServlet with annotations</a></p>
-		<li><p><a class='doclink' href='#DefaultProvider'>Using JAX-RS DefaultProvider</a></p>
-		<li><p><a class='doclink' href='#BaseProvider'>Using JAX-RS BaseProvider with annotations</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#RestClientSupport'>REST client support</a></p>
-	</ol>	
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="Overview"></a>
-<h2 class='topic' onclick='toggle(this)'>1 -JSON support overview</h2>
-<div class='topic'>
-	<p>
-		Juno supports converting arbitrary POJOs to and from JSON using ultra-efficient serializers and parsers.<br>
-		The JSON serializer converts POJOs directly to JSON without the need for intermediate DOM objects using a highly-efficient state machine.<br>
-		Likewise, the JSON parser creates POJOs directly from JSON without the need for intermediate DOM objects. 
-	</p>
-	<p>
-		Juno can serialize and parse instances of any of the following POJO types:
-	</p>
-	<ul>
-		<li>Java primitives and primitive objects (e.g. <code>String</code>, <code>Integer</code>, <code>Boolean</code>, <code>Float</code>).
-		<li>Java Collections Framework objects (e.g. <code>HashSet</code>, <code>TreeMap</code>) containing anything on this list.
-		<li>Multi-dimensional arrays of any type on this list.
-		<li>Java Beans with properties of any type on this list.
-		<li>Classes with standard transformations to and from <code>Strings</code> (e.g. classes containing <code>toString()</code>, <code>fromString()</code>, <code>valueOf()</code>, <code>constructor(String)</code>).
-		<li>Non-serializable classes and properties with associated <code>PojoFilters</code> that convert them to serializable forms.
-	</ul>
-	<p>
-		Refer to <a href='../package-summary.html#PojoCategories' class='doclink'>POJO Categories</a> for a complete definition of supported POJOs.
-	</p>
-	<h6 class='topic'>Prerequisites</h6>
-	<p>
-		The Juno JSON serialization and parsing support does not require any external prerequisites.  
-		It only requires Java 1.6 or above.
-	</p>
-
-	<!-- ======================================================================================================== -->
-	<a id="OverviewExample"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - JSON support overview - example</h3>
-	<div class='topic'>
-		<p>
-			The example shown here is from the Address Book resource located in the <code>com.ibm.juno.sample.war</code> application.<br>
-			The POJO model consists of a <code>List</code> of <code>Person</code> beans, with each <code>Person</code> containing
-				zero or more <code>Address</code> beans.
-		</p>
-		<p>
-			When you point a browser at <code>/sample/addressBook</code>, the POJO is rendered as HTML:
-		</p>
-		<img class='bordered' src="doc-files/Example_HTML.png">
-		<p>
-			By appending <code>?Accept=<i>mediaType</i>&plainText=true</code> to the URL, you can view the data in the various supported JSON formats:
-		</p>
-		
-		<h6 class='figure'>Normal JSON</h6>
-		<img class='bordered' src="doc-files/Example_JSON.png">
-		
-		<h6 class='figure'>Simple JSON</h6>
-		<img class='bordered' src="doc-files/Example_JSONSimple.png">
-
-		<p>
-			In addition to serializing POJOs to JSON, Juno includes support for serializing POJO metamodels to JSON Schema.
-		</p>
-		
-		<h6 class='figure'>JSON Schema</h6>
-		<img class='bordered' src="doc-files/Example_JSONSchema.png">
-		
-		<p>
-			The JSON data type produced depends on the Java object type being serialized.
-		</p>
-		<ul>
-			<li>Primitives and primitive objects are converted to JSON primitives.<br>
-			<li>Beans and Maps are converted to JSON objects.<br>
-			<li>Collections and arrays are converted to JSON arrays.<br>
-			<li>Anything else is converted to JSON strings.
-		</ul>
-			
-		<h6 class='figure'>Examples</h6>
-			<table class='styled'>
-			<tr>
-				<th>POJO type</th>
-				<th>Example</th>
-				<th>Serialized form</th>
-			</tr>
-			<tr>
-				<td>String</td>
-				<td><code>serializer.serialize(<js>"foobar"</js>);</code></td>
-				<td><code><js>'foobar'</js></code>
-			</tr>
-			<tr>
-				<td>Number</td>
-				<td><code>serializer.serialize(123);</code></td>
-				<td><code><jk>123</jk></code>
-			</tr>
-			<tr>
-				<td>Boolean</td>
-				<td><code>serializer.serialize(<jk>true</jk>);</code></td>
-				<td><code><jk>true</jk></code>
-			</tr>
-			<tr>
-				<td>Null</td>
-				<td><code>serializer.serialize(<jk>null</jk>);</code></td>
-				<td><code><jk>null</jk></code>
-			</tr>
-			<tr>
-				<td>Beans with properties of any type on this list</td>
-				<td><code>serializer.serialize(<jk>new</jk> MyBean());</code></td>
-				<td><code>{p1:<js>'val1'</js>,p2:<jk>true</jk>}</code>
-			</tr>
-			<tr>
-				<td>Maps with values of any type on this list</td>
-				<td><code>serializer.serialize(<jk>new</jk> TreeMap());</code></td>
-				<td><code>{key1:<js>'val1'</js>,key2:<jk>true</jk>}</code>
-			</tr>
-			<tr>
-				<td>Collections and arrays of any type on this list</td>
-				<td><code>serializer.serialize(<jk>new</jk> Object[]{1,<js>"foo"</js>,<jk>true</jk>});</code></td>
-				<td><code>[1,'foo',true]</code>
-			</tr>
-		</table>
-		<p>
-			In addition, filters can be used to convert non-serializable POJOs into serializable forms, such as converting 
-				<code>Calendar</code> object to ISO8601 strings, or <code><jk>byte</jk>[]</code> arrays to Base-64 encoded strings.<br>
-			These filters can be associated at various levels:
-		</p>
-		<ul>
-			<li>On serializer and parser instances to handle all objects of the class type globally.
-			<li>On classes through the <code><ja>@Bean</ja></code> annotation.
-			<li>On bean properties through the <code><ja>@BeanProperty</ja></code> annotations.
-		</ul>
-		<p>
-			For more information about filters, refer to {@link com.ibm.juno.core.filter}.
-		</p>
-	</div>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="JsonSerializer"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - JsonSerializer class</h2>
-<div class='topic'>
-	<p>
-		{@link com.ibm.juno.core.json.JsonSerializer} is the class used to convert POJOs to JSON.<br>
-		{@link com.ibm.juno.core.json.JsonSchemaSerializer} is the class used to generate JSON-Schema from POJOs.<br>
-	</p>	
-	<p>
-		The JSON serializer includes several configurable settings.<br>
-		Static reusable instances of Json serializers are provided with commonly-used settings:
-	</p>
-	<ul>
-		<li>{@link com.ibm.juno.core.json.JsonSerializer#DEFAULT} - All default settings
-		<li>{@link com.ibm.juno.core.json.JsonSerializer#DEFAULT_LAX} - Single quotes, only quote attributes when necessary.
-		<li>{@link com.ibm.juno.core.json.JsonSerializer#DEFAULT_LAX_READABLE} - Readable output.
-	</ul>
-	<h6 class='topic'>Notes about examples</h6>
-	<p>
-		The examples shown in this document will use single-quote, readable settings.<br>
-		For brevity, the examples will use public fields instead of getters/setters to reduce the size of the examples.<br>
-		In the real world, you'll typically want to use standard bean getters and setters.
-	</p>
-	<p>
-		To start off simple, we'll begin with the following simplified bean and build upon it.
-	</p>
-	<p class='bcode'>
-	<jk>public class</jk> Person {
-		<jc>// Bean properties</jc>
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>name</jf>;
-
-		<jc>// Bean constructor (needed by parser)</jc>
-		<jk>public</jk> Person() {}
-
-		<jc>// Normal constructor</jc>
-		<jk>public</jk> Person(<jk>int</jk> id, String name) {
-			<jk>this</jk>.<jf>id</jf> = id;
-			<jk>this</jk>.<jf>name</jf> = name;
-		}
-	}
-	</p>
-	<p>
-		The following code shows how to convert this to simple JSON:
-	</p>
-	<p class='bcode'>
-	<jc>// Use serializer with readable output, simple mode.</jc>
-	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>;
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>);
-
-	<jc>// Serialize the bean to JSON.</jc>
-	String json = s.serialize(p);
-	</p>
-	<p>
-		We could have also created a new serializer with the same settings using the following code:
-	</p>
-	<p class='bcode'>
-	JsonSerializer s = <jk>new</jk> JsonSerializer()
-		.setProperty(SerializerProperties.<jsf>SERIALIZER_useIndentation</jsf>, <jk>true</jk>)
-		.setProperty(JsonSerializerProperties.<jsf>JSON_useWhitespace</jsf>, <jk>true</jk>)
-		.setProperty(JsonSerializerProperties.<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
-		.setProperty(SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
-	</p>
-	
-	<p>
-		The code above produces the following output:
-	</p>
-	<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>
-	}
-	</p>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="BeanAnnotations"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.1 - @Bean and @BeanProperty annotations</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.core.annotation.Bean @Bean} and {@link com.ibm.juno.core.annotation.BeanProperty @BeanProperty} annotations
-				are used to customize the behavior of beans across the entire framework.<br>
-			They have various uses:
-		</p>
-		<ul>
-			<li>Hiding bean properties.
-			<li>Specifying the ordering of bean properties.
-			<li>Overriding the names of bean properties.
-			<li>Associating filters at both the class and property level (to convert non-serializable POJOs to serializable forms).
-		</ul>
-		<p>
-			For example, we now add a <code>birthDate</code> property, and associate a filter with it to transform
-				it to an ISO8601 date-time string in GMT time.<br>
-			We'll also add a couple of <code>URI</code> properties.<br>
-			By default, <code>Calendars</code> are treated as beans by the framework, which is usually not how you want them serialized.<br>
-			Using filters, we can convert them to standardized string forms.
-		</p>
-		<p class='bcode'>	
-	<jk>public class</jk> Person {
-		<jc>// Bean properties</jc>
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>name</jf>;
-		<jk>public</jk> URI <jf>uri</jf>;
-		<jk>public</jk> URI <jf>addressBookUri</jf>;
-
-		<ja>@BeanProperty</ja>(filter=CalendarFilter.ISO8601DTZ.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
-
-
-		<jc>// Bean constructor (needed by parser)</jc>
-		<jk>public</jk> Person() {}
-
-		<jc>// Normal constructor</jc>
-		<jk>public</jk> Person(<jk>int</jk> id, String name, String uri, String addressBookUri, String birthDate) <jk>throws</jk> Exception {
-			<jk>this</jk>.<jf>id</jf> = id;
-			<jk>this</jk>.<jf>name</jf> = name;
-			<jk>this</jk>.<jf>uri</jf> = <jk>new</jk> URI(uri);
-			<jk>this</jk>.<jf>addressBookUri</jf> = <jk>new</jk> URI(addressBookUri);
-			<jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> GregorianCalendar();
-			<jk>this</jk>.<jf>birthDate</jf>.setTime(DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
-		}
-	}
-		</p>
-		<p>
-			Next, we alter our code to pass in the birthdate:
-		</p>
-		<p class='bcode'>
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-		</p>
-		<p>
-			Now when we rerun the sample code, we'll get the following:
-		</p>
-		<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>
-	}
-		</p>
-		<p>
-			Another useful feature is the {@link com.ibm.juno.core.annotation.Bean#propertyNamer()} annotation that allows you to plug in your own
-				logic for determining bean property names.<br>
-			The {@link com.ibm.juno.core.PropertyNamerDashedLC} is an example of an alternate property namer.
-			It converts bean property names to lowercase-dashed format.
-		</p>
-		<h6 class='figure'>Example</h6>
-		<p class='bcode'>	
-	<ja>@Bean</ja>(propertyNamer=PropertyNamerDashedLC.<jk>class</jk>)
-	<jk>public class</jk> Person {
-		...
-		</p>
-		<h6 class='figure'>Results</h6>
-		<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		<js>'address-book-uri'</js>: <js>'http://sample/addressBook'</js>, 
-		<js>'birth-date'</js>: <js>'1946-08-12T00:00:00Z'</js>
-	}
-		</p>
-	</div>
-	
-		
-	<!-- ======================================================================================================== -->
-	<a id="Collections"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.2 - Collections</h3>
-	<div class='topic'>
-		<p>
-			In our example, let's add a list-of-beans property to our sample class:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> Person {
-		
-		<jc>// Bean properties</jc>
-		<jk>public</jk> LinkedList&lt;Address&gt; <jf>addresses</jf> = <jk>new</jk> LinkedList&lt;Address&gt;();
-		...
-	}
-		</p>
-		<p>
-			The <code>Address</code> class has the following properties defined:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> Address {
-
-		<jc>// Bean properties</jc>
-		<jk>public</jk> URI <jf>uri</jf>;
-		<jk>public</jk> URI <jf>personUri</jf>;
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>, <jf>state</jf>;
-		<jk>public int</jk> <jf>zip</jf>;
-		<jk>public boolean</jk> <jf>isCurrent</jf>;
-	}
-		</p>
-		<p>
-			Next, add some quick-and-dirty code to add an address to our person bean:
-		</p>
-		<p class='bcode'>
-	<jc>// Use serializer with readable output, simple mode.</jc>
-	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>;
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-	Address a = <jk>new</jk> Address();
-	a.<jf>uri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/address/1"</js>);
-	a.<jf>personUri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/person/1"</js>);
-	a.<jf>id</jf> = 1;
-	a.<jf>street</jf> = <js>"100 Main Street"</js>;
-	a.<jf>city</jf> = <js>"Anywhereville"</js>;
-	a.<jf>state</jf> = <js>"NY"</js>;
-	a.<jf>zip</jf> = 12345;
-	a.<jf>isCurrent</jf> = <jk>true</jk>;
-	p.<jf>addresses</jf>.add(a);	
-		</p>
-		<p>
-			Now when we run the sample code, we get the following:
-		</p>
-		<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>, 
-				id: <jk>1</jk>, 
-				street: <js>'100 Main Street'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				state: <js>'NY'</js>, 
-				zip: <jk>12345</jk>, 
-				isCurrent: <jk>true</jk>
-			}
-		]
-	}
-		</p>
-	</div>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="JsonSchemaSupport"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.3 - JSON-Schema support</h3>
-	<div class='topic'>
-		<p>
-			Juno provides the {@link com.ibm.juno.core.json.JsonSchemaSerializer} class for generating JSON-Schema documents
-				that describe the output generated by the {@link com.ibm.juno.core.json.JsonSerializer} class.<br>
-			This class shares the same properties as <code>JsonSerializer</code>.<br>
-			For convenience the {@link com.ibm.juno.core.json.JsonSerializer#getSchemaSerializer()} method 
-				has been added for creating instances of schema serializers from the regular serializer instance.
-		</p>
-		<p>
-			<i>Note:</i> As of this writing, JSON-Schema has not been standardized, so the output generated by the schema
-				serializer may be subject to future modifications.
-		</p>
-		<p>
-			Lets start with the classes from the previous examples:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> Person {
-		<jc>// Bean properties</jc>
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>name</jf>;
-		<jk>public</jk> URI <jf>uri</jf>;
-		<jk>public</jk> URI <jf>addressBookUri</jf>;
-		<ja>@BeanProperty</ja>(filter=CalendarFilter.ISO8601DTZ.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
-		<jk>public</jk> LinkedList&lt;Address&gt; <jf>addresses</jf> = <jk>new</jk> LinkedList&lt;Address&gt;();
-
-		<jc>// Bean constructor (needed by parser)</jc>
-		<jk>public</jk> Person() {}
-
-		<jc>// Normal constructor</jc>
-		<jk>public</jk> Person(<jk>int</jk> id, String name, String uri, String addressBookUri, String birthDate) <jk>throws</jk> Exception {
-			<jk>this</jk>.<jf>id</jf> = id;
-			<jk>this</jk>.<jf>name</jf> = name;
-			<jk>this</jk>.<jf>uri</jf> = <jk>new</jk> URI(uri);
-			<jk>this</jk>.<jf>addressBookUri</jf> = <jk>new</jk> URI(addressBookUri);
-			<jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> GregorianCalendar();
-			<jk>this</jk>.<jf>birthDate</jf>.setTime(DateFormat.getDateInstance(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
-		}
-	}
-
-	<jk>public class</jk> Address {
-		<jc>// Bean properties</jc>
-		<jk>public</jk> URI <jf>uri</jf>;
-		<jk>public</jk> URI <jf>personUri</jf>;
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>, <jf>state</jf>;
-		<jk>public int</jk> <jf>zip</jf>;
-		<jk>public boolean</jk> <jf>isCurrent</jf>;
-	}
-		</p>
-		<p>
-			The code for creating our POJO model and generating JSON-Schema is shown below:
-		</p>
-		<p class='bcode'>
-	<jc>// Get the schema serializer for one of the default JSON serializers.</jc>
-	JsonSchemaSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.getSchemaSerializer();
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-	Address a = <jk>new</jk> Address();
-	a.<jf>uri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/address/1"</js>);
-	a.<jf>personUri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/person/1"</js>);
-	a.<jf>id</jf> = 1;
-	a.<jf>street</jf> = <js>"100 Main Street"</js>;
-	a.<jf>city</jf> = <js>"Anywhereville"</js>;
-	a.<jf>state</jf> = <js>"NY"</js>;
-	a.<jf>zip</jf> = 12345;
-	a.<jf>isCurrent</jf> = <jk>true</jk>;
-	p.<jf>addresses</jf>.add(a);
-
-	<jc>// Get the JSON Schema corresponding to the JSON generated above.</jc>
-	String jsonSchema = s.serialize(p);
-		</p>
-		<h6 class='figure'>Results</h6>
-		<p class='bcode'>
-	{
-		type: <js>'object'</js>, 
-		description: <js>'com.ibm.juno.sample.Person'</js>, 
-		properties: {
-			id: {
-				type: <js>'number'</js>, 
-				description: <js>'int'</js>
-			}, 
-			name: {
-				type: <js>'string'</js>, 
-				description: <js>'java.lang.String'</js>
-			}, 
-			uri: {
-				type: <js>'any'</js>, 
-				description: <js>'java.net.URI'</js>
-			}, 
-			addressBookUri: {
-				type: <js>'any'</js>, 
-				description: <js>'java.net.URI'</js>
-			}, 
-			birthDate: {
-				type: <js>'any'</js>, 
-				description: <js>'java.util.Calendar'</js>
-			}, 
-			addresses: {
-				type: <js>'array'</js>, 
-				description: <js>'java.util.LinkedList&lt;com.ibm.juno.sample.Address&gt;'</js>, 
-				items: {
-					type: <js>'object'</js>, 
-					description: <js>'com.ibm.juno.sample.Address'</js>, 
-					properties: {
-						uri: {
-							type: <js>'any'</js>, 
-							description: <js>'java.net.URI'</js>
-						}, 
-						personUri: {
-							type: <js>'any'</js>, 
-							description: <js>'java.net.URI'</js>
-						}, 
-						id: {
-							type: <js>'number'</js>, 
-							description: <js>'int'</js>
-						}, 
-						street: {
-							type: <js>'string'</js>, 
-							description: <js>'java.lang.String'</js>
-						}, 
-						city: {
-							type: <js>'string'</js>, 
-							description: <js>'java.lang.String'</js>
-						}, 
-						state: {
-							type: <js>'string'</js>, 
-							description: <js>'java.lang.String'</js>
-						}, 
-						zip: {
-							type: <js>'number'</js>, 
-							description: <js>'int'</js>
-						}, 
-						isCurrent: {
-							type: <js>'boolean'</js>, 
-							description: <js>'boolean'</js>
-						}
-					}
-				}
-			}
-		}
-	}
-		</p>
-	</div>
-
-
-	<!-- ======================================================================================================== -->
-	<a id="Recursion"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.4 - Non-tree models and recursion detection</h3>
-	<div class='topic'>
-		<p>
-			The JSON serializer is designed to be used against POJO tree structures. <br> 
-			It expects that there not be loops in the POJO model (e.g. children with references to parents, etc...).<br>
-			If you try to serialize models with loops, you will usually cause a <code>StackOverflowError</code> to 
-				be thrown (if {@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_maxDepth} is not reached first).
-		</p>
-		<p>
-			If you still want to use the JSON serializer on such models, Juno provides the 
-				{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_detectRecursions} setting.<br>
-			It tells the serializer to look for instances of an object in the current branch of the tree and
-				skip serialization when a duplicate is encountered.
-		</p>
-		<p>
-			For example, let's make a POJO model out of the following classes:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> A {
-		<jk>public</jk> B b;
-	}
-	
-	<jk>public class</jk> B {
-		<jk>public</jk> C c;
-	}
-	
-	<jk>public class</jk> C {
-		<jk>public</jk> A a;
-	}
-		</p>
-		<p>
-			Now we create a model with a loop and serialize the results.
-		</p>
-		<p class='bcode'>
-	<jc>// Clone an existing serializer and set property for detecting recursions.</jc>
-	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.clone().setProperty(SerializerProperties.<jsf>SERIALIZER_detectRecursions</jsf>, <jk>true</jk>);
-
-	<jc>// Create a recursive loop.</jc>
-	A a = <jk>new</jk> A();
-	a.<jf>b</jf> = <jk>new</jk> B();
-	a.<jf>b</jf>.<jf>c</jf> = <jk>new</jk> C();
-	a.<jf>b</jf>.<jf>c</jf>.<jf>a</jf> = a;
-	
-	<jc>// Serialize to JSON.</jc>
-	String json = s.serialize(a);
-		</p>
-		<p>
-			What we end up with is the following, which does not serialize the contents of the <code>c</code> field:
-		</p>
-		<p class='bcode'>
-	{
-		b: {
-			c: {
-			}
-		}
-	}
-		</p>
-		<p>
-			Without recursion detection enabled, this would cause a stack-overflow error.
-		</p>
-		<p>
-			Recursion detection introduces a performance penalty of around 20%.<br>
-			For this reason the setting is disabled by default.
-		</p>
-	</div>
-
-
-	<!-- ======================================================================================================== -->
-	<a id="SerializerConfigurableProperties"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.5 - Configurable properties</h3>
-	<div class='topic'>
-		<p>
-			The full list of configurable settings applicable to the <code>JsonSerializer</code> class is shown below:
-		</p>
-		<table class='styled' style='border-collapse: collapse;'>
-			<tr><th>Property</th><th>Short Description</th></tr>
-			<tr>
-				<td>{@link com.ibm.juno.core.json.JsonSerializerProperties#JSON_simpleMode}</td>
-				<td>Simple JSON mode</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.json.JsonSerializerProperties#JSON_useWhitespace}</td>
-				<td>Use whitespace in output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_maxDepth}</td>
-				<td>Maximum serialization depth</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_detectRecursions}</td>
-				<td>Automatically detect POJO recursions</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_useIndentation}</td>
-				<td>Use indentation in output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_quoteChar}</td>
-				<td>Quote character</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimNullProperties}</td>
-				<td>Trim null bean property values from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimEmptyLists}</td>
-				<td>Trim empty lists and arrays from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimEmptyMaps}</td>
-				<td>Trim empty maps from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_relativeUriBase}</td>
-				<td>URI context root for relative URIs</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_absolutePathUriBase}</td>
-				<td>URI authority for absolute path relative URIs</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireDefaultConstructor}</td>
-				<td>Beans require no-arg constructors</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSerializable}</td>
-				<td>Beans require <code>Serializable</code> interface</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSettersForGetters}</td>
-				<td>Beans require setters for getters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSomeProperties}</td>
-				<td>Beans require some properties</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanConstructorVisibility}</td>
-				<td>Look for bean constructors with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanClassVisibility}</td>
-				<td>Look for bean classes with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanFieldVisibility}</td>
-				<td>Look for bean fields with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_methodVisibility}</td>
-				<td>Look for bean methods with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_useJavaBeanIntrospector}</td>
-				<td>Use Java bean Introspector for determining bean properties</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_useInterfaceProxies}</td>
-				<td>Use interface proxies</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownBeanProperties}</td>
-				<td>Ignore unknown properties</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownNullBeanProperties}</td>
-				<td>Ignore unknown properties with null values</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignorePropertiesWithoutSetters}</td>
-				<td>Ignore properties without setters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreInvocationExceptionsOnGetters}</td>
-				<td>Ignore invocation errors when calling getters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreInvocationExceptionsOnSetters}</td>
-				<td>Ignore invocation errors when calling setters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_addNotBeanPackages}</td>
-				<td>Add to the list of packages whose classes should not be considered beans</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_removeNotBeanPackages}</td>
-				<td>Remove from the list of packages whose classes should not be considered beans</td>
-			</tr>	
-		</table>	
-	</div>		
-
-
-	<!-- ======================================================================================================== -->
-	<a id="SerializerOtherNotes"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.6 - Other notes</h3>
-	<div class='topic'>
-		<ul>
-			<li>Like all other Juno serializers, the JSON serializer is thread safe and maintains an internal cache of bean classes encountered.<br>
-				For performance reasons, it's recommended that serializers be reused whenever possible instead of always creating new instances.
-		</ul>
-	</div>
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="JsonParser"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - JsonParser class</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.core.json.JsonParser} class is the class used to parse JSON back into POJOs.
-	</p>	
-	<p>
-		The JSON parser supports ALL valid JSON, including:
-	</p>
-	<ul>
-		<li>Javascript comments.
-		<li>Single or double quoted values.
-		<li>Quoted (strict) or unquoted (non-strict) attributes.
-		<li>JSON fragments (such as string, numeric, or boolean primitive values).
-		<li>Concatenated strings. 
-	</ul>	
-	<p>
-		A static reusable instance of <code>JsonParser</code> is also provided for convenience:
-	</p>
-	<ul>
-		<li>{@link com.ibm.juno.core.json.JsonParser#DEFAULT}
-	</ul>
-	<p>
-		Let's build upon the previous example and parse the generated JSON back into the original bean.<br>
-		We start with the JSON that was generated.
-	</p>
-	<p class='bcode'>
-	<jc>// Use serializer with readable output, simple mode.</jc>
-	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>;
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-	Address a = <jk>new</jk> Address();
-	a.<jf>uri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/address/1"</js>);
-	a.<jf>personUri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/person/1"</js>);
-	a.<jf>id</jf> = 1;
-	a.<jf>street</jf> = <js>"100 Main Street"</js>;
-	a.<jf>city</jf> = <js>"Anywhereville"</js>;
-	a.<jf>state</jf> = <js>"NY"</js>;
-	a.<jf>zip</jf> = 12345;
-	a.<jf>isCurrent</jf> = <jk>true</jk>;
-	p.<jf>addresses</jf>.add(a);	
-
-	<jc>// Serialize the bean to JSON.</jc>
-	String json = s.serialize(p);
-	</p>
-	<p>
-		This code produced the following:
-	</p>
-	<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>, 
-				id: <jk>1</jk>, 
-				street: <js>'100 Main Street'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				state: <js>'NY'</js>, 
-				zip: <jk>12345</jk>, 
-				isCurrent: <jk>true</jk>
-			}
-		]
-	}
-	</p>
-	<p>
-		The code to convert this back into a bean is:
-	</p>
-	<p class='bcode'>
-	<jc>// Parse it back into a bean using the reusable JSON parser.</jc>
-	Person p = JsonParser.<jsf>DEFAULT</jsf>.parse(json, Person.<jk>class</jk>);
-
-	<jc>// Render it back as JSON.</jc>
-	json = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(p);
-	</p>
-	<p>
-		We print it back out to JSON to show that all the data has been preserved:
-	</p>
-	<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>, 
-				id: <jk>1</jk>, 
-				street: <js>'100 Main Street'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				state: <js>'NY'</js>, 
-				zip: <jk>12345</jk>, 
-				isCurrent: <jk>true</jk>
-			}
-		]
-	}	
-	</p>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="GenericParsing"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.1 - Parsing into generic POJO models</h3>
-	<div class='topic'>
-		<p>
-			The JSON parser is not limited to parsing back into the original bean classes.<br>  
-			If the bean classes are not available on the parsing side, the parser can also be used to 
-				parse into a generic model consisting of <code>Maps</code>, <code>Collections</code>, and primitive
-				objects.
-		</p>
-		<p>
-			You can parse into any <code>Map</code> type (e.g. <code>HashMap</code>, <code>TreeMap</code>), but
-				using {@link com.ibm.juno.core.ObjectMap} is recommended since it has many convenience methods
-				for converting values to various types.<br> 
-			The same is true when parsing collections.  You can use any Collection (e.g. <code>HashSet</code>, <code>LinkedList</code>)
-				or array (e.g. <code>Object[]</code>, <code>String[]</code>, <code>String[][]</code>), but using 
-				{@link com.ibm.juno.core.ObjectList} is recommended.
-		</p>
-		<p>
-			When the map or list type is not specified, or is the abstract <code>Map</code>, <code>Collection</code>, or <code>List</code> types, 
-				the parser will use <code>ObjectMap</code> and <code>ObjectList</code> by default.
-		</p>
-		<p>
-			Starting back with our original JSON:
-		</p>
-		<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>, 
-				id: <jk>1</jk>, 
-				street: <js>'100 Main Street'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				state: <js>'NY'</js>, 
-				zip: <jk>12345</jk>, 
-				isCurrent: <jk>true</jk>
-			}
-		]
-	}
-		</p>
-		<p>
-			We can parse this into a generic <code>ObjectMap</code>:
-		</p>
-		<p class='bcode'>	
-	<jc>// Parse JSON into a generic POJO model.</jc>
-	ObjectMap m = JsonParser.<jsf>DEFAULT</jsf>.parse(json, ObjectMap.<jk>class</jk>);
-
-	<jc>// Convert it back to JSON.</jc>
-	String json = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(m);
-		</p>
-		<p>
-			What we end up with is the exact same output.<br>
-			Even the numbers and booleans are preserved because they are parsed into <code>Number</code> and <code>Boolean</code> objects
-				when parsing into generic models.
-		</p>
-		<p class='bcode'>
-	{
-		id: <jk>1</jk>, 
-		name: <js>'John Smith'</js>, 
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>, 
-				id: <jk>1</jk>, 
-				street: <js>'100 Main Street'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				state: <js>'NY'</js>, 
-				zip: <jk>12345</jk>, 
-				isCurrent: <jk>true</jk>
-			}
-		]
-	}
-		</p>
-		<p>
-			Once parsed into a generic model, various convenience methods are provided on the <code>ObjectMap</code>
-				and <code>ObjectList</code> classes to retrieve values:
-		</p>
-		<p class='bcode'>
-	<jc>// Parse JSON into a generic POJO model.</jc>
-	ObjectMap m = JsonParser.<jsf>DEFAULT</jsf>.parse(json, ObjectMap.<jk>class</jk>);
-
-	<jc>// Get some simple values.</jc>
-	String name = m.getString(<js>"name"</js>);
-	<jk>int</jk> id = m.getInt(<js>"id"</js>);
-
-	<jc>// Get a value convertable from a String.</jc>
-	URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
-
-	<jc>// Get a value using a filter.</jc>
-	CalendarFilter filter = <jk>new</jk> CalendarFilter.ISO8601DTZ();
-	Calendar birthDate = m.get(filter, <js>"birthDate"</js>);
-
-	<jc>// Get the addresses.</jc>
-	ObjectList addresses = m.getObjectList(<js>"addresses"</js>);
-
-	<jc>// Get the first address and convert it to a bean.</jc>
-	Address address = addresses.get(Address.<jk>class</jk>, 0);
-		</p>
-
-		<p>
-			As a general rule, parsing into beans is often more efficient than parsing into generic models.<br>
-			And working with beans is often less error prone than working with generic models.
-		</p>		
-	</div>
-
-
-	<!-- ======================================================================================================== -->
-	<a id="ParserConfigurableProperties"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.2 - Configurable properties</h3>
-	<div class='topic'>
-		<p>
-			The <code>JsonParser</code> class does not currently have any configurable properties.
-		</p>
-	</div>		
-
-
-	<!-- ======================================================================================================== -->
-	<a id="ParserOtherNotes"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.3 - Other notes</h3>
-	<div class='topic'>
-		<ul>
-			<li>Like all other Juno parsers, the JSON parser is thread safe and maintains an internal cache of bean classes encountered.<br>
-				For performance reasons, it's recommended that parser be reused whenever possible instead of always creating new instances.
-		</ul>
-	</div>
-	
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="RestApiSupport"></a>
-<h2 class='topic' onclick='toggle(this)'>4 - REST API support</h2>
-<div class='topic'>
-	<p>
-		Juno provides fully-integrated support for JSON serialization/parsing in the REST server and client APIs.<br>
-		The next two sections describe these in detail.
-	</p>
-
-	<!-- ======================================================================================================== -->
-	<a id="RestServerSupport"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.1 - REST server support</h3>
-	<div class='topic'>
-		<p>
-			There are four general ways of defining REST interfaces with support for JSON.
-			Two using the built-in Juno Server API, and two using the JAX-RS integration component.
-		</p>
-		<ul>
-			<li>Create a servlet that subclasses from {@link com.ibm.juno.server.RestServletDefault}.<br>
-					This includes JSON serialization/parsing support by default, in addition to several other media types.<br><br>
-			<li>Create a servlet that subclasses from {@link com.ibm.juno.server.RestServlet} and specify the
-					a JSON serializer and/or parser using the {@link com.ibm.juno.server.annotation.RestResource#serializers()} and
-					{@link com.ibm.juno.server.annotation.RestResource#parsers()} on the entire servlet class, or 
-					the {@link com.ibm.juno.server.annotation.RestMethod#serializers()} and {@link com.ibm.juno.server.annotation.RestMethod#parsers()}
-					annotations on individual methods within the class.<br><br>
-			<li>Register {@link com.ibm.juno.server.jaxrs.DefaultProvider} with JAX-RS.<br>
-					This includes JSON serialization/parsing support by default, in addition to several other media types.<br><br>
-			<li>Create and register a subclass of {@link com.ibm.juno.server.jaxrs.BaseProvider} and specify the serializers and parsers to use on JAX-RS resources.
-		</ul>
-		<p>
-			In general, the Juno REST server API is much more configurable and easier to use than JAX-RS, but beware that the author may be slightly biased in this statement.
-		</p>
-
-		<!-- ======================================================================================================== -->
-		<a id="RestServletDefault"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.1 - Using RestServletDefault</h4>
-		<div class='topic'>
-			<p>
-				The quickest way to implement a REST resource with JSON support is to create a subclass of {@link com.ibm.juno.server.RestServletDefault}.<br>
-				This class provides support for JSON, XML, HTML, URL-Encoding, and others.
-			</p>
-			<p>
-				The <code>AddressBookResource</code> example shown in the first chapter uses the <code>RestServletJenaDefault</code> class
-					which is a subclass of <code>RestServletDefault</code> with additional support for RDF languages.<br>
-				The start of the class definition is shown below:
-			</p>
-			<p class='bcode'>
-	<jc>// Proof-of-concept resource that shows off the capabilities of working with POJO resources.
-	// Consists of an in-memory address book repository.</jc>
-	<ja>@RestResource</ja>(
-		messages=<js>"nls/AddressBookResource"</js>,
-		properties={
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>),
-			<ja>@Property</ja>(name=HtmlSerializerProperties.<jsf>HTML_uriAnchorText</jsf>, value=<jsf>TO_STRING</jsf>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, value=<js>"$L{title}"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_description</jsf>, value=<js>"$L{description}"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'?method=OPTIONS',doc:'doc'}"</js>)
-		},
-		encoders=GzipEncoder.<jk>class</jk>
-	)
-	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {
-			</p>
-			<p>
-				Notice how serializer and parser properties can be specified using the <code>@RestResource.properties()</code> annotation.<br>
-				The <jsf>SERIALIZER_quoteChar</jsf> is a property common to all serializers, including the JSON serializer.
-				The remaining properties are specific to the HTML serializer.
-			</p>
-			<p>
- 				The <code>$L{...}</code> variable represent localized strings pulled from the resource bundle identified by the <code>messages</code> annotation.
- 				These variables are replaced at runtime based on the HTTP request locale.
-				Several built-in runtime variable types are defined, and the API can be extended to include user-defined variables.
-				See {@link com.ibm.juno.server.RestServlet#getVarResolver()} for more information.
-			</p>
-			<p>
-				This document won't go into all the details of the Juno <code>RestServlet</code> class.<br>
-				Refer to the {@link com.ibm.juno.server} documentation for more information on the REST servlet class in general.
-			</p>
-			<p>
-				The rest of the code in the resource class consists of REST methods that simply accept and return POJOs.<br>
-				The framework takes care of all content negotiation, serialization/parsing, and error handling.<br>
-				Below are 3 of those methods to give you a general idea of the concept:
-			</p>
-			<p class='bcode'>
-	<jc>// GET person request handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>, rc={200,404})
-	<jk>public</jk> Person getPerson(RestRequest req, <ja>@Attr</ja> <jk>int</jk> id) throws Exception {
-		properties.put(HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, req.getPathInfo());
-		<jk>return</jk> findPerson(id);
-	}
-	
-	<jc>// POST person handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/people"</js>, guards=AdminGuard.<jk>class</jk>, rc={307,404})
-	<jk>public void</jk> createPerson(RestResponse res, <ja>@Content</ja> CreatePerson cp) <jk>throws</jk> Exception {
-		Person p = addressBook.createPerson(cp);
-		res.sendRedirect(p.<jf>uri</jf>);
-	}
-
-	<jc>// DELETE person handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"DELETE"</js>, path=<js>"/people/{id}"</js>, guards=AdminGuard.<jk>class</jk>, rc={200,404})
-	<jk>public</jk> String deletePerson(RestResponse res, <ja>@Attr</ja> <jk>int</jk> id) <jk>throws</jk> Exception {
-		Person p = findPerson(id);
-		addressBook.remove(p);
-		<jk>return</jk> <js>"DELETE successful"</js>;			
-	}	
-			</p>
-			<p>
-				The resource class can be registered with the web application like any other servlet, or can be 
-					defined as a child of another resource through the {@link com.ibm.juno.server.annotation.RestResource#children()} annotation.
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="RestServlet"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.2 - Using RestServlet with annotations</h4>
-		<div class='topic'>
-			<p>
-				For fine-tuned control of media types, the {@link com.ibm.juno.server.RestServlet} class 
-					can be subclassed directly.<br>
-				The serializers/parsers can be specified through annotations at the class and/or method levels.
-			</p>
-			<p>
-				An equivalent <code>AddressBookResource</code> class could be defined to only support JSON using
-					the following definition:
-			</p>
-			<p class='bcode'>
-	<ja>@RestResource</ja>(
-		serializers={JsonSerializer.<jk>class</jk>},
-		parsers={JsonParser.<jk>class</jk>},
-		properties={
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		}
-	)
-	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServlet {
-			</p>
-			<p>
-				Likewise, serializers and parsers can be specified/augmented/overridden at the method level like so:
-			</p>
-			<p class='bcode'>
-	<jc>// GET person request handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>, rc={200,404},
-		serializers={JsonSerializer.<jk>class</jk>},
-		parsers={JsonParser.<jk>class</jk>},
-		properties={
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		}
-	)
-	<jk>public</jk> Person getPerson(RestRequest req, <ja>@Attr</ja> <jk>int</jk> id) throws Exception {
-		properties.put(HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, req.getPathInfo());
-		<jk>return</jk> findPerson(id);
-	}
-			</p>
-			<p>
-				The {@link com.ibm.juno.server.annotation.RestMethod#serializersInherit()} and 
-					{@link com.ibm.juno.server.annotation.RestMethod#parsersInherit()} control how various artifacts
-					are inherited from the parent class.<br>
-				Refer to {@link com.ibm.juno.server} for additional information on using these annotations.
-			</p>
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="DefaultProvider"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.3 - Using JAX-RS DefaultProvider</h4>
-		<div class='topic'>
-			<p>
-				JSON media type support in JAX-RS can be achieved by using the {@link com.ibm.juno.server.jaxrs.DefaultProvider} class.<br>
-				It implements the JAX-RS <code>MessageBodyReader</code> and <code>MessageBodyWriter</code> interfaces for all Juno supported media types.
-			</p>
-			<p>
-				The <code>DefaultProvider</code> class definition is shown below:
-			</p>
-			<p class='bcode'>
-	<ja>@Provider</ja>
-	<ja>@Produces</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>,                 <jc>// JsonSerializer</jc>
-		<js>"application/json+simple"</js>,<js>"text/json+simple"</js>,    <jc>// JsonSerializer.Simple</jc>
-		<js>"application/json+schema"</js>,<js>"text/json+schema"</js>,    <jc>// JsonSchemaSerializer</jc>
-		<js>"text/xml"</js>,                                      <jc>// XmlDocSerializer</jc>
-		<js>"text/xml+simple"</js>,                               <jc>// XmlDocSerializer.Simple</jc>
-		<js>"text/xml+schema"</js>,                               <jc>// XmlSchemaDocSerializer</jc>
-		<js>"text/html"</js>,                                     <jc>// HtmlDocSerializer</jc>
-		<js>"application/x-www-form-urlencoded"</js>,             <jc>// UrlEncodingSerializer</jc>
-		<js>"text/xml+soap"</js>,                                 <jc>// SoapXmlSerializer</jc>
-		<js>"application/x-java-serialized-object"</js>           <jc>// JavaSerializedObjectSerializer</jc>
-	})
-	<ja>@Consumes</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>,                 <jc>// JsonParser</jc>
-		<js>"text/xml"</js>,                                      <jc>// XmlParser</jc>
-		<js>"text/html"</js>,                                     <jc>// HtmlParser</jc>
-		<js>"application/x-www-form-urlencoded"</js>,             <jc>// UrlEncodingParser</jc>
-		<js>"application/x-java-serialized-object"</js>           <jc>// JavaSerializedObjectParser</jc>
-	})
-	<ja>@JunoProvider</ja>(
-		serializers={
-			JsonSerializer.<jk>class</jk>,
-			JsonSerializer.Simple.<jk>class</jk>,
-			JsonSchemaSerializer.<jk>class</jk>,
-			XmlDocSerializer.<jk>class</jk>,
-			XmlDocSerializer.Simple.<jk>class</jk>,
-			XmlSchemaDocSerializer.<jk>class</jk>,
-			HtmlDocSerializer.<jk>class</jk>,
-			UrlEncodingSerializer.<jk>class</jk>,
-			SoapXmlSerializer.<jk>class</jk>,
-			JavaSerializedObjectSerializer.<jk>class</jk>
-		},
-		parsers={
-			JsonParser.<jk>class</jk>,
-			XmlParser.<jk>class</jk>,
-			HtmlParser.<jk>class</jk>,
-			UrlEncodingParser.<jk>class</jk>,
-			JavaSerializedObjectParser.<jk>class</jk>,
-		}
-	)
-	<jk>public final class</jk> DefaultProvider <jk>extends</jk> BaseProvider {}
-			</p>
-			<p>
-				That's the entire class.  It consists of only annotations to hook up media types to Juno serializers and parsers.
-				The <ja>@Provider</ja>, <ja>@Produces</ja>, and <ja>@Consumes</ja> annotations are standard JAX-RS annotations, and the <ja>@JunoProvider</ja> annotation is from Juno.
-			</p>
-			<p>
-				To enable the provider, you need to make the JAX-RS environment aware of it.
-				In Wink, this is accomplished by adding an entry to a config file.
-			</p>
-			<p class='bcode'>
-	<xt>&lt;web-app</xt> <xa>version</xa>=<xs>"2.3"</xs><xt>&gt;</xt>
-		<xt>&lt;servlet&gt;</xt>
-			<xt>&lt;servlet-name&gt;</xt>WinkService<xt>&lt;/servlet-name&gt;</xt>
-			<xt>&lt;servlet-class&gt;</xt>org.apache.wink.server.internal.servlet.RestServlet<xt>&lt;/servlet-class&gt;</xt>
-			<xt>&lt;init-param&gt;</xt>
-				<xt>&lt;param-name&gt;</xt>applicationConfigLocation<xt>&lt;/param-name&gt;</xt>
-				<xt>&lt;param-value&gt;</xt>/WEB-INF/wink.cfg<xt>&lt;/param-value&gt;</xt>
-			<xt>&lt;/init-param&gt;</xt>
-		<xt>&lt;/servlet&gt;</xt>
-			</p>
-			<p>
-				Simply include a reference to the provider in the configuration file.
-			<p class='bcode'>
-	com.ibm.juno.server.jaxrs.DefaultProvider
-			</p>
-			<p>
-				Properties can be specified on providers through the {@link com.ibm.juno.server.jaxrs.JunoProvider#properties()} annotation.<br>
-				Properties can also be specified at the method level by using the {@link com.ibm.juno.server.annotation.RestMethod#properties} annotation, like so:
-			</p>
-			<p class='bcode'>
-	<ja>@GET</ja>
-	<ja>@Produces</ja>(<js>"*/*"</js>)
-	<ja>@RestMethod</ja>( <jc>/* Override some properties */</jc>
-		properties={
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		}
-	)
-	<jk>public</jk> Message getMessage() {
-		<jk>return</jk> message;
-	}
-			</p>
-			<h6 class='topic'>Limitations</h6>
-			<p>
-				In general, the Juno REST API is considerably more flexible than the JAX-RS API, since you can specify and override
-					serializers, parsers, properties, filters, converters, guards, etc... at both the class and method levels.<br>
-				Therefore, the JAX-RS API has the following limitations that the Juno Server API does not:
-			</p>
-			<ul>
-				<li>The ability to specify different media type providers at the class and method levels.<br> 
-					For example, you may want to use <code>JsonSerializer</code> with one set of properties on 
-						one class, and another instance with different properties on another class.<br>
-					There is currently no way to define this at the class level.<br>
-					You can override properties at the method level, but this can be cumbersome since it would have to be
-						done for all methods in the resource.<br><br>
-				<li>The Juno Server API allows you to manipulate properties programatically through the {@link com.ibm.juno.server.RestResponse#setProperty(String,Object)}
-					method, and through the {@link com.ibm.juno.server.annotation.Properties} annotation.<br>
-					There is no equivalent in JAX-RS.
-			</ul>
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="BaseProvider"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.4 - Using JAX-RS BaseProvider with annotations</h4>
-		<div class='topic'>
-			<p>
-				To provide support for only JSON media types, you can define your own provider class, like so:
-			</p>
-			<p class='bcode'>
-	<ja>@Provider</ja>
-	<ja>@Produces</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>,                 <jc>// JsonSerializer</jc>
-		<js>"application/json+simple"</js>,<js>"text/json+simple"</js>,    <jc>// JsonSerializer.Simple</jc>
-		<js>"application/json+schema"</js>,<js>"text/json+schema"</js>     <jc>// JsonSchemaSerializer</jc>
-	})
-	<ja>@Consumes</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>                  <jc>// JsonParser</jc>
-	})
-	<ja>@JunoProvider</ja>(
-		serializers={
-			JsonSerializer.<jk>class</jk>,
-			JsonSerializer.Simple.<jk>class</jk>,
-			JsonSchemaSerializer.<jk>class</jk>,
-		},
-		parsers={
-			JsonParser.<jk>class</jk>,
-		}
-		properties={
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		}
-	)
-	<jk>public final class</jk> MyRdfProvider <jk>extends</jk> BaseProvider {}
-			</p>
-			<p>
-				Then register it with Wink the same way as <code>DefaultProvider</code>.
-			</p>
-		</div>
-
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="RestClientSupport"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.2 - REST client support</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient} class provides an easy-to-use REST client interface with 
-				pluggable media type handling using any of the Juno serializers and parsers.<br>
-			Defining a client to support JSON media types on HTTP requests and responses can be done in one line of code:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a client to handle JSON requests and responses.</jc>
-	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>);
-		</p>
-		<p>
-			The client handles all content negotiation based on the registered serializers and parsers.
-		</p>
-		<p>
-			The following code is pulled from the main method of the <code>ClientTest</code> class in the sample web application, and
-				is run against the <code>AddressBookResource</code> class running within the sample app.<br>
-			It shows how the client can be used to interact with the REST API while completely hiding the negotiated content type and working with nothing more than beans.
-		</p>
-		<h6 class='figure'>Example</h6>
-		<p class='bcode'>
-	String root = <js>"http://localhost:9080/sample/addressBook"</js>;
-	
-	<jc>// Get the current contents of the address book</jc>
-	AddressBook ab = client.doGet(root).getResponse(AddressBook.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Number of entries = "</js> + ab.size());
-	
-	<jc>// Delete the existing entries</jc>
-	<jk>for</jk> (Person p : ab) {
-		String r = client.doDelete(p.<jf>uri</jf>).getResponse(String.<jk>class</jk>);
-		System.<jsm>out</jsm>.println(<js>"Deleted person "</js> + p.<jf>name</jf> + <js>", response = "</js> + r);
-	}
-	
-	<jc>// Make sure they're gone</jc>
-	ab = client.doGet(root).getResponse(AddressBook.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Number of entries = "</js> + ab.size());
-	
-	<jc>// Add 1st person again</jc>
-	CreatePerson cp = <jk>new</jk> CreatePerson(
-		<js>"Barack Obama"</js>, 
-		<jsm>toCalendar</jsm>(<js>"Aug 4, 1961"</js>),
-		<jk>new</jk> CreateAddress(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>true</jk>),
-		<jk>new</jk> CreateAddress(<js>"5046 S Greenwood Ave"</js>, <js>"Chicago"</js>, <js>"IL"</js>, 60615, <jk>false</jk>)
-	); 
-	Person p = client.doPost(root + <js>"/people"</js>, cp).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created person "</js> + p.<jf>name</jf> + <js>", uri = "</js> + p.<jf>uri</jf>);
-	
-	<jc>// Add 2nd person again, but add addresses separately</jc>
-	cp = <jk>new</jk> CreatePerson(
-		<js>"George Walker Bush"</js>, 
-		toCalendar(<js>"Jul 6, 1946"</js>)
-	);
-	p = client.doPost(root + <js>"/people"</js>, cp).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created person "</js> + p.<jf>name</jf> + <js>", uri = "</js> + p.<jf>uri</jf>);
-	
-	<jc>// Add addresses to 2nd person</jc>
-	CreateAddress ca = <jk>new</jk> CreateAddress(<js>"43 Prairie Chapel Rd"</js>, <js>"Crawford"</js>, <js>"TX"</js>, 76638, <jk>true</jk>);
-	Address a = client.doPost(p.<jf>uri</jf> + <js>"/addresses"</js>, ca).getResponse(Address.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created address "</js> + a.<jf>uri</jf>);
-				
-	ca = <jk>new</jk> CreateAddress(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>false</jk>);
-	a = client.doPost(p.<jf>uri</jf> + "/addresses"</js>, ca).getResponse(Address.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created address "</js> + a.<jf>uri</jf>);
-	
-	<jc>// Find 1st person, and change name</jc>
-	Person[] pp = client.doGet(root + <js>"?q={name:\"'Barack+Obama'\"}"</js>).getResponse(Person[].<jk>class</jk>);
-	String r = client.doPut(pp[0].<jf>uri</jf> + <js>"/name"</js>, <js>"Barack Hussein Obama"</js>).getResponse(String.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Changed name, response = "</js> + r);
-	p = client.doGet(pp[0].<jf>uri</jf>).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"New name = "</js> + p.<jf>name</jf>);
-		</p>
-		<h6 class='figure'>Results</h6>
-		<p class='bcode'>
-	Number of entries = 2
-	Deleted person Barack Obama, response = DELETE successful
-	Deleted person George Walker Bush, response = DELETE successful
-	Number of entries = 0
-	Created person Barack Obama, uri = http://localhost:9080/sample/addressBook/people/3
-	Created person George Walker Bush, uri = http://localhost:9080/sample/addressBook/people/4
-	Created address http://localhost:9080/sample/addressBook/addresses/7
-	Created address http://localhost:9080/sample/addressBook/addresses/8
-	Changed name, response = PUT successful
-	New name = Barack Hussein Obama
-		</p>
-	</div>
-</div>
-<p align="center"><i><b>*** f�n ***</b></i></p>
-
-</body>
-</html>
\ No newline at end of file


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/Rdf.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/Rdf.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/Rdf.java
deleted file mode 100755
index ec52ab5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/Rdf.java
+++ /dev/null
@@ -1,58 +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.jena.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.jena.*;
-
-/**
- * Annotation for specifying options for RDF serializers.
- * <p>
- * 	Can be applied to Java packages, types, fields, and methods.
- * <p>
- * 	Can be used for the following:
- * <ul>
- * 	<li>Override the default behavior of how collections and arrays are serialized.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({PACKAGE,TYPE,FIELD,METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface Rdf {
-
-	/**
-	 * Sets the XML prefix of this property or class.
-	 * <p>
-	 * 	Must either be matched to a {@link #namespace()} annotation on the same object, parent object, or a {@link RdfNs} with the same name
-	 * 	through the {@link RdfSchema#rdfNs()} annotation on the package.
-	 * </p>
-	 */
-	String prefix() default "";
-
-	/**
-	 * Sets the namespace URI of this property or class.
-	 * <p>
-	 * 	Must be matched with a {@link #prefix()} annotation on this object, a parent object, or a {@link RdfNs} with the same name
-	 * 	through the {@link RdfSchema#rdfNs()} annotation on the package.
-	 */
-	String namespace() default "";
-
-	/**
-	 * The format for how collections (e.g. lists and arrays) are serialized in RDF.
-	 * @see RdfCollectionFormat
-	 */
-	RdfCollectionFormat collectionFormat() default RdfCollectionFormat.DEFAULT;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfNs.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfNs.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfNs.class
deleted file mode 100755
index 44818eb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfNs.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/jena/annotation/RdfNs.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfNs.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfNs.java
deleted file mode 100755
index 96ef14d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfNs.java
+++ /dev/null
@@ -1,37 +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.jena.annotation;
-
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Namespace name/URL mapping pair.
- * <p>
- * 	Used to identify a namespace/URI pair on a {@link RdfSchema#rdfNs()} annotation.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({})
-@Retention(RUNTIME)
-@Inherited
-public @interface RdfNs {
-
-	/**
-	 * RDF namespace prefix.
-	 */
-	String prefix();
-
-	/**
-	 * RDF namespace URL.
-	 */
-	String namespaceURI();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfSchema.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfSchema.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfSchema.class
deleted file mode 100755
index 9e2038d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfSchema.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/jena/annotation/RdfSchema.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfSchema.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfSchema.java
deleted file mode 100755
index 00d6485..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/RdfSchema.java
+++ /dev/null
@@ -1,94 +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.jena.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Identifies the default RDF namespaces at the package level.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target(PACKAGE)
-@Retention(RUNTIME)
-@Inherited
-public @interface RdfSchema {
-
-	/**
-	 * Sets the default RDF prefix for all classes in this and child packages.
-	 * <p>
-	 * 	Must either be matched with a {@link #namespace()} annotation, or an {@link #rdfNs()} mapping with the
-	 * 	same {@link RdfNs#prefix} value.
-	 * </p>
-	 */
-	public String prefix() default "";
-
-	/**
-	 * Sets the default RDF namespace URL for all classes in this and child packages.
-	 * <p>
-	 * 	Must either be matched with a {@link #prefix()} annotation, or an {@link #rdfNs()} mapping with the
-	 * 	same {@link RdfNs#namespaceURI} value.
-	 * </p>
-	 */
-	public String namespace() default "";
-
-	/**
-	 * Lists all namespace mappings to be used on all classes within this package.
-	 * <p>
-	 * 	The purpose of this annotation is to allow namespace mappings to be defined in a single location
-	 * 	and referred to by name through just the {@link Rdf#prefix()} annotation.
-	 * <p>
-	 * 	Inherited by child packages.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p>
-	 * 	Contents of <code>package-info.java</code>...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<jc>// XML namespaces used within this package.</jc>
-	 * 	<ja>@RdfSchema</ja>(prefix=<js>"ab"</js>,
-	 * 		namespaces={
-	 * 			<ja>@RdfNs</ja>(prefix=<js>"ab"</js>, namespaceURI=<js>"http://www.ibm.com/addressBook/"</js>),
-	 * 			<ja>@RdfNs</ja>(prefix=<js>"per"</js>, namespaceURI=<js>"http://www.ibm.com/person/"</js>),
-	 * 			<ja>@RdfNs</ja>(prefix=<js>"addr"</js>, namespaceURI=<js>"http://www.ibm.com/address/"</js>),
-	 * 			<ja>@RdfNs</ja>(prefix=<js>"mail"</js>, namespaceURI="<js>http://www.ibm.com/mail/"</js>)
-	 * 		}
-	 * 	)
-	 * 	<jk>package</jk> com.ibm.sample.addressbook;
-	 * 	<jk>import</jk> com.ibm.juno.core.rdf.annotation.*;
-	 * </p>
-	 * <p>
-	 * 	Class in package using defined namespaces...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<jk>package</jk> com.ibm.sample.addressbook;
-	 *
-	 * 	<jc>// Bean class, override "ab" namespace on package.</jc>
-	 * 	<ja>@Rdf</ja>(prefix=<js>"addr"</js>)
-	 * 	<jk>public class</jk> Address {
-	 *
-	 * 		<jc>// Bean property, use "addr" namespace on class.</jc>
-	 * 		<jk>public int</jk> <jf>id</jf>;
-	 *
-	 * 		<jc>// Bean property, override with "mail" namespace.</jc>
-	 * 		<ja>@Rdf</ja>(prefix=<js>"mail"</js>)
-	 * 		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>, <jf>state</jf>;
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public RdfNs[] rdfNs() default {};
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/package.html
deleted file mode 100755
index 3e8af8d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/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>RDF annotations</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/jena/doc-files/Example_HTML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_HTML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_HTML.png
deleted file mode 100755
index b4a3576..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_HTML.png 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/jena/doc-files/Example_N3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_N3.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_N3.png
deleted file mode 100755
index 16613a4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_N3.png 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/jena/doc-files/Example_NTriple.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_NTriple.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_NTriple.png
deleted file mode 100755
index 9da3ffa..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_NTriple.png 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/jena/doc-files/Example_RDFXML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_RDFXML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_RDFXML.png
deleted file mode 100755
index 13f2b43..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_RDFXML.png 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/jena/doc-files/Example_RDFXMLABBREV.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_RDFXMLABBREV.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_RDFXMLABBREV.png
deleted file mode 100755
index e1ffa09..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_RDFXMLABBREV.png 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/jena/doc-files/Example_Turtle.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_Turtle.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_Turtle.png
deleted file mode 100755
index 0fd2b36..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/doc-files/Example_Turtle.png and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfCollectionFormat.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfCollectionFormat.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfCollectionFormat.java
deleted file mode 100755
index 5b865a1..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfCollectionFormat.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import com.ibm.juno.core.jena.annotation.*;
-
-/**
- * Used in conjunction with the {@link Rdf#collectionFormat() @Rdf.collectionFormat()} annotation to fine-tune how
- * 	classes, beans, and bean properties are serialized, particularly collections.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public enum RdfCollectionFormat {
-
-	/**
-	 * Default formatting (default).
-	 * <p>
-	 * Inherit formatting from parent class or parent package.
-	 *	If no formatting specified at any level, default is {@link #SEQ}.
-	 */
-	DEFAULT,
-
-	/**
-	 * Causes collections and arrays to be rendered as RDF sequences.
-	 */
-	SEQ,
-
-	/**
-	 * Causes collections and arrays to be rendered as RDF bags.
-	 */
-	BAG,
-
-	/**
-	 * Causes collections and arrays to be rendered as RDF lists.
-	 */
-	LIST,
-
-	/**
-	 * Causes collections and arrays to be rendered as multi-valued RDF properties instead of sequences.
-	 * <p>
-	 * 	Note that enabling this setting will cause order of elements in the collection to be lost.
-	 */
-	MULTI_VALUED;
-
-}
\ 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/jena/RdfParser$N3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$N3.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$N3.class
deleted file mode 100755
index 9170a84..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$N3.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/jena/RdfParser$NTriple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$NTriple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$NTriple.class
deleted file mode 100755
index 4a64589..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$NTriple.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/jena/RdfParser$Turtle.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Turtle.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Turtle.class
deleted file mode 100755
index 39cc7e4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Turtle.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/jena/RdfParser$Xml.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Xml.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Xml.class
deleted file mode 100755
index 3398700..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Xml.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/jena/RdfParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.class
deleted file mode 100755
index 8f78101..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.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/jena/RdfParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.java
deleted file mode 100755
index 50fec99..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.java
+++ /dev/null
@@ -1,527 +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.jena;
-
-import static com.ibm.juno.core.jena.Constants.*;
-import static com.ibm.juno.core.jena.RdfProperties.*;
-import static com.ibm.juno.core.utils.StringUtils.*;
-import static com.ibm.juno.core.xml.XmlUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.hp.hpl.jena.util.iterator.*;
-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.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Parses RDF into POJOs.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	Refer to <a class='doclink' href='package-summary.html#ParserConfigurableProperties'>Configurable Properties</a>
- * 		for the entire list of configurable properties.
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * 	The following direct subclasses are provided for language-specific parsers:
- * <ul>
- * 	<li>{@link RdfParser.Xml} - RDF/XML and RDF/XML-ABBREV.
- * 	<li>{@link RdfParser.NTriple} - N-TRIPLE.
- * 	<li>{@link RdfParser.Turtle} - TURTLE.
- * 	<li>{@link RdfParser.N3} - N3.
- * </ul>
- *
- *
- * <h6 class='topic'>Additional Information</h6>
- * <p>
- * 	See <a class='doclink' href='package-summary.html#TOC'>RDF Overview</a> for an overview of RDF support in Juno.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Consumes(value="text/xml+rdf")
-public class RdfParser extends ReaderParser {
-
-	/** Default XML parser, all default settings.*/
-	public static final RdfParser DEFAULT_XML = new RdfParser.Xml().lock();
-
-	/** Default Turtle parser, all default settings.*/
-	public static final RdfParser DEFAULT_TURTLE = new RdfParser.Turtle().lock();
-
-	/** Default N-Triple parser, all default settings.*/
-	public static final RdfParser DEFAULT_NTRIPLE = new RdfParser.NTriple().lock();
-
-	/** Default N3 parser, all default settings.*/
-	public static final RdfParser DEFAULT_N3 = new RdfParser.N3().lock();
-
-
-	/** Consumes RDF/XML input */
-	@Consumes("text/xml+rdf")
-	public static class Xml extends RdfParser {
-		/** Constructor */
-		public Xml() {
-			setProperty(RDF_language, LANG_RDF_XML);
-		}
-	}
-
-	/** Consumes N-Triple input */
-	@Consumes(value="text/n-triple")
-	public static class NTriple extends RdfParser {
-		/** Constructor */
-		public NTriple() {
-			setProperty(RDF_language, LANG_NTRIPLE);
-		}
-	}
-
-	/** Consumes Turtle input */
-	@Consumes(value="text/turtle")
-	public static class Turtle extends RdfParser {
-		/** Constructor */
-		public Turtle() {
-			setProperty(RDF_language, LANG_TURTLE);
-		}
-	}
-
-	/** Consumes N3 input */
-	@Consumes(value="text/n3")
-	public static class N3 extends RdfParser {
-		/** Constructor */
-		public N3() {
-			setProperty(RDF_language, LANG_N3);
-		}
-	}
-
-
-	/** Jena parser properties currently set on this parser. */
-	protected transient RdfParserProperties rpp = new RdfParserProperties();
-
-
-	@SuppressWarnings({"unchecked", "rawtypes"})
-	@Override /* ReaderParser */
-	protected <T> T doParse(Reader in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException {
-
-		in = IOUtils.getBufferedReader(in, estimatedSize);
-
-		RdfParserContext rctx = (RdfParserContext)ctx;
-
-		type = ctx.getBeanContext().normalizeClassMeta(type);
-
-		Model model = rctx.model;
-		RDFReader r = rctx.rdfReader;
-		r.read(model, in, null);
-		BeanContext bc = ctx.getBeanContext();
-
-		List<Resource> roots = getRoots(model, rctx);
-
-		try {
-			// Special case where we're parsing a loose collection of resources.
-			if (rctx.isLooseCollection() && (type.isCollection() || type.isArray())) {
-				Collection c = null;
-				if (type.isArray())
-					c = new ArrayList();
-				else
-					c = (type.canCreateNewInstance(ctx.getOuter()) ? (Collection<?>)type.newInstance(ctx.getOuter()) : new ObjectList(bc));
-				for (Resource resource : roots)
-					c.add(parseAnything(type.getElementType(), resource, null, rctx, ctx.getOuter(), null));
-
-				if (type.isArray())
-					return (T)bc.toArray(type, c);
-				return (T)c;
-			}
-
-		if (roots.isEmpty())
-			return null;
-		if (roots.size() > 1)
-			throw new ParseException("Too many root nodes found in model:  {0}", roots.size());
-		Resource resource = roots.get(0);
-
-			return parseAnything(type, resource, null, rctx, ctx.getOuter(), null);
-
-		} catch (ParseException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new ParseException(e);
-		}
-	}
-
-	/*
-	 * Finds the roots in the model using either the "root" property to identify it,
-	 * 	or by resorting to scanning the model for all nodes with no incoming predicates.
-	 */
-	private List<Resource> getRoots(Model m, RdfParserContext ctx) {
-		List<Resource> l = new LinkedList<Resource>();
-
-		// First try to find the root using the "http://www.ibm.com/juno/root" property.
-		Property root = m.createProperty(ctx.junoNs.getUri(), RDF_junoNs_ROOT);
-		for (ResIterator i  = m.listResourcesWithProperty(root); i.hasNext();)
-			l.add(i.next());
-
-		if (! l.isEmpty())
-			return l;
-
-		// Otherwise, we need to find all resources that aren't objects.
-		// We want to explicitly ignore statements where the subject
-		// and object are the same node.
-		Set<RDFNode> objects = new HashSet<RDFNode>();
-		for (StmtIterator i = m.listStatements(); i.hasNext();) {
-			Statement st = i.next();
-			RDFNode subject = st.getSubject();
-			RDFNode object = st.getObject();
-			if (object.isResource() && ! object.equals(subject))
-				objects.add(object);
-		}
-		for (ResIterator i = m.listSubjects(); i.hasNext();) {
-			Resource r = i.next();
-			if (! objects.contains(r))
-				l.add(r);
-		}
-		return l;
-	}
-
-	private <T> BeanMap<T> parseIntoBeanMap(Resource r2, BeanMap<T> m, RdfParserContext ctx) throws ParseException {
-		BeanMeta<T> bm = m.getMeta();
-		if (bm.hasBeanUriProperty() && r2.getURI() != null)
-			m.putBeanUri(r2.getURI());
-		Property subTypeIdProperty = null;
-		BeanPropertyMeta<T> stp = bm.getSubTypeIdProperty();
-		if (stp != null) {
-			subTypeIdProperty = ctx.getProperty(stp.getName());
-			Statement st = r2.getProperty(subTypeIdProperty);
-			if (st == null)
-				throw new ParseException("Could not find subtype ID property for bean of type ''{0}''", m.getClassMeta());
-			String subTypeId = st.getLiteral().getString();
-			stp.set(m, subTypeId);
-		}
-		for (StmtIterator i = r2.listProperties(); i.hasNext();) {
-			Statement st = i.next();
-			Property p = st.getPredicate();
-			if (p.equals(subTypeIdProperty))
-				continue;
-			String key = XmlUtils.decode(p.getLocalName());
-			BeanPropertyMeta<T> pMeta = m.getPropertyMeta(key);
-			if (pMeta != null) {
-				RDFNode o = st.getObject();
-				ClassMeta<?> cm = pMeta.getClassMeta();
-				if ((cm.isArray() || cm.isCollection()) && isMultiValuedCollections(ctx, pMeta)) {
-					Object val = parseAnything(cm.getElementType(), o, pMeta, ctx, m.getBean(false), key);
-					pMeta.add(m, val);
-				} else {
-					Object val = parseAnything(cm, o, pMeta, ctx, m.getBean(false), key);
-					pMeta.set(m, val);
-				}
-			} else if (! (p.equals(ctx.pRoot) || p.equals(ctx.pClass) || p.equals(subTypeIdProperty))) {
-				if (bm.isSubTyped()) {
-					RDFNode o = st.getObject();
-					Object val = parseAnything(object(), o, null, ctx, m.getBean(false), key);
-					m.put(key, val);
-				} else {
-					onUnknownProperty(ctx, key, m, -1, -1);
-				}
-			}
-		}
-		return m;
-	}
-
-	private boolean isMultiValuedCollections(RdfParserContext ctx, BeanPropertyMeta<?> pMeta) {
-		if (pMeta != null && pMeta.getRdfMeta().getCollectionFormat() != RdfCollectionFormat.DEFAULT)
-			return pMeta.getRdfMeta().getCollectionFormat() == RdfCollectionFormat.MULTI_VALUED;
-		return ctx.getCollectionFormat() == RdfCollectionFormat.MULTI_VALUED;
-	}
-
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	private <T> T parseAnything(ClassMeta<T> nt, RDFNode n, BeanPropertyMeta<?> p, RdfParserContext ctx, Object outer, 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();
-
-		if (! ft.canCreateNewInstance(outer)) {
-			if (n.isResource()) {
-				Statement st = n.asResource().getProperty(ctx.pClass);
-				if (st != null) {
- 					String c = st.getLiteral().getString();
-					ft = nt = (ClassMeta<T>)bc.getClassMetaFromString(c);
-				}
-			}
-		}
-
-		try {
-
-			Object o = null;
-			if (n.isResource() && n.asResource().getURI() != null && n.asResource().getURI().equals(RDF_NIL)) {
-				// Do nothing.  Leave o == null.
-			} else if (ft.isObject()) {
-				if (n.isLiteral()) {
-					o = n.asLiteral().getValue();
-					if (o instanceof String) {
-						String s = o.toString();
-						s = decode(s);
-						if (ctx.trimWhitespace)
-							s = s.trim();
-						o = s;
-					}
-				}
-				else if (n.isResource()) {
-					Resource r = n.asResource();
-					if (ctx.wasAlreadyProcessed(r))
-						o = r.getURI();
-					else if (r.getProperty(ctx.pValue) != null) {
-						o = parseAnything(object(), n.asResource().getProperty(ctx.pValue).getObject(), null, ctx, outer, null);
-					} else if (isSeq(r, ctx)) {
-						o = new ObjectList(bc);
-						parseIntoCollection(r.as(Seq.class), (Collection)o, ft.getElementType(), ctx);
-					} else if (isBag(r, ctx)) {
-						o = new ObjectList(bc);
-						parseIntoCollection(r.as(Bag.class), (Collection)o, ft.getElementType(), ctx);
-					} else if (r.canAs(RDFList.class)) {
-						o = new ObjectList(bc);
-						parseIntoCollection(r.as(RDFList.class), (Collection)o, ft.getElementType(), ctx);
-					} else {
-						// If it has a URI and no child properties, we interpret this as an
-						// external resource, and convert it to just a URL.
-						String uri = r.getURI();
-						if (uri != null && ! r.listProperties().hasNext()) {
-							o = r.getURI();
-						} else {
-							o = new ObjectMap(bc);
-							parseIntoMap(r, (Map)o, null, null, ctx);
-						}
-					}
-				} else {
-					throw new ParseException("Unrecognized node type ''{0}'' for object", n);
-				}
-			} else if (ft.isBoolean()) {
-				o = bc.convertToType(getValue(n, ctx, outer), boolean.class);
-			} else if (ft.isCharSequence()) {
-				String s = decode(getValue(n, ctx, outer).toString());
-				if (ctx.trimWhitespace)
-					s = s.trim();
-				o = s;
-			} else if (ft.isChar()) {
-				o = decode(getValue(n, ctx, outer).toString()).charAt(0);
-			} else if (ft.isNumber()) {
-				o = parseNumber(getValue(n, ctx, outer).toString(), (Class<? extends Number>)ft.getInnerClass());
-			} else if (ft.isMap()) {
-				Resource r = n.asResource();
-				if (ctx.wasAlreadyProcessed(r))
-					return null;
-				Map m = (ft.canCreateNewInstance(outer) ? (Map)ft.newInstance(outer) : new ObjectMap(bc));
-				o = parseIntoMap(r, m, nt.getKeyType(), nt.getValueType(), ctx);
-			} else if (ft.isCollection() || ft.isArray()) {
-				if (ft.isArray())
-					o = new ArrayList();
-				else
-				o = (ft.canCreateNewInstance(outer) ? (Collection<?>)ft.newInstance(outer) : new ObjectList(bc));
-				Resource r = n.asResource();
-				if (ctx.wasAlreadyProcessed(r))
-					return null;
-				if (isSeq(r, ctx)) {
-					parseIntoCollection(r.as(Seq.class), (Collection)o, ft.getElementType(), ctx);
-				} else if (isBag(r, ctx)) {
-					parseIntoCollection(r.as(Bag.class), (Collection)o, ft.getElementType(), ctx);
-				} else if (r.canAs(RDFList.class)) {
-					parseIntoCollection(r.as(RDFList.class), (Collection)o, ft.getElementType(), ctx);
-				} else {
-					throw new ParseException("Unrecognized node type ''{0}'' for collection", n);
-				}
-				if (ft.isArray())
-					o = bc.toArray(ft, (Collection)o);
-			} else if (ft.canCreateNewInstanceFromObjectMap(outer)) {
-				Resource r = n.asResource();
-				if (ctx.wasAlreadyProcessed(r))
-					return null;
-				Map m = new ObjectMap(bc);
-				parseIntoMap(r, m, nt.getKeyType(), nt.getValueType(), ctx);
-				o = ft.newInstanceFromObjectMap(outer, (ObjectMap)m);
-			} else if (ft.canCreateNewBean(outer)) {
-				Resource r = n.asResource();
-				if (ctx.wasAlreadyProcessed(r))
-					return null;
-				BeanMap<?> bm = bc.newBeanMap(outer, ft.getInnerClass());
-				o = parseIntoBeanMap(r, bm, ctx).getBean();
-			} else if (ft.isUri() && n.isResource()) {
-				o = ft.newInstanceFromString(outer, decode(n.asResource().getURI()));
-			} else if (ft.canCreateNewInstanceFromString(outer)) {
-				o = ft.newInstanceFromString(outer, decode(getValue(n, ctx, outer).toString()));
-			} else {
-				throw new ParseException("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 boolean isSeq(RDFNode n, RdfParserContext ctx) {
-		if (n.isResource()) {
-			Statement st = n.asResource().getProperty(ctx.pType);
-			if (st != null)
-				return RDF_SEQ.equals(st.getResource().getURI());
-		}
-		return false;
-	}
-
-	private boolean isBag(RDFNode n, RdfParserContext ctx) {
-		if (n.isResource()) {
-			Statement st = n.asResource().getProperty(ctx.pType);
-			if (st != null)
-				return RDF_BAG.equals(st.getResource().getURI());
-		}
-		return false;
-	}
-
-	private Object getValue(RDFNode n, RdfParserContext ctx, Object outer) throws ParseException {
-		if (n.isLiteral())
-			return n.asLiteral().getValue();
-		if (n.isResource()) {
-			Statement st = n.asResource().getProperty(ctx.pValue);
-			if (st != null) {
-				n = st.getObject();
-				if (n.isLiteral())
-					return n.asLiteral().getValue();
-				return parseAnything(object(), st.getObject(), null, ctx, outer, null);
-			}
-		}
-		throw new ParseException("Unknown value type for node ''{0}''", n);
-	}
-
-	private <K,V> Map<K,V> parseIntoMap(Resource r, Map<K,V> m, ClassMeta<K> keyType, ClassMeta<V> valueType, RdfParserContext ctx) throws ParseException {
-		// Add URI as "uri" to generic maps.
-		if (r.getURI() != null) {
-			K uri = convertAttrToType(m, "uri", keyType);
-			V value = convertAttrToType(m, r.getURI(), valueType);
-			m.put(uri, value);
-		}
-		for (StmtIterator i = r.listProperties(); i.hasNext();) {
-			Statement st = i.next();
-			Property p = st.getPredicate();
-			String key = p.getLocalName();
-			if (! (key.equals("root") && p.getURI().equals(ctx.junoNs.getUri()))) {
-				key = decode(key);
-				RDFNode o = st.getObject();
-				K key2 = convertAttrToType(m, key, keyType);
-				V value = parseAnything(valueType, o, null, ctx, m, key);
-				m.put(key2, value);
-			}
-
-		}
-		// TODO Auto-generated method stub
-		return m;
-	}
-
-	private <E> Collection<E> parseIntoCollection(Container c, Collection<E> l, ClassMeta<E> et, RdfParserContext ctx) throws ParseException {
-		for (NodeIterator ni = c.iterator(); ni.hasNext();) {
-			E e = parseAnything(et, ni.next(), null, ctx, l, null);
-			l.add(e);
-		}
-		return l;
-	}
-
-	private <E> Collection<E> parseIntoCollection(RDFList list, Collection<E> l, ClassMeta<E> et, RdfParserContext ctx) throws ParseException {
-		for (ExtendedIterator<RDFNode> ni = list.iterator(); ni.hasNext();) {
-			E e = parseAnything(et, ni.next(), null, ctx, l, null);
-			l.add(e);
-		}
-		return l;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Parser */
-	public RdfParserContext createContext(ObjectMap op, Method javaMethod, Object outer) {
-		return new RdfParserContext(getBeanContext(), pp, rpp, op, javaMethod, outer);
-	}
-
-	@Override /* CoreApi */
-	public RdfParser setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! rpp.setProperty(property, value))
-			super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public RdfParser setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public RdfParser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public RdfParser addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> RdfParser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public RdfParser setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public RdfParser lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public RdfParser clone() {
-		try {
-			RdfParser c = (RdfParser)super.clone();
-			c.rpp = rpp.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/jena/RdfParserContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.class
deleted file mode 100755
index 32ba6c5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.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/jena/RdfParserContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.java
deleted file mode 100755
index f85e31f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.java
+++ /dev/null
@@ -1,136 +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.jena;
-
-import static com.ibm.juno.core.jena.Constants.*;
-import static com.ibm.juno.core.jena.RdfProperties.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Context object that lives for the duration of a single parse of {@link RdfParser}.
- * <p>
- * 	See {@link ParserContext} for details.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class RdfParserContext extends ParserContext {
-
-	final String rdfLanguage;
-	final Namespace junoNs, junoBpNs;
-	final Property pRoot, pValue, pClass, pType;
-	final Model model;
-	final boolean trimWhitespace, looseCollection;
-	final RDFReader rdfReader;
-	final Set<Resource> urisVisited = new HashSet<Resource>();
-	final RdfCollectionFormat collectionFormat;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param beanContext The bean context being used by the parser.
-	 * @param pp Default general parser properties.
-	 * @param rpp Default Jena parser properties.
-	 * @param op 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.
-	 */
-	protected RdfParserContext(BeanContext beanContext, ParserProperties pp, RdfParserProperties rpp, ObjectMap op, Method javaMethod, Object outer) {
-		super(beanContext, pp, op, javaMethod, outer);
-		ObjectMap jenaSettings = new ObjectMap();
-		jenaSettings.putAll(rpp.jenaSettings);
-		if (op == null || op.isEmpty()) {
-			this.rdfLanguage = rpp.rdfLanguage;
-			this.junoNs = rpp.junoNs;
-			this.junoBpNs = rpp.junoBpNs;
-			this.trimWhitespace = rpp.trimWhitespace;
-			this.collectionFormat = rpp.collectionFormat;
-			this.looseCollection = rpp.looseCollection;
-		} else {
-			this.rdfLanguage = op.getString(RDF_language, rpp.rdfLanguage);
-			this.junoNs = (op.containsKey(RDF_junoNs) ? NamespaceFactory.parseNamespace(op.get(RDF_junoNs)) : rpp.junoNs);
-			this.junoBpNs = (op.containsKey(RDF_junoBpNs) ? NamespaceFactory.parseNamespace(op.get(RDF_junoBpNs)) : rpp.junoBpNs);
-			this.trimWhitespace = op.getBoolean(RdfParserProperties.RDF_trimWhitespace, rpp.trimWhitespace);
-			this.collectionFormat = RdfCollectionFormat.valueOf(op.getString(RDF_collectionFormat, "DEFAULT"));
-			this.looseCollection = op.getBoolean(RDF_looseCollection, rpp.looseCollection);
-		}
-		this.model = ModelFactory.createDefaultModel();
-		addModelPrefix(junoNs);
-		addModelPrefix(junoBpNs);
-		this.pRoot = model.createProperty(junoNs.getUri(), RDF_junoNs_ROOT);
-		this.pValue = model.createProperty(junoNs.getUri(), RDF_junoNs_VALUE);
-		this.pClass = model.createProperty(junoNs.getUri(), RDF_junoNs_CLASS);
-		this.pType = model.createProperty("http://www.w3.org/1999/02/22-rdf-syntax-ns#type");
-		rdfReader = model.getReader(rdfLanguage);
-
-		// Note: NTripleReader throws an exception if you try to set any properties on it.
-		if (! rdfLanguage.equals(LANG_NTRIPLE)) {
-			for (Map.Entry<String,Object> e : jenaSettings.entrySet())
-				rdfReader.setProperty(e.getKey(), e.getValue());
-		}
-	}
-
-	boolean wasAlreadyProcessed(Resource r) {
-		return ! urisVisited.add(r);
-	}
-
-	/**
-	 * Adds the specified namespace as a model prefix.
-	 *
-	 * @param ns The XML namespace.
-	 */
-	public void addModelPrefix(Namespace ns) {
-		model.setNsPrefix(ns.getName(), ns.getUri());
-	}
-
-	/**
-	 * Constructs a <code>Property</code> in the specified namespace in this mode.
-	 *
-	 * @param namespaceUri The namespace URI.
-	 * @param name The property name.
-	 * @return The new property object.
-	 */
-	public Property getProperty(String namespaceUri, String name) {
-		return model.createProperty(namespaceUri, name);
-	}
-
-	/**
-	 * Constructs a <code>Property</code> in the Juno Bean namespace in this mode.
-	 *
-	 * @param name The property name.
-	 * @return The new property object.
-	 */
-	public Property getProperty(String name) {
-		return model.createProperty(junoBpNs.getUri(), name);
-	}
-
-	/**
-	 * Returns the format for serializing collections.
-	 *
-	 * @return The format for serializing collections.
-	 */
-	protected RdfCollectionFormat getCollectionFormat() {
-		return collectionFormat;
-	}
-
-	/**
-	 * Returns the {@link RdfProperties#RDF_looseCollection} property value.
-	 *
-	 * @return The {@link RdfProperties#RDF_looseCollection} property value.
-	 */
-	protected boolean isLooseCollection() {
-		return looseCollection;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.class
deleted file mode 100755
index c475e4b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.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/jena/RdfParserProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.java
deleted file mode 100755
index b6ea048..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.java
+++ /dev/null
@@ -1,68 +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.jena;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Configurable properties on the {@link RdfParser} class.
- * <p>
- * 	Use the {@link RdfParser#setProperty(String, Object)} method to set property values.
- * <p>
- * 	In addition to these properties, the following properties are also applicable for {@link RdfParser}.
- * <ul>
- * 	<li>{@link RdfProperties}
- * 	<li>{@link ParserProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RdfParserProperties extends RdfProperties implements Cloneable {
-
-
-	/**
-	 * Trim whitespace from text elements ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, whitespace in text elements will be automatically trimmed.
-	 */
-	public static final String RDF_trimWhitespace = "RdfParser.trimWhitespace";
-
-	boolean trimWhitespace = 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.
-	 */
-	@Override /* RdfProperties */
-	public boolean setProperty(String property, Object value) {
-		if (property.equals(RDF_trimWhitespace))
-			trimWhitespace = BeanContext.DEFAULT.convertToType(value, boolean.class);
-		else
-			return super.setProperty(property, value);
-		return true;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Cloneable */
-	public RdfParserProperties clone() {
-		try {
-			return (RdfParserProperties)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/jena/RdfProperties$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties$1.class
deleted file mode 100755
index b05e79d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties$1.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/jena/RdfProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.class
deleted file mode 100755
index 804022f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.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/jena/RdfProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.java
deleted file mode 100755
index 8994948..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.java
+++ /dev/null
@@ -1,415 +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.jena;
-
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.jena.annotation.*;
-import com.ibm.juno.core.xml.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Configurable properties common to both the {@link RdfSerializer} and {@link RdfParser} classes.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("serial")
-public class RdfProperties {
-
-	/**
-	 * Maps RDF writer names to property prefixes that apply to them.
-	 */
-	final static Map<String,String> LANG_PROP_MAP = new HashMap<String,String>() {{
-		put("RDF/XML","rdfXml.");
-		put("RDF/XML-ABBREV","rdfXml.");
-		put("N3","n3.");
-		put("N3-PP","n3.");
-		put("N3-PLAIN","n3.");
-		put("N3-TRIPLES","n3.");
-		put("TURTLE","n3.");
-		put("N-TRIPLE","ntriple.");
-	}};
-
-	/**
-	 * The RDF language to serialize to ({@link String}, default=<js>"RDF/XML-ABBREV"</js>).
-	 * <p>
-	 * 	Can be any of the following:
-	 * <ul>
-	 * 	<li><js>"RDF/XML"</js>
-	 * 	<li><js>"RDF/XML-ABBREV"</js>
-	 * 	<li><js>"N-TRIPLE"</js>
-	 * 	<li><js>"N3"</js> - General name for the N3 writer.
-	 * 		Will make a decision on exactly which writer to use (pretty writer, plain writer or simple writer) when created.
-	 * 		Default is the pretty writer but can be overridden with system property	<code>com.hp.hpl.jena.n3.N3JenaWriter.writer</code>.
-	 * 	<li><js>"N3-PP"</js> - Name of the N3 pretty writer.
-	 * 		The pretty writer uses a frame-like layout, with prefixing, clustering like properties and embedding one-referenced bNodes.
-	 * 	<li><js>"N3-PLAIN"</js> - Name of the N3 plain writer.
-	 * 		The plain writer writes records by subject.
-	 * 	<li><js>"N3-TRIPLES"</js> - Name of the N3 triples writer.
-	 * 		This writer writes one line per statement, like N-Triples, but does N3-style prefixing.
-	 * 	<li><js>"TURTLE"</js> -  Turtle writer.
-	 * 		http://www.dajobe.org/2004/01/turtle/
-	 * </ul>
-	 */
-	public static final String RDF_language = "Rdf.language";
-
-	/**
-	 * The XML namespace for Juno properties ({@link Namespace}, default=<js>{j:'http://www.ibm.com/juno/'}</js>).
-	 */
-	public static final String RDF_junoNs = "Rdf.junoNs";
-
-	/**
-	 * The default XML namespace for bean properties ({@link Namespace}, default=<js>{j:'http://www.ibm.com/junobp/'}</js>).
-	 */
-	public static final String RDF_junoBpNs = "Rdf.junoBpNs";
-
-	/**
-	 * Reuse XML namespaces when RDF namespaces not specified ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * 	When specified, namespaces defined using {@link XmlNs} and {@link Xml} will be inherited by the RDF serializers.
-	 * 	Otherwise, namespaces will be defined using {@link RdfNs} and {@link Rdf}.
-	 */
-	public static final String RDF_useXmlNamespaces = "Rdf.useXmlNamespaces";
-
-	/**
-	 * RDF/XML property: <code>iri_rules</code> ({@link String}, default=<js>"lax"</js>).
-	 * <p>
-	 *  	Set the engine for checking and resolving.
-	 * <p>
-	 * 	Possible values:
-	 * <ul>
-	 * 	<li><js>"lax"</js> - The rules for RDF URI references only, which does permit spaces although the use of spaces is not good practice.
-	 * 	<li><js>"strict"</js> - Sets the IRI engine with rules for valid IRIs, XLink and RDF; it does not permit spaces in IRIs.
-	 * 	<li><js>"iri"</js> - Sets the IRI engine to IRI (<a href='http://www.ietf.org/rfc/rfc3986.txt'>RFC 3986</a>, <a href='http://www.ietf.org/rfc/rfc3987.txt'>RFC 3987</a>).
-	 * </ul>
-	 */
-	public static final String RDF_arp_iriRules = "Rdf.jena.rdfXml.iri-rules";
-
-	/**
-	 * RDF/XML ARP property: <code>error-mode</code> ({@link String}, default=<js>"lax"</js>).
-	 * <p>
-	 * 	This allows a coarse-grained approach to control of error handling.
-	 * <p>
-	 * 	Possible values:
-	 * <ul>
-	 * 	<li><js>"default"</js>
-	 * 	<li><js>"lax"</js>
-	 * 	<li><js>"strict"</js>
-	 * 	<li><js>"strict-ignore"</js>
-	 * 	<li><js>"strict-warning"</js>
-	 * 	<li><js>"strict-error"</js>
-	 * 	<li><js>"strict-fatal"</js>
-	 * </ul>
-	 * <p>
-	 * 	See also:
-	 * <ul>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setDefaultErrorMode()'>ARPOptions.setDefaultErrorMode()</a>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setLaxErrorMode()'>ARPOptions.setLaxErrorMode()</a>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setStrictErrorMode()'>ARPOptions.setStrictErrorMode()</a>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setStrictErrorMode(int)'>ARPOptions.setStrictErrorMode(int)</a>
-	 * </ul>
-	 */
-	public static final String RDF_arp_errorMode = "Rdf.jena.rdfXml.error-mode";
-
-	/**
-	 * RDF/XML ARP property: <code>embedding</code> ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * 	Sets ARP to look for RDF embedded within an enclosing XML document.
-	 * <p>
-	 * 	See also:
-	 * <ul>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setEmbedding(boolean)'>ARPOptions.setEmbedding(boolean)</a>
-	 * </ul>
-	 */
-	public static final String RDF_arp_embedding = "Rdf.jena.rdfXml.embedding";
-
-	/**
-	 * RDF/XML ARP property: <code>ERR_xxx</code> ({@link String}).
-	 * <p>
-	 * 	Provides fine-grained control over detected error conditions.
-	 * <p>
-	 * 	Possible values:
-	 * <ul>
-	 * 	<li><js>"EM_IGNORE"</js>
-	 * 	<li><js>"EM_WARNING"</js>
-	 * 	<li><js>"EM_ERROR"</js>
-	 * 	<li><js>"EM_FATAL"</js>
-	 * </ul>
-	 * <p>
-	 * 	See also:
-	 * <ul>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPErrorNumbers.html'>ARPErrorNumbers</a>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setErrorMode(int,%20int)'>ARPOptions.setErrorMode(int, int)</a>
-	 * </ul>
-	 */
-	public static final String RDF_arp_err_ = "Rdf.jena.rdfXml.ERR_";
-
-	/**
-	 * RDF/XML ARP property: <code>WARN_xxx</code> ({@link String}).
-	 * <p>
-	 * 	See {@link #RDF_arp_err_} for details.
-	 */
-	public static final String RDF_arp_warn_ = "Rdf.jena.rdfXml.WARN_";
-
-	/**
-	 * RDF/XML ARP property: <code>IGN_xxx</code> ({@link String}).
-	 * <p>
-	 * 	See {@link #RDF_arp_err_} for details.
-	 */
-	public static final String RDF_arp_ign_ = "Rdf.jena.rdfXml.IGN_";
-
-	/**
-	 * RDF/XML property: <code>xmlbase</code> ({@link String}, default=<jk>null</jk>).
-	 * <p>
-	 * 	The value to be included for an <xa>xml:base</xa> attribute on the root element in the file.
-	 */
-	public static final String RDF_rdfxml_xmlBase = "Rdf.jena.rdfXml.xmlbase";
-
-	/**
-	 * RDF/XML property: <code>longId</code> ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 *  	Whether to use long ID's for anon resources.
-	 *  	Short ID's are easier to read, but can run out of memory on very large models.
-	 */
-	public static final String RDF_rdfxml_longId = "Rdf.jena.rdfXml.longId";
-
-	/**
-	 * RDF/XML property: <code>allowBadURIs</code> ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * 	URIs in the graph are, by default, checked prior to serialization.
-	 */
-	public static final String RDF_rdfxml_allowBadUris = "Rdf.jena.rdfXml.allowBadURIs";
-
-	/**
-	 * RDF/XML property: <code>relativeURIs</code> ({@link String}).
-	 * <p>
-	 * 	What sort of relative URIs should be used.
-	 * <p>
-	 * 	A comma separate list of options:
-	 * <ul>
-	 * 	<li><js>"same-document"</js> - Same-document references (e.g. <js>""</js> or <js>"#foo"</js>)
-	 * 	<li><js>"network"</js>  - Network paths (e.g. <js>"//example.org/foo"</js> omitting the URI scheme)
-	 * 	<li><js>"absolute"</js> - Absolute paths (e.g. <js>"/foo"</js> omitting the scheme and authority)
-	 * 	<li><js>"relative"</js> - Relative path not begining in <js>"../"</js>
-	 * 	<li><js>"parent"</js> - Relative path begining in <js>"../"</js>
-	 * 	<li><js>"grandparent"</js> - Relative path begining in <js>"../../"</js>
-	 * </ul>
-	 * <p>
-	 * 	The default value is <js>"same-document, absolute, relative, parent"</js>.
-	 * 	To switch off relative URIs use the value <js>""</js>.
-	 * 	Relative URIs of any of these types are output where possible if and only if the option has been specified.
-	 */
-	public static final String RDF_rdfxml_relativeUris = "Rdf.jena.rdfXml.relativeURIs";
-
-	/**
-	 * RDF/XML property: <code>showXmlDeclaration</code> ({@link String}, default=<js>"default"</js>).
-	 * <p>
-	 * 	Possible values:
-	 * <ul>
-	 * 	<li><js>"true"</js> - Add XML Declaration to the output.
-	 * 	<li><js>"false"</js> - Don't add XML Declaration to the output.
-	 * 	<li><js>"default"</js> - Only add an XML Declaration when asked to write to an <code>OutputStreamWriter</code> that uses some encoding other than <code>UTF-8</code> or <code>UTF-16</code>.
-	 * 		In this case the encoding is shown in the XML declaration.
-	 * </ul>
-	 */
-	public static final String RDF_rdfxml_showXmlDeclaration = "Rdf.jena.rdfXml.showXmlDeclaration";
-
-	/**
-	 * RDF/XML property: <code>showDoctypeDeclaration</code> ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * 	If true, an XML Doctype declaration is included in the output.
-	 * 	This declaration includes a <code>!ENTITY</code> declaration for each prefix mapping in the model, and any attribute value that starts with the URI of that mapping is written as starting with the corresponding entity invocation.
-	 */
-	public static final String RDF_rdfxml_showDoctypeDeclaration = "Rdf.jena.rdfXml.showDoctypeDeclaration";
-
-	/**
-	 * RDF/XML property: <code>tab</code> ({@link Integer}, default=<code>2</code>).
-	 * <p>
-	 * 	The number of spaces with which to indent XML child elements.
-	 */
-	public static final String RDF_rdfxml_tab = "Rdf.jena.rdfXml.tab";
-
-	/**
-	 * RDF/XML property: <code>attributeQuoteChar</code> ({@link Character}, default=<js>'"'</js>).
-	 * <p>
-	 * 	The XML attribute quote character.
-	 */
-	public static final String RDF_rdfxml_attributeQuoteChar = "Rdf.jena.rdfXml.attributeQuoteChar";
-
-	/**
-	 * RDF/XML property: <code>blockRules</code> ({@link String}, default=<js>""</js>).
-	 * <p>
-	 * 	A list of <code>Resource</code> or a <code>String</code> being a comma separated list of fragment IDs from <a href='http://www.w3.org/TR/rdf-syntax-grammar'>RDF Syntax Grammar</a> indicating grammar rules that will not be used.
-	 */
-	public static final String RDF_rdfxml_blockRules = "Rdf.jena.rdfXml.blockRules";
-
-	/**
-	 * N3/Turtle property: <code>minGap</code> ({@link Integer}, default=<code>1</code>).
-	 * <p>
-	 * 	Minimum gap between items on a line.
-	 */
-	public static final String RDF_n3_minGap = "Rdf.jena.n3.minGap";
-
-	/**
-	 * N3/Turtle property: <code>objectLists</code> ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * 	Print object lists as comma separated lists.
-	 */
-	public static final String RDF_n3_objectLists = "Rdf.jena.n3.objectLists";
-
-	/**
-	 * N3/Turtle property: <code>subjectColumn</code> ({@link Integer}, default=indentProperty).
-	 * <p>
-	 * 	If the subject is shorter than this value, the first property may go on the same line.
-	 */
-	public static final String RDF_n3_subjectColumn = "Rdf.jena.n3.subjectColumn";
-
-	/**
-	 * N3/Turtle property: <code>propertyColumn</code> ({@link Integer}, default=<code>8</code>).
-	 * <p>
-	 *  	Width of the property column.
-	 */
-	public static final String RDF_n3_propertyColumn = "Rdf.jena.n3.propertyColumn";
-
-	/**
-	 * N3/Turtle property: <code>indentProperty</code> ({@link Integer}, default=<code>6</code>).
-	 * <p>
-	 * 	Width to indent properties.
-	 */
-	public static final String RDF_n3_indentProperty = "Rdf.jena.n3.indentProperty";
-
-	/**
-	 * N3/Turtle property: <code>widePropertyLen</code> ({@link Integer}, default=<code>20</code>).
-	 * <p>
-	 * 	Width of the property column.
-	 * 	Must be longer than <code>propertyColumn</code>.
-	 */
-	public static final String RDF_n3_widePropertyLen = "Rdf.jena.n3.widePropertyLen";
-
-	/**
-	 * N3/Turtle property: <code>abbrevBaseURI</code> ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * 	Control whether to use abbreviations <code>&lt;&gt;</code> or <code>&lt;#&gt;</code>.
-	 */
-	public static final String RDF_n3_abbrevBaseUri = "Rdf.jena.n3.abbrevBaseURI";
-
-	/**
-	 * N3/Turtle property: <code>usePropertySymbols</code> ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * 	Control whether to use <code>a</code>, <code>=</code> and <code>=&gt;</code> in output
-	 */
-	public static final String RDF_n3_usePropertySymbols = "Rdf.jena.n3.usePropertySymbols";
-
-	/**
-	 * N3/Turtle property: <code>useTripleQuotedStrings</code> ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * 	Allow the use of <code>"""</code> to delimit long strings.
-	 */
-	public static final String RDF_n3_useTripleQuotedStrings = "Rdf.jena.n3.useTripleQuotedStrings";
-
-	/**
-	 * N3/Turtle property: <code>useDoubles</code> ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * 	Allow the use doubles as <code>123.456</code>.
-	 */
-	public static final String RDF_n3_useDoubles = "Rdf.jena.n3.useDoubles";
-
-	/**
-	 * The RDF format for representing collections and arrays.  ({@link String}, default=<js>"DEFAULT"</js>).
-	 * <p>
-	 * 	Possible values:
-	 * 	<ul>
-	 * 		<li><js>"DEFAULT"</js> - Default format.  The default is an RDF Sequence container.
-	 * 		<li><js>"SEQ"</js> - RDF Sequence container.
-	 * 		<li><js>"BAG"</js> - RDF Bag container.
-	 * 		<li><js>"LIST"</js> - RDF List container.
-	 * 		<li><js>"MULTI_VALUED"</js> - Multi-valued properties.
-	 * 	</ul>
-	 *	</p>
-	 *	<p>
-	 *		Important Note:  If you use <js>"BAG"</js> or <js>"MULTI_VALUED"</js>, the order of the elements
-	 *		in the collection will get lost.
-	 */
-	public static final String RDF_collectionFormat = "Rdf.collectionFormat";
-	RdfCollectionFormat collectionFormat = RdfCollectionFormat.DEFAULT;
-
-	/**
-	 * Specifies that collections should be serialized and parsed as loose collections.  ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * When specified, collections of resources are handled as loose collections of resources in RDF instead of
-	 * resources that are children of an RDF collection (e.g. Sequence, Bag).
-	 * <p>
-	 * Note that this setting is specialized for RDF syntax, and is incompatible with the concept of
-	 * losslessly representing POJO models, since the tree structure of these POJO models are lost
-	 * when serialized as loose collections.
-	 *	<p>
-	 *	This setting is typically only useful if the beans being parsed into do not have a bean property
-	 *	annotated with {@link BeanProperty#beanUri @BeanProperty(beanUri=true)}.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	WriterSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev().setProperty(<jsf>RDF_looseCollection</jsf>, <jk>true</jk>);
-	 * 	ReaderParser p = <jk>new</jk> RdfParser.Xml().setProperty(<jsf>RDF_looseCollection</jsf>, <jk>true</jk>);
-	 *
-	 * 	List&lt;MyBean&gt; l = createListOfMyBeans();
-	 *
-	 * 	<jc>// Serialize to RDF/XML as loose resources</jc>
-	 * 	String rdfXml = s.serialize(l);
-	 *
-	 *		<jc>// Parse back into a Java collection</jc>
-	 * 	l = p.parseCollection(rdfXml, LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 *
-	 * 	MyBean[] b = createArrayOfMyBeans();
-	 *
-	 * 	<jc>// Serialize to RDF/XML as loose resources</jc>
-	 * 	String rdfXml = s.serialize(b);
-	 *
-	 *		<jc>// Parse back into a bean array</jc>
-	 * 	b = p.parse(rdfXml, MyBean[].<jk>class</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static final String RDF_looseCollection = "Rdf.looseCollection";
-
-	String rdfLanguage = "RDF/XML-ABBREV";
-	Namespace junoNs = NamespaceFactory.get("j", "http://www.ibm.com/juno/");
-	Namespace junoBpNs = NamespaceFactory.get("jp", "http://www.ibm.com/junobp/");
-	boolean useXmlNamespaces = true, looseCollection = false;
-	Map<String,Object> jenaSettings = new HashMap<String,Object>();
-
-	/**
-	 * 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) {
-		if (property.equals(RDF_language))
-			rdfLanguage = value.toString();
-		else if (property.equals(RDF_junoNs))
-			junoNs = NamespaceFactory.parseNamespace(value);
-		else if (property.equals(RDF_junoBpNs))
-			junoBpNs = NamespaceFactory.parseNamespace(value);
-		else if (property.startsWith("Rdf.jena."))
-			jenaSettings.put(property.substring(9), value);
-		else if (property.equals(RDF_collectionFormat))
-			collectionFormat = RdfCollectionFormat.valueOf(value.toString());
-		else if (property.equals(RDF_useXmlNamespaces))
-			useXmlNamespaces = Boolean.valueOf(value.toString());
-		else if (property.equals(RDF_looseCollection))
-			looseCollection = Boolean.valueOf(value.toString());
-		else
-			return false;
-		return true;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$1.class
deleted file mode 100755
index 4ac3006..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$1.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/jena/RdfSerializer$N3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$N3.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$N3.class
deleted file mode 100755
index e90348b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$N3.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/jena/RdfSerializer$NTriple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$NTriple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$NTriple.class
deleted file mode 100755
index 0314bf4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$NTriple.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/jena/RdfSerializer$Turtle.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Turtle.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Turtle.class
deleted file mode 100755
index 8bde941..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Turtle.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/jena/RdfSerializer$Xml.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Xml.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Xml.class
deleted file mode 100755
index 79dc12d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Xml.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/jena/RdfSerializer$XmlAbbrev.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$XmlAbbrev.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$XmlAbbrev.class
deleted file mode 100755
index 8c176f9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$XmlAbbrev.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/jena/RdfSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.class
deleted file mode 100755
index 2af16f2..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.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/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.java
deleted file mode 100755
index 4acb7cd..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.java
+++ /dev/null
@@ -1,466 +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.jena;
-
-import static com.ibm.juno.core.jena.Constants.*;
-import static com.ibm.juno.core.jena.RdfProperties.*;
-import static com.ibm.juno.core.xml.XmlUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Serializes POJOs to RDF.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	Refer to <a class='doclink' href='package-summary.html#SerializerConfigurableProperties'>Configurable Properties</a>
- * 		for the entire list of configurable properties.
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * 	The following direct subclasses are provided for language-specific serializers:
- * <ul>
- * 	<li>{@link RdfSerializer.Xml} - RDF/XML.
- * 	<li>{@link RdfSerializer.XmlAbbrev} - RDF/XML-ABBREV.
- * 	<li>{@link RdfSerializer.NTriple} - N-TRIPLE.
- * 	<li>{@link RdfSerializer.Turtle} - TURTLE.
- * 	<li>{@link RdfSerializer.N3} - N3.
- * </ul>
- *
- *
- * <h6 class='topic'>Additional Information</h6>
- * <p>
- * 	See <a class='doclink' href='package-summary.html#TOC'>RDF Overview</a> for an overview of RDF support in Juno.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({ "rawtypes", "unchecked" })
-@Produces(value="text/xml+rdf+abbrev", contentType="text/xml+rdf")
-public class RdfSerializer extends WriterSerializer {
-
-	/** Default RDF/XML serializer, all default settings.*/
-	public static final RdfSerializer DEFAULT_XML = new RdfSerializer.Xml().lock();
-
-	/** Default Abbreviated RDF/XML serializer, all default settings.*/
-	public static final RdfSerializer DEFAULT_XMLABBREV = new RdfSerializer.XmlAbbrev().lock();
-
-	/** Default Turtle serializer, all default settings.*/
-	public static final RdfSerializer DEFAULT_TURTLE = new RdfSerializer.Turtle().lock();
-
-	/** Default N-Triple serializer, all default settings.*/
-	public static final RdfSerializer DEFAULT_NTRIPLE = new RdfSerializer.NTriple().lock();
-
-	/** Default N3 serializer, all default settings.*/
-	public static final RdfSerializer DEFAULT_N3 = new RdfSerializer.N3().lock();
-
-
-	/** Produces RDF/XML output */
-	@Produces("text/xml+rdf")
-	public static class Xml extends RdfSerializer {
-		/** Constructor */
-		public Xml() {
-			setProperty(RDF_language, LANG_RDF_XML);
-		}
-	}
-
-	/** Produces Abbreviated RDF/XML output */
-	@Produces(value="text/xml+rdf+abbrev", contentType="text/xml+rdf")
-	public static class XmlAbbrev extends RdfSerializer {
-		/** Constructor */
-		public XmlAbbrev() {
-			setProperty(RDF_language, LANG_RDF_XML_ABBREV);
-		}
-	}
-
-	/** Produces N-Triple output */
-	@Produces("text/n-triple")
-	public static class NTriple extends RdfSerializer {
-		/** Constructor */
-		public NTriple() {
-			setProperty(RDF_language, LANG_NTRIPLE);
-		}
-	}
-
-	/** Produces Turtle output */
-	@Produces("text/turtle")
-	public static class Turtle extends RdfSerializer {
-		/** Constructor */
-		public Turtle() {
-			setProperty(RDF_language, LANG_TURTLE);
-		}
-	}
-
-	/** Produces N3 output */
-	@Produces("text/n3")
-	public static class N3 extends RdfSerializer {
-		/** Constructor */
-		public N3() {
-			setProperty(RDF_language, LANG_N3);
-		}
-	}
-
-
-	/** Jena serializer properties currently set on this serializer. */
-	protected transient RdfSerializerProperties rsp = new RdfSerializerProperties();
-
-	/** Xml serializer properties currently set on this serializer. */
-	protected transient XmlSerializerProperties xsp = new XmlSerializerProperties();
-
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-
-		RdfSerializerContext rctx = (RdfSerializerContext)ctx;
-
-		Model model = rctx.model;
-		Resource r = null;
-
-		ClassMeta<?> cm = rctx.getBeanContext().getClassMetaForObject(o);
-		if (rctx.isLooseCollection() && cm != null && (cm.isCollection() || cm.isArray())) {
-			Collection c = sort(ctx, cm.isCollection() ? (Collection)o : toList(cm.getInnerClass(), o));
-			for (Object o2 : c)
-				serializeAnything(o2, false, object(), rctx, "root", null, null);
-		} else {
-		RDFNode n = serializeAnything(o, false, object(), rctx, "root", null, null);
-		if (n.isLiteral()) {
-			r = model.createResource();
-			r.addProperty(rctx.pValue, n);
-		} else {
-			r = n.asResource();
-		}
-
-		if (rctx.addRootProperty)
-			r.addProperty(rctx.pRoot, "true");
-		}
-
-		rctx.writer.write(model, out, "http://unknown/");
-	}
-
-	private RDFNode serializeAnything(Object o, boolean isURI, ClassMeta<?> eType, RdfSerializerContext ctx, String attrName, BeanPropertyMeta bpm, Resource parentResource) throws SerializeException {
-		Model m = ctx.model;
-		BeanContext bc = ctx.getBeanContext();
-
-		ClassMeta<?> aType = null;       // The actual type
-		ClassMeta<?> wType = null;       // The wrapped type
-		ClassMeta<?> gType = object();   // The generic type
-
-		aType = ctx.push(attrName, o, eType);
-
-		if (eType == null)
-			eType = object();
-
-		// Handle recursion
-		if (aType == null) {
-			o = null;
-			aType = object();
-		}
-
-		if (o != null) {
-
-			if (aType.isDelegate()) {
-				wType = aType;
-				aType = ((Delegate)o).getClassMeta();
-			}
-
-			gType = aType.getFilteredClassMeta();
-
-			// Filter if necessary
-			PojoFilter filter = aType.getPojoFilter();
-			if (filter != null) {
-				o = filter.filter(o);
-
-				// If the filter's getFilteredClass() method returns Object, we need to figure out
-				// the actual type now.
-				if (gType.isObject())
-					gType = bc.getClassMetaForObject(o);
-			}
-		} else {
-			gType = eType.getFilteredClassMeta();
-		}
-
-		RDFNode n = null;
-
-		if (o == null || gType.isChar() && ((Character)o).charValue() == 0) {
-			if (bpm != null) {
-				if (! ctx.isTrimNulls()) {
-					n = m.createResource(RDF_NIL);
-				}
-			} else {
-				n = m.createResource(RDF_NIL);
-			}
-
-		} else if (gType.isUri() || isURI) {
-			n = m.createResource(getUri(o, null, ctx));
-
-		} else if (gType.isCharSequence() || gType.isChar()) {
-			n = m.createLiteral(encodeTextInvalidChars(o));
-
-		} else if (gType.isNumber() || gType.isBoolean()) {
-			if (! ctx.addLiteralTypes)
-				n = m.createLiteral(o.toString());
-			else
-				n = m.createTypedLiteral(o);
-
-		} else if (gType.isMap() || (wType != null && wType.isMap())) {
-			if (o instanceof BeanMap) {
-				BeanMap bm = (BeanMap)o;
-				String uri = getUri(bm.getBeanUri(), null, ctx);
-				n = m.createResource(uri);
-				serializeBeanMap(bm, (Resource)n, ctx);
-			} else {
-				Map m2 = (Map)o;
-				n = m.createResource();
-				serializeMap(m2, (Resource)n, gType, ctx);
-			}
-
-		} else if (gType.hasToObjectMapMethod()) {
-			Map m2 = gType.toObjectMap(o);
-			n = m.createResource();
-				serializeMap(m2, (Resource)n, gType, ctx);
-
-		} else if (gType.isBean()) {
-			BeanMap bm = bc.forBean(o);
-			String uri = getUri(bm.getBeanUri(), null, ctx);
-			n = m.createResource(uri);
-			serializeBeanMap(bm, (Resource)n, ctx);
-
-		} else if (gType.isCollection() || gType.isArray() || (wType != null && wType.isCollection())) {
-			Collection c = sort(ctx, gType.isCollection() ? (Collection)o : toList(gType.getInnerClass(), o));
-			RdfCollectionFormat f = ctx.getCollectionFormat();
-			if (gType.getRdfMeta().getCollectionFormat() != RdfCollectionFormat.DEFAULT)
-				f = gType.getRdfMeta().getCollectionFormat();
-			if (bpm != null && bpm.getRdfMeta().getCollectionFormat() != RdfCollectionFormat.DEFAULT)
-				f = bpm.getRdfMeta().getCollectionFormat();
-			switch (f) {
-				case BAG: n = serializeToContainer(c, gType, m.createBag(), ctx); break;
-				case LIST: n = serializeToList(c, gType, ctx); break;
-				case MULTI_VALUED: serializeToMultiProperties(c, gType, bpm, ctx, attrName, parentResource); break;
-				default: n = serializeToContainer(c, gType, m.createSeq(), ctx);
-			}
-		} else {
-			n = m.createLiteral(encodeTextInvalidChars(o));
-		}
-
-		if (ctx.isAddClassAttrs() && n != null && n.isResource()) {
-			if (o != null && ! eType.equals(aType))
-				n.asResource().addProperty(ctx.pClass, aType.toString());
-			else if (o == null)
-				n.asResource().addProperty(ctx.pClass, eType.toString());
-		}
-
-		ctx.pop();
-
-		return n;
-	}
-
-	private String getUri(Object uri, Object uri2, RdfSerializerContext ctx) {
-		String s = null;
-		if (uri != null)
-			s = uri.toString();
-		if ((s == null || s.isEmpty()) && uri2 != null)
-			s = uri2.toString();
-		if (s == null)
-			return null;
-		if (s.indexOf("://") == -1) {
-			String aUri = ctx.getAbsolutePathUriBase();
-			String rUri = ctx.getRelativeUriBase();
-			if (StringUtils.startsWith(s, '/')) {
-				if (aUri != null)
-					return aUri + s;
-			} else {
-				if (rUri != null) {
-					if (rUri.equals("/"))
-						return '/' + s;
-					return rUri + '/' + s;
-				}
-			}
-		}
-		return s;
-	}
-
-	private void serializeMap(Map m, Resource r, ClassMeta<?> type, RdfSerializerContext ctx) throws SerializeException {
-
-		m = sort(ctx, m);
-
-		ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
-
-		ArrayList<Map.Entry<Object,Object>> l = new ArrayList<Map.Entry<Object,Object>>(m.entrySet());
-		Collections.reverse(l);
-		for (Map.Entry<Object,Object> me : l) {
-			Object value = me.getValue();
-
-			Object key = generalize(ctx, me.getKey(), keyType);
-
-			Namespace ns = ctx.junoBpNs;
-			Model model = ctx.model;
-			Property p = model.createProperty(ns.getUri(), encodeElementName(key));
-			RDFNode n = serializeAnything(value, false, valueType, ctx, key == null ? null : key.toString(), null, r);
-			if (n != null)
-				r.addProperty(p, n);
-		}
-	}
-
-	private void serializeBeanMap(BeanMap m, Resource r, RdfSerializerContext ctx) throws SerializeException {
-		ArrayList<BeanMapEntry> l = new ArrayList<BeanMapEntry>(m.entrySet());
-		Collections.reverse(l);
-		for (BeanMapEntry bme : l) {
-			BeanPropertyMeta pMeta = bme.getMeta();
-			ClassMeta<?> cm = pMeta.getClassMeta();
-
-			if (pMeta.isBeanUri())
-				continue;
-
-			String key = bme.getKey();
-			Object value = null;
-			try {
-				value = bme.getValue();
-			} catch (StackOverflowError e) {
-				throw e;
-			} catch (Throwable t) {
-				ctx.addBeanGetterWarning(pMeta, t);
-			}
-
-			if (canIgnoreValue(ctx, cm, key, value))
-				continue;
-
-			BeanPropertyMeta bpm = bme.getMeta();
-			Namespace ns = bpm.getRdfMeta().getNamespace();
-			if (ns == null && ctx.isUseXmlNamespaces())
-				ns = bpm.getXmlMeta().getNamespace();
-			if (ns == null)
-				ns = ctx.junoBpNs;
-			else if (ctx.isAutoDetectNamespaces())
-				ctx.addModelPrefix(ns);
-
-			Property p = ctx.model.createProperty(ns.getUri(), encodeElementName(key));
-			RDFNode n = serializeAnything(value, pMeta.isUri(), cm, ctx, key, pMeta, r);
-			if (n != null)
-				r.addProperty(p, n);
-		}
-	}
-
-
-	private Container serializeToContainer(Collection c, ClassMeta<?> type, Container list, RdfSerializerContext ctx) throws SerializeException {
-
-		ClassMeta<?> elementType = type.getElementType();
-		for (Object e : c) {
-			RDFNode n = serializeAnything(e, false, elementType, ctx, null, null, null);
-			list = list.add(n);
-		}
-		return list;
-	}
-
-	private RDFList serializeToList(Collection c, ClassMeta<?> type, RdfSerializerContext ctx) throws SerializeException {
-		ClassMeta<?> elementType = type.getElementType();
-		List<RDFNode> l = new ArrayList<RDFNode>(c.size());
-		for (Object e : c) {
-			l.add(serializeAnything(e, false, elementType, ctx, null, null, null));
-		}
-		return ctx.model.createList(l.iterator());
-	}
-
-	private void serializeToMultiProperties(Collection c, ClassMeta<?> gType, BeanPropertyMeta bpm, RdfSerializerContext ctx, String attrName, Resource parentResource) throws SerializeException {
-		ClassMeta<?> elementType = gType.getElementType();
-		for (Object e : c) {
-			Namespace ns = null;
-			if (bpm != null) {
-				ns = bpm.getRdfMeta().getNamespace();
-				if (ns == null && ctx.isUseXmlNamespaces())
-					ns = bpm.getXmlMeta().getNamespace();
-			}
-			if (ns == null)
-				ns = ctx.junoBpNs;
-			else if (ctx.isAutoDetectNamespaces())
-				ctx.addModelPrefix(ns);
-			RDFNode n2 = serializeAnything(e, false, elementType, ctx, null, null, null);
-			Property p = ctx.model.createProperty(ns.getUri(), encodeElementName(attrName));
-			parentResource.addProperty(p, n2);
-		}
-
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	public RdfSerializerContext createContext(ObjectMap properties, Method javaMethod) {
-		return new RdfSerializerContext(getBeanContext(), sp, xsp, rsp, properties, javaMethod);
-	}
-
-	@Override /* CoreApi */
-	public RdfSerializer setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! rsp.setProperty(property, value))
-			if (! xsp.setProperty(property, value))
-				super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public RdfSerializer setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public RdfSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public RdfSerializer addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> RdfSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public RdfSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public RdfSerializer lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public RdfSerializer clone() {
-		try {
-			RdfSerializer c = (RdfSerializer)super.clone();
-			c.rsp = rsp.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/jena/RdfSerializerContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.class
deleted file mode 100755
index 6d3e9ae..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.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/jena/RdfSerializerContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.java
deleted file mode 100755
index 82d95c5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.java
+++ /dev/null
@@ -1,135 +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.jena;
-
-import static com.ibm.juno.core.jena.Constants.*;
-import static com.ibm.juno.core.jena.RdfProperties.*;
-import static com.ibm.juno.core.jena.RdfSerializerProperties.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Context object that lives for the duration of a single serialization of {@link RdfSerializer}.
- * <p>
- * 	See {@link SerializerContext} for details.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RdfSerializerContext extends XmlSerializerContext {
-
-	final String rdfLanguage;
-	final Namespace junoNs, junoBpNs;
-	final boolean addLiteralTypes, addRootProperty, useXmlNamespaces, looseCollection;
-	final Property pRoot, pValue, pClass;
-	final Model model;
-	final RDFWriter writer;
-	final RdfCollectionFormat collectionFormat;
-
-	/**
-	 * Constructor.
-	 * @param beanContext The bean context being used by the serializer.
-	 * @param sp Default general serializer properties.
-	 * @param xsp Default XML serializer properties.
-	 * @param jsp Default Jena serializer properties.
-	 * @param op Override properties.
-	 * @param javaMethod Java method that invoked this serializer.
-	 * 	When using the REST API, this is the Java method invoked by the REST call.
-	 * 	Can be used to access annotations defined on the method or class.
-	 */
-	protected RdfSerializerContext(BeanContext beanContext, SerializerProperties sp, XmlSerializerProperties xsp, RdfSerializerProperties jsp, ObjectMap op, Method javaMethod) {
-		super(beanContext, sp, xsp, op, javaMethod);
-		ObjectMap jenaSettings = new ObjectMap();
-		jenaSettings.put("rdfXml.tab", isUseIndentation() ? 2 : 0);
-		jenaSettings.put("rdfXml.attributeQuoteChar", Character.toString(getQuoteChar()));
-		jenaSettings.putAll(jsp.jenaSettings);
-		if (op == null || op.isEmpty()) {
-			this.rdfLanguage = jsp.rdfLanguage;
-			this.junoNs = jsp.junoNs;
-			this.junoBpNs = jsp.junoBpNs;
-			this.addLiteralTypes = jsp.addLiteralTypes;
-			this.addRootProperty = jsp.addRootProperty;
-			this.collectionFormat = jsp.collectionFormat;
-			this.looseCollection = jsp.looseCollection;
-			this.useXmlNamespaces = jsp.useXmlNamespaces;
-		} else {
-			this.rdfLanguage = op.getString(RDF_language, jsp.rdfLanguage);
-			this.junoNs = (op.containsKey(RDF_junoNs) ? NamespaceFactory.parseNamespace(op.get(RDF_junoNs)) : jsp.junoNs);
-			this.junoBpNs = (op.containsKey(RDF_junoBpNs) ? NamespaceFactory.parseNamespace(op.get(RDF_junoBpNs)) : jsp.junoBpNs);
-			this.addLiteralTypes = op.getBoolean(RDF_addLiteralTypes, jsp.addLiteralTypes);
-			this.addRootProperty = op.getBoolean(RDF_addRootProperty, jsp.addRootProperty);
-			for (Map.Entry<String,Object> e : op.entrySet()) {
-				String key = e.getKey();
-				if (key.startsWith("Rdf.jena."))
-					jenaSettings.put(key.substring(9), e.getValue());
-			}
-			this.collectionFormat = RdfCollectionFormat.valueOf(op.getString(RDF_collectionFormat, "DEFAULT"));
-			this.looseCollection = op.getBoolean(RDF_looseCollection, jsp.looseCollection);
-			this.useXmlNamespaces = op.getBoolean(RDF_useXmlNamespaces, jsp.useXmlNamespaces);
-		}
-		this.model = ModelFactory.createDefaultModel();
-		addModelPrefix(junoNs);
-		addModelPrefix(junoBpNs);
-		for (Namespace ns : this.getNamespaces())
-			addModelPrefix(ns);
-		this.pRoot = model.createProperty(junoNs.getUri(), RDF_junoNs_ROOT);
-		this.pValue = model.createProperty(junoNs.getUri(), RDF_junoNs_VALUE);
-		this.pClass = model.createProperty(junoNs.getUri(), RDF_junoNs_CLASS);
-		writer = model.getWriter(rdfLanguage);
-
-		// Only apply properties with this prefix!
-		String propPrefix = RdfProperties.LANG_PROP_MAP.get(rdfLanguage);
-		if (propPrefix == null)
-			throw new RuntimeException("Unknown RDF language encountered: '"+rdfLanguage+"'");
-
-		for (Map.Entry<String,Object> e : jenaSettings.entrySet())
-			if (e.getKey().startsWith(propPrefix))
-				writer.setProperty(e.getKey().substring(propPrefix.length()), e.getValue());
-	}
-
-	/**
-	 * Adds the specified namespace as a model prefix.
-	 * @param ns The XML namespace.
-	 */
-	public void addModelPrefix(Namespace ns) {
-		model.setNsPrefix(ns.getName(), ns.getUri());
-	}
-
-	/**
-	 * Returns the format for serializing collections.
-	 *
-	 * @return The format for serializing collections.
-	 */
-	protected RdfCollectionFormat getCollectionFormat() {
-		return collectionFormat;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if RDF serializer should use XML serializer namespaces.
-	 *
-	 * @return <jk>true</jk> if RDF serializer should use XML serializer namespaces.
-	 */
-	protected boolean isUseXmlNamespaces() {
-		return useXmlNamespaces;
-	}
-
-	/**
-	 * Returns the {@link RdfProperties#RDF_looseCollection} property value.
-	 *
-	 * @return The {@link RdfProperties#RDF_looseCollection} property value.
-	 */
-	protected boolean isLooseCollection() {
-		return looseCollection;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.class
deleted file mode 100755
index e5fb1bc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.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/jena/RdfSerializerProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.java
deleted file mode 100755
index fd5ffbc..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.java
+++ /dev/null
@@ -1,80 +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.jena;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Configurable properties on the {@link RdfSerializer} class.
- * <p>
- * 	Use the {@link RdfSerializer#setProperty(String, Object)} method to set property values.
- * <p>
- * 	In addition to these properties, the following properties are also applicable for {@link RdfSerializer}.
- * <ul>
- * 	<li>{@link RdfProperties}
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RdfSerializerProperties extends RdfProperties implements Cloneable {
-
-	/**
-	 * Add XSI data types to non-<code>String</code> literals ({@link Boolean}, default=<jk>false</jk>).
-	 */
-	public static final String RDF_addLiteralTypes = "RdfSerializer.addLiteralTypes";
-
-	/**
-	 * Add RDF root identifier property to root node ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * 	When enabled an RDF property <code>http://www.ibm.com/juno/root</code> is added with a value of <js>"true"</js>
-	 * 		to identify the root node in the graph.
-	 * 	This helps locate the root node during parsing.
-	 * <p>
-	 * 	If disabled, the parser has to search through the model to find any resources without
-	 * 		incoming predicates to identify root notes, which can introduce a considerable performance
-	 * 		degradation.
-	 */
-	public static final String RDF_addRootProperty = "RdfSerializer.addRootProperty";
-
-	boolean addLiteralTypes = false, addRootProperty = 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.
-	 */
-	@Override /* RdfProperties */
-	public boolean setProperty(String property, Object value) {
-		if (property.equals(RDF_addLiteralTypes))
-			addLiteralTypes = BeanContext.DEFAULT.convertToType(value, boolean.class);
-		else if (property.equals(RDF_addRootProperty))
-			addRootProperty = BeanContext.DEFAULT.convertToType(value, boolean.class);
-		else
-			return super.setProperty(property, value);
-		return true;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Cloneable */
-	public RdfSerializerProperties clone() {
-		try {
-			return (RdfSerializerProperties)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/jena/RdfUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.class
deleted file mode 100755
index c20f2c9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.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/jena/RdfUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.java
deleted file mode 100755
index 2e34b81..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.jena.annotation.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Utility classes.
- */
-public class RdfUtils {
-
-	/**
-	 * Find the namespace given a list of <ja>@Rdf</ja> and <ja>@RdfSchema</ja> annotations.
-	 * The annotations should be a child-to-parent ordering of annotations found on
-	 * 	a class or method.
-	 *
-	 * @param rdfs The <code>@Rdf</code> annotations to search.
-	 * @param schemas The list of known RDF schemas.
-	 * @return The resolved namespace, or <jk>null</jk> if the namespace could not be resolved.
-	 */
-	public static Namespace findNamespace(List<Rdf> rdfs, List<RdfSchema> schemas) {
-
-		for (Rdf rdf : rdfs) {
-			Namespace ns = findNamespace(rdf.prefix(), rdf.namespace(), rdfs, schemas);
-			if (ns != null)
-				return ns;
-		}
-
-		for (RdfSchema schema : schemas) {
-			Namespace ns = findNamespace(schema.prefix(), schema.namespace(), null, schemas);
-			if (ns != null)
-				return ns;
-		}
-
-		return null;
-	}
-
-	private static Namespace findNamespace(String prefix, String ns, List<Rdf> rdfs, List<RdfSchema> schemas) {
-
-		// If both prefix and namespace specified, use that Namespace mapping.
-		if (! (prefix.isEmpty() || ns.isEmpty()))
-			return NamespaceFactory.get(prefix, ns);
-
-		// If only prefix specified, need to search for namespaceURI.
-		if (! prefix.isEmpty()) {
-			if (rdfs != null)
-				for (Rdf rdf2 : rdfs)
-					if (rdf2.prefix().equals(prefix) && ! rdf2.namespace().isEmpty())
-						return NamespaceFactory.get(prefix, rdf2.namespace());
-			for (RdfSchema schema : schemas) {
-				if (schema.prefix().equals(prefix) && ! schema.namespace().isEmpty())
-					return NamespaceFactory.get(prefix, schema.namespace());
-				for (RdfNs rdfNs : schema.rdfNs())
-					if (rdfNs.prefix().equals(prefix))
-						return NamespaceFactory.get(prefix, rdfNs.namespaceURI());
-			}
-			throw new BeanRuntimeException("Found @Rdf.prefix annotation with no matching URI.  prefix='"+prefix+"'");
-		}
-
-		// If only namespaceURI specified, need to search for prefix.
-		if (! ns.isEmpty()) {
-			if (rdfs != null)
-				for (Rdf rdf2 : rdfs)
-					if (rdf2.namespace().equals(ns) && ! rdf2.prefix().isEmpty())
-						return NamespaceFactory.get(rdf2.prefix(), ns);
-			for (RdfSchema schema : schemas) {
-				if (schema.namespace().equals(ns) && ! schema.prefix().isEmpty())
-					return NamespaceFactory.get(schema.prefix(), ns);
-				for (RdfNs rdfNs : schema.rdfNs())
-					if (rdfNs.namespaceURI().equals(ns))
-						return NamespaceFactory.get(rdfNs.prefix(), ns);
-			}
-		}
-
-		return null;
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.java
deleted file mode 100755
index 149302d..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-
-/**
- * Trust store provider with shared static certificate stores.
- */
-@Deprecated // Use SimpleX509TrustManager
-public final class SharedTrustStoreProvider implements ITrustStoreProvider {
-
-	// In-memory trust store of all certificates explicitly accepted by the
-	// certificate validator during this session. The validator will not be
-	// called again during this session for any of these certificates. These may
-	// include expired, not yet valid, or otherwise untrusted certificates.
-	// These are kept distinctly, rather than merged into the runtime trust
-	// store, because the base trust manager will never accept expired, etc.
-	// certificates, even if from a trusted source.
-	private static CertificateStore sessionCerts;
-
-	// In-memory trust store of all permanently trusted certificates, assembled
-	// from a number of key store files. These are provided to the base trust
-	// manager as the basis for its decision making.
-	private static CertificateStore runtimeCerts;
-
-	// Location and password of the user's private trust store for this application.
-	private static String userTrustStoreLocation;
-	private static String userTrustStorePassword;
-
-	static {
-		init();
-	}
-
-	private static final void init() {
-		try {
-			String userHome = System.getProperty("user.home");
-			String javaHome = System.getProperty("java.home");
-
-			userTrustStoreLocation = userHome + "/.jazzcerts";
-			userTrustStorePassword = "ibmrationaljazz";
-
-			sessionCerts = new CertificateStore();
-
-			runtimeCerts = new CertificateStore();
-
-			// JRE keystore override
-			String file = System.getProperty("javax.net.ssl.trustStore");
-			String password = System.getProperty("javax.net.ssl.trustStorePassword");
-			addCertificatesFromStore(runtimeCerts, file, password);
-
-			// JRE Signer CA keystore
-			file = javaHome + "/lib/security/cacerts";
-			addCertificatesFromStore(runtimeCerts, file, null);
-
-			// JRE Secure Site CA keystore
-			file =  (javaHome + "/lib/security/jssecacerts");
-			addCertificatesFromStore(runtimeCerts, file, null);
-
-			// Application-specific keystore for the current user
-			addCertificatesFromStore(runtimeCerts, userTrustStoreLocation, userTrustStorePassword);
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private static void addCertificatesFromStore(CertificateStore store, String file, String password) {
-		try {
-			File f = new File(file);
-			if (f.canRead())
-				store.loadCertificates(f, password);
-		} catch (Exception e) {
-			// Discard errors
-		}
-	}
-
-	@Override /* ITrustStoreProvider */
-	public CertificateStore getRuntimeTrustStore() {
-		return runtimeCerts;
-	}
-
-	@Override /* ITrustStoreProvider */
-	public CertificateStore getSessionTrustStore() {
-		return sessionCerts;
-	}
-
-	@Override /* ITrustStoreProvider */
-	public void installCertificate(Certificate cert) throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException {
-		File  f = new File(userTrustStoreLocation);
-		KeyStore ks = CertificateStore.load(f, userTrustStorePassword);
-		ks.setCertificateEntry(CertificateStore.computeAlias(cert), cert);
-		CertificateStore.store(ks, f, userTrustStorePassword);
-	}
-}

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.java
deleted file mode 100755
index a7539fe..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-
-import javax.net.ssl.*;
-
-/**
- * A trust manager that will call a registered {@link ICertificateValidator} in
- * the event that a problematic (e.g. expired, not yet valid) or untrusted
- * certificate is presented by a server, and react appropriately. This trust
- * manager will rely on multiple key stores, and manage one of its own. The
- * managed key store and the session-accepted key store are shared by all trust
- * manager instances.
- */
-@Deprecated // Use SimpleX509TrustManager
-public final class ValidatingX509TrustManager implements X509TrustManager {
-
-	// The JRE-provided trust manager used to validate certificates presented by a server.
-	private X509TrustManager baseTrustManager;
-
-	// The registered certificate validator, may be null, called when the base
-	// trust manager rejects a certificate presented by a server.
-	private ICertificateValidator validator;
-
-	private ITrustStoreProvider trustStoreProvider;
-
-	/**
-	 * Construct a new ValidatingX509TrustManager.
-	 *
-	 * @param validator Certificate validator to consult regarding problematic
-	 * 	certificates, or <code>null</code> to always reject them.
-	 */
-	public ValidatingX509TrustManager(ICertificateValidator validator) throws KeyStoreException, NoSuchAlgorithmException {
-		this.validator = validator;
-		this.trustStoreProvider = new SharedTrustStoreProvider();
-
-		// Initialize the base X509 trust manager that will be used to evaluate
-		// certificates presented by the server against the runtime trust store.
-		TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
-		factory.init(trustStoreProvider.getRuntimeTrustStore().getKeyStore());
-		TrustManager[] managers = factory.getTrustManagers();
-		for (TrustManager manager : managers) {
-			if (manager instanceof X509TrustManager) {
-				baseTrustManager = (X509TrustManager) manager; // Take the first X509TrustManager we find
-				return;
-			}
-		}
-		throw new IllegalStateException("Couldn't find JRE's X509TrustManager"); //$NON-NLS-1$
-	}
-
-	@Override /* X509TrustManager */
-	public X509Certificate[] getAcceptedIssuers() {
-		return baseTrustManager.getAcceptedIssuers();
-	}
-
-	@Override /* X509TrustManager */
-	public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-		baseTrustManager.checkClientTrusted(chain, authType);
-	}
-
-	@Override /* X509TrustManager */
-	public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-		X509Certificate cert = chain[0];
-
-		// Has the certificate been OK'd for the session?
-		try {
-			if (trustStoreProvider.getSessionTrustStore().containsCertificate(cert))
-				return;
-		} catch (KeyStoreException e) {
-			// Ignore; proceed to try base trust manager
-		}
-
-		try {
-			// Rely on the base trust manager to check the certificate against the assembled runtime key store
-			baseTrustManager.checkServerTrusted(chain, authType);
-		} catch (CertificateException certEx) {
-
-			// Done if there isn't a validator to consult
-			if (validator == null)
-				throw certEx; // Rejected!
-
-			// Ask the registered certificate validator to rule on the certificate
-			ICertificateValidator.Trust disposition = validator.validate(cert, certEx);
-			switch (disposition) {
-				case REJECT:				throw certEx;
-				case ACCEPT_CONNECTION: break;
-				case ACCEPT_SESSION:		enterCertificate(cert, false); break;
-				case ACCEPT_PERMANENT:	enterCertificate(cert, true); break;
-			}
-		}
-	}
-
-	private void enterCertificate(X509Certificate cert, boolean permanent) throws CertificateException {
-		try {
-			trustStoreProvider.getSessionTrustStore().enterCertificate(cert);
-			if (permanent)
-				trustStoreProvider.installCertificate(cert);
-		} catch (KeyStoreException e) {
-		} catch (NoSuchAlgorithmException e) {
-		} catch (IOException e) {
-		}
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/jazz/JazzRestClient.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/jazz/JazzRestClient.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/jazz/JazzRestClient.java
deleted file mode 100755
index 58f3017..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/jazz/JazzRestClient.java
+++ /dev/null
@@ -1,390 +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.client.jazz;
-
-import static org.apache.http.HttpStatus.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.apache.http.*;
-import org.apache.http.auth.*;
-import org.apache.http.client.*;
-import org.apache.http.client.config.*;
-import org.apache.http.client.entity.*;
-import org.apache.http.client.methods.*;
-import org.apache.http.impl.client.*;
-import org.apache.http.message.*;
-import org.apache.http.util.*;
-
-import com.ibm.juno.client.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Specialized {@link RestClient} for working with Jazz servers.
- * <p>
- * Provides support for BASIC, FORM, and OIDC authentication against Jazz servers and simple SSL certificate validation.
- *
- * <h6 class='topic'>Additional Information</h6>
- * <ul>
- * 	<li><a class='doclink' href='package-summary.html#RestClient'>com.ibm.juno.client.jazz &gt; Jazz REST client API</a> for more information and code examples.
- * </ul>
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class JazzRestClient extends RestClient {
-
-	private String user, pw;
-	private URI jazzUri;
-	private SSLOpts sslOpts;
-	private String cookie = null;
-
-	/**
-	 * Create a new client with no serializer or parser.
-	 *
-	 * @param jazzUrl The URL of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param sslOpts SSL options.
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 */
-	public JazzRestClient(String jazzUrl, SSLOpts sslOpts, String user, String pw) throws IOException {
-		super();
-		this.user = user;
-		this.pw = pw;
-		if (! jazzUrl.endsWith("/"))
-			jazzUrl = jazzUrl + "/";
-		this.sslOpts = sslOpts;
-		jazzUri = URI.create(jazzUrl);
-	}
-
-	/**
-	 * Create a new client with no serializer or parser, and LAX SSL support.
-	 *
-	 * @param jazzUrl The URL of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @throws IOException
-	 */
-	public JazzRestClient(String jazzUrl, String user, String pw) throws IOException {
-		this(jazzUrl, SSLOpts.LAX, user, pw);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser instances.
-	 *
-	 * @param jazzUri The URI of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param sslOpts SSL options.
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 */
-	public JazzRestClient(String jazzUri, SSLOpts sslOpts, String user, String pw, Serializer<?> s, Parser<?> p) throws IOException {
-		this(jazzUri, sslOpts, user, pw);
-		setParser(p);
-		setSerializer(s);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser instances and LAX SSL support.
-	 *
-	 * @param jazzUri The URI of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 */
-	public JazzRestClient(String jazzUri, String user, String pw, Serializer<?> s, Parser<?> p) throws IOException {
-		this(jazzUri, SSLOpts.LAX, user, pw);
-		setParser(p);
-		setSerializer(s);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser classes.
-	 *
-	 * @param jazzUri The URI of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param sslOpts SSL options.
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 * @throws InstantiationException If serializer or parser could not be instantiated.
-	 */
-	public JazzRestClient(String jazzUri, SSLOpts sslOpts, String user, String pw, Class<? extends Serializer<?>> s, Class<? extends Parser<?>> p) throws InstantiationException, IOException {
-		this(jazzUri, sslOpts, user, pw);
-		setParser(p);
-		setSerializer(s);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser classes and LAX SSL support.
-	 *
-	 * @param jazzUri The URI of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 * @throws InstantiationException If serializer or parser could not be instantiated.
-	 */
-	public JazzRestClient(String jazzUri, String user, String pw, Class<? extends Serializer<?>> s, Class<? extends Parser<?>> p) throws InstantiationException, IOException {
-		this(jazzUri, SSLOpts.LAX, user, pw);
-		setParser(p);
-		setSerializer(s);
-	}
-
-	@Override /* RestClient */
-	protected CloseableHttpClient createHttpClient() throws Exception {
-		try {
-			if (jazzUri.getScheme().equals("https"))
-				enableSSL(sslOpts);
-
-			setRedirectStrategy(new AllowAllRedirects());
-
-			// See wi 368181. The PublicSuffixDomainFilter uses a default PublicSuffixMatcher
-			// that rejects hostnames lacking a dot, such as "ccmserver", so needed
-			// cookies don't get put on outgoing requests.
-			// Here, we create a cookie spec registry with handlers that don't have a PublicSuffixMatcher.
-			if (! Boolean.getBoolean("com.ibm.team.repository.transport.client.useDefaultPublicSuffixMatcher")) { //$NON-NLS-1$
-				// use a lenient PublicSuffixDomainFilter
-				setDefaultCookieSpecRegistry(CookieSpecRegistries.createDefault(null));
-			}
-
-			// We want to use a fresh HttpClientBuilder since the default implementation
-			// uses an unshared PoolingConnectionManager, and if you close the client
-			// and create a new one, can cause a "java.lang.IllegalStateException: Connection pool shut down"
-			CloseableHttpClient client = createHttpClientBuilder().build();
-
-			// Tomcat will respond with SC_BAD_REQUEST (or SC_REQUEST_TIMEOUT?) when the
-			// j_security_check URL is visited before an authenticated URL has been visited.
-			visitAuthenticatedURL(client);
-
-			// Authenticate against the server.
-			String authMethod = determineAuthMethod(client);
-			if (authMethod.equals("FORM")) {
-				formBasedAuthenticate(client);
-				visitAuthenticatedURL(client);
-			} else if (authMethod.equals("BASIC")) {
-				AuthScope scope = new AuthScope(jazzUri.getHost(), jazzUri.getPort());
-				Credentials up = new UsernamePasswordCredentials(user, pw);
-				CredentialsProvider p = new BasicCredentialsProvider();
-				p.setCredentials(scope, up);
-				setDefaultCredentialsProvider(p);
-				client.close();
-				client = getHttpClientBuilder().build();
-			} else if (authMethod.equals("OIDC")) {
-				oidcAuthenticate(client);
-				client.close();
-				client = getHttpClientBuilder().build();
-			}
-
-			return client;
-		} catch (Exception e) {
-			throw e;
-		} catch (Throwable e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	@Override /* RestClient */
-	protected HttpClientBuilder createHttpClientBuilder() {
-		HttpClientBuilder b = super.createHttpClientBuilder();
-
-		// See wi 368181. The PublicSuffixDomainFilter uses a default PublicSuffixMatcher
-		// that rejects hostnames lacking a dot, such as "ccmserver", so needed
-		// cookies don't get put on outgoing requests.
-		// Here, we create a cookie spec registry with handlers that don't have a PublicSuffixMatcher.
-		if (! Boolean.getBoolean("com.ibm.team.repository.transport.client.useDefaultPublicSuffixMatcher"))
-			b.setDefaultCookieSpecRegistry(CookieSpecRegistries.createDefault(null));
-
-		return b;
-	}
-
-
-	/**
-	 * Performs form-based authentication against the Jazz server.
-	 */
-	private void formBasedAuthenticate(HttpClient client) throws IOException {
-
-		URI uri2 = jazzUri.resolve("j_security_check");
-		HttpPost request = new HttpPost(uri2);
-		request.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build());
-		 // Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.
-		request.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
-
-		NameValuePairs params = new NameValuePairs()
-			.append(new BasicNameValuePair("j_username", user))
-			.append(new BasicNameValuePair("j_password", pw));
-		request.setEntity(new UrlEncodedFormEntity(params));
-
-		HttpResponse response = client.execute(request);
-		try {
-			int rc = response.getStatusLine().getStatusCode();
-
-			Header authMsg = response.getFirstHeader("X-com-ibm-team-repository-web-auth-msg");
-			if (authMsg != null)
-				throw new IOException(authMsg.getValue());
-
-			// The form auth request should always respond with a 200 ok or 302 redirect code
-			if (rc == SC_MOVED_TEMPORARILY) {
-				if (response.getFirstHeader("Location").getValue().matches("^.*/auth/authfailed.*$"))
-					throw new IOException("Invalid credentials.");
-			} else if (rc != SC_OK) {
-				throw new IOException("Unexpected HTTP status: " + rc);
-			}
-		} finally {
-			EntityUtils.consume(response.getEntity());
-		}
-	}
-
-	private void oidcAuthenticate(HttpClient client) throws IOException {
-
-		HttpGet request = new HttpGet(jazzUri);
-		request.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build());
-
-		 // Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.
-		request.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
-
-		HttpResponse response = client.execute(request);
-		try {
-			int code = response.getStatusLine().getStatusCode();
-
-			// Already authenticated
-			if (code == SC_OK)
-				return;
-
-			if (code != SC_UNAUTHORIZED)
-				throw new RestCallException("Unexpected response during OIDC authentication: " + response.getStatusLine());
-
-			//'x-jsa-authorization-redirect'
-			String redirectUri = getHeader(response, "X-JSA-AUTHORIZATION-REDIRECT");
-
-			if (redirectUri == null)
-				throw new RestCallException("Excpected a redirect URI during OIDC authentication: " + response.getStatusLine());
-
-			// Handle Bearer Challenge
-			HttpGet method = new HttpGet(redirectUri + "&prompt=none");
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			if (code != SC_OK)
-				throw new RestCallException("Unexpected response during OIDC authentication phase 2: " + response.getStatusLine());
-
-			String loginRequired = getHeader(response, "X-JSA-LOGIN-REQUIRED");
-
-			if (! "true".equals(loginRequired))
-				throw new RestCallException("X-JSA-LOGIN-REQUIRED header not found on response during OIDC authentication phase 2: " + response.getStatusLine());
-
-			method = new HttpGet(redirectUri + "&prompt=none");
-
-			addDefaultOidcHeaders(method);
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			if (code != SC_OK)
-				throw new RestCallException("Unexpected response during OIDC authentication phase 3: " + response.getStatusLine());
-
-			// Handle JAS Challenge
-			method = new HttpGet(redirectUri);
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			if (code != SC_OK)
-				throw new RestCallException("Unexpected response during OIDC authentication phase 4: " + response.getStatusLine());
-
-			cookie = getHeader(response, "Set-Cookie");
-
-			Header[] defaultHeaders = new Header[] {
-				new BasicHeader("User-Agent", "Jazz Native Client"),
-				new BasicHeader("X-com-ibm-team-configuration-versions", "com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"),
-				new BasicHeader("Accept", "text/json"),
-				new BasicHeader("Authorization", "Basic " + StringUtils.base64EncodeToString(this.user + ":" + this.pw)),
-				new BasicHeader("Cookie", cookie)
-			};
-
-			setDefaultHeaders(Arrays.asList(defaultHeaders));
-
-		} finally {
-			EntityUtils.consume(response.getEntity());
-		}
-	}
-
-	/*
-	 * This is needed for Tomcat because it responds with SC_BAD_REQUEST when the j_security_check URL is visited before an
-	 * authenticated URL has been visited. This same URL must also be visited after authenticating with j_security_check
-	 * otherwise tomcat will not consider the session authenticated
-	 */
-	private int visitAuthenticatedURL(HttpClient httpClient) throws IOException {
-		HttpGet authenticatedURL = new HttpGet(jazzUri.resolve("authenticated/identity"));
-		HttpResponse response = httpClient.execute(authenticatedURL);
-		try {
-			return response.getStatusLine().getStatusCode();
-		} finally {
-			EntityUtils.consume(response.getEntity());
-		}
-	}
-
-	/*
-	 * @return Returns "FORM" for form-based authenication, "BASIC" for basic auth, "OIDC" for OIDC.  Never <code>null</code>.
-	 */
-	private String determineAuthMethod(HttpClient client) throws IOException {
-
-		HttpGet request = new HttpGet(jazzUri.resolve("authenticated/identity"));
-		request.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build());
-
-		// if the FORM_AUTH_URI path exists, then we know we are using FORM auth
-		HttpResponse response = client.execute(request);
-		try {				//'x-jsa-authorization-redirect'
-			Header redirectUri = response.getFirstHeader("X-JSA-AUTHORIZATION-REDIRECT");
-			if (redirectUri != null)
-				return "OIDC";
-
-			int rc = response.getStatusLine().getStatusCode();
-			// Tomcat and Jetty return a status code 200 if the server is using FORM auth
-			if (rc == SC_OK)
-				return "FORM";
-			else if (rc == SC_MOVED_TEMPORARILY && response.getFirstHeader("Location").getValue().matches("^.*(/auth/authrequired|/authenticated/identity).*$"))
-				return "FORM";
-			return "BASIC";
-
-		} finally {
-			EntityUtils.consume(response.getEntity());
-		}
-	}
-
-	private String getHeader(HttpResponse response, String key) {
-		Header h = response.getFirstHeader(key);
-		return (h == null ? null : h.getValue());
-	}
-
-	private void addDefaultOidcHeaders(HttpRequestBase method) {
-		method.addHeader("User-Agent", "Jazz Native Client");
-		method.addHeader("X-com-ibm-team-configuration-versions", "com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0");
-		method.addHeader("Accept", "text/json");
-
-		if (cookie != null) {
-			method.addHeader("Authorization", "Basic " + StringUtils.base64EncodeToString(user + ":" + pw));
-			method.addHeader("Cookie", cookie);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/jazz/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/jazz/package.html b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/jazz/package.html
deleted file mode 100755
index fce9248..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/jazz/package.html
+++ /dev/null
@@ -1,187 +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>Jazz REST client 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='#RestClient'>Jazz REST client API</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="RestClient"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Jazz REST client API</h2>
-<div class='topic'>
-	<p>
-		Juno provides a default REST client implementation for working with Jazz servers. 
-		The client automatically detects and handles BASIC and FORM authentication and basic certificate authentication.
-	</p>
-	<p>
-		The following code shows the Jazz REST client being used for querying and creating server messages on 
-			a Jazz server.  The <code>ServerMessage</code> and <code>CreateServerMessage</code> classes
-			are nothing more than simple beans that get serialized over the connection and reconstituted on 
-			the server.
-	</p>
-	<p class='bcode'>
-	System.<jsf>out</jsf>.println(<js>"Adding sample messages"</js>);
-
-	DateFormat df = <jk>new</jk> SimpleDateFormat(<js>"yyyy-MM-dd'T'HH:mm:ssZ"</js>);
-	String url = <js>"https://localhost:9443/jazz"</js>;
-	String sms = url + <js>"/serverMessages"</js>;
-	CreateServerMessage m;
-	ServerMessage m2;
-	String s1;
-	ServerMessage[] messages;
-	
-	<jc>// Serializer for debug messages.</jc>
-	WriterSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>;
-	
-	<jc>// Create clients to handle JSON and XML requests and responses.</jc>
-	RestClient jsonClient = <jk>new</jk> JazzRestClient(url, <js>"ADMIN"</js>, <js>"ADMIN"</js>)
-		.setSerializer(JsonSerializer.<jk>class</jk>)
-		.setParser(<jk>new</jk> JsonParser().addFilters(DateFilter.<jsf>ISO8601DTZ</jsf>.<jk>class</jk>));
-	
-	RestClient xmlClient = <jk>new</jk> JazzRestClient(url, <js>"ADMIN"</js>, <js>"ADMIN"</js>, XmlSerializer.<jk>class</jk>, XmlParser.<jk>class</jk>);
-	
-	<jc>// Delete any existing messages.</jc>
-	messages = jsonClient
-		.doGet(sms)
-		.getResponse(ServerMessage[].<jk>class</jk>);
-	
-	<jk>for</jk> (ServerMessage message : messages) {
-		<jk>int</jk> rc = jsonClient
-			.doDelete(message.getUri())
-			.execute();
-		System.<jsf>out</jsf>.println(rc);	<jc>// Prints 200.</jc>
-	}
-	
-	<jc>// Create an active server message.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #1"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2012-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>));
-	
-	<jc>// POST the message, get response as string.</jc>
-	s1 = jsonClient
-		.doPost(sms, m)
-		.getResponseAsString(); 
-	System.<jsf>out</jsf>.println(<js>"TEST1: response="</js> + s1);
-
-	<jc>// POST another message, get response as ServerMessage</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #2"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2012-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>));
-
-	m2 = jsonClient
-		.doPost(sms, m)
-		.getResponse(ServerMessage.<jk>class</jk>); 
-	System.<jsf>out</jsf>.println(<js>"TEST2: response="</js> + serializer.serialize(m2));
-	
-	<jc>// Create a future server message.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #3"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2014-01-01T12:34:56EST"</js>));
-	
-	m2 = jsonClient
-		.doPost(sms, m)
-		.getResponse(ServerMessage.<jk>class</jk>); 
-	System.<jsf>out</jsf>.println(<js>"TEST3: response="</js> + serializer.serialize(m2));
-	System.<jsf>out</jsf>.println(<js>"TEST3: id="</js> + m2.getItemId().getUuidValue());
-
-	<jc>// Create a future server message using XML on both request and response.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #4"</js>,
-		<js>"subTypeFoo"</js>,                                  
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2014-01-01T12:34:56EST"</js>));
-	
-	s1 = xmlClient
-		.doPost(sms, m)
-		.getResponseAsString();
-	System.<jsf>out</jsf>.println(<js>"TEST4: response="</js> + s1);
-
-	<jc>// Get all the messages</jc>
-	messages = jsonClient
-		.doGet(sms)
-		.getResponse(ServerMessage[].<jk>class</jk>);
-	System.<jsf>out</jsf>.println(<js>"TEST5: response="</js> + serializer.serialize(messages)); 
-
-	<jc>// Get the first ID</jc>
-	URI firstMessageUrl = messages[0].getUri();
-	
-	System.<jsf>out</jsf>.println(<js>"firstMessageUrl=["</js>+firstMessageUrl+<js>"]"</js>);
-	
-	<jc>// Get the Date of the first ID.</jc>
-	Date startDate = jsonClient
-		.doGet(firstMessageUrl + <js>"/startDate"</js>)
-		.getResponse(Date.<jk>class</jk>);  
-	System.<jsf>out</jsf>.println(<js>"TEST5: response.startDate="</js>+startDate);
-	
-	<jc>// Change the start and end dates on first message</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #3 overwritten"</js>,
-		<js>"subTypeFooBar"</js>,
-		df.parse(<js>"2023-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2024-01-01T12:34:56EST"</js>));
-	s1 = jsonClient.doPut(firstMessageUrl, m).getResponseAsString();
-	System.<jsf>out</jsf>.println(<js>"TEST6: response="</js>+s1);
-	</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/client/com/ibm/juno/client/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/package.html b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/package.html
deleted file mode 100755
index 407ef7c..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/package.html
+++ /dev/null
@@ -1,850 +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>REST client 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='#RestClient'>REST Client API</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#SSL'>SSL Support</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#SSLOpts'>SSLOpts Bean</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#Authentication'>Authentication</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#BASIC'>BASIC Authentication</a></p>
-			<li><p><a class='doclink' href='#FORM'>FORM-based Authentication</a></p>
-			<li><p><a class='doclink' href='#OIDC'>OIDC Authentication</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#ResponsePatterns'>Using Response Patterns</a></p>
-		<li><p><a class='doclink' href='#PipingOutput'>Piping Response Output</a></p>
-		<li><p><a class='doclink' href='#Logging'>Logging</a></p>
-		<li><p><a class='doclink' href='#Interceptors'>Interceptors</a></p>
-		<li><p><a class='doclink' href='#Remoteable'>Remoteable Proxies</a></p>
-		<li><p><a class='doclink' href='#Other'>Other Useful Methods</a></p>
-	</ol>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="RestClient"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - REST Client API</h2>
-<div class='topic'>
-	<p>
-		Juno provides an HTTP client API that makes it extremely simple to connect to remote REST interfaces and 
-		seemlessly send and receive serialized POJOs in requests and responses.  
-	</p>
-	<h6 class='notes'>Features:</h6>
-	<ul class='notes'>
-		<li>Converts POJOs directly to HTTP request message bodies using {@link com.ibm.juno.core.serializer.Serializer} classes.
-	 	<li>Converts HTTP response message bodies directly to POJOs using {@link com.ibm.juno.core.parser.Parser} classes.
-		<li>Exposes the full functionality of the Apache HttpClient API by exposing all methods defined on the 
-			{@link org.apache.http.impl.client.HttpClientBuilder} class.
-		<li>Provides various convenience methods for setting up common SSL and authentication methods.
-		<li>Provides a fluent interface that allows you to make complex REST calls in a single line of code.
-	</ul>	
-	<p>
-		The client API is designed to work as a thin layer on top of the proven Apache HttpClient API.  
-		By leveraging the HttpClient library, details such as SSL certificate negotiation, proxies, encoding, etc...
-			are all handled in Apache code. 
-	</p>
-	<p>
-		The Juno client API prereq's Apache HttpClient 4.1.2+. 
-		At a mimimum, the following jars are required:
-	</p>
-	<ul>
-		<li><code>httpclient-4.5.jar</code>
-		<li><code>httpcore-4.4.1.jar</code>
-		<li><code>httpmime-4.5.jar</code>
-	</ul>
-	<h6 class='topic'>Examples</h6>
-	<p class='bcode'>
-	<jc>// Examples below use the Juno Address Book resource example</jc>
-
-	<jc>// Create a reusable client with JSON support</jc>
-	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>);
-	
-	<jc>// GET request, ignoring output</jc>
-	<jk>try</jk> {
-		<jk>int</jk> rc = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>).execute();
-		<jc>// Succeeded!</jc>
-	} <jk>catch</jk> (RestCallException e) {
-		<jc>// Failed!</jc>
-		System.<jsf>err</jsf>.println(
-			String.<jsm>format</jsm>(<js>"status=%s, message=%s"</js>, e.getResponseStatus(), e.getResponseMessage())
-		);
-	}
-			
-	<jc>// Remaining examples ignore thrown exceptions.</jc>		
-			
-	<jc>// GET request, secure, ignoring output</jc>
-	client.doGet(<js>"https://localhost:9443/sample/addressBook"</js>).execute();
-			
-	<jc>// GET request, getting output as a String.  No POJO parsing is performed.
-	// Note that when calling one of the getX() methods, you don't need to call connect() or disconnect(), since
-	//	it's automatically called for you.</jc>
-	String output = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponseAsString();
-			
-	<jc>// GET request, getting output as a Reader</jc>
-	Reader r = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getReader();
-			
-	<jc>// GET request, getting output as an ObjectMap</jc>
-	<jc>// Input must be an object (e.g. "{...}")</jc>
-	ObjectMap m = client.doGet(<js>"http://localhost:9080/sample/addressBook/0"</js>)
-		.getResponse(ObjectMap.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a ObjectList</jc>
-	<jc>// Input must be an array (e.g. "[...]")</jc>
-	ObjectList l = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(ObjectList.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed bean</jc>
-	<jc>// Input must be an object (e.g. "{...}")</jc>
-	<jc>// Note that you don't have to do any casting!</jc>
-	Person p = client.doGet(<js>"http://localhost:9080/sample/addressBook/0"</js>)
-		.getResponse(Person.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed bean</jc>
-	<jc>// Input must be an array of objects (e.g. "[{...},{...}]")</jc>
-	Person[] pa = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(Person[].<jk>class</jk>);
-			
-	<jc>// Same as above, except as a List&lt;Person&gt;</jc>
-	ClassMeta cm = BeanContext.<jsf>DEFAULT</jsf>.getCollectionClassMeta(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
-	List&lt;Person&gt; pl = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(cm);
-			
-	<jc>// GET request, getting output as a parsed string</jc>
-	<jc>// Input must be a string (e.g. "&lt;string&gt;foo&lt;/string&gt;" or "'foo'")</jc>
-	String name = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/name"</js>)
-		.getResponse(String.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed number</jc>
-	<jc>// Input must be a number (e.g. "&lt;number&gt;123&lt;/number&gt;" or "123")</jc>
-	<jk>int</jk> age = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/age"</js>)
-		.getResponse(Integer.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed boolean</jc>
-	<jc>// Input must be a boolean (e.g. "&lt;boolean&gt;true&lt;/boolean&gt;" or "true")</jc>
-	<jk>boolean</jk> isCurrent = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/addresses/0/isCurrent"</js>)
-		.getResponse(Boolean.<jk>class</jk>);
-			
-	<jc>// GET request, getting a filtered object</jc>
-	client.getParser().addFilters(CalendarFilter.<jsf>ISO8601</jsf>.<jk>class</jk>);
-	Calendar birthDate = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>)
-		.getResponse(GregorianCalendar.<jk>class</jk>);
-
-	<jc>// PUT request on regular field</jc>
-	String newName = <js>"John Smith"</js>;
-	<jk>int</jk> rc = client.doPut(<js>"http://localhost:9080/addressBook/0/name"</js>, newName).execute();
-	
-	<jc>// PUT request on filtered field</jc>
-	Calendar newBirthDate = <jk>new</jk> GregorianCalendar(1, 2, 3, 4, 5, 6);
-	rc = client.doPut(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>, newBirthDate).execute();
-	
-	<jc>// POST of a new entry to a list</jc>
-	Address newAddress = <jk>new</jk> Address(<js>"101 Main St"</js>, <js>"Anywhere"</js>, <js>"NY"</js>, 12121, <jk>false</jk>);
-	rc = client.doPost(<js>"http://localhost:9080/addressBook/0/addresses"</js>, newAddress).execute();	
-	</p>
-	
-	<h6 class='notes'>Notes:</h6>
-	<ul class='notes'>
-		<li><p>The {@link com.ibm.juno.client.RestClient} class exposes all the builder methods on the Apache HttpClient {@link org.apache.http.impl.client.HttpClientBuilder} class.
-			Use these methods to provide any customized HTTP client behavior..</p>
-	</ul>
-	
-	<!-- ======================================================================================================== -->
-	<a id="SSL"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - SSL Support</h3>
-	<div class='topic'>
-		<p>
-			The simplest way to enable SSL support in the client is to use the {@link com.ibm.juno.client.RestClient#enableSSL(SSLOpts)} method
-			and one of the predefined {@link com.ibm.juno.client.SSLOpts} instances:
-			<ul>
-				<li>{@link com.ibm.juno.client.SSLOpts#DEFAULT} - Normal certificate and hostname validation.
-				<li>{@link com.ibm.juno.client.SSLOpts#LAX} - Allows for self-signed certificates.
-			</ul>
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Create a client that ignores self-signed or otherwise invalid certificates.</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.enableSSL(SSLOpts.<jsf>LAX</jsf>);
-		
-	<jc>// ...or...</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.enableLaxSSL();
-		</p>
-		<p>
-			This is functionally equivalent to the following:
-		</p>
-		<p class='bcode'>
-	RestClient restClient = <jk>new</jk> RestClient();
-	
-	HostnameVerifier hv = <jk>new</jk> NoopHostnameVerifier();
-	TrustManager tm = <jk>new</jk> SimpleX509TrustManager(<jk>true</jk>);
-
-	<jk>for</jk> (String p : <jk>new</jk> String[]{<js>"SSL"</js>,<js>"TLS"</js>,<js>"SSL_TLS"</js>}) {
-		SSLContext ctx = SSLContext.<jsm>getInstance</jsm>(p);
-		ctx.init(<jk>null</jk>, <jk>new</jk> TrustManager[] { tm }, <jk>null</jk>);
-		SSLConnectionSocketFactory sf = <jk>new</jk> SSLConnectionSocketFactory(ctx, hv);
-		restClient.setSSLSocketFactory(sf);
-		Registry&lt;ConnectionSocketFactory&gt; r = RegistryBuilder.&lt;ConnectionSocketFactory&gt;<jsm>.create</jsm>().register(<js>"https"</js>, sf).build();
-		restClient.setConnectionManager(<jk>new</jk> PoolingHttpClientConnectionManager(r));
-	}
-		</p>
-		<p>
-			More complex SSL support can be enabled through the various {@link org.apache.http.impl.client.HttpClientBuilder} methods defined on the class.
-		</p>
-		
-		<!-- ======================================================================================================== -->
-		<a id="SSLOpts"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.1.1 - SSLOpts Bean</h4>
-		<div class='topic'>
-	<p>
-				The {@link com.ibm.juno.client.SSLOpts} class itself is a bean that can be created by the parsers.
-				For example, SSL options can be specified in a config file and retrieved as a bean using the {@link com.ibm.juno.core.ini.ConfigFile} class.
-	</p>
-			<h6 class='figure'>Contents of <code>MyConfig.cfg</code></h6>
-			<p class='bcode'>
-		<jc>#================================================================================
-		# My Connection Settings
-		#================================================================================</jc>
-		[Connection]
-		url = https://myremotehost:9443
-		ssl = {certValidate:'LAX',hostVerify:'LAX'}
-			</p>
-			<h6 class='figure'>Code that reads an <code>SSLOpts</code> bean from the config file</h6>
-			<p class='bcode'>
-		<jc>// Read config file and set SSL options based on what's in that file.</jc>
-		ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.get(<js>"MyConfig.cfg"</js>);
-		SSLOpts ssl = cf.getObject(SSLOpts.<jk>class</jk>, <js>"Connection/ssl"</js>);
-		RestClient rc = <jk>new</jk> RestClient().enableSSL(ssl);
-			</p>
-		</div>
-	</div>	
-
-	<!-- ======================================================================================================== -->
-	<a id="Authentication"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.2 - Authentication</h3>
-	<div class='topic'>
-
-		<!-- ======================================================================================================== -->
-		<a id="BASIC"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.1 - BASIC Authentication</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.client.RestClient#setBasicAuth(String,int,String,String)} method can be used to quickly enable
-				BASIC authentication support.
-			</p>
-			<h6 class='topic'>Example:</h6>
-			<p class='bcode'>
-	<jc>// Create a client that performs BASIC authentication using the specified user/pw.</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.setBasicAuth(<jsf>HOST</jsf>, <jsf>PORT</jsf>, <jsf>USER</jsf>, <jsf>PW</jsf>);
-		</p>
-		<p>
-			This is functionally equivalent to the following:
-		</p>
-		<p class='bcode'>
-	RestClient restClient = <jk>new</jk> RestClient();
-	AuthScope scope = <jk>new</jk> AuthScope(<jsf>HOST</jsf>, <jsf>PORT</jsf>);
-	Credentials up = <jk>new</jk> UsernamePasswordCredentials(<jsf>USER</jsf>, <jsf>PW</jsf>);
-	CredentialsProvider p = <jk>new</jk> BasicCredentialsProvider();
-	p.setCredentials(scope, up);
-	restClient.setDefaultCredentialsProvider(p);
-			</p>
-		</div>
-	
-		<!-- ======================================================================================================== -->
-		<a id="FORM"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.2 - FORM-based Authentication</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.client.RestClient} class does not itself provide FORM-based authentication since there
-				is no standard way of providing such support. 
-				Typically, to perform FORM-based or other types of authentication, you'll want to create your own
-				subclass of {@link com.ibm.juno.client.RestClient} and override the {@link com.ibm.juno.client.RestClient#createHttpClient()}
-				method to provide an authenticated client.
-			</p>
-			<p>
-				The following example shows how the {@link com.ibm.juno.client.jazz.JazzRestClient} class provides
-				FORM-based authentication support.
-			</p>
-			<p class='bcode'>
-	<jd>/**
-	 * Constructor.
-	 */</jd>
-	<jk>public</jk> JazzRestClient(URI jazzUri, String user, String pw) <jk>throws</jk> IOException {
-		...
-	}
-
-	<jd>/**
-	 * Override the createHttpClient() method to return an authenticated client.
-	 */</jd>
-	<ja>@Override</ja> <jc>/* RestClient */</jc>
-	<jk>protected</jk> CloseableHttpClient createHttpClient() <jk>throws</jk> Exception {
-		CloseableHttpClient client = <jk>super</jk>.createHttpClient();
-		formBasedAuthenticate(client);
-		visitAuthenticatedURL(client);
-		<jk>return</jk> client;
-	}
-
-	<jc>/*
-	 * Performs form-based authentication against the Jazz server.
-	 */</jc>
-	<jk>private void</jk> formBasedAuthenticate(HttpClient client) <jk>throws</jk> IOException {
-
-		URI uri2 = <jf>jazzUri</jf>.resolve(<js>"j_security_check"</js>);
-		HttpPost request = <jk>new</jk> HttpPost(uri2);
-		request.setConfig(RequestConfig.<jsm>custom</jsm>().setRedirectsEnabled(<jk>false</jk>).build());
-		
-		<jc>// Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.</jc>
-		request.addHeader(<js>"Content-Type"</js>, <js>"application/x-www-form-urlencoded; charset=utf-8"</js>);
-
-		NameValuePairs params = <jk>new</jk> NameValuePairs()
-			.append(<jk>new</jk> BasicNameValuePair(<js>"j_username""</js>, <jf>user</jf>))
-			.append(<jk>new</jk> BasicNameValuePair(<js>"j_password"</js>, <jf>pw</jf>));
-		request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
-
-		HttpResponse response = client.execute(request);
-		<jk>try</jk> {
-			<jk>int</jk> rc = response.getStatusLine().getStatusCode();
-
-			Header authMsg = response.getFirstHeader(<js>"X-com-ibm-team-repository-web-auth-msg"</js>);
-			<jk>if</jk> (authMsg != <jk>null</jk>)
-				<jk>throw new</jk> IOException(authMsg.getValue());
-
-			<jc>// The form auth request should always respond with a 200 ok or 302 redirect code</jc>
-			<jk>if</jk> (rc == <jsf>SC_MOVED_TEMPORARILY</jsf>) {
-				<jk>if</jk> (response.getFirstHeader(<js>"Location"</js>).getValue().matches(<js>"^.*/auth/authfailed.*$"</js>))
-					<jk>throw new</jk> IOException(<js>"Invalid credentials."</js>);
-			} <jk>else if</jk> (rc != <jsf>SC_OK</jsf>) {
-				<jk>throw new</jk> IOException(<js>"Unexpected HTTP status: "</js> + rc);
-			}
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-
-	<jc>/*
-	 * This is needed for Tomcat because it responds with SC_BAD_REQUEST when the j_security_check URL is visited before an
-	 * authenticated URL has been visited. This same URL must also be visited after authenticating with j_security_check
-	 * otherwise tomcat will not consider the session authenticated
-	 */</jc>
-	<jk>private int</jk> visitAuthenticatedURL(HttpClient httpClient) <jk>throws</jk> IOException {
-		HttpGet authenticatedURL = <jk>new</jk> HttpGet(<jf>jazzUri</jf>.resolve(<js>"authenticated/identity"</js>));
-		HttpResponse response = httpClient.execute(authenticatedURL);
-		<jk>try</jk> {
-			<jk>return</jk> response.getStatusLine().getStatusCode();
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-			</p>
-		</div>
-		
-		<!-- ======================================================================================================== -->
-		<a id="OIDC"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.3 - OIDC Authentication</h4>
-		<div class='topic'>
-			<p>
-				The following example shows how the {@link com.ibm.juno.client.jazz.JazzRestClient} class provides
-				OIDC authentication support.
-			</p>
-	<p class='bcode'>
-	<jd>/**
-	 * Constructor.
-	 */</jd>
-	<jk>public</jk> JazzRestClient(URI jazzUri, String user, String pw) <jk>throws</jk> IOException {
-		...
-	}
-
-	<jd>/**
-	 * Override the createHttpClient() method to return an authenticated client.
-	 */</jd>
-	<ja>@Override</ja> <jc>/* RestClient */</jc>
-	<jk>protected</jk> CloseableHttpClient createHttpClient() <jk>throws</jk> Exception {
-		CloseableHttpClient client = <jk>super</jk>.createHttpClient();
-		oidcAuthenticate(client);
-			<jk>return</jk> client;
-		}
-
-	<jk>private void</jk> oidcAuthenticate(HttpClient client) <jk>throws</jk> IOException {
-
-		HttpGet request = <jk>new</jk> HttpGet(<jf>jazzUri</jf>);
-		request.setConfig(RequestConfig.<jsm>custom</jsm>().setRedirectsEnabled(<jk>false</jk>).build());
-		
-		<jc>// Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.</jc>
-		request.addHeader(<js>"Content-Type"</js>, <js>"application/x-www-form-urlencoded; charset=utf-8"</js>);
-
-		HttpResponse response = client.execute(request);
-		<jk>try</jk> {
-			<jk>int</jk> code = response.getStatusLine().getStatusCode();
-
-			<jc>// Already authenticated</jc>
-			<jk>if</jk> (code == <jsf>SC_OK</jsf>)
-				<jk>return</jk>;
-
-			<jk>if</jk> (code != <jsf>SC_UNAUTHORIZED</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication: "</js> + response.getStatusLine());
-
-			<jc>// x-jsa-authorization-redirect</jc>
-			String redirectUri = getHeader(response, <js>"X-JSA-AUTHORIZATION-REDIRECT"</js>);
-
-			<jk>if</jk> (redirectUri == <jk>null</jk>)
-				<jk>throw new</jk> RestCallException(<js>"Expected a redirect URI during OIDC authentication: "</js> + response.getStatusLine());
-
-			<jc>// Handle Bearer Challenge</jc>
-			HttpGet method = <jk>new</jk> HttpGet(redirectUri + <js>"&prompt=none"</js>);
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 2: "</js> + response.getStatusLine());
-
-			String loginRequired = getHeader(response, <js>"X-JSA-LOGIN-REQUIRED"</js>);
-
-			<jk>if</jk> (! <js>"true"</js>.equals(loginRequired))
-				<jk>throw new</jk> RestCallException(<js>"X-JSA-LOGIN-REQUIRED header not found on response during OIDC authentication phase 2: "</js> + response.getStatusLine());
-
-			method = <jk>new</jk> HttpGet(redirectUri + <js>"&prompt=none"</js>);
-
-			addDefaultOidcHeaders(method);
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 3: "</js> + response.getStatusLine());
-
-			<jc>// Handle JAS Challenge</jc>
-			method = <jk>new</jk> HttpGet(redirectUri);
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 4: "</js> + response.getStatusLine());
-
-			<jf>cookie</jf> = getHeader(response, <js>"Set-Cookie"</js>);
-
-			Header[] defaultHeaders = <jk>new</jk> Header[] {
-				<jk>new</jk> BasicHeader(<js>"User-Agent"</js>, <js>"Jazz Native Client"</js>),
-				<jk>new</jk> BasicHeader(<js>"X-com-ibm-team-configuration-versions"</js>, <js>"com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"</js>),
-				<jk>new</jk> BasicHeader(<js>"Accept"</js>, <js>"text/json"</js>),
-				<jk>new</jk> BasicHeader(<js>"Authorization"</js>, <js>"Basic "</js> + StringUtils.<jsm>base64EncodeToString</jsm>(<jf>user</jf> + <js>":"</js> + <jf>pw</jf>)),
-				<jk>new</jk> BasicHeader(<js>"Cookie"</js>, cookie)
-	};
-
-			setDefaultHeaders(Arrays.<jsm>asList</jsm>(defaultHeaders));
-
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-
-	<jk>private void</jk> addDefaultOidcHeaders(HttpRequestBase method) {
-		method.addHeader(<js>"User-Agent"</js>, <js>"Jazz Native Client"</js>);
-		method.addHeader(<js>"X-com-ibm-team-configuration-versions"</js>, <js>"com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"</js>);
-		method.addHeader(<js>"Accept"</js>, <js>"text/json"</js>);
-
-		<jk>if</jk> (<jf>cookie</jf> != <jk>null</jk>) {
-			method.addHeader(<js>"Authorization"</js>, <js>"Basic "</js> + StringUtils.<jsm>base64EncodeToString</jsm>(<jf>user</jf> + <js>":"</js> + <jf>pw</jf>));
-			method.addHeader(<js>"Cookie"</js>, cookie);
-		}
-	}
-			</p>	
-		</div>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="ResponsePatterns"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.3 - Using Response Patterns</h3>
-	<div class='topic'>
-		<p>
-			One issue with REST (and HTTP in general) is that the HTTP response code must be set as a header before the 
-			body of the request is sent.  This can be problematic when REST calls invoke long-running processes, pipes
-			the results through the connection, and then fails after an HTTP 200 has already been sent.
-		</p>
-		<p>
-			One common solution is to serialize some text at the end to indicate whether the long-running process succeeded (e.g. <js>"FAILED"</js> or <js>"SUCCEEDED"</js>).
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestClient} class has convenience methods for scanning the response without
-			interfering with the other methods used for retrieving output.  
-		</p>
-		<p>
-			The following example shows how the {@link com.ibm.juno.client.RestCall#successPattern(String)} method can be used
-			to look for a SUCCESS message in the output:
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Throw a RestCallException if SUCCESS is not found in the output.</jc>
-	restClient.doPost(<jsf>URL</jsf>)
-		.successPattern(<js>"SUCCESS"</js>)
-		.run();
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCall#failurePattern(String)} method does the opposite.  
-			It throws an exception if a failure message is detected.
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Throw a RestCallException if FAILURE or ERROR is found in the output.</jc>
-	restClient.doPost(<jsf>URL</jsf>)
-		.failurePattern(<js>"FAILURE|ERROR"</js>)
-		.run();
-		</p>
-		<p>
-			These convenience methods are specialized methods that use the {@link com.ibm.juno.client.RestCall#addResponsePattern(ResponsePattern)}
-				method which uses regular expression matching against the response body.
-			This method can be used to search for arbitrary patterns in the response body.
-		</p>
-		<p>
-			The following example shows how to use a response pattern finder to find and capture patterns for <js>"x=number"</js> and <js>"y=string"</js>
-				from a response body.
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jk>final</jk> List&lt;Number&gt; xList = <jk>new</jk> ArrayList&lt;Number&gt;();
-	<jk>final</jk> List&lt;String&gt; yList = <jk>new</jk> ArrayList&lt;String&gt;();
-	
-	String responseText = restClient.doGet(<jsf>URL</jsf>)
-		.addResponsePattern(
-			<jk>new</jk> ResponsePattern(<js>"x=(\\d+)"</js>) {
-				<ja>@Override</ja>
-				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
-					xList.add(Integer.<jsm>parseInt</jsm>(m.group(1)));
-				}
-				<ja>@Override</ja>
-				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
-					<jk>throw new</jk> RestCallException(<js>"No X's found!"</js>);
-				}
-			}
-		)
-		.addResponsePattern(
-			<jk>new</jk> ResponsePattern(<js>"y=(\\S+)"</js>) {
-				<ja>@Override</ja>
-				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
-					yList.add(m.group(1));
-				}
-				<ja>@Override</ja>
-				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
-					<jk>throw new</jk> RestCallException(<js>"No Y's found!"</js>);
-				}
-			}
-		)
-		.getResponseAsString();
-		</p>
-		<p>
-			Using response patterns does not affect the functionality of any of the other methods
-			used to retrieve the response such as {@link com.ibm.juno.client.RestCall#getResponseAsString()} or {@link com.ibm.juno.client.RestCall#getResponse(Class)}.<br>
-			HOWEVER, if you want to retrieve the entire text of the response from inside the match methods,
-			use {@link com.ibm.juno.client.RestCall#getCapturedResponse()} since this method will not absorb the response for those other methods.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="#PipingOutput"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.4 - Piping Response Output</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestCall} class provides various convenience <code>pipeTo()</code> methods 
-			to pipe output to output streams and writers.
-		</p>
-		<p>
-			If you want to pipe output without any intermediate buffering, you can use the {@link com.ibm.juno.client.RestCall#byLines()} method.  
-			This will cause the output to be piped and flushed after every line.  
-			This can be useful if you want to display the results in real-time from a long running process producing
-				output on a REST call.
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Pipe output from REST call to System.out in real-time.</jc>
-	restClient.doPost(<jsf>URL</jsf>).byLines().pipeTo(<jk>new</jk> PrintWriter(System.<jk>out</jk>)).run();
-		</p>
-	</div>	
-	
-	<!-- ======================================================================================================== -->
-	<a id="Logging"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.5 - Logging</h3>
-	<div class='topic'>
-		<p>
-			Use the {@link com.ibm.juno.client.RestClient#logTo(Level,Logger)} and {@link com.ibm.juno.client.RestCall#logTo(Level,Logger)} methods
-			to log HTTP calls.
-			These methods will cause the HTTP request and response headers and body to be logged to the specified logger.  
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Log the HTTP request/response to the specified logger.</jc>
-	<jk>int</jk> rc = restClient.doGet(<jsf>URL</jsf>).logTo(<jsf>INFO</jsf>, getLogger()).run();
-		</p>
-		<p>
-			The method call is ignored if the logger level is below the specified level.
-		</p>
-		<p>
-			Customized logging can be handled by subclassing the {@link com.ibm.juno.client.RestCallLogger} class and using the 
-			{@link com.ibm.juno.client.RestCall#addInterceptor(RestCallInterceptor)} method.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="Interceptors"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.6 - Interceptors</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#addInterceptor(RestCallInterceptor)} and {@link com.ibm.juno.client.RestCall#addInterceptor(RestCallInterceptor)} methods
-			can be used to intercept responses during specific connection lifecycle events.
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCallLogger} class is an example of an interceptor that uses the various lifecycle methods
-				to log HTTP requests.
-		</p>
-		<p class='bcode'>
-	<jd>/**
-	 * Specialized interceptor for logging calls to a log file.
-	 */</jd>
-	<jk>public class</jk> RestCallLogger <jk>extends</jk> RestCallInterceptor {
-	
-		<jk>private</jk> Level <jf>level</jf>;
-		<jk>private</jk> Logger <jf>log</jf>;
-	
-		<jd>/**
-		 * Constructor.
-		 *
-		 * <ja>@param</ja> level The log level to log messages at.
-		 * <ja>@param</ja> log The logger to log to.
-		 */</jd>
-		<jk>protected</jk> RestCallLogger(Level level, Logger log) {
-			<jk>this</jk>.<jf>level</jf> = level;
-			<jk>this</jk>.<jf>log</jf> = log;
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onInit(RestCall restCall) {
-			<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>))
-				restCall.captureResponse();
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onConnect(RestCall restCall, <jk>int</jk> statusCode, HttpRequest req, HttpResponse res) {
-			<jc>// Do nothing.</jc>
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onRetry(RestCall restCall, <jk>int</jk> statusCode, HttpRequest req, HttpResponse res) {
-			<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>))
-				<jf>log</jf>.log(level, MessageFormat.<jsm>format</jsm>(<js>"Call to {0} returned {1}.  Will retry."</js>, req.getRequestLine().getUri(), statusCode)); 
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onClose(RestCall restCall) <jk>throws</jk> RestCallException {
-			<jk>try</jk> {
-				<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>)) {
-					String output = restCall.getCapturedResponse();
-					StringBuilder sb = <jk>new</jk> StringBuilder();
-					HttpUriRequest req = restCall.getRequest();
-					HttpResponse res = restCall.getResponse();
-					<jk>if</jk> (req != <jk>null</jk>) {
-						sb.append(<js>"\n=== HTTP Call =================================================================="</js>);
-	
-						sb.append(<js>"\n=== REQUEST ===\n"</js>).append(req);
-						sb.append(<js>"\n---request headers---"</js>);
-						<jk>for</jk> (Header h : req.getAllHeaders())
-							sb.append(<js>"\n"</js>).append(h);
-						<jk>if</jk> (req <jk>instanceof</jk> HttpEntityEnclosingRequestBase) {
-							sb.append(<js>"\n---request entity---"</js>);
-							HttpEntityEnclosingRequestBase req2 = (HttpEntityEnclosingRequestBase)req;
-							HttpEntity e = req2.getEntity();
-							<jk>if</jk> (e == <jk>null</jk>)
-								sb.append(<js>"\nEntity is null"</js>);
-							<jk>else</jk> {
-								<jk>if</jk> (e.getContentType() != <jk>null</jk>)
-									sb.append(<js>"\n"</js>).append(e.getContentType());
-								<jk>if</jk> (e.getContentEncoding() != <jk>null</jk>)
-									sb.append(<js>"\n"</js>).append(e.getContentEncoding());
-								<jk>if</jk> (e.isRepeatable()) {
-									<jk>try</jk> {
-										sb.append(<js>"\n---request content---\n"</js>).append(EntityUtils.<jsm>toString</jsm>(e));
-									} <jk>catch</jk> (Exception ex) {
-										<jk>throw new</jk> RuntimeException(ex);
-									}
-								}
-							}
-						}
-					}
-					<jk>if</jk> (res != <jk>null</jk>) {
-						sb.append(<js>"\n=== RESPONSE ===\n"</js>).append(res.getStatusLine());
-						sb.append(<js>"\n---response headers---"</js>);
-						<jk>for</jk> (Header h : res.getAllHeaders())
-							sb.append(<js>"\n"</js>).append(h);
-						sb.append(<js>"\n---response content---\n"</js>).append(output);
-						sb.append(<js>"\n=== END ========================================================================"</js>);
-					}
-					<jf>log</jf>.log(<jf>level</jf>, sb.toString());
-				}
-			} <jk>catch</jk> (IOException e) {
-				<jf>log</jf>.log(Level.<jsf>SEVERE</jsf>, e.getLocalizedMessage(), e);
-			}
-		}
-	}
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="Remoteable"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.7 - Remotable Proxies</h3>
-	<div class='topic'>
-		<p>
-			Juno provides the capability of calling methods on POJOs on a server through client-side proxy interfaces.
-			It offers a number of advantages over other similar remote proxy interfaces, such as being much simpler to 
-				use and allowing much more flexibility.
-		</p>
-		<p>
-			Proxy interfaces are retrieved using the {@link com.ibm.juno.client.RestClient#getRemoteableProxy(Class)} method.
-			The {@link com.ibm.juno.client.RestClient#setRemoteableServletUri(String)} method is used to specify the location
-				of the remoteable services servlet running on the server.
-			The remoteable servlet is a specialized subclass of {@link com.ibm.juno.server.RestServlet} that provides a full-blown
-				REST interface for calling interfaces remotely. 
-		</p>
-		<p>
-			In this example, we have the following interface defined that we want to call from the client side against
-				a POJO on the server side (i.e. a Remoteable Service)...
-		<p class='bcode'>
-	<jk>public interface</jk> IAddressBook {
-		Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
-	}
-		</p>			
-		<p>
-			The client side code for invoking this method is shown below...
-		</p>
-		<p class='bcode'>
-	<jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
-	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>)
-		.setRemoteableServletUri(<js>"https://localhost:9080/juno/sample/remoteable"</js>);
-	
-	<jc>// Create a proxy interface.</jc>
-	IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
-	
-	<jc>// Invoke a method on the server side and get the returned result.</jc>
-	Person p = ab.createPerson(
-		<jk>new</jk> CreatePerson(<js>"Test Person"</js>,
-			AddressBook.<jsm>toCalendar</jsm>(<js>"Aug 1, 1999"</js>),
-			<jk>new</jk> CreateAddress(<js>"Test street"</js>, <js>"Test city"</js>, <js>"Test state"</js>, 12345, <jk>true</jk>))
-	);
-		</p>
-		<p>
-			The requirements for a method to be callable through a remoteable service are:
-			<ul>
-				<li>The method must be public.
-				<li>The parameter and return types must be <a href='../../../../com/ibm/juno/core/package-summary.html#PojoCategories'><u>serializable and parsable</u></a>.
-			</ul>
-		</p>
-		<p>
-			One significant feature is that the remoteable services servlet is a full-blown REST interface.  
-			Therefore, in cases where the interface classes are not available on the client side,
-				the same method calls can be made through pure REST calls.  
-			This can also aid significantly in debugging since calls to the remoteable service
-				can be called directly from a browser with no code involved.
-		</p>
-		<p>
-			See {@link com.ibm.juno.server.remoteable} for more information.
-		</p> 
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="Other"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.8 - Other Useful Methods</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#setRootUrl(String)} method can be used to specify a root URL on 
-				all requests so that you don't have to use absolute paths on individual calls.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest client with a root URL</jc>
-	RestClient rc = <jk>new</jk> RestClient().setRootUrl(<js>"http://localhost:9080/foobar"</js>);
-	String r = rc.doGet(<js>"/baz"</js>).getResponseAsString();  <jc>// Gets "http://localhost:9080/foobar/baz"</jc>
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#setProperty(String,Object)} method can be used to set serializer
-			and parser properties.
-			For example, if you're parsing a response into POJOs and you want to ignore fields that aren't on the
-			POJOs, you can use the {@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownBeanProperties} property.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest client that ignores unknown fields in the response</jc>
-	RestClient rc = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>)
-		.setProperty(<jsf>BEAN_ignoreUnknownBeanProperties</jsf>, <jk>true</jk>);
-	MyPojo myPojo = rc.doGet(<jsf>URL</jsf>).getResponse(MyPojo.<jk>class</jk>);
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCall#setRetryable(int,long,RetryOn)} method can be used to automatically
-				retry requests on failures.
-			This can be particularly useful if you're attempting to connect to a REST resource that may be in
-				the process of still initializing.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest call that retries every 10 seconds for up to 30 minutes as long as a connection fails
-	// or a 400+ is received.</jc>
-	restClient.doGet(<jsf>URL</jsf>)
-		.setRetryable(180, 10000, RetryOn.<jsf>DEFAULT</jsf>)
-		.run();
-	</p>
-	</div>
-</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.test/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/bin/core.test/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 37c0a6f..1196f32
--- a/com.ibm.team.juno.releng/bin/core.test/META-INF/MANIFEST.MF
+++ b/com.ibm.team.juno.releng/bin/core.test/META-INF/MANIFEST.MF
@@ -1,18 +1,27 @@
 Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.8.3
-Created-By: pwa6470_27sr1-20140411_01 (SR1) (IBM Corporation)
+Ant-Version: Apache Ant 1.9.6
+Created-By: 1.8.0_77-b03 (Oracle Corporation)
 Bundle-ManifestVersion: 2
-Bundle-Name: Juno Cloud API - Test
-Bundle-SymbolicName: com.ibm.team.juno.test
-Bundle-Version: 5.2.0.0
+Bundle-Name: Juneau Cloud Tools - Core
+Bundle-SymbolicName: org.apache.juneau
+Bundle-Version: 6.0.0
 Bundle-Vendor: IBM
-Require-Bundle: com.ibm.team.juno,com.ibm.team.juno.client,com.ibm.tea
- m.juno.server,org.junit
-Import-Package: javax.servlet,javax.servlet.http,org.apache.commons.fi
- leupload,org.apache.commons.fileupload.servlet,org.apache.derby.jdbc,
- org.apache.http,org.apache.http.impl.client,org.osgi.framework,org.os
- gi.service.http,org.osgi.util.tracker
+DynamicImport-Package: com.hp.hpl.jena.rdf.model,com.hp.hpl.jena.share
+ d
+Export-Package: org.apache.juneau,org.apache.juneau.annotation,org.apa
+ che.juneau.csv,org.apache.juneau.dto,org.apache.juneau.dto.atom,org.a
+ pache.juneau.dto.cognos,org.apache.juneau.dto.jsonschema,org.apache.j
+ uneau.encoders,org.apache.juneau.html,org.apache.juneau.html.annotati
+ on,org.apache.juneau.html.dto,org.apache.juneau.ini,org.apache.juneau
+ .internal,org.apache.juneau.jena,org.apache.juneau.jena.annotation,or
+ g.apache.juneau.jso,org.apache.juneau.json,org.apache.juneau.json.ann
+ otation,org.apache.juneau.msgpack,org.apache.juneau.parser,org.apache
+ .juneau.plaintext,org.apache.juneau.serializer,org.apache.juneau.soap
+ ,org.apache.juneau.svl,org.apache.juneau.svl.vars,org.apache.juneau.t
+ ransform,org.apache.juneau.transforms,org.apache.juneau.urlencoding,o
+ rg.apache.juneau.urlencoding.annotation,org.apache.juneau.utils,org.a
+ pache.juneau.xml,org.apache.juneau.xml.annotation
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Built-By: jbognar
-Build-Date: December 30 2015
+Built-By: james.bognar
+Build-Date: July 24 2016
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCall.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCall.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCall.java
deleted file mode 100755
index 67cbff2..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCall.java
+++ /dev/null
@@ -1,942 +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.client;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.logging.*;
-import java.util.regex.*;
-
-import org.apache.http.*;
-import org.apache.http.client.*;
-import org.apache.http.client.config.*;
-import org.apache.http.client.methods.*;
-import org.apache.http.impl.client.*;
-import org.apache.http.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.encoders.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.parser.ParseException;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Represents a connection to a remote REST resource.
- * <p>
- * 	Instances of this class are created by the various {@code doX()} methods on the {@link RestClient} class.
- * <p>
- * 	This class uses only Java standard APIs.  Requests can be built up using a fluent interface with method chaining, like so...
- *
- * <p class='bcode'>
- * 	RestClient client = <jk>new</jk> RestClient();
- * 	RestCall c = client.doPost(<jsf>URL</jsf>).setInput(o).setHeader(x,y);
- * 	MyBean b = c.getResponse(MyBean.<jk>class</jk>);
- * </p>
- * <p>
- * 	The actual connection and request/response transaction occurs when calling one of the <code>getResponseXXX()</code> methods.
- *
- * <h6 class='topic'>Additional Information</h6>
- * <ul>
- * 	<li><a class='doclink' href='package-summary.html#RestClient'>com.ibm.juno.client &gt; REST client API</a> for more information and code examples.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RestCall {
-
-	private final RestClient client;                       // The client that created this call.
-	private final HttpRequestBase request;                 // The request.
-	private HttpResponse response;                         // The response.
-	private List<RestCallInterceptor> interceptors = new ArrayList<RestCallInterceptor>();               // Used for intercepting and altering requests.
-
-	private boolean isConnected = false;                   // connect() has been called.
-	private boolean allowRedirectsOnPosts;
-	private int retries = 1;
-	private int redirectOnPostsTries = 5;
-	private long retryInterval = -1;
-	private RetryOn retryOn = RetryOn.DEFAULT;
-	private boolean ignoreErrors;
-	private boolean byLines = false;
-	private TeeWriter writers = new TeeWriter();
-	private StringWriter capturedResponseWriter;
-	private String capturedResponse;
-	private TeeOutputStream outputStreams = new TeeOutputStream();
-	private boolean isClosed = false;
-	private boolean isFailed = false;
-
-	/**
-	 * Constructs a REST call with the specified method name.
-	 *
-	 * @param client The client that created this request.
-	 * @param request The wrapped Apache HTTP client request object.
-	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
-	 */
-	protected RestCall(RestClient client, HttpRequestBase request) throws RestCallException {
-		this.client = client;
-		this.request = request;
-		for (RestCallInterceptor i : this.client.interceptors)
-			addInterceptor(i);
-	}
-
-	/**
-	 * Sets the input for this REST call.
-	 *
-	 * @param input The input to be sent to the REST resource (only valid for PUT and POST) requests. <br>
-	 * 	Can be of the following types:
-	 * 	<ul>
-	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
-	 * 		<li>{@link HttpEntity} - Bypass Juno serialization and pass HttpEntity directly to HttpClient.
-	 * 	</ul>
-	 * @return This object (for method chaining).
-	 * @throws RestCallException If a retry was attempted, but the entity was not repeatable.
-	 */
-	public RestCall setInput(final Object input) throws RestCallException {
-		if (! (request instanceof HttpEntityEnclosingRequestBase))
-			throw new RestCallException(0, "Method does not support content entity.", request.getMethod(), request.getURI(), null);
-		HttpEntity entity = (input instanceof HttpEntity ? (HttpEntity)input : new RestRequestEntity(input, client.serializer));
-		((HttpEntityEnclosingRequestBase)request).setEntity(entity);
-		if (retries > 1 && ! entity.isRepeatable())
-			throw new RestCallException("Rest call set to retryable, but entity is not repeatable.");
-		return this;
-	}
-
-	/**
-	 * Convenience method for setting a header value on the request.
-	 * <p>
-	 * Equivalent to calling <code>restCall.getRequest().setHeader(name, value.toString())</code>.
-	 *
-	 * @param name The header name.
-	 * @param value The header value.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall setHeader(String name, Object value) {
-		request.setHeader(name, value.toString());
-		return this;
-	}
-
-	/**
-	 * Make this call retryable if an error response (>=400) is received.
-	 *
-	 * @param retries The number of retries to attempt.
-	 * @param interval The time in milliseconds between attempts.
-	 * @param retryOn Optional object used for determining whether a retry should be attempted.
-	 * 	If <jk>null</jk>, uses {@link RetryOn#DEFAULT}.
-	 * @return This object (for method chaining).
-	 * @throws RestCallException If current entity is not repeatable.
-	 */
-	public RestCall setRetryable(int retries, long interval, RetryOn retryOn) throws RestCallException {
-		if (request instanceof HttpEntityEnclosingRequestBase) {
-		HttpEntity e = ((HttpEntityEnclosingRequestBase)request).getEntity();
-		if (e != null && ! e.isRepeatable())
-			throw new RestCallException("Attempt to make call retryable, but entity is not repeatable.");
-		}
-		this.retries = retries;
-		this.retryInterval = interval;
-		this.retryOn = (retryOn == null ? RetryOn.DEFAULT : retryOn);
-		return this;
-
-	}
-
-	/**
-	 * For this call, allow automatic redirects when a 302 or 307 occurs when
-	 * 	performing a POST.
-	 * <p>
-	 * Note that this can be inefficient since the POST body needs to be serialized
-	 * 	twice.
-	 * The preferred approach if possible is to use the {@link LaxRedirectStrategy} strategy
-	 * 	on the underlying HTTP client.  However, this method is provided if you don't
-	 * 	have access to the underlying client.
-	 *
-	 * @param b Redirect flag.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall allowRedirectsOnPosts(boolean b) {
-		this.allowRedirectsOnPosts = b;
-		return this;
-	}
-
-	/**
-	 * Specify the number of redirects to follow before throwing an exception.
-	 *
-	 * @param maxAttempts Allow a redirect to occur this number of times.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall setRedirectMaxAttempts(int maxAttempts) {
-		this.redirectOnPostsTries = maxAttempts;
-		return this;
-	}
-
-	/**
-	 * Add an interceptor for this call only.
-	 *
-	 * @param interceptor The interceptor to add to this call.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall addInterceptor(RestCallInterceptor interceptor) {
-		interceptors.add(interceptor);
-		interceptor.onInit(this);
-		return this;
-	}
-
-	/**
-	 * Pipes the request output to the specified writer when {@link #run()} is called.
-	 * <p>
-	 * The writer is not closed.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple writers.
-	 *
-	 * @param w The writer to pipe the output to.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(Writer w) {
-		return pipeTo(w, false);
-	}
-
-	/**
-	 * Pipe output from response to the specified writer when {@link #run()} is called.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple writers.
-	 *
-	 * @param w The writer to write the output to.
-	 * @param close Close the writer when {@link #close()} is called.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(Writer w, boolean close) {
-		return pipeTo(null, w, close);
-	}
-
-	/**
-	 * Pipe output from response to the specified writer when {@link #run()} is called and associate
-	 * that writer with an ID so it can be retrieved through {@link #getWriter(String)}.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple writers.
-	 *
-	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
-	 * @param w The writer to write the output to.
-	 * @param close Close the writer when {@link #close()} is called.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(String id, Writer w, boolean close) {
-		writers.add(id, w, close);
-		return this;
-	}
-
-	/**
-	 * Retrieves a writer associated with an ID via {@link #pipeTo(String, Writer, boolean)}
-	 *
-	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
-	 * @return The writer, or <jk>null</jk> if no writer is associated with that ID.
-	 */
-	public Writer getWriter(String id) {
-		return writers.getWriter(id);
-	}
-
-	/**
-	 * When output is piped to writers, flush the writers after every line of output.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public RestCall byLines() {
-		this.byLines = true;
-		return this;
-	}
-
-	/**
-	 * Pipes the request output to the specified output stream when {@link #run()} is called.
-	 * <p>
-	 * The output stream is not closed.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple output streams.
-	 *
-	 * @param os The output stream to pipe the output to.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(OutputStream os) {
-		return pipeTo(os, false);
-	}
-
-	/**
-	 * Pipe output from response to the specified output stream when {@link #run()} is called.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple output stream.
-	 *
-	 * @param os The output stream to write the output to.
-	 * @param close Close the output stream when {@link #close()} is called.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(OutputStream os, boolean close) {
-		return pipeTo(null, os, close);
-	}
-
-	/**
-	 * Pipe output from response to the specified output stream when {@link #run()} is called and associate
-	 * that output stream with an ID so it can be retrieved through {@link #getOutputStream(String)}.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple output stream.
-	 *
-	 * @param id A string identifier that can be used to retrieve the output stream using {@link #getOutputStream(String)}
-	 * @param os The output stream to write the output to.
-	 * @param close Close the output stream when {@link #close()} is called.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(String id, OutputStream os, boolean close) {
-		outputStreams.add(id, os, close);
-		return this;
-	}
-
-	/**
-	 * Retrieves an output stream associated with an ID via {@link #pipeTo(String, OutputStream, boolean)}
-	 *
-	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
-	 * @return The writer, or <jk>null</jk> if no writer is associated with that ID.
-	 */
-	public OutputStream getOutputStream(String id) {
-		return outputStreams.getOutputStream(id);
-	}
-
-	/**
-	 * Prevent {@link RestCallException RestCallExceptions} from being thrown when HTTP status 400+ is encountered.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall ignoreErrors() {
-		this.ignoreErrors = true;
-		return this;
-	}
-
-	/**
-	 * Stores the response text so that it can later be captured using {@link #getCapturedResponse()}.
-	 * <p>
-	 * This method should only be called once.  Multiple calls to this method are ignored.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public RestCall captureResponse() {
-		if (capturedResponseWriter == null) {
-			capturedResponseWriter = new StringWriter();
-			writers.add(capturedResponseWriter, false);
-		}
-		return this;
-	}
-
-
-	/**
-	 * Look for the specified regular expression pattern in the response output.
-	 * <p>
-	 * Causes a {@link RestCallException} to be thrown if the specified pattern is found in the output.
-	 * <p>
-	 * This method uses {@link #getCapturedResponse()} to read the response text and so does not affect the other output
-	 * 	methods such as {@link #getResponseAsString()}.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Throw a RestCallException if FAILURE or ERROR is found in the output.</jc>
-	 * 	restClient.doGet(<jsf>URL</jsf>)
-	 * 		.failurePattern(<js>"FAILURE|ERROR"</js>)
-	 * 		.run();
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param errorPattern A regular expression to look for in the response output.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall failurePattern(final String errorPattern) {
-		addResponsePattern(
-			new ResponsePattern(errorPattern) {
-				@Override
-				public void onMatch(RestCall rc, Matcher m) throws RestCallException {
-					throw new RestCallException("Failure pattern detected.");
-				}
-			}
-		);
-		return this;
-	}
-
-	/**
-	 * Look for the specified regular expression pattern in the response output.
-	 * <p>
-	 * Causes a {@link RestCallException} to be thrown if the specified pattern is not found in the output.
-	 * <p>
-	 * This method uses {@link #getCapturedResponse()} to read the response text and so does not affect the other output
-	 * 	methods such as {@link #getResponseAsString()}.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Throw a RestCallException if SUCCESS is not found in the output.</jc>
-	 * 	restClient.doGet(<jsf>URL</jsf>)
-	 * 		.successPattern(<js>"SUCCESS"</js>)
-	 * 		.run();
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param successPattern A regular expression to look for in the response output.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall successPattern(String successPattern) {
-		addResponsePattern(
-			new ResponsePattern(successPattern) {
-				@Override
-				public void onNoMatch(RestCall rc) throws RestCallException {
-					throw new RestCallException("Success pattern not detected.");
-				}
-			}
-		);
-		return this;
-	}
-
-	/**
-	 * Adds a response pattern finder to look for regular expression matches in the response output.
-	 * <p>
-	 * This method can be called multiple times to add multiple response pattern finders.
-	 * <p>
-	 * {@link ResponsePattern ResponsePatterns} use the {@link #getCapturedResponse()} to read the response text and so does not affect the other output
-	 * 	methods such as {@link #getResponseAsString()}.
-	 *
-	 * @param responsePattern The response pattern finder.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall addResponsePattern(final ResponsePattern responsePattern) {
-		captureResponse();
-		addInterceptor(
-			new RestCallInterceptor() {
-				@Override
-				public void onClose(RestCall restCall) throws RestCallException {
-					responsePattern.match(RestCall.this);
-				}
-			}
-		);
-		return this;
-	}
-
-	/**
-	 * Set configuration settings on this request.
-	 * <p>
-	 * Use {@link RequestConfig#custom()} to create configuration parameters for the request.
-	 *
-	 * @param config The new configuration settings for this request.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall setConfig(RequestConfig config) {
-		this.request.setConfig(config);
-		return this;
-	}
-
-	/**
-	 * @return The HTTP response code.
-	 * @throws RestCallException
-	 * @deprecated Use {@link #run()}.
-	 */
-	@Deprecated
-	public int execute() throws RestCallException {
-		return run();
-	}
-
-	/**
-	 * Method used to execute an HTTP response where you're only interested in the HTTP response code.
-	 * <p>
-	 * The response entity is discarded unless one of the pipe methods have been specified to pipe the
-	 * 	 output to an output stream or writer.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jk>try</jk> {
-	 * 		RestClient client = <jk>new</jk> RestClient();
-	 * 		<jk>int</jk> rc = client.doGet(url).execute();
-	 * 		<jc>// Succeeded!</jc>
-	 * 	} <jk>catch</jk> (RestCallException e) {
-	 * 		<jc>// Failed!</jc>
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @return This object (for method chaining).
-	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
-	 */
-	public int run() throws RestCallException {
-		connect();
-		try {
-			StatusLine status = response.getStatusLine();
-			int sc = status.getStatusCode();
-			if (sc >= 400 && ! ignoreErrors)
-				throw new RestCallException(sc, status.getReasonPhrase(), request.getMethod(), request.getURI(), getResponseAsString()).setHttpResponse(response);
-			if (outputStreams.size() > 0 || writers.size() > 0)
-				getReader();
-			return sc;
-		} catch (RestCallException e) {
-			isFailed = true;
-			throw e;
-		} catch (IOException e) {
-			isFailed = true;
-			throw new RestCallException(e).setHttpResponse(response);
-		} finally {
-			close();
-		}
-	}
-
-	/**
-	 * Connects to the REST resource.
-	 * <p>
-	 * 	If this is a <code>PUT</code> or <code>POST</code>, also sends the input to the remote resource.<br>
-	 * <p>
-	 * 	Typically, you would only call this method if you're not interested in retrieving the body of the HTTP response.
-	 * 	Otherwise, you're better off just calling one of the {@link #getReader()}/{@link #getResponse(Class)}/{@link #pipeTo(Writer)}
-	 * 	methods directly which automatically call this method already.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws RestCallException If an exception or <code>400+</code> HTTP status code occurred during the connection attempt.
-	 */
-	public RestCall connect() throws RestCallException {
-
-		if (isConnected)
-			return this;
-		isConnected = true;
-
-		try {
-			int sc = 0;
-			while (retries > 0) {
-				retries--;
-				Exception ex = null;
-				try {
-			response = client.execute(request);
-				sc = response == null ? -1 : response.getStatusLine().getStatusCode();
-				} catch (Exception e) {
-					ex = e;
-					sc = -1;
-				}
-				if (! retryOn.onCode(sc))
-					retries = 0;
-				if (retries > 0) {
-					for (RestCallInterceptor rci : interceptors)
-						rci.onRetry(this, sc, request, response, ex);
-					request.reset();
-					long w = retryInterval;
-					synchronized(this) {
-						wait(w);
-					}
-				} else if (ex != null) {
-					throw ex;
-				}
-			}
-			for (RestCallInterceptor rci : interceptors)
-				rci.onConnect(this, sc, request, response);
-			if (response == null)
-				throw new RestCallException("HttpClient returned a null response");
-			StatusLine sl = response.getStatusLine();
-			String method = request.getMethod();
-			sc = sl.getStatusCode(); // Read it again in case it was changed by one of the interceptors.
-			if (sc >= 400 && ! ignoreErrors)
-				throw new RestCallException(sc, sl.getReasonPhrase(), method, request.getURI(), getResponseAsString()).setHttpResponse(response);
-			if ((sc == 307 || sc == 302) && allowRedirectsOnPosts && method.equalsIgnoreCase("POST")) {
-				if (redirectOnPostsTries-- < 1)
-					throw new RestCallException(sc, "Maximum number of redirects occurred.  Location header: " + response.getFirstHeader("Location"), method, request.getURI(), getResponseAsString());
-				Header h = response.getFirstHeader("Location");
-				if (h != null) {
-					reset();
-					request.setURI(URI.create(h.getValue()));
-					retries++;  // Redirects should affect retries.
-					connect();
-				}
-			}
-
-		} catch (RestCallException e) {
-			isFailed = true;
-			try {
-			close();
-			} catch (RestCallException e2) { /* Ignore */ }
-			throw e;
-		} catch (Exception e) {
-			isFailed = true;
-			close();
-			throw new RestCallException(e).setHttpResponse(response);
-		}
-
-		return this;
-	}
-
-	private void reset() {
-		if (response != null)
-			EntityUtils.consumeQuietly(response.getEntity());
-		request.reset();
-		isConnected = false;
-		isClosed = false;
-		isFailed = false;
-		if (capturedResponseWriter != null)
-			capturedResponseWriter.getBuffer().setLength(0);
-	}
-
-	/**
-	 * Connects to the remote resource (if <code>connect()</code> hasn't already been called) and returns the HTTP response message body as a reader.
-	 * <p>
-	 * 	If an {@link Encoder} has been registered with the {@link RestClient}, then the underlying input stream
-	 * 		will be wrapped in the encoded stream (e.g. a <code>GZIPInputStream</code>).
-	 * <p>
-	 * 	If present, automatically handles the <code>charset</code> value in the <code>Content-Type</code> response header.
-	 * <p>
-	 * 	<b>IMPORTANT:</b>  It is your responsibility to close this reader once you have finished with it.
-	 *
-	 * @return The HTTP response message body reader.  <jk>null</jk> if response was successful but didn't contain a body (e.g. HTTP 204).
-	 * @throws IOException If an exception occurred while streaming was already occurring.
-	 */
-	public Reader getReader() throws IOException {
-		InputStream is = getInputStream();
-		if (is == null)
-			return null;
-
-		// Figure out what the charset of the response is.
-		String cs = null;
-		Header contentType = response.getLastHeader("Content-Type");
-		String ct = contentType == null ? null : contentType.getValue();
-
-		// First look for "charset=" in Content-Type header of response.
-		if (ct != null && ct.contains("charset="))
-			cs = ct.substring(ct.indexOf("charset=")+8).trim();
-
-		if (cs == null)
-			cs = "UTF-8";
-
-		Reader isr = new InputStreamReader(is, cs);
-
-		if (writers.size() > 0) {
-			StringWriter sw = new StringWriter();
-			writers.add(sw, true);
-			IOPipe.create(isr, writers).byLines(byLines).run();
-			return new StringReader(sw.toString());
-		}
-
-		return new InputStreamReader(is, cs);
-	}
-
-	/**
-	 * Returns the response text as a string if {@link #captureResponse()} was called on this object.
-	 * <p>
-	 * Note that while similar to {@link #getResponseAsString()}, this method can be called multiple times
-	 * 	to retrieve the response text multiple times.
-	 * <p>
-	 * Note that this method returns <jk>null</jk> if you have not called one of the methods that cause
-	 * 	the response to be processed.  (e.g. {@link #run()}, {@link #getResponse()}, {@link #getResponseAsString()}.
-	 *
-	 * @return The captured response, or <jk>null</jk> if {@link #captureResponse()} has not been called.
-	 * @throws IllegalStateException If trying to call this method before the response is consumed.
-	 */
-	public String getCapturedResponse() {
-		if (! isClosed)
-			throw new IllegalStateException("This method cannot be called until the response has been consumed.");
-		if (capturedResponse == null && capturedResponseWriter != null && capturedResponseWriter.getBuffer().length() > 0)
-			capturedResponse = capturedResponseWriter.toString();
-		return capturedResponse;
-	}
-
-	/**
-	 * Returns the parser specified on the client to use for parsing HTTP response bodies.
-	 *
-	 * @return The parser.
-	 * @throws RestCallException If no parser was defined on the client.
-	 */
-	protected Parser<?> getParser() throws RestCallException {
-		if (client.parser == null)
-			throw new RestCallException(0, "No parser defined on client", request.getMethod(), request.getURI(), null);
-		return client.parser;
-	}
-
-	/**
-	 * Returns the serializer specified on the client to use for serializing HTTP request bodies.
-	 *
-	 * @return The serializer.
-	 * @throws RestCallException If no serializer was defined on the client.
-	 */
-	protected Serializer<?> getSerializer() throws RestCallException {
-		if (client.serializer == null)
-			throw new RestCallException(0, "No serializer defined on client", request.getMethod(), request.getURI(), null);
-		return client.serializer;
-	}
-
-	/**
-	 * Returns the value of the <code>Content-Length</code> header.
-	 *
-	 * @return The value of the <code>Content-Length</code> header, or <code>-1</code> if header is not present.
-	 * @throws IOException
-	 */
-	public int getContentLength() throws IOException {
-		connect();
-		Header h = response.getLastHeader("Content-Length");
-		if (h == null)
-			return -1;
-		long l = Long.parseLong(h.getValue());
-		if (l > Integer.MAX_VALUE)
-			return Integer.MAX_VALUE;
-		return (int)l;
-	}
-
-	/**
-	 * Connects to the remote resource (if <code>connect()</code> hasn't already been called) and returns the HTTP response message body as an input stream.
-	 * <p>
-	 * 	If an {@link Encoder} has been registered with the {@link RestClient}, then the underlying input stream
-	 * 		will be wrapped in the encoded stream (e.g. a <code>GZIPInputStream</code>).
-	 * <p>
-	 * 	<b>IMPORTANT:</b>  It is your responsibility to close this reader once you have finished with it.
-	 *
-	 * @return The HTTP response message body input stream. <jk>null</jk> if response was successful but didn't contain a body (e.g. HTTP 204).
-	 * @throws IOException If an exception occurred while streaming was already occurring.
-	 * @throws IllegalStateException If an attempt is made to read the response more than once.
-	 */
-	public InputStream getInputStream() throws IOException {
-		if (isClosed)
-			throw new IllegalStateException("Method cannot be called.  Response has already been consumed.");
-		connect();
-		if (response == null)
-			throw new RestCallException("Response was null");
-		if (response.getEntity() == null)  // HTTP 204 results in no content.
-			return null;
-		InputStream is = response.getEntity().getContent();
-
-		if (outputStreams.size() > 0) {
-			ByteArrayInOutStream baios = new ByteArrayInOutStream();
-			outputStreams.add(baios, true);
-			IOPipe.create(is, baios).run();
-			return baios.getInputStream();
-		}
-		return is;
-	}
-
-	/**
-	 * Connects to the remote resource (if {@code connect()} hasn't already been called) and returns the HTTP response message body as plain text.
-	 *
-	 * @return The response as a string.
-	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
-	 * @throws IOException If an exception occurred while streaming was already occurring.
-	 */
-	public String getResponseAsString() throws IOException {
-		try {
-			Reader r = getReader();
-			String s = IOUtils.read(r).toString();
-			return s;
-		} catch (IOException e) {
-			isFailed = true;
-			throw e;
-		} finally {
-			close();
-		}
-	}
-
-	/**
-	 * Converts the output from the connection into an object of the specified class using the registered {@link Parser}.
-	 *
-	 * @param type The class to convert the input to.
-	 * @param <T> The class to convert the input to.
-	 * @return The parsed output.
-	 * @throws IOException If a connection error occurred.
-	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
-	 */
-	public <T> T getResponse(Class<T> type) throws IOException, ParseException {
-		BeanContext bc = getParser().getBeanContext();
-		if (bc == null)
-			bc = BeanContext.DEFAULT;
-		return getResponse(bc.getClassMeta(type));
-	}
-
-	/**
-	 * Parses the output from the connection into the specified type and then wraps that in a {@link PojoRest}.
-	 * <p>
-	 * Useful if you want to quickly retrieve a single value from inside of a larger JSON document.
-	 *
-	 * @param innerType The class type of the POJO being wrapped.
-	 * @return The parsed output wapped in a {@link PojoRest}.
-	 * @throws IOException If a connection error occurred.
-	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
-	 */
-	public PojoRest getResponsePojoRest(Class<?> innerType) throws IOException, ParseException {
-		return new PojoRest(getResponse(innerType));
-	}
-
-	/**
-	 * Converts the output from the connection into an {@link ObjectMap} and then wraps that in a {@link PojoRest}.
-	 * <p>
-	 * Useful if you want to quickly retrieve a single value from inside of a larger JSON document.
-	 *
-	 * @return The parsed output wapped in a {@link PojoRest}.
-	 * @throws IOException If a connection error occurred.
-	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
-	 */
-	public PojoRest getResponsePojoRest() throws IOException, ParseException {
-		return getResponsePojoRest(ObjectMap.class);
-	}
-
-	/**
-	 * Convenience method when you want to parse into a Map&lt;K,V&gt; object.
-	 * 
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	Map&lt;String,MyBean&gt; m = client.doGet(url).getResponseMap(LinkedHashMap.<jk>class</jk>, String.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 * </p>
-	 * 		<p>
-	 * A simpler approach is often to just extend the map class you want and just use the normal {@link #getResponse(Class)} method:
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	<jk>public static class</jk> MyMap <jk>extends</jk> LinkedHashMap&lt;String,MyBean&gt; {}
-	 *
-	 * 	Map&lt;String,MyBean&gt; m = client.doGet(url).getResponse(MyMap.<jk>class</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param mapClass The map class to use (e.g. <code>TreeMap</code>)
-	 * @param keyClass The class type of the keys (e.g. <code>String</code>)
-	 * @param valueClass The class type of the values (e.g. <code>MyBean</code>)
-	 * @return The response parsed as a map.
-	 * @throws ParseException
-	 * @throws IOException
-	 */
-	public final <K,V,T extends Map<K,V>> T getResponseMap(Class<T> mapClass, Class<K> keyClass, Class<V> valueClass) throws ParseException, IOException {
-		ClassMeta<T> cm = getBeanContext().getMapClassMeta(mapClass, keyClass, valueClass);
-		return getResponse(cm);
-	}
-
-	/**
-	 * Convenience method when you want to parse into a Collection&lt;E&gt; object.
-	 * 
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	List&lt;MyBean&gt; l = client.doGet(url).getResponseCollection(LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 * </p>
-	 * 		<p>
-	 * 			A simpler approach is often to just extend the collection class you want and just use the normal {@link #getResponse(Class)} method:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<jk>public static class</jk> MyList <jk>extends</jk> LinkedList&lt;MyBean&gt; {}
-	 *
-	 * 	List&lt;MyBean&gt; l = client.doGet(url).getResponse(MyList.<jk>class</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param collectionClass The collection class to use (e.g. <code>LinkedList</code>)
-	 * @param entryClass The class type of the values (e.g. <code>MyBean</code>)
-	 * @return The response parsed as a collection.
-	 * @throws ParseException
-	 * @throws IOException
-	 */
-	public final <E,T extends Collection<E>> T getResponseCollection(Class<T> collectionClass, Class<E> entryClass) throws ParseException, IOException {
-		ClassMeta<T> cm = getBeanContext().getCollectionClassMeta(collectionClass, entryClass);
-		return getResponse(cm);
-	}
-
-	<T> T getResponse(ClassMeta<T> type) throws IOException, ParseException {
-		try {
-		Parser<?> p = getParser();
-		T o = null;
-		int contentLength = getContentLength();
-			if (! p.isReaderParser()) {
-			InputStream is = getInputStream();
-			o = ((InputStreamParser)p).parse(is, contentLength, type);
-		} else {
-			Reader r = getReader();
-			o = ((ReaderParser)p).parse(r, contentLength, type);
-			}
-		return o;
-		} catch (ParseException e) {
-			isFailed = true;
-			throw e;
-		} catch (IOException e) {
-			isFailed = true;
-			throw e;
-		} finally {
-			close();
-		}
-	}
-
-	BeanContext getBeanContext() throws RestCallException {
-		BeanContext bc = getParser().getBeanContext();
-		if (bc == null)
-			bc = BeanContext.DEFAULT;
-		return bc;
-	}
-
-	/**
-	 * Returns access to the {@link HttpUriRequest} passed to {@link HttpClient#execute(HttpUriRequest)}.
-	 *
-	 * @return The {@link HttpUriRequest} object.
-	 */
-	public HttpUriRequest getRequest() {
-		return request;
-	}
-
-	/**
-	 * Returns access to the {@link HttpResponse} returned by {@link HttpClient#execute(HttpUriRequest)}.
-	 * Returns <jk>null</jk> if {@link #connect()} has not yet been called.
-	 *
-	 * @return The HTTP response object.
-	 * @throws IOException
-	 */
-	public HttpResponse getResponse() throws IOException {
-		connect();
-		return response;
-	}
-
-	/**
-	 * Shortcut for calling <code>getRequest().setHeader(header)</code>
-	 *
-	 * @param header The header to set on the request.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall setHeader(Header header) {
-		request.setHeader(header);
-		return this;
-	}
-
-	/** Use close() */
-	@Deprecated
-	public void consumeResponse() {
-		if (response != null)
-			EntityUtils.consumeQuietly(response.getEntity());
-	}
-
-	/**
-	 * Cleans up this HTTP call.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws RestCallException Can be thrown by one of the {@link RestCallInterceptor#onClose(RestCall)} calls.
-	 */
-	public RestCall close() throws RestCallException {
-		if (response != null)
-			EntityUtils.consumeQuietly(response.getEntity());
-		isClosed = true;
-		if (! isFailed)
-			for (RestCallInterceptor r : interceptors)
-				r.onClose(this);
-		return this;
-	}
-
-	/**
-	 * Adds a {@link RestCallLogger} to the list of interceptors on this class.
-	 *
-	 * @param level The log level to log events at.
-	 * @param log The logger.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall logTo(Level level, Logger log) {
-		addInterceptor(new RestCallLogger(level, log));
-		return this;
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallException.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallException.java
deleted file mode 100755
index b0129f4..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallException.java
+++ /dev/null
@@ -1,150 +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.client;
-
-import static java.lang.String.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.regex.*;
-
-import org.apache.http.*;
-import org.apache.http.client.*;
-import org.apache.http.util.*;
-
-import com.ibm.juno.core.utils.*;
-
-/**
- * Exception representing a <code>400+</code> HTTP response code against a remote resource.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RestCallException extends IOException {
-
-	private static final long serialVersionUID = 1L;
-
-	private int responseCode;
-	private String response, responseStatusMessage;
-	HttpResponseException e;
-	private HttpResponse httpResponse;
-
-
-	/**
-	 * Constructor.
-	 *
-	 * @param msg The exception message.
-	 */
-	public RestCallException(String msg) {
-		super(msg);
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param e The inner cause of the exception.
-	 */
-	public RestCallException(Exception e) {
-		super(e.getLocalizedMessage(), e);
-		if (e instanceof FileNotFoundException) {
-			responseCode = 404;
-		} else if (e.getMessage() != null) {
-			Pattern p = Pattern.compile("[^\\d](\\d{3})[^\\d]");
-			Matcher m = p.matcher(e.getMessage());
-			if (m.find())
-				responseCode = Integer.parseInt(m.group(1));
-		}
-		setStackTrace(e.getStackTrace());
-	}
-
-	/**
-	 * Create an exception with a simple message and the status code and body of the specified response.
-	 *
-	 * @param msg The exception message.
-	 * @param response The HTTP response object.
-	 * @throws ParseException
-	 * @throws IOException
-	 */
-	public RestCallException(String msg, HttpResponse response) throws ParseException, IOException {
-		super(format("%s%nstatus='%s'%nResponse: %n%s%n", msg, response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), IOUtils.UTF8)));
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param responseCode The response code.
-	 * @param responseMsg The response message.
-	 * @param method The HTTP method (for message purposes).
-	 * @param url The HTTP URL (for message purposes).
-	 * @param response The reponse from the server.
-	 */
-	public RestCallException(int responseCode, String responseMsg, String method, URI url, String response) {
-		super(format("HTTP method '%s' call to '%s' caused response code '%s,%s'.%nResponse: %n%s%n", method, url, responseCode, responseMsg, response));
-		this.responseCode = responseCode;
-		this.responseStatusMessage = responseMsg;
-		this.response = response;
-	}
-
-	/**
-	 * Sets the HTTP response object that caused this exception.
-	 *
-	 * @param httpResponse The HTTP respose object.
-	 * @return This object (for method chaining).
-	 */
-	protected RestCallException setHttpResponse(HttpResponse httpResponse) {
-		this.httpResponse = httpResponse;
-		return this;
-	}
-
-	/**
-	 * Returns the HTTP response object that caused this exception.
-	 *
-	 * @return The HTTP response object that caused this exception, or <jk>null</jk> if no response was created yet when the exception was thrown.
-	 */
-	public HttpResponse getHttpResponse() {
-		return this.httpResponse;
-	}
-
-	/**
-	 * Returns the HTTP response status code.
-	 *
-	 * @return The response status code.  If a connection could not be made at all, returns <code>0<code>.
-	 */
-	public int getResponseCode() {
-		return responseCode;
-	}
-
-	/**
-	 * Returns the HTTP response message body text.
-	 *
-	 * @return The response message body text.
-	 */
-	public String getResponseMessage() {
-		return response;
-	}
-
-	/**
-	 * Returns the response status message as a plain string.
-	 *
-	 * @return The response status message.
-	 */
-	public String getResponseStatusMessage() {
-		return responseStatusMessage;
-	}
-
-	/**
-	 * Sets the inner cause for this exception.
-	 * @param cause The inner cause.
-	 * @return This object (for method chaining).
-	 */
-	@Override /* Throwable */
-	public synchronized RestCallException initCause(Throwable cause) {
-		super.initCause(cause);
-		return this;
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallInterceptor.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallInterceptor.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallInterceptor.java
deleted file mode 100755
index 52c278b..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallInterceptor.java
+++ /dev/null
@@ -1,56 +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.client;
-
-import org.apache.http.*;
-
-/**
- * Used to intercept http connection responses to allow modification of that response before processing
- * and for listening for call lifecycle events.
- * <p>
- * Useful if you want to prevent {@link RestCallException RestCallExceptions} from being thrown on error conditions.
- */
-public abstract class RestCallInterceptor {
-
-	/**
-	 * Called when {@link RestCall} object is created.
-	 *
-	 * @param restCall The restCall object invoking this method.
-	 */
-	public void onInit(RestCall restCall) {}
-
-	/**
-	 * Called immediately after an HTTP response has been received.
-	 *
-	 * @param statusCode The HTTP status code received.
-	 * @param restCall The restCall object invoking this method.
-	 * @param req The HTTP request object.
-	 * @param res The HTTP response object.
-	 */
-	public void onConnect(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res) {}
-
-	/**
-	 * Called if retry is going to be attempted.
-	 *
-	 * @param statusCode The HTTP status code received.
-	 * @param restCall The restCall object invoking this method.
-	 * @param req The HTTP request object.
-	 * @param res The HTTP response object.
-	 * @param ex The exception thrown from the client.
-	 */
-	public void onRetry(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res, Exception ex) {}
-
-	/**
-	 * Called when {@link RestCall#close()} is called.
-	 *
-	 * @param restCall The restCall object invoking this method.
-	 * @throws RestCallException
-	 */
-	public void onClose(RestCall restCall) throws RestCallException {}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallLogger.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallLogger.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallLogger.java
deleted file mode 100755
index a0dc722..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestCallLogger.java
+++ /dev/null
@@ -1,116 +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.client;
-
-import java.io.*;
-import java.text.*;
-import java.util.logging.*;
-
-import org.apache.http.*;
-import org.apache.http.client.methods.*;
-import org.apache.http.util.*;
-
-/**
- * Specialized interceptor for logging calls to a log file.
- * <p>
- * Causes a log entry to be created that shows all the request and response headers and content
- * 	at the end of the request.
- * <p>
- * Use the {@link RestClient#logTo(Level, Logger)} and {@link RestCall#logTo(Level, Logger)}
- * <p>
- * methods to create instances of this class.
- */
-public class RestCallLogger extends RestCallInterceptor {
-
-	private Level level;
-	private Logger log;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param level The log level to log messages at.
-	 * @param log The logger to log to.
-	 */
-	protected RestCallLogger(Level level, Logger log) {
-		this.level = level;
-		this.log = log;
-	}
-
-	@Override /* RestCallInterceptor */
-	public void onInit(RestCall restCall) {
-		if (log.isLoggable(level))
-			restCall.captureResponse();
-	}
-
-	@Override /* RestCallInterceptor */
-	public void onConnect(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res) {
-		// Do nothing.
-	}
-
-	@Override /* RestCallInterceptor */
-	public void onRetry(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res, Exception ex) {
-		if (log.isLoggable(level)) {
-			if (ex == null)
-			log.log(level, MessageFormat.format("Call to {0} returned {1}.  Will retry.", req.getRequestLine().getUri(), statusCode)); //$NON-NLS-1$
-			else
-				log.log(level, MessageFormat.format("Call to {0} caused exception {1}.  Will retry.", req.getRequestLine().getUri(), ex.getLocalizedMessage()), ex); //$NON-NLS-1$
-		}
-	}
-
-	@Override /* RestCallInterceptor */
-	public void onClose(RestCall restCall) throws RestCallException {
-		try {
-			if (log.isLoggable(level)) {
-				String output = restCall.getCapturedResponse();
-				StringBuilder sb = new StringBuilder();
-				HttpUriRequest req = restCall.getRequest();
-				HttpResponse res = restCall.getResponse();
-				if (req != null) {
-					sb.append("\n=== HTTP Call ==================================================================");
-
-					sb.append("\n=== REQUEST ===\n").append(req);
-					sb.append("\n---request headers---");
-					for (Header h : req.getAllHeaders())
-						sb.append("\n").append(h);
-					if (req instanceof HttpEntityEnclosingRequestBase) {
-						sb.append("\n---request entity---");
-						HttpEntityEnclosingRequestBase req2 = (HttpEntityEnclosingRequestBase)req;
-						HttpEntity e = req2.getEntity();
-						if (e == null)
-							sb.append("\nEntity is null");
-						else {
-							if (e.getContentType() != null)
-								sb.append("\n").append(e.getContentType());
-							if (e.getContentEncoding() != null)
-								sb.append("\n").append(e.getContentEncoding());
-							if (e.isRepeatable()) {
-								try {
-									sb.append("\n---request content---\n").append(EntityUtils.toString(e));
-								} catch (Exception ex) {
-									throw new RuntimeException(ex);
-								}
-							}
-						}
-					}
-				}
-				if (res != null) {
-					sb.append("\n=== RESPONSE ===\n").append(res.getStatusLine());
-					sb.append("\n---response headers---");
-					for (Header h : res.getAllHeaders())
-						sb.append("\n").append(h);
-					sb.append("\n---response content---\n").append(output);
-					sb.append("\n=== END ========================================================================");
-				}
-				log.log(level, sb.toString());
-			}
-		} catch (IOException e) {
-			log.log(Level.SEVERE, e.getLocalizedMessage(), e);
-		}
-	}
-}

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

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

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

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

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/utils/CT_IOUtils$TestWriter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/utils/CT_IOUtils$TestWriter.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/utils/CT_IOUtils$TestWriter.class
deleted file mode 100755
index 6650d91..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/utils/CT_IOUtils$TestWriter.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/CT_Common$E1$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/CT_Common$E1$3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/CT_Common$E1$3.class
deleted file mode 100755
index 16752c0..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/CT_Common$E1$3.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testComparisonWithJson.json
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testComparisonWithJson.json b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testComparisonWithJson.json
deleted file mode 100755
index 00e9d68..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testComparisonWithJson.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-	name: "John Smith", 
-	address: {
-		streetAddress: "21 2nd Street", 
-		city: "New York", 
-		state: "NY", 
-		postalCode: 10021
-	}, 
-	phoneNumbers: [
-		"212 555-1111", 
-		"212 555-2222"
-	], 
-	additionalInfo: null, 
-	remote: false, 
-	height: 62.4, 
-	"fico score": " > 640"
-}
\ 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.test/com/ibm/juno/core/test/xml/testComparisonWithJson.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testComparisonWithJson.xml b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testComparisonWithJson.xml
deleted file mode 100755
index 8e6c8f7..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testComparisonWithJson.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<object>
-	<name>John Smith</name>
-	<address type='object'>
-		<streetAddress>21 2nd Street</streetAddress>
-		<city>New York</city>
-		<state>NY</state>
-		<postalCode type='number'>10021</postalCode>
-	</address>
-	<phoneNumbers type='array'>
-		<string>212 555-1111</string>
-		<string>212 555-2222</string>
-	</phoneNumbers>
-	<additionalInfo nil='true'/>
-	<remote type='boolean'>false</remote>
-	<height type='number'>62.4</height>
-	<fico_x0020_score>_x0020_&gt; 640</fico_x0020_score>
-</object>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testNamespaces.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testNamespaces.xml b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testNamespaces.xml
deleted file mode 100755
index fcf6d39..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/xml/testNamespaces.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<object xmlns='http://www.ibm.com' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
-	<name>John Smith</name>
-	<address type='object'>
-		<streetAddress>21 2nd Street</streetAddress>
-		<city>New York</city>
-		<state>NY</state>
-		<postalCode type='number'>10021</postalCode>
-	</address>
-	<phoneNumbers type='array'>
-		<string>212 555-1111</string>
-		<string>212 555-2222</string>
-	</phoneNumbers>
-	<additionalInfo xsi:nil='true'/>
-	<remote type='boolean'>false</remote>
-	<height type='number'>62.4</height>
-	<fico_x0020_score>_x0020_&gt; 640</fico_x0020_score>
-</object>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.classpath b/com.ibm.team.juno.client/.classpath
index 47a82cf..e4f84a9 100755
--- a/com.ibm.team.juno.client/.classpath
+++ b/com.ibm.team.juno.client/.classpath
@@ -1,10 +1,21 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="lib" path="/com.ibm.team.juno.releng/lib/httpclient/httpclient-4.5.jar"/>
-	<classpathentry kind="lib" path="/com.ibm.team.juno.releng/lib/httpclient/httpcore-4.4.1.jar"/>
-	<classpathentry kind="lib" path="/com.ibm.team.juno.releng/lib/httpclient/httpmime-4.5.jar"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry exported="true" kind="lib" path="/org.apache.juneau.releng/lib/httpclient/httpclient-4.5.jar"/>
+	<classpathentry exported="true" kind="lib" path="/org.apache.juneau.releng/lib/httpclient/httpcore-4.4.1.jar"/>
+	<classpathentry exported="true" kind="lib" path="/org.apache.juneau.releng/lib/httpclient/httpmime-4.5.jar"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry combineaccessrules="false" kind="src" path="/org.apache.juneau.releng"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/org.apache.juneau"/>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.project b/com.ibm.team.juno.client/.project
index a037b80..c2c1e69 100755
--- a/com.ibm.team.juno.client/.project
+++ b/com.ibm.team.juno.client/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>com.ibm.team.juno.client</name>
+	<name>org.apache.juneau.client</name>
 	<comment></comment>
 	<projects>
 	</projects>
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
 		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/.settings/org.eclipse.core.resources.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.core.resources.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.core.resources.prefs
deleted file mode 100755
index 4824b80..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/<project>=UTF-8

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.jdt.core.prefs
index 8cb714e..73f18fb 100755
--- a/com.ibm.team.juno.client/.settings/org.eclipse.jdt.core.prefs
+++ b/com.ibm.team.juno.client/.settings/org.eclipse.jdt.core.prefs
@@ -15,6 +15,7 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annota
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.jdt.ui.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.jdt.ui.prefs
index ced2c41..d54ca08 100755
--- a/com.ibm.team.juno.client/.settings/org.eclipse.jdt.ui.prefs
+++ b/com.ibm.team.juno.client/.settings/org.eclipse.jdt.ui.prefs
@@ -49,11 +49,11 @@ cleanup.use_this_for_non_static_field_access=false
 cleanup.use_this_for_non_static_field_access_only_if_necessary=true
 cleanup.use_this_for_non_static_method_access=false
 cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Juno
+cleanup_profile=_Juneau
 cleanup_settings_version=2
 eclipse.preferences.version=1
 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Juno
+formatter_profile=_Juneau
 formatter_settings_version=12
 org.eclipse.jdt.ui.exception.name=e
 org.eclipse.jdt.ui.gettersetter.use.is=true
@@ -64,7 +64,7 @@ org.eclipse.jdt.ui.keywordthis=false
 org.eclipse.jdt.ui.ondemandthreshold=1
 org.eclipse.jdt.ui.overrideannotation=true
 org.eclipse.jdt.ui.staticondemandthreshold=1
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\r\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on th
 is bean.\r\n * @return This object (for method chaining).\r\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * TODO\r\n * &lt;p&gt;\r\n * \r\n * @author James Bognar (jbognar@us.ibm.com)\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context
 " deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * TODO\r\n * \r\n * $
 {tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbo
 dy">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.
 jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @return The value of the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.\r\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\r\n *\r\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on th
 is bean.\r\n * @return This object (for method chaining).\r\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * TODO\r\n * &lt;p&gt;\r\n * \r\n * @author James Bognar (james.bognar@salesforce.com)\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcommen
 t_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * TODO\r\n * \r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * TODO\r\n *
  \r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name
 \="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org
 .eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
 sp_cleanup.add_default_serial_version_id=true
 sp_cleanup.add_generated_serial_version_id=false
 sp_cleanup.add_missing_annotations=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.component
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.component b/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.component
index 1cbcd7b..6f3093f 100755
--- a/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.component
+++ b/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.component
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
-    <wb-module deploy-name="com.ibm.team.juno.client">
-        <wb-resource deploy-path="/" source-path="/src"/>
-    </wb-module>
-</project-modules>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="org.apache.juneau.client">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+    </wb-module>
+</project-modules>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.project.facet.core.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.project.facet.core.xml b/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.project.facet.core.xml
index 3e8b624..6c4c744 100755
--- a/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -1,12 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-    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. 
- -->
+ ***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            * 
+ * with the License.  You may obtain a copy of the License at                                                              *
+ *                                                                                                                         *
+ *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+ *                                                                                                                         *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+ * specific language governing permissions and limitations under the License.                                              *
+ *                                                                                                                         *
+ ***************************************************************************************************************************
+-->
 <faceted-project>
   <fixed facet="jst.java"/>
   <fixed facet="jst.utility"/>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/META-INF/MANIFEST.MF b/com.ibm.team.juno.client/META-INF/MANIFEST.MF
index a13e895..93db195 100755
--- a/com.ibm.team.juno.client/META-INF/MANIFEST.MF
+++ b/com.ibm.team.juno.client/META-INF/MANIFEST.MF
@@ -1,11 +1,11 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: Juno Cloud API - Client
-Bundle-SymbolicName: com.ibm.team.juno.client
+Bundle-Name: Juneau Cloud Tools - Client
+Bundle-SymbolicName: org.apache.juneau.client
 Bundle-Version: 5.2.1000.qualifier
 Bundle-Vendor: IBM
 Require-Bundle: 
- com.ibm.team.juno
+ org.apache.juneau
 Import-Package: 
  org.apache.http,
  org.apache.http.auth,
@@ -32,6 +32,5 @@ Import-Package:
  org.apache.http.protocol,
  org.apache.http.util
 Export-Package: 
- com.ibm.juno.client,
- com.ibm.juno.client.jazz
+ org.apache.juneau.client
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/OSGI-INF/l10n/plugin.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/OSGI-INF/l10n/plugin.properties b/com.ibm.team.juno.client/OSGI-INF/l10n/plugin.properties
index ffdfad1..de1ae69 100755
--- a/com.ibm.team.juno.client/OSGI-INF/l10n/plugin.properties
+++ b/com.ibm.team.juno.client/OSGI-INF/l10n/plugin.properties
@@ -1,14 +1,19 @@
-###############################################################################
-#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. 
-###############################################################################
+# ***************************************************************************************************************************
+# * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+# * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+# * with the License.  You may obtain a copy of the License at
+# *  
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *  
+# * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+# * specific language governing permissions and limitations under the License.
+# *
+# ***************************************************************************************************************************
 # NLS_ENCODING=UTF-8
 # NLS_MESSAGEFORMAT_VAR
 
 # META-INF/MANIFEST.MF
-bundle.name = Juno Cloud API - REST client component
+bundle.name = Juneau Cloud Tools - REST client component
 bundle.vendor = IBM

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/AllowAllRedirects.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/AllowAllRedirects.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/AllowAllRedirects.class
deleted file mode 100644
index b656df4..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/AllowAllRedirects.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/DateHeader.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/DateHeader.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/DateHeader.class
deleted file mode 100644
index 1912e6a..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/DateHeader.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/HttpMethod.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/HttpMethod.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/HttpMethod.class
deleted file mode 100644
index 7143804..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/HttpMethod.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/NameValuePairs.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/NameValuePairs.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/NameValuePairs.class
deleted file mode 100644
index cd7bbfc..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/NameValuePairs.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/ResponsePattern.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/ResponsePattern.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/ResponsePattern.class
deleted file mode 100644
index 7d0c974..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/ResponsePattern.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$1.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$1.class
deleted file mode 100644
index a3ebe89..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$1.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$2.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$2.class
deleted file mode 100644
index cb8a11f..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$2.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$3.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$3.class
deleted file mode 100644
index 6780731..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall$3.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall.class
deleted file mode 100644
index 04fbcc8..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCall.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallException.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallException.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallException.class
deleted file mode 100644
index 0e50295..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallException.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallInterceptor.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallInterceptor.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallInterceptor.class
deleted file mode 100644
index 4fa44a6..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallInterceptor.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallLogger.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallLogger.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallLogger.class
deleted file mode 100644
index 595b9e0..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestCallLogger.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$1.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$1.class
deleted file mode 100644
index fb7c203..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$1.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$2.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$2.class
deleted file mode 100644
index b3979e3..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$2.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$3.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$3.class
deleted file mode 100644
index c90175e..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient$3.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient.class
deleted file mode 100644
index bac2450..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestClient.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestRequestEntity.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestRequestEntity.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestRequestEntity.class
deleted file mode 100644
index 02aeb23..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RestRequestEntity.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RetryOn$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RetryOn$1.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RetryOn$1.class
deleted file mode 100644
index ec43d14..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RetryOn$1.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/RetryOn.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RetryOn.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/RetryOn.class
deleted file mode 100644
index 9b2daca..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/RetryOn.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts$CertValidate.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts$CertValidate.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts$CertValidate.class
deleted file mode 100644
index e92f288..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts$CertValidate.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts$HostVerify.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts$HostVerify.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts$HostVerify.class
deleted file mode 100644
index 6914fd5..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts$HostVerify.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts.class
deleted file mode 100644
index b7c1b3c..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SSLOpts.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/SerializedNameValuePair.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SerializedNameValuePair.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/SerializedNameValuePair.class
deleted file mode 100644
index c3d0cfc..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SerializedNameValuePair.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/SimpleX509TrustManager.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SimpleX509TrustManager.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/SimpleX509TrustManager.class
deleted file mode 100644
index 89aadde..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/SimpleX509TrustManager.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/CertificateStore.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/CertificateStore.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/CertificateStore.class
deleted file mode 100644
index bcd4fbc..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/CertificateStore.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ICertificateValidator$Trust.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ICertificateValidator$Trust.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ICertificateValidator$Trust.class
deleted file mode 100644
index 033a284..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ICertificateValidator$Trust.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ICertificateValidator.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ICertificateValidator.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ICertificateValidator.class
deleted file mode 100644
index fb9bf78..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ICertificateValidator.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ITrustStoreProvider.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ITrustStoreProvider.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ITrustStoreProvider.class
deleted file mode 100644
index 4ac7d83..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ITrustStoreProvider.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/LenientCertificateValidator.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/LenientCertificateValidator.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/LenientCertificateValidator.class
deleted file mode 100644
index 4ff59aa..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/LenientCertificateValidator.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.class
deleted file mode 100644
index b44f35c..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.class
deleted file mode 100644
index 1d7aca6..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/jazz/JazzRestClient.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/jazz/JazzRestClient.class b/com.ibm.team.juno.client/bin/com/ibm/juno/client/jazz/JazzRestClient.class
deleted file mode 100644
index 61d8191..0000000
Binary files a/com.ibm.team.juno.client/bin/com/ibm/juno/client/jazz/JazzRestClient.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/bin/com/ibm/juno/client/jazz/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/jazz/package.html b/com.ibm.team.juno.client/bin/com/ibm/juno/client/jazz/package.html
deleted file mode 100755
index fce9248..0000000
--- a/com.ibm.team.juno.client/bin/com/ibm/juno/client/jazz/package.html
+++ /dev/null
@@ -1,187 +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>Jazz REST client 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='#RestClient'>Jazz REST client API</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="RestClient"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Jazz REST client API</h2>
-<div class='topic'>
-	<p>
-		Juno provides a default REST client implementation for working with Jazz servers. 
-		The client automatically detects and handles BASIC and FORM authentication and basic certificate authentication.
-	</p>
-	<p>
-		The following code shows the Jazz REST client being used for querying and creating server messages on 
-			a Jazz server.  The <code>ServerMessage</code> and <code>CreateServerMessage</code> classes
-			are nothing more than simple beans that get serialized over the connection and reconstituted on 
-			the server.
-	</p>
-	<p class='bcode'>
-	System.<jsf>out</jsf>.println(<js>"Adding sample messages"</js>);
-
-	DateFormat df = <jk>new</jk> SimpleDateFormat(<js>"yyyy-MM-dd'T'HH:mm:ssZ"</js>);
-	String url = <js>"https://localhost:9443/jazz"</js>;
-	String sms = url + <js>"/serverMessages"</js>;
-	CreateServerMessage m;
-	ServerMessage m2;
-	String s1;
-	ServerMessage[] messages;
-	
-	<jc>// Serializer for debug messages.</jc>
-	WriterSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>;
-	
-	<jc>// Create clients to handle JSON and XML requests and responses.</jc>
-	RestClient jsonClient = <jk>new</jk> JazzRestClient(url, <js>"ADMIN"</js>, <js>"ADMIN"</js>)
-		.setSerializer(JsonSerializer.<jk>class</jk>)
-		.setParser(<jk>new</jk> JsonParser().addFilters(DateFilter.<jsf>ISO8601DTZ</jsf>.<jk>class</jk>));
-	
-	RestClient xmlClient = <jk>new</jk> JazzRestClient(url, <js>"ADMIN"</js>, <js>"ADMIN"</js>, XmlSerializer.<jk>class</jk>, XmlParser.<jk>class</jk>);
-	
-	<jc>// Delete any existing messages.</jc>
-	messages = jsonClient
-		.doGet(sms)
-		.getResponse(ServerMessage[].<jk>class</jk>);
-	
-	<jk>for</jk> (ServerMessage message : messages) {
-		<jk>int</jk> rc = jsonClient
-			.doDelete(message.getUri())
-			.execute();
-		System.<jsf>out</jsf>.println(rc);	<jc>// Prints 200.</jc>
-	}
-	
-	<jc>// Create an active server message.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #1"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2012-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>));
-	
-	<jc>// POST the message, get response as string.</jc>
-	s1 = jsonClient
-		.doPost(sms, m)
-		.getResponseAsString(); 
-	System.<jsf>out</jsf>.println(<js>"TEST1: response="</js> + s1);
-
-	<jc>// POST another message, get response as ServerMessage</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #2"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2012-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>));
-
-	m2 = jsonClient
-		.doPost(sms, m)
-		.getResponse(ServerMessage.<jk>class</jk>); 
-	System.<jsf>out</jsf>.println(<js>"TEST2: response="</js> + serializer.serialize(m2));
-	
-	<jc>// Create a future server message.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #3"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2014-01-01T12:34:56EST"</js>));
-	
-	m2 = jsonClient
-		.doPost(sms, m)
-		.getResponse(ServerMessage.<jk>class</jk>); 
-	System.<jsf>out</jsf>.println(<js>"TEST3: response="</js> + serializer.serialize(m2));
-	System.<jsf>out</jsf>.println(<js>"TEST3: id="</js> + m2.getItemId().getUuidValue());
-
-	<jc>// Create a future server message using XML on both request and response.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #4"</js>,
-		<js>"subTypeFoo"</js>,                                  
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2014-01-01T12:34:56EST"</js>));
-	
-	s1 = xmlClient
-		.doPost(sms, m)
-		.getResponseAsString();
-	System.<jsf>out</jsf>.println(<js>"TEST4: response="</js> + s1);
-
-	<jc>// Get all the messages</jc>
-	messages = jsonClient
-		.doGet(sms)
-		.getResponse(ServerMessage[].<jk>class</jk>);
-	System.<jsf>out</jsf>.println(<js>"TEST5: response="</js> + serializer.serialize(messages)); 
-
-	<jc>// Get the first ID</jc>
-	URI firstMessageUrl = messages[0].getUri();
-	
-	System.<jsf>out</jsf>.println(<js>"firstMessageUrl=["</js>+firstMessageUrl+<js>"]"</js>);
-	
-	<jc>// Get the Date of the first ID.</jc>
-	Date startDate = jsonClient
-		.doGet(firstMessageUrl + <js>"/startDate"</js>)
-		.getResponse(Date.<jk>class</jk>);  
-	System.<jsf>out</jsf>.println(<js>"TEST5: response.startDate="</js>+startDate);
-	
-	<jc>// Change the start and end dates on first message</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #3 overwritten"</js>,
-		<js>"subTypeFooBar"</js>,
-		df.parse(<js>"2023-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2024-01-01T12:34:56EST"</js>));
-	s1 = jsonClient.doPut(firstMessageUrl, m).getResponseAsString();
-	System.<jsf>out</jsf>.println(<js>"TEST6: response="</js>+s1);
-	</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.client/bin/com/ibm/juno/client/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/bin/com/ibm/juno/client/package.html b/com.ibm.team.juno.client/bin/com/ibm/juno/client/package.html
deleted file mode 100755
index 407ef7c..0000000
--- a/com.ibm.team.juno.client/bin/com/ibm/juno/client/package.html
+++ /dev/null
@@ -1,850 +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>REST client 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='#RestClient'>REST Client API</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#SSL'>SSL Support</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#SSLOpts'>SSLOpts Bean</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#Authentication'>Authentication</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#BASIC'>BASIC Authentication</a></p>
-			<li><p><a class='doclink' href='#FORM'>FORM-based Authentication</a></p>
-			<li><p><a class='doclink' href='#OIDC'>OIDC Authentication</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#ResponsePatterns'>Using Response Patterns</a></p>
-		<li><p><a class='doclink' href='#PipingOutput'>Piping Response Output</a></p>
-		<li><p><a class='doclink' href='#Logging'>Logging</a></p>
-		<li><p><a class='doclink' href='#Interceptors'>Interceptors</a></p>
-		<li><p><a class='doclink' href='#Remoteable'>Remoteable Proxies</a></p>
-		<li><p><a class='doclink' href='#Other'>Other Useful Methods</a></p>
-	</ol>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="RestClient"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - REST Client API</h2>
-<div class='topic'>
-	<p>
-		Juno provides an HTTP client API that makes it extremely simple to connect to remote REST interfaces and 
-		seemlessly send and receive serialized POJOs in requests and responses.  
-	</p>
-	<h6 class='notes'>Features:</h6>
-	<ul class='notes'>
-		<li>Converts POJOs directly to HTTP request message bodies using {@link com.ibm.juno.core.serializer.Serializer} classes.
-	 	<li>Converts HTTP response message bodies directly to POJOs using {@link com.ibm.juno.core.parser.Parser} classes.
-		<li>Exposes the full functionality of the Apache HttpClient API by exposing all methods defined on the 
-			{@link org.apache.http.impl.client.HttpClientBuilder} class.
-		<li>Provides various convenience methods for setting up common SSL and authentication methods.
-		<li>Provides a fluent interface that allows you to make complex REST calls in a single line of code.
-	</ul>	
-	<p>
-		The client API is designed to work as a thin layer on top of the proven Apache HttpClient API.  
-		By leveraging the HttpClient library, details such as SSL certificate negotiation, proxies, encoding, etc...
-			are all handled in Apache code. 
-	</p>
-	<p>
-		The Juno client API prereq's Apache HttpClient 4.1.2+. 
-		At a mimimum, the following jars are required:
-	</p>
-	<ul>
-		<li><code>httpclient-4.5.jar</code>
-		<li><code>httpcore-4.4.1.jar</code>
-		<li><code>httpmime-4.5.jar</code>
-	</ul>
-	<h6 class='topic'>Examples</h6>
-	<p class='bcode'>
-	<jc>// Examples below use the Juno Address Book resource example</jc>
-
-	<jc>// Create a reusable client with JSON support</jc>
-	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>);
-	
-	<jc>// GET request, ignoring output</jc>
-	<jk>try</jk> {
-		<jk>int</jk> rc = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>).execute();
-		<jc>// Succeeded!</jc>
-	} <jk>catch</jk> (RestCallException e) {
-		<jc>// Failed!</jc>
-		System.<jsf>err</jsf>.println(
-			String.<jsm>format</jsm>(<js>"status=%s, message=%s"</js>, e.getResponseStatus(), e.getResponseMessage())
-		);
-	}
-			
-	<jc>// Remaining examples ignore thrown exceptions.</jc>		
-			
-	<jc>// GET request, secure, ignoring output</jc>
-	client.doGet(<js>"https://localhost:9443/sample/addressBook"</js>).execute();
-			
-	<jc>// GET request, getting output as a String.  No POJO parsing is performed.
-	// Note that when calling one of the getX() methods, you don't need to call connect() or disconnect(), since
-	//	it's automatically called for you.</jc>
-	String output = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponseAsString();
-			
-	<jc>// GET request, getting output as a Reader</jc>
-	Reader r = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getReader();
-			
-	<jc>// GET request, getting output as an ObjectMap</jc>
-	<jc>// Input must be an object (e.g. "{...}")</jc>
-	ObjectMap m = client.doGet(<js>"http://localhost:9080/sample/addressBook/0"</js>)
-		.getResponse(ObjectMap.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a ObjectList</jc>
-	<jc>// Input must be an array (e.g. "[...]")</jc>
-	ObjectList l = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(ObjectList.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed bean</jc>
-	<jc>// Input must be an object (e.g. "{...}")</jc>
-	<jc>// Note that you don't have to do any casting!</jc>
-	Person p = client.doGet(<js>"http://localhost:9080/sample/addressBook/0"</js>)
-		.getResponse(Person.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed bean</jc>
-	<jc>// Input must be an array of objects (e.g. "[{...},{...}]")</jc>
-	Person[] pa = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(Person[].<jk>class</jk>);
-			
-	<jc>// Same as above, except as a List&lt;Person&gt;</jc>
-	ClassMeta cm = BeanContext.<jsf>DEFAULT</jsf>.getCollectionClassMeta(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
-	List&lt;Person&gt; pl = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(cm);
-			
-	<jc>// GET request, getting output as a parsed string</jc>
-	<jc>// Input must be a string (e.g. "&lt;string&gt;foo&lt;/string&gt;" or "'foo'")</jc>
-	String name = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/name"</js>)
-		.getResponse(String.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed number</jc>
-	<jc>// Input must be a number (e.g. "&lt;number&gt;123&lt;/number&gt;" or "123")</jc>
-	<jk>int</jk> age = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/age"</js>)
-		.getResponse(Integer.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed boolean</jc>
-	<jc>// Input must be a boolean (e.g. "&lt;boolean&gt;true&lt;/boolean&gt;" or "true")</jc>
-	<jk>boolean</jk> isCurrent = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/addresses/0/isCurrent"</js>)
-		.getResponse(Boolean.<jk>class</jk>);
-			
-	<jc>// GET request, getting a filtered object</jc>
-	client.getParser().addFilters(CalendarFilter.<jsf>ISO8601</jsf>.<jk>class</jk>);
-	Calendar birthDate = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>)
-		.getResponse(GregorianCalendar.<jk>class</jk>);
-
-	<jc>// PUT request on regular field</jc>
-	String newName = <js>"John Smith"</js>;
-	<jk>int</jk> rc = client.doPut(<js>"http://localhost:9080/addressBook/0/name"</js>, newName).execute();
-	
-	<jc>// PUT request on filtered field</jc>
-	Calendar newBirthDate = <jk>new</jk> GregorianCalendar(1, 2, 3, 4, 5, 6);
-	rc = client.doPut(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>, newBirthDate).execute();
-	
-	<jc>// POST of a new entry to a list</jc>
-	Address newAddress = <jk>new</jk> Address(<js>"101 Main St"</js>, <js>"Anywhere"</js>, <js>"NY"</js>, 12121, <jk>false</jk>);
-	rc = client.doPost(<js>"http://localhost:9080/addressBook/0/addresses"</js>, newAddress).execute();	
-	</p>
-	
-	<h6 class='notes'>Notes:</h6>
-	<ul class='notes'>
-		<li><p>The {@link com.ibm.juno.client.RestClient} class exposes all the builder methods on the Apache HttpClient {@link org.apache.http.impl.client.HttpClientBuilder} class.
-			Use these methods to provide any customized HTTP client behavior..</p>
-	</ul>
-	
-	<!-- ======================================================================================================== -->
-	<a id="SSL"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - SSL Support</h3>
-	<div class='topic'>
-		<p>
-			The simplest way to enable SSL support in the client is to use the {@link com.ibm.juno.client.RestClient#enableSSL(SSLOpts)} method
-			and one of the predefined {@link com.ibm.juno.client.SSLOpts} instances:
-			<ul>
-				<li>{@link com.ibm.juno.client.SSLOpts#DEFAULT} - Normal certificate and hostname validation.
-				<li>{@link com.ibm.juno.client.SSLOpts#LAX} - Allows for self-signed certificates.
-			</ul>
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Create a client that ignores self-signed or otherwise invalid certificates.</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.enableSSL(SSLOpts.<jsf>LAX</jsf>);
-		
-	<jc>// ...or...</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.enableLaxSSL();
-		</p>
-		<p>
-			This is functionally equivalent to the following:
-		</p>
-		<p class='bcode'>
-	RestClient restClient = <jk>new</jk> RestClient();
-	
-	HostnameVerifier hv = <jk>new</jk> NoopHostnameVerifier();
-	TrustManager tm = <jk>new</jk> SimpleX509TrustManager(<jk>true</jk>);
-
-	<jk>for</jk> (String p : <jk>new</jk> String[]{<js>"SSL"</js>,<js>"TLS"</js>,<js>"SSL_TLS"</js>}) {
-		SSLContext ctx = SSLContext.<jsm>getInstance</jsm>(p);
-		ctx.init(<jk>null</jk>, <jk>new</jk> TrustManager[] { tm }, <jk>null</jk>);
-		SSLConnectionSocketFactory sf = <jk>new</jk> SSLConnectionSocketFactory(ctx, hv);
-		restClient.setSSLSocketFactory(sf);
-		Registry&lt;ConnectionSocketFactory&gt; r = RegistryBuilder.&lt;ConnectionSocketFactory&gt;<jsm>.create</jsm>().register(<js>"https"</js>, sf).build();
-		restClient.setConnectionManager(<jk>new</jk> PoolingHttpClientConnectionManager(r));
-	}
-		</p>
-		<p>
-			More complex SSL support can be enabled through the various {@link org.apache.http.impl.client.HttpClientBuilder} methods defined on the class.
-		</p>
-		
-		<!-- ======================================================================================================== -->
-		<a id="SSLOpts"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.1.1 - SSLOpts Bean</h4>
-		<div class='topic'>
-	<p>
-				The {@link com.ibm.juno.client.SSLOpts} class itself is a bean that can be created by the parsers.
-				For example, SSL options can be specified in a config file and retrieved as a bean using the {@link com.ibm.juno.core.ini.ConfigFile} class.
-	</p>
-			<h6 class='figure'>Contents of <code>MyConfig.cfg</code></h6>
-			<p class='bcode'>
-		<jc>#================================================================================
-		# My Connection Settings
-		#================================================================================</jc>
-		[Connection]
-		url = https://myremotehost:9443
-		ssl = {certValidate:'LAX',hostVerify:'LAX'}
-			</p>
-			<h6 class='figure'>Code that reads an <code>SSLOpts</code> bean from the config file</h6>
-			<p class='bcode'>
-		<jc>// Read config file and set SSL options based on what's in that file.</jc>
-		ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.get(<js>"MyConfig.cfg"</js>);
-		SSLOpts ssl = cf.getObject(SSLOpts.<jk>class</jk>, <js>"Connection/ssl"</js>);
-		RestClient rc = <jk>new</jk> RestClient().enableSSL(ssl);
-			</p>
-		</div>
-	</div>	
-
-	<!-- ======================================================================================================== -->
-	<a id="Authentication"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.2 - Authentication</h3>
-	<div class='topic'>
-
-		<!-- ======================================================================================================== -->
-		<a id="BASIC"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.1 - BASIC Authentication</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.client.RestClient#setBasicAuth(String,int,String,String)} method can be used to quickly enable
-				BASIC authentication support.
-			</p>
-			<h6 class='topic'>Example:</h6>
-			<p class='bcode'>
-	<jc>// Create a client that performs BASIC authentication using the specified user/pw.</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.setBasicAuth(<jsf>HOST</jsf>, <jsf>PORT</jsf>, <jsf>USER</jsf>, <jsf>PW</jsf>);
-		</p>
-		<p>
-			This is functionally equivalent to the following:
-		</p>
-		<p class='bcode'>
-	RestClient restClient = <jk>new</jk> RestClient();
-	AuthScope scope = <jk>new</jk> AuthScope(<jsf>HOST</jsf>, <jsf>PORT</jsf>);
-	Credentials up = <jk>new</jk> UsernamePasswordCredentials(<jsf>USER</jsf>, <jsf>PW</jsf>);
-	CredentialsProvider p = <jk>new</jk> BasicCredentialsProvider();
-	p.setCredentials(scope, up);
-	restClient.setDefaultCredentialsProvider(p);
-			</p>
-		</div>
-	
-		<!-- ======================================================================================================== -->
-		<a id="FORM"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.2 - FORM-based Authentication</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.client.RestClient} class does not itself provide FORM-based authentication since there
-				is no standard way of providing such support. 
-				Typically, to perform FORM-based or other types of authentication, you'll want to create your own
-				subclass of {@link com.ibm.juno.client.RestClient} and override the {@link com.ibm.juno.client.RestClient#createHttpClient()}
-				method to provide an authenticated client.
-			</p>
-			<p>
-				The following example shows how the {@link com.ibm.juno.client.jazz.JazzRestClient} class provides
-				FORM-based authentication support.
-			</p>
-			<p class='bcode'>
-	<jd>/**
-	 * Constructor.
-	 */</jd>
-	<jk>public</jk> JazzRestClient(URI jazzUri, String user, String pw) <jk>throws</jk> IOException {
-		...
-	}
-
-	<jd>/**
-	 * Override the createHttpClient() method to return an authenticated client.
-	 */</jd>
-	<ja>@Override</ja> <jc>/* RestClient */</jc>
-	<jk>protected</jk> CloseableHttpClient createHttpClient() <jk>throws</jk> Exception {
-		CloseableHttpClient client = <jk>super</jk>.createHttpClient();
-		formBasedAuthenticate(client);
-		visitAuthenticatedURL(client);
-		<jk>return</jk> client;
-	}
-
-	<jc>/*
-	 * Performs form-based authentication against the Jazz server.
-	 */</jc>
-	<jk>private void</jk> formBasedAuthenticate(HttpClient client) <jk>throws</jk> IOException {
-
-		URI uri2 = <jf>jazzUri</jf>.resolve(<js>"j_security_check"</js>);
-		HttpPost request = <jk>new</jk> HttpPost(uri2);
-		request.setConfig(RequestConfig.<jsm>custom</jsm>().setRedirectsEnabled(<jk>false</jk>).build());
-		
-		<jc>// Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.</jc>
-		request.addHeader(<js>"Content-Type"</js>, <js>"application/x-www-form-urlencoded; charset=utf-8"</js>);
-
-		NameValuePairs params = <jk>new</jk> NameValuePairs()
-			.append(<jk>new</jk> BasicNameValuePair(<js>"j_username""</js>, <jf>user</jf>))
-			.append(<jk>new</jk> BasicNameValuePair(<js>"j_password"</js>, <jf>pw</jf>));
-		request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
-
-		HttpResponse response = client.execute(request);
-		<jk>try</jk> {
-			<jk>int</jk> rc = response.getStatusLine().getStatusCode();
-
-			Header authMsg = response.getFirstHeader(<js>"X-com-ibm-team-repository-web-auth-msg"</js>);
-			<jk>if</jk> (authMsg != <jk>null</jk>)
-				<jk>throw new</jk> IOException(authMsg.getValue());
-
-			<jc>// The form auth request should always respond with a 200 ok or 302 redirect code</jc>
-			<jk>if</jk> (rc == <jsf>SC_MOVED_TEMPORARILY</jsf>) {
-				<jk>if</jk> (response.getFirstHeader(<js>"Location"</js>).getValue().matches(<js>"^.*/auth/authfailed.*$"</js>))
-					<jk>throw new</jk> IOException(<js>"Invalid credentials."</js>);
-			} <jk>else if</jk> (rc != <jsf>SC_OK</jsf>) {
-				<jk>throw new</jk> IOException(<js>"Unexpected HTTP status: "</js> + rc);
-			}
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-
-	<jc>/*
-	 * This is needed for Tomcat because it responds with SC_BAD_REQUEST when the j_security_check URL is visited before an
-	 * authenticated URL has been visited. This same URL must also be visited after authenticating with j_security_check
-	 * otherwise tomcat will not consider the session authenticated
-	 */</jc>
-	<jk>private int</jk> visitAuthenticatedURL(HttpClient httpClient) <jk>throws</jk> IOException {
-		HttpGet authenticatedURL = <jk>new</jk> HttpGet(<jf>jazzUri</jf>.resolve(<js>"authenticated/identity"</js>));
-		HttpResponse response = httpClient.execute(authenticatedURL);
-		<jk>try</jk> {
-			<jk>return</jk> response.getStatusLine().getStatusCode();
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-			</p>
-		</div>
-		
-		<!-- ======================================================================================================== -->
-		<a id="OIDC"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.3 - OIDC Authentication</h4>
-		<div class='topic'>
-			<p>
-				The following example shows how the {@link com.ibm.juno.client.jazz.JazzRestClient} class provides
-				OIDC authentication support.
-			</p>
-	<p class='bcode'>
-	<jd>/**
-	 * Constructor.
-	 */</jd>
-	<jk>public</jk> JazzRestClient(URI jazzUri, String user, String pw) <jk>throws</jk> IOException {
-		...
-	}
-
-	<jd>/**
-	 * Override the createHttpClient() method to return an authenticated client.
-	 */</jd>
-	<ja>@Override</ja> <jc>/* RestClient */</jc>
-	<jk>protected</jk> CloseableHttpClient createHttpClient() <jk>throws</jk> Exception {
-		CloseableHttpClient client = <jk>super</jk>.createHttpClient();
-		oidcAuthenticate(client);
-			<jk>return</jk> client;
-		}
-
-	<jk>private void</jk> oidcAuthenticate(HttpClient client) <jk>throws</jk> IOException {
-
-		HttpGet request = <jk>new</jk> HttpGet(<jf>jazzUri</jf>);
-		request.setConfig(RequestConfig.<jsm>custom</jsm>().setRedirectsEnabled(<jk>false</jk>).build());
-		
-		<jc>// Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.</jc>
-		request.addHeader(<js>"Content-Type"</js>, <js>"application/x-www-form-urlencoded; charset=utf-8"</js>);
-
-		HttpResponse response = client.execute(request);
-		<jk>try</jk> {
-			<jk>int</jk> code = response.getStatusLine().getStatusCode();
-
-			<jc>// Already authenticated</jc>
-			<jk>if</jk> (code == <jsf>SC_OK</jsf>)
-				<jk>return</jk>;
-
-			<jk>if</jk> (code != <jsf>SC_UNAUTHORIZED</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication: "</js> + response.getStatusLine());
-
-			<jc>// x-jsa-authorization-redirect</jc>
-			String redirectUri = getHeader(response, <js>"X-JSA-AUTHORIZATION-REDIRECT"</js>);
-
-			<jk>if</jk> (redirectUri == <jk>null</jk>)
-				<jk>throw new</jk> RestCallException(<js>"Expected a redirect URI during OIDC authentication: "</js> + response.getStatusLine());
-
-			<jc>// Handle Bearer Challenge</jc>
-			HttpGet method = <jk>new</jk> HttpGet(redirectUri + <js>"&prompt=none"</js>);
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 2: "</js> + response.getStatusLine());
-
-			String loginRequired = getHeader(response, <js>"X-JSA-LOGIN-REQUIRED"</js>);
-
-			<jk>if</jk> (! <js>"true"</js>.equals(loginRequired))
-				<jk>throw new</jk> RestCallException(<js>"X-JSA-LOGIN-REQUIRED header not found on response during OIDC authentication phase 2: "</js> + response.getStatusLine());
-
-			method = <jk>new</jk> HttpGet(redirectUri + <js>"&prompt=none"</js>);
-
-			addDefaultOidcHeaders(method);
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 3: "</js> + response.getStatusLine());
-
-			<jc>// Handle JAS Challenge</jc>
-			method = <jk>new</jk> HttpGet(redirectUri);
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 4: "</js> + response.getStatusLine());
-
-			<jf>cookie</jf> = getHeader(response, <js>"Set-Cookie"</js>);
-
-			Header[] defaultHeaders = <jk>new</jk> Header[] {
-				<jk>new</jk> BasicHeader(<js>"User-Agent"</js>, <js>"Jazz Native Client"</js>),
-				<jk>new</jk> BasicHeader(<js>"X-com-ibm-team-configuration-versions"</js>, <js>"com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"</js>),
-				<jk>new</jk> BasicHeader(<js>"Accept"</js>, <js>"text/json"</js>),
-				<jk>new</jk> BasicHeader(<js>"Authorization"</js>, <js>"Basic "</js> + StringUtils.<jsm>base64EncodeToString</jsm>(<jf>user</jf> + <js>":"</js> + <jf>pw</jf>)),
-				<jk>new</jk> BasicHeader(<js>"Cookie"</js>, cookie)
-	};
-
-			setDefaultHeaders(Arrays.<jsm>asList</jsm>(defaultHeaders));
-
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-
-	<jk>private void</jk> addDefaultOidcHeaders(HttpRequestBase method) {
-		method.addHeader(<js>"User-Agent"</js>, <js>"Jazz Native Client"</js>);
-		method.addHeader(<js>"X-com-ibm-team-configuration-versions"</js>, <js>"com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"</js>);
-		method.addHeader(<js>"Accept"</js>, <js>"text/json"</js>);
-
-		<jk>if</jk> (<jf>cookie</jf> != <jk>null</jk>) {
-			method.addHeader(<js>"Authorization"</js>, <js>"Basic "</js> + StringUtils.<jsm>base64EncodeToString</jsm>(<jf>user</jf> + <js>":"</js> + <jf>pw</jf>));
-			method.addHeader(<js>"Cookie"</js>, cookie);
-		}
-	}
-			</p>	
-		</div>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="ResponsePatterns"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.3 - Using Response Patterns</h3>
-	<div class='topic'>
-		<p>
-			One issue with REST (and HTTP in general) is that the HTTP response code must be set as a header before the 
-			body of the request is sent.  This can be problematic when REST calls invoke long-running processes, pipes
-			the results through the connection, and then fails after an HTTP 200 has already been sent.
-		</p>
-		<p>
-			One common solution is to serialize some text at the end to indicate whether the long-running process succeeded (e.g. <js>"FAILED"</js> or <js>"SUCCEEDED"</js>).
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestClient} class has convenience methods for scanning the response without
-			interfering with the other methods used for retrieving output.  
-		</p>
-		<p>
-			The following example shows how the {@link com.ibm.juno.client.RestCall#successPattern(String)} method can be used
-			to look for a SUCCESS message in the output:
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Throw a RestCallException if SUCCESS is not found in the output.</jc>
-	restClient.doPost(<jsf>URL</jsf>)
-		.successPattern(<js>"SUCCESS"</js>)
-		.run();
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCall#failurePattern(String)} method does the opposite.  
-			It throws an exception if a failure message is detected.
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Throw a RestCallException if FAILURE or ERROR is found in the output.</jc>
-	restClient.doPost(<jsf>URL</jsf>)
-		.failurePattern(<js>"FAILURE|ERROR"</js>)
-		.run();
-		</p>
-		<p>
-			These convenience methods are specialized methods that use the {@link com.ibm.juno.client.RestCall#addResponsePattern(ResponsePattern)}
-				method which uses regular expression matching against the response body.
-			This method can be used to search for arbitrary patterns in the response body.
-		</p>
-		<p>
-			The following example shows how to use a response pattern finder to find and capture patterns for <js>"x=number"</js> and <js>"y=string"</js>
-				from a response body.
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jk>final</jk> List&lt;Number&gt; xList = <jk>new</jk> ArrayList&lt;Number&gt;();
-	<jk>final</jk> List&lt;String&gt; yList = <jk>new</jk> ArrayList&lt;String&gt;();
-	
-	String responseText = restClient.doGet(<jsf>URL</jsf>)
-		.addResponsePattern(
-			<jk>new</jk> ResponsePattern(<js>"x=(\\d+)"</js>) {
-				<ja>@Override</ja>
-				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
-					xList.add(Integer.<jsm>parseInt</jsm>(m.group(1)));
-				}
-				<ja>@Override</ja>
-				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
-					<jk>throw new</jk> RestCallException(<js>"No X's found!"</js>);
-				}
-			}
-		)
-		.addResponsePattern(
-			<jk>new</jk> ResponsePattern(<js>"y=(\\S+)"</js>) {
-				<ja>@Override</ja>
-				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
-					yList.add(m.group(1));
-				}
-				<ja>@Override</ja>
-				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
-					<jk>throw new</jk> RestCallException(<js>"No Y's found!"</js>);
-				}
-			}
-		)
-		.getResponseAsString();
-		</p>
-		<p>
-			Using response patterns does not affect the functionality of any of the other methods
-			used to retrieve the response such as {@link com.ibm.juno.client.RestCall#getResponseAsString()} or {@link com.ibm.juno.client.RestCall#getResponse(Class)}.<br>
-			HOWEVER, if you want to retrieve the entire text of the response from inside the match methods,
-			use {@link com.ibm.juno.client.RestCall#getCapturedResponse()} since this method will not absorb the response for those other methods.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="#PipingOutput"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.4 - Piping Response Output</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestCall} class provides various convenience <code>pipeTo()</code> methods 
-			to pipe output to output streams and writers.
-		</p>
-		<p>
-			If you want to pipe output without any intermediate buffering, you can use the {@link com.ibm.juno.client.RestCall#byLines()} method.  
-			This will cause the output to be piped and flushed after every line.  
-			This can be useful if you want to display the results in real-time from a long running process producing
-				output on a REST call.
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Pipe output from REST call to System.out in real-time.</jc>
-	restClient.doPost(<jsf>URL</jsf>).byLines().pipeTo(<jk>new</jk> PrintWriter(System.<jk>out</jk>)).run();
-		</p>
-	</div>	
-	
-	<!-- ======================================================================================================== -->
-	<a id="Logging"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.5 - Logging</h3>
-	<div class='topic'>
-		<p>
-			Use the {@link com.ibm.juno.client.RestClient#logTo(Level,Logger)} and {@link com.ibm.juno.client.RestCall#logTo(Level,Logger)} methods
-			to log HTTP calls.
-			These methods will cause the HTTP request and response headers and body to be logged to the specified logger.  
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Log the HTTP request/response to the specified logger.</jc>
-	<jk>int</jk> rc = restClient.doGet(<jsf>URL</jsf>).logTo(<jsf>INFO</jsf>, getLogger()).run();
-		</p>
-		<p>
-			The method call is ignored if the logger level is below the specified level.
-		</p>
-		<p>
-			Customized logging can be handled by subclassing the {@link com.ibm.juno.client.RestCallLogger} class and using the 
-			{@link com.ibm.juno.client.RestCall#addInterceptor(RestCallInterceptor)} method.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="Interceptors"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.6 - Interceptors</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#addInterceptor(RestCallInterceptor)} and {@link com.ibm.juno.client.RestCall#addInterceptor(RestCallInterceptor)} methods
-			can be used to intercept responses during specific connection lifecycle events.
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCallLogger} class is an example of an interceptor that uses the various lifecycle methods
-				to log HTTP requests.
-		</p>
-		<p class='bcode'>
-	<jd>/**
-	 * Specialized interceptor for logging calls to a log file.
-	 */</jd>
-	<jk>public class</jk> RestCallLogger <jk>extends</jk> RestCallInterceptor {
-	
-		<jk>private</jk> Level <jf>level</jf>;
-		<jk>private</jk> Logger <jf>log</jf>;
-	
-		<jd>/**
-		 * Constructor.
-		 *
-		 * <ja>@param</ja> level The log level to log messages at.
-		 * <ja>@param</ja> log The logger to log to.
-		 */</jd>
-		<jk>protected</jk> RestCallLogger(Level level, Logger log) {
-			<jk>this</jk>.<jf>level</jf> = level;
-			<jk>this</jk>.<jf>log</jf> = log;
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onInit(RestCall restCall) {
-			<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>))
-				restCall.captureResponse();
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onConnect(RestCall restCall, <jk>int</jk> statusCode, HttpRequest req, HttpResponse res) {
-			<jc>// Do nothing.</jc>
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onRetry(RestCall restCall, <jk>int</jk> statusCode, HttpRequest req, HttpResponse res) {
-			<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>))
-				<jf>log</jf>.log(level, MessageFormat.<jsm>format</jsm>(<js>"Call to {0} returned {1}.  Will retry."</js>, req.getRequestLine().getUri(), statusCode)); 
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onClose(RestCall restCall) <jk>throws</jk> RestCallException {
-			<jk>try</jk> {
-				<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>)) {
-					String output = restCall.getCapturedResponse();
-					StringBuilder sb = <jk>new</jk> StringBuilder();
-					HttpUriRequest req = restCall.getRequest();
-					HttpResponse res = restCall.getResponse();
-					<jk>if</jk> (req != <jk>null</jk>) {
-						sb.append(<js>"\n=== HTTP Call =================================================================="</js>);
-	
-						sb.append(<js>"\n=== REQUEST ===\n"</js>).append(req);
-						sb.append(<js>"\n---request headers---"</js>);
-						<jk>for</jk> (Header h : req.getAllHeaders())
-							sb.append(<js>"\n"</js>).append(h);
-						<jk>if</jk> (req <jk>instanceof</jk> HttpEntityEnclosingRequestBase) {
-							sb.append(<js>"\n---request entity---"</js>);
-							HttpEntityEnclosingRequestBase req2 = (HttpEntityEnclosingRequestBase)req;
-							HttpEntity e = req2.getEntity();
-							<jk>if</jk> (e == <jk>null</jk>)
-								sb.append(<js>"\nEntity is null"</js>);
-							<jk>else</jk> {
-								<jk>if</jk> (e.getContentType() != <jk>null</jk>)
-									sb.append(<js>"\n"</js>).append(e.getContentType());
-								<jk>if</jk> (e.getContentEncoding() != <jk>null</jk>)
-									sb.append(<js>"\n"</js>).append(e.getContentEncoding());
-								<jk>if</jk> (e.isRepeatable()) {
-									<jk>try</jk> {
-										sb.append(<js>"\n---request content---\n"</js>).append(EntityUtils.<jsm>toString</jsm>(e));
-									} <jk>catch</jk> (Exception ex) {
-										<jk>throw new</jk> RuntimeException(ex);
-									}
-								}
-							}
-						}
-					}
-					<jk>if</jk> (res != <jk>null</jk>) {
-						sb.append(<js>"\n=== RESPONSE ===\n"</js>).append(res.getStatusLine());
-						sb.append(<js>"\n---response headers---"</js>);
-						<jk>for</jk> (Header h : res.getAllHeaders())
-							sb.append(<js>"\n"</js>).append(h);
-						sb.append(<js>"\n---response content---\n"</js>).append(output);
-						sb.append(<js>"\n=== END ========================================================================"</js>);
-					}
-					<jf>log</jf>.log(<jf>level</jf>, sb.toString());
-				}
-			} <jk>catch</jk> (IOException e) {
-				<jf>log</jf>.log(Level.<jsf>SEVERE</jsf>, e.getLocalizedMessage(), e);
-			}
-		}
-	}
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="Remoteable"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.7 - Remotable Proxies</h3>
-	<div class='topic'>
-		<p>
-			Juno provides the capability of calling methods on POJOs on a server through client-side proxy interfaces.
-			It offers a number of advantages over other similar remote proxy interfaces, such as being much simpler to 
-				use and allowing much more flexibility.
-		</p>
-		<p>
-			Proxy interfaces are retrieved using the {@link com.ibm.juno.client.RestClient#getRemoteableProxy(Class)} method.
-			The {@link com.ibm.juno.client.RestClient#setRemoteableServletUri(String)} method is used to specify the location
-				of the remoteable services servlet running on the server.
-			The remoteable servlet is a specialized subclass of {@link com.ibm.juno.server.RestServlet} that provides a full-blown
-				REST interface for calling interfaces remotely. 
-		</p>
-		<p>
-			In this example, we have the following interface defined that we want to call from the client side against
-				a POJO on the server side (i.e. a Remoteable Service)...
-		<p class='bcode'>
-	<jk>public interface</jk> IAddressBook {
-		Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
-	}
-		</p>			
-		<p>
-			The client side code for invoking this method is shown below...
-		</p>
-		<p class='bcode'>
-	<jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
-	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>)
-		.setRemoteableServletUri(<js>"https://localhost:9080/juno/sample/remoteable"</js>);
-	
-	<jc>// Create a proxy interface.</jc>
-	IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
-	
-	<jc>// Invoke a method on the server side and get the returned result.</jc>
-	Person p = ab.createPerson(
-		<jk>new</jk> CreatePerson(<js>"Test Person"</js>,
-			AddressBook.<jsm>toCalendar</jsm>(<js>"Aug 1, 1999"</js>),
-			<jk>new</jk> CreateAddress(<js>"Test street"</js>, <js>"Test city"</js>, <js>"Test state"</js>, 12345, <jk>true</jk>))
-	);
-		</p>
-		<p>
-			The requirements for a method to be callable through a remoteable service are:
-			<ul>
-				<li>The method must be public.
-				<li>The parameter and return types must be <a href='../../../../com/ibm/juno/core/package-summary.html#PojoCategories'><u>serializable and parsable</u></a>.
-			</ul>
-		</p>
-		<p>
-			One significant feature is that the remoteable services servlet is a full-blown REST interface.  
-			Therefore, in cases where the interface classes are not available on the client side,
-				the same method calls can be made through pure REST calls.  
-			This can also aid significantly in debugging since calls to the remoteable service
-				can be called directly from a browser with no code involved.
-		</p>
-		<p>
-			See {@link com.ibm.juno.server.remoteable} for more information.
-		</p> 
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="Other"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.8 - Other Useful Methods</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#setRootUrl(String)} method can be used to specify a root URL on 
-				all requests so that you don't have to use absolute paths on individual calls.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest client with a root URL</jc>
-	RestClient rc = <jk>new</jk> RestClient().setRootUrl(<js>"http://localhost:9080/foobar"</js>);
-	String r = rc.doGet(<js>"/baz"</js>).getResponseAsString();  <jc>// Gets "http://localhost:9080/foobar/baz"</jc>
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#setProperty(String,Object)} method can be used to set serializer
-			and parser properties.
-			For example, if you're parsing a response into POJOs and you want to ignore fields that aren't on the
-			POJOs, you can use the {@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownBeanProperties} property.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest client that ignores unknown fields in the response</jc>
-	RestClient rc = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>)
-		.setProperty(<jsf>BEAN_ignoreUnknownBeanProperties</jsf>, <jk>true</jk>);
-	MyPojo myPojo = rc.doGet(<jsf>URL</jsf>).getResponse(MyPojo.<jk>class</jk>);
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCall#setRetryable(int,long,RetryOn)} method can be used to automatically
-				retry requests on failures.
-			This can be particularly useful if you're attempting to connect to a REST resource that may be in
-				the process of still initializing.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest call that retries every 10 seconds for up to 30 minutes as long as a connection fails
-	// or a 400+ is received.</jc>
-	restClient.doGet(<jsf>URL</jsf>)
-		.setRetryable(180, 10000, RetryOn.<jsf>DEFAULT</jsf>)
-		.run();
-	</p>
-	</div>
-</div>
-</body>
-</html>
\ No newline at end of file



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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ReaderParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ReaderParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ReaderParser.java
deleted file mode 100755
index 865b95e..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ReaderParser.java
+++ /dev/null
@@ -1,394 +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.parser;
-
-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.utils.*;
-
-/**
- * Subclass of {@link Parser} for characters-based parsers.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	This class is typically the parent class of all character-based parsers.
- * 	It has 1 abstract method to implement...
- * <ul>
- * 	<li><code>parse(Reader, ClassMeta, ParserContext)</code>
- * </ul>
- *
- *
- * <h6 class='topic'>@Consumes annotation</h6>
- * <p>
- * 	The media types that this parser can handle is specified through the {@link Consumes @Consumes} annotation.
- * <p>
- * 	However, the media types can also be specified programmatically by overriding the {@link #getMediaTypes()} method.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class ReaderParser extends Parser<Reader> {
-
-	//--------------------------------------------------------------------------------
-	// Abstract methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Parser */
-	protected abstract <T> T doParse(Reader in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException;
-
-	//--------------------------------------------------------------------------------
-	// Other methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Same as <code>parse(Reader, Class)</code> except parses from a <code>CharSequence</code>.
-	 *
-	 * @param in The string containing the input.
-	 * @param type The class type of the object to create.
-	 * 	If <jk>null</jk> or <code>Object.<jk>class</jk></code>, object type is based on what's being parsed.
-	 * @param <T> The class type of the object to create.
-	 * @return The parsed object.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 */
-	public <T> T parse(CharSequence in, Class<T> type) throws ParseException {
-		return parse(in, getBeanContext().getClassMeta(type));
-	}
-
-	/**
-	 * Same as <code>parse(Reader, ClassMeta)</code> except parses from a <code>CharSequence</code>.
-	 *
-	 * @param in The string containing the input.
-	 * @param type The class type of the object to create.
-	 * 	If <jk>null</jk> or <code>Object.<jk>class</jk></code>, object type is based on what's being parsed.
-	 * @param <T> The class type of the object to create.
-	 * @return The parsed object.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 */
-	public <T> T parse(CharSequence in, ClassMeta<T> type) throws ParseException {
-		try {
-			if (in == null)
-				return null;
-			return parse(wrapReader(in), in.length(), type, createContext());
-		} catch (IOException e) {
-			throw new ParseException(e); // Won't happen since it's a StringReader.
-		}
-	}
-
-	/**
-	 * Same as <code>parseMap(Reader, Class, Class, Class)</code> except parses from a <code>CharSequence</code>.
-	 *
-	 * @param <T> The map class type.
-	 * @param <K> The class type of the map keys.
-	 * @param <V> The class type of the map values.
-	 * @param in The string containing the input.
-	 * @param mapClass The map class type.
-	 * @param keyClass The class type of the map keys.
-	 * @param valueClass The class type of the map values.
-	 * @return A new map instance.
-	 * @throws ParseException
-	 */
-	public <K,V,T extends Map<K,V>> T parseMap(CharSequence in, Class<T> mapClass, Class<K> keyClass, Class<V> valueClass) throws ParseException {
-		ClassMeta<T> cm = getBeanContext().getMapClassMeta(mapClass, keyClass, valueClass);
-		return parse(in, cm);
-	}
-
-	/**
-	 * Same as <code>parseCollection(Reader, Class, Class)</code> except parses from a <code>CharSequence</code>.
-	 *
-	 * @param <T> The collection class type.
-	 * @param <E> The class type of the collection entries.
-	 * @param in The string containing the input.
-	 * @param collectionClass The map class type.
-	 * @param entryClass collectionClass
-	 * @return A new collection instance.
-	 * @throws ParseException
-	 */
-	public <E,T extends Collection<E>> T parseCollection(CharSequence in, Class<T> collectionClass, Class<E> entryClass) throws ParseException {
-		ClassMeta<T> cm = getBeanContext().getCollectionClassMeta(collectionClass, entryClass);
-		return parse(in, cm);
-	}
-
-	/**
-	 * Wraps the specified character sequence inside a reader.
-	 * Subclasses can override this method to implement their own readers.
-	 *
-	 * @param in The string being wrapped.
-	 * @return The string wrapped in a reader, or <jk>null</jk> if the <code>CharSequence</code> is null.
-	 */
-	protected Reader wrapReader(CharSequence in) {
-		return new CharSequenceReader(in);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Optional methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Parses the contents of the specified reader and loads the results into the specified map.
-	 * <p>
-	 * 	Reader must contain something that serializes to a map (such as text containing a JSON object).
-	 * <p>
-	 * 	Used in the following locations:
-	 * <ul>
-	 * 	<li>The various character-based constructors in {@link ObjectMap} (e.g. {@link ObjectMap#ObjectMap(CharSequence, ReaderParser)}).
-	 * </ul>
-	 *
-	 * @param <K> The key class type.
-	 * @param <V> The value class type.
-	 * @param in The reader containing the input.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param m The map being loaded.
-	 * @param keyType The class type of the keys, or <jk>null</jk> to default to <code>String.<jk>class</jk></code>.<br>
-	 * @param valueType The class type of the values, or <jk>null</jk> to default to whatever is being parsed.<br>
-	 * @return The same map that was passed in to allow this method to be chained.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 * @throws UnsupportedOperationException If not implemented.
-	 */
-	public final <K,V> Map<K,V> parseIntoMap(Reader in, int estimatedSize, Map<K,V> m, Type keyType, Type valueType) throws ParseException, IOException {
-		ParserContext ctx = createContext();
-		try {
-			if (in == null)
-				throw new IOException("Null input stream or reader passed to parser.");
-			return doParseIntoMap(in, estimatedSize, m, keyType, valueType, ctx);
-		} finally {
-			ctx.close();
-		}
-	}
-
-	/**
-	 * Implementation method.
-	 * Default implementation throws an {@link UnsupportedOperationException}.
-	 *
-	 * @param in The input.  Must represent an array.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param m The map being loaded.
-	 * @param keyType The class type of the keys, or <jk>null</jk> to default to <code>String.<jk>class</jk></code>.<br>
-	 * @param valueType The class type of the values, or <jk>null</jk> to default to whatever is being parsed.<br>
-	 * @param ctx The runtime context object returned by {@link #createContext(ObjectMap, Method, Object)}.
-	 * 	If <jk>null</jk>, one will be created using {@link #createContext()}.
-	 * @return The same map that was passed in to allow this method to be chained.
-	 * @throws ParseException Occurs if syntax error detected in input.
-	 * @throws IOException Occurs if thrown from <code>Reader</code>
-	 */
-	protected <K,V> Map<K,V> doParseIntoMap(Reader in, int estimatedSize, Map<K,V> m, Type keyType, Type valueType, ParserContext ctx) throws ParseException, IOException {
-		throw new UnsupportedOperationException("Parser '"+getClass().getName()+"' does not support this method.");
-	}
-
-	/**
-	 * Same as {@link #parseIntoMap(Reader, int, Map, Type, Type)} except reads from a <code>CharSequence</code>.
-	 *
-	 * @param in The input.  Must represent an array.
-	 * @param m The map being loaded.
-	 * @param keyType The class type of the keys, or <jk>null</jk> to default to <code>String.<jk>class</jk></code>.<br>
-	 * @param valueType The class type of the values, or <jk>null</jk> to default to whatever is being parsed.<br>
-	 * @return The same map that was passed in to allow this method to be chained.
-	 * @throws ParseException Occurs if syntax error detected in input.
-	 */
-	public final <K,V> Map<K,V> parseIntoMap(CharSequence in, Map<K,V> m, Type keyType, Type valueType) throws ParseException {
-		try {
-			if (in == null)
-				return null;
-			return parseIntoMap(wrapReader(in), in.length(), m, keyType, valueType);
-		} catch (IOException e) {
-			throw new ParseException(e);  // Won't happen.
-		}
-	}
-
-	/**
-	 * Parses the contents of the specified reader and loads the results into the specified collection.
-	 * <p>
-	 * 	Used in the following locations:
-	 * <ul>
-	 * 	<li>The various character-based constructors in {@link ObjectList} (e.g. {@link ObjectList#ObjectList(CharSequence, ReaderParser)}.
-	 * </ul>
-	 *
-	 * @param <E> The element class type.
-	 * @param in The reader containing the input.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param c The collection being loaded.
-	 * @param elementType The class type of the elements, or <jk>null</jk> to default to whatever is being parsed.
-	 * @return The same collection that was passed in to allow this method to be chained.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 * @throws UnsupportedOperationException If not implemented.
-	 */
-	public final <E> Collection<E> parseIntoCollection(Reader in, int estimatedSize, Collection<E> c, Type elementType) throws ParseException, IOException {
-		ParserContext ctx = createContext();
-		try {
-			if (in == null)
-				throw new IOException("Null reader passed to parser.");
-			return doParseIntoCollection(in, estimatedSize, c, elementType, ctx);
-		} finally {
-			ctx.close();
-		}
-	}
-
-	/**
-	 * Implementation method.
-	 * Default implementation throws an {@link UnsupportedOperationException}.
-	 *
-	 * @param in The input.  Must represent an array.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param c The collection being loaded.
-	 * @param elementType The class type of the elements, or <jk>null</jk> to default to whatever is being parsed.
-	 * @param ctx The runtime context object returned by {@link #createContext(ObjectMap, Method, Object)}.
-	 * 	If <jk>null</jk>, one will be created using {@link #createContext()}.
-	 * @return The same collection that was passed in to allow this method to be chained.
-	 * @throws ParseException Occurs if syntax error detected in input.
-	 * @throws IOException Occurs if thrown from <code>Reader</code>
-	 */
-	protected <E> Collection<E> doParseIntoCollection(Reader in, int estimatedSize, Collection<E> c, Type elementType, ParserContext ctx) throws ParseException, IOException {
-		throw new UnsupportedOperationException("Parser '"+getClass().getName()+"' does not support this method.");
-	}
-
-	/**
-	 * Same as {@link #parseIntoCollection(Reader, int, Collection, Type)} except reads from a <code>CharSequence</code>.
-	 *
-	 * @param in The input.  Must represent an array.
-	 * @param c The collection being loaded.
-	 * @param elementType The class type of the elements, or <jk>null</jk> to default to whatever is being parsed.
-	 * @return The same collection that was passed in to allow this method to be chained.
-	 * @throws ParseException Occurs if syntax error detected in input.
-	 */
-	public final <E> Collection<E> parseIntoCollection(CharSequence in, Collection<E> c, Type elementType) throws ParseException {
-		try {
-			return parseIntoCollection(wrapReader(in), in.length(), c, elementType);
-		} catch (IOException e) {
-			throw new ParseException(e);  // Won't happen.
-		}
-	}
-
-	/**
-	 * Parses the specified array input with each entry in the object defined by the {@code argTypes}
-	 * argument.
-	 * <p>
-	 * 	Used for converting arrays (e.g. <js>"[arg1,arg2,...]"</js>) into an {@code Object[]} that can be passed
-	 * 	to the {@code Method.invoke(target, args)} method.
-	 * <p>
-	 * 	Used in the following locations:
-	 * <ul>
-	 * 	<li>Used to parse argument strings in the {@link PojoIntrospector#invokeMethod(Method, Reader)} method.
-	 * </ul>
-	 *
-	 * @param in The input.  Must represent an array.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param argTypes Specifies the type of objects to create for each entry in the array.
-	 * @return An array of parsed objects.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 * @throws UnsupportedOperationException If not implemented.
-	 */
-	public final Object[] parseArgs(Reader in, int estimatedSize, ClassMeta<?>[] argTypes) throws ParseException, IOException {
-		if (in == null)
-			throw new IOException("Null reader passed to parser.");
-		if (argTypes == null || argTypes.length == 0)
-			return new Object[0];
-		ParserContext ctx = createContext();
-		try {
-			return doParseArgs(in, estimatedSize, argTypes, ctx);
-		} finally {
-			ctx.close();
-		}
-	}
-
-	/**
-	 * Implementation method.
-	 * Default implementation throws an {@link UnsupportedOperationException}.
-	 *
-	 * @param in The input.  Must represent an array.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param argTypes Specifies the type of objects to create for each entry in the array.
-	 * @param ctx The runtime context object returned by {@link #createContext(ObjectMap, Method, Object)}.
-	 * 	If <jk>null</jk>, one will be created using {@link #createContext()}.
-	 * @return An array of parsed objects.
-	 * @throws ParseException Occurs if syntax error detected in input.
-	 * @throws IOException Occurs if thrown from <code>Reader</code>
-	 */
-	protected Object[] doParseArgs(Reader in, int estimatedSize, ClassMeta<?>[] argTypes, ParserContext ctx) throws ParseException, IOException {
-		throw new UnsupportedOperationException("Parser '"+getClass().getName()+"' does not support this method.");
-	}
-
-	/**
-	 * Same as {@link #parseArgs(Reader, int, ClassMeta[])} except reads from a <code>CharSequence</code>.
-	 *
-	 * @param in The input.  Must represent an array.
-	 * @param argTypes Specifies the type of objects to create for each entry in the array.
-	 * @return An array of parsed objects.
-	 * @throws ParseException Occurs if syntax error detected in input.
-	 */
-	public Object[] parseArgs(CharSequence in, ClassMeta<?>[] argTypes) throws ParseException {
-		try {
-			return parseArgs(wrapReader(in), in.length(), argTypes);
-		} catch (IOException e) {
-			throw new ParseException(e);  // Won't happen.
-		}
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Parser */
-	public boolean isReaderParser() {
-		return true;
-	}
-
-	@Override /* Parser */
-	public ReaderParser setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public ReaderParser setProperties(ObjectMap properties) throws LockedException {
-		super.setProperties(properties);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public ReaderParser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public ReaderParser addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> ReaderParser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public ReaderParser setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public ReaderParser lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public ReaderParser clone() throws CloneNotSupportedException {
-		return (ReaderParser)super.clone();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/package.html
deleted file mode 100755
index ccee463..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/package.html
+++ /dev/null
@@ -1,126 +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>Parser 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='#Parser'>Parser API</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#ParserGroup'>The ParserGroup class</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#DefiningParser'>Defining a new Parser</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="Parser"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Parser API</h2>
-<div class='topic'>
-	<p>
-		The parser API is designed to be easily extensible by developers. <br>
-		If you are writing your own parser, you will typically subclass directly from either {@link com.ibm.juno.core.parser.ReaderParser}
-			or {@link com.ibm.juno.core.parser.InputStreamParser}.<br>
-	</p>
-
-	<!-- ======================================================================================================== -->
-	<a id="ParserGroup"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - The ParserGroup class</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.core.parser.ParserGroup} class represents a group of parser registered with the media types they handle.
-		</p>
-		
-		<h6 class='topic'>Features</h6>		
-		<p>
-			The <code>ParserGroup</code> class provides the following features:
-		<ul>
-			<li>Finds parsers based on HTTP <code>Content-Type</code> header values.
-			<li>Sets common properties on all parsers in a single method call.
-			<li>Locks all parsers in a single method call.
-			<li>Clones existing groups and all parsers within the group in a single method call.
-		</ul>
-		
-		<p>
-			Refer to {@link com.ibm.juno.core.parser.ParserGroup} for additional information.
-		</p>
-	</div> 
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="DefiningParser"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Defining a new Parser</h2>
-<div class='topic'>
-	<p>
-		Defining a new parser is quite simple if you subclass directly from {@link com.ibm.juno.core.parser.ReaderParser} 
-			or {@link com.ibm.juno.core.parser.InputStreamParser}.  In each case, you simply need to implement a single
-			method and specify a {@link com.ibm.juno.core.annotation.Consumes} annotation.
-	</p>
-	<p>
-		The following example shows a simple parser that converts input streams to images using standard JRE classes.
-	</p>
-	<p class='bcode'>
-	<ja>@Consumes</ja>({<js>"image/png"</js>,<js>"image/jpeg"</js>})
-	<jk>public static class</jk> ImageParser <jk>extends</jk> InputStreamParser {
-		<ja>@Override</ja>
-		<jk>public</jk> &lt;T&gt; T parse(InputStream in, ClassMeta&lt;T&gt; type, ParserContext ctx) <jk>throws</jk> ParseException, IOException {
-			BufferedImage image = ImageIO.<jsm>read</jsm>(in);
-			<jk>return</jk> (T)image;
-		}
-	}
-	</p>
-	<p>
-		Parsers that take advantage of the entire {@link com.ibm.juno.core.CoreApi} interface to be able to parse arbitrary beans and POJOs is
-			considerably more complex and outside the scope of this document.  
-		If developing such a parser, the best course of action would be to replicate what occurs in the {@link com.ibm.juno.core.json.JsonParser} 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/plaintext/PlainTextParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextParser.class
deleted file mode 100755
index 319f116..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextParser.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/plaintext/PlainTextParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextParser.java
deleted file mode 100755
index 4aa7ad1..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextParser.java
+++ /dev/null
@@ -1,68 +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.plaintext;
-
-import java.io.*;
-
-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.*;
-
-/**
- * Parsers HTTP plain text request bodies into <a href='../package-summary.html#PojoCategories'>Group 5</a> POJOs.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>text/plain</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>text/plain</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Essentially just converts plain text to POJOs via static <code>fromString()</code> or <code>valueOf()</code>, or
- * 	through constructors that take a single string argument.
- * <p>
- * 	Also parses objects using a filter if the object class has an {@link PojoFilter PojoFilter&lt;?,String&gt;} filter defined on it.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Consumes("text/plain")
-public final class PlainTextParser extends ReaderParser {
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Parser */
-	protected <T> T doParse(Reader in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws IOException, ParseException {
-		return ctx.getBeanContext().convertToType(IOUtils.read(in), type);
-	}
-
-	@Override /* Lockable */
-	public PlainTextParser clone() {
-		try {
-			return (PlainTextParser)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/plaintext/PlainTextSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextSerializer.class
deleted file mode 100755
index 63a5321..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextSerializer.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/plaintext/PlainTextSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextSerializer.java
deleted file mode 100755
index 9466161..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/PlainTextSerializer.java
+++ /dev/null
@@ -1,66 +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.plaintext;
-
-import java.io.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Serializes POJOs to plain text using just the <code>toString()</code> method on the serialized object.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>text/plain</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>text/plain</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Essentially converts POJOs to plain text using the <code>toString()</code> method.
- * <p>
- * 	Also serializes objects using a filter if the object class has an {@link PojoFilter PojoFilter&lt;?,String&gt;} filter defined on it.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces("text/plain")
-public final class PlainTextSerializer extends WriterSerializer {
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		out.write(o == null ? "null" : ctx.getBeanContext().convertToType(o, String.class));
-	}
-
-	@Override /* Serializer */
-	public PlainTextSerializer clone() {
-		try {
-			return (PlainTextSerializer)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/plaintext/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/package.html
deleted file mode 100755
index a0b213f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/plaintext/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>Plain-text 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/serializer/OutputStreamSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/OutputStreamSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/OutputStreamSerializer.class
deleted file mode 100755
index 0428518..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/OutputStreamSerializer.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/OutputStreamSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/OutputStreamSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/OutputStreamSerializer.java
deleted file mode 100755
index a609751..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/OutputStreamSerializer.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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 com.ibm.juno.core.annotation.*;
-
-/**
- * Subclass of {@link Serializer} for byte-based serializers.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	This class is typically the parent class of all byte-based serializers.
- * 	It has 1 abstract method to implement...
- * <ul>
- * 	<li>{@link #doSerialize(Object, OutputStream, 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 OutputStreamSerializer extends Serializer<OutputStream> {
-
-	@Override /* Serializer */
-	public boolean isWriterSerializer() {
-		return false;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Abstract methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	protected abstract void doSerialize(Object o, OutputStream out, SerializerContext ctx) throws IOException, SerializeException;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializeException.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializeException.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializeException.class
deleted file mode 100755
index 54d57e1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializeException.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/SerializeException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializeException.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializeException.java
deleted file mode 100755
index 9b0e2da..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializeException.java
+++ /dev/null
@@ -1,53 +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.serializer;
-
-import java.text.*;
-
-/**
- * General exception thrown whenever an error occurs during serialization.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class SerializeException extends Exception {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param msg The error message.
-	 * @param args Optional printf arguments to replace in the error message.
-	 */
-	public SerializeException(String msg, Object... args) {
-		super(args.length == 0 ? msg : MessageFormat.format(msg, args));
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param cause The cause.
-	 */
-	public SerializeException(Throwable cause) {
-		super(cause == null ? null : cause.getLocalizedMessage());
-		initCause(cause);
-	}
-
-	/**
-	 * Sets the inner cause for this exception.
-	 *
-	 * @param cause The inner cause.
-	 * @return This object (for method chaining).
-	 */
-	@Override /* Throwable */
-	public synchronized SerializeException initCause(Throwable cause) {
-		super.initCause(cause);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/Serializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/Serializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/Serializer.class
deleted file mode 100755
index 0a67c62..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/Serializer.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/Serializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/Serializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/Serializer.java
deleted file mode 100755
index 1d3cf51..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/Serializer.java
+++ /dev/null
@@ -1,377 +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.serializer;
-
-import static com.ibm.juno.core.utils.ClassUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.text.*;
-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.soap.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Parent class for all Juno serializers.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Base serializer class that serves as the parent class for all serializers.
- * <p>
- * 	Subclasses should extend directly from {@link OutputStreamSerializer} or {@link WriterSerializer}.
- *
- *
- * <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.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * 	See {@link SerializerProperties} for a list of configurable properties that can be set on this class
- * 	using the {@link #setProperty(String, Object)} method.
- *
- * @param <W> The output stream or writer class type.
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class Serializer<W> extends CoreApi {
-
-	/** General serializer properties currently set on this serializer. */
-	protected transient SerializerProperties sp = new SerializerProperties();
-	private String[] mediaTypes;
-	private String contentType;
-
-	// Hidden constructor to force subclass from OuputStreamSerializer or WriterSerializer.
-	Serializer() {}
-
-	/**
-	 * Returns <jk>true</jk> if this parser subclasses from {@link WriterSerializer}.
-	 *
-	 * @return <jk>true</jk> if this parser subclasses from {@link WriterSerializer}.
-	 */
-	public abstract boolean isWriterSerializer();
-
-	//--------------------------------------------------------------------------------
-	// Abstract methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Serializes a POJO to the specified output stream or writer.
-	 * <p>
-	 * This method should NOT close the context object.
-	 *
-	 * @param o The object to serialize.
-	 * @param out The writer or output stream to write to.
-	 * @param ctx The serializer context object return by {@link #createContext(ObjectMap, Method)}.<br>
-	 * 	If <jk>null</jk>, context is created using {@link #createContext()}.
-	 *
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	protected abstract void doSerialize(Object o, W out, SerializerContext ctx) throws IOException, SerializeException;
-
-	//--------------------------------------------------------------------------------
-	// Other methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Calls {@link #serialize(Object, Object, SerializerContext)} but intercepts {@link StackOverflowError} exceptions
-	 * 	and wraps them in a useful message.
-	 * @param o The object to serialize.
-	 * @param out The writer or output stream to write to.
-	 * @param ctx The serializer context object return by {@link #createContext(ObjectMap, Method)}.<br>
-	 * 	If <jk>null</jk>, context is created using {@link #createContext()}.
-	 *
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public final void serialize(Object o, W out, SerializerContext ctx) throws IOException, SerializeException {
-		try {
-			doSerialize(o, out, ctx);
-		} catch (StackOverflowError e) {
-			throw new SerializeException("Stack overflow occurred.  This can occur when trying to serialize models containing loops.  It's recommended you use the SerializerProperties.SERIALIZER_detectRecursions setting to help locate the loop.").initCause(e);
-		} finally {
-			ctx.close();
-		}
-	}
-
-	/**
-	 * Serializes a POJO to the specified output stream or writer.
-	 * <p>
-	 * Equivalent to calling <code>serializer.serialize(o, out, <jk>null</jk>);</code>
-	 *
-	 * @param o The object to serialize.
-	 * @param out The writer or output stream to write to.
-	 *
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public final void serialize(Object o, W out) throws IOException, SerializeException {
-		SerializerContext ctx = createContext();
-		serialize(o, out, ctx);
-	}
-
-	/**
-	 * Create the context object that will be passed in to the serialize method.
-	 * <p>
-	 * 	It's up to implementers to decide what the context object looks like, although typically
-	 * 	it's going to be a subclass of {@link SerializerContext}.
-	 *
-	 * @param properties Optional additional properties.
-	 * @param javaMethod Java method that invoked this serializer.
-	 * 	When using the REST API, this is the Java method invoked by the REST call.
-	 * 	Can be used to access annotations defined on the method or class.
-	 * @return The new context.
-	 */
-	public SerializerContext createContext(ObjectMap properties, Method javaMethod) {
-		return new SerializerContext(getBeanContext(), sp, properties, javaMethod);
-	}
-
-	/**
-	 * Create a basic context object without overriding properties or specifying <code>javaMethod</code>.
-	 * <p>
-	 * Equivalent to calling <code>createContext(<jk>null</jk>, <jk>null</jk>)</code>.
-	 *
-	 * @return The new context.
-	 */
-	protected SerializerContext createContext() {
-		return createContext(null, null);
-	}
-
-	/**
-	 * Converts the contents of the specified object array to a list.
-	 * <p>
-	 * 	Works on both object and primitive arrays.
-	 * <p>
-	 * 	In the case of multi-dimensional arrays, the outgoing list will
-	 * 	contain elements of type n-1 dimension.  i.e. if {@code type} is <code><jk>int</jk>[][]</code>
-	 * 	then {@code list} will have entries of type <code><jk>int</jk>[]</code>.
-	 *
-	 * @param type The type of array.
-	 * @param array The array being converted.
-	 * @return The array as a list.
-	 */
-	protected final List<Object> toList(Class<?> type, Object array) {
-		Class<?> componentType = type.getComponentType();
-		if (componentType.isPrimitive()) {
-			int l = Array.getLength(array);
-			List<Object> list = new ArrayList<Object>(l);
-			for (int i = 0; i < l; i++)
-				list.add(Array.get(array, i));
-			return list;
-		}
-		return Arrays.asList((Object[])array);
-	}
-
-	/**
-	 * Generalize the specified object if a filter is associated with it.
-	 *
-	 * @param ctx The context that exists for the duration of a single serialize.
-	 * @param o The object to generalize.
-	 * @param type The type of object.
-	 * @return The generalized object, or <jk>null</jk> if the object is <jk>null</jk>.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	protected final Object generalize(SerializerContext ctx, Object o, ClassMeta<?> type) throws SerializeException {
-		if (o == null)
-			return null;
-		PojoFilter f = (type == null || type.isObject() ? ctx.getBeanContext().getClassMeta(o.getClass()).getPojoFilter() : type.getPojoFilter());
-		if (f == null)
-			return o;
-		return f.filter(o);
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified value should not be serialized.
-	 *
-	 * @param ctx The context that exists for the duration of a single serialize.
-	 * @param cm The class type of the object being serialized.
-	 * @param attrName The bean attribute name, or <jk>null</jk> if this isn't a bean attribute.
-	 * @param value The object being serialized.
-	 * @return <jk>true</jk> if the specified value should not be serialized.
-	 * @throws SerializeException
-	 */
-	protected final boolean canIgnoreValue(SerializerContext ctx, ClassMeta<?> cm, String attrName, Object value) throws SerializeException {
-
-		if (ctx.isTrimNulls() && value == null)
-			return true;
-
-		if (value == null)
-			return false;
-
-		if (cm == null)
-			cm = object();
-
-		if (ctx.isTrimEmptyLists()) {
-			if (cm.isArray() || (cm.isObject() && value.getClass().isArray())) {
-				if (((Object[])value).length == 0)
-					return true;
-			}
-			if (cm.isCollection() || (cm.isObject() && isParentClass(Collection.class, value.getClass()))) {
-				if (((Collection<?>)value).isEmpty())
-					return true;
-			}
-		}
-
-		if (ctx.isTrimEmptyMaps()) {
-			if (cm.isMap() || (cm.isObject() && isParentClass(Map.class, value.getClass()))) {
-				if (((Map<?,?>)value).isEmpty())
-					return true;
-			}
-		}
-
-		if (ctx.isTrimNulls() && ctx.willRecurse(attrName, value, cm))
-			return true;
-
-		return false;
-	}
-
-	/**
-	 * Sorts the specified map if {@link SerializerContext#isSortMaps()} returns <jk>true</jk>.
-	 *
-	 * @param ctx The context that exists for the duration of a single serialize.
-	 * @param m The map being sorted.
-	 * @return A new sorted {@link TreeMap}.
-	 */
-	protected final <K,V> Map<K,V> sort(SerializerContext ctx, Map<K,V> m) {
-		if (ctx.isSortMaps() && m != null && (! m.isEmpty()) && m.keySet().iterator().next() instanceof Comparable<?>)
-			return new TreeMap<K,V>(m);
-		return m;
-	}
-
-	/**
-	 * Sorts the specified collection if {@link SerializerContext#isSortCollections()} returns <jk>true</jk>.
-	 *
-	 * @param ctx The context that exists for the duration of a single serialize.
-	 * @param c The collection being sorted.
-	 * @return A new sorted {@link TreeSet}.
-	 */
-	protected final <E> Collection<E> sort(SerializerContext ctx, Collection<E> c) {
-		if (ctx.isSortCollections() && c != null && (! c.isEmpty()) && c.iterator().next() instanceof Comparable<?>)
-			return new TreeSet<E>(c);
-		return c;
-	}
-
-	/**
-	 * Returns the media types handled based on the value of the {@link Produces} annotation on the serializer class.
-	 * <p>
-	 * This method can be overridden by subclasses to determine the media types programatically.
-	 *
-	 * @return The list of media types.  Never <jk>null</jk>.
-	 */
-	public String[] getMediaTypes() {
-		if (mediaTypes == null) {
-			Produces p = ReflectionUtils.getAnnotation(Produces.class, getClass());
-			if (p == null)
-				throw new RuntimeException(MessageFormat.format("Class ''{0}'' is missing the @Produces annotation", getClass().getName()));
-			mediaTypes = p.value();
-		}
-		return mediaTypes;
-	}
-
-	/**
-	 * Optional method that specifies HTTP request headers for this serializer.
-	 * <p>
-	 * 	For example, {@link SoapXmlSerializer} needs to set a <code>SOAPAction</code> header.
-	 * <p>
-	 * 	This method is typically meaningless if the serializer is being used standalone (i.e. outside of a REST server or client).
-	 *
-	 * @param properties Optional run-time properties (the same that are passed to {@link WriterSerializer#doSerialize(Object, Writer, SerializerContext)}.
-	 * 	Can be <jk>null</jk>.
-	 * @return The HTTP headers to set on HTTP requests.
-	 * 	Can be <jk>null</jk>.
-	 */
-	public ObjectMap getResponseHeaders(ObjectMap properties) {
-		return new ObjectMap(getBeanContext());
-	}
-
-	/**
-	 * Optional method that returns the response <code>Content-Type</code> for this serializer if it is different from the matched media type.
-	 * <p>
-	 * 	This method is specified to override the content type for this serializer.
-	 * 	For example, the {@link com.ibm.juno.core.json.JsonSerializer.Simple} class returns that it handles media type <js>"text/json+simple"</js>, but returns
-	 * 	<js>"text/json"</js> as the actual content type.
-	 * 	This allows clients to request specific 'flavors' of content using specialized <code>Accept</code> header values.
-	 * <p>
-	 * 	This method is typically meaningless if the serializer is being used standalone (i.e. outside of a REST server or client).
-	 *
-	 * @return The response content type.  If <jk>null</jk>, then the matched media type is used.
-	 */
-	public String getResponseContentType() {
-		if (contentType == null) {
-			Produces p = getClass().getAnnotation(Produces.class);
-			if (p == null)
-				contentType = "";
-			else {
-				contentType = p.contentType();
-				if (contentType.isEmpty())
-					contentType = p.value()[0];
-			}
-		}
-		return (contentType.isEmpty() ? null : contentType);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* CoreApi */
-	public Serializer<W> setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! sp.setProperty(property, value))
-			super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public Serializer<W> addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public Serializer<W> addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> Serializer<W> addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public Serializer<W> setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public Serializer<W> lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public Serializer<W> clone() throws CloneNotSupportedException {
-		@SuppressWarnings("unchecked")
-		Serializer<W> c = (Serializer<W>)super.clone();
-		c.sp = sp.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/SerializerContext$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext$1.class
deleted file mode 100755
index 81d75cb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext$1.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/SerializerContext$StackElement.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext$StackElement.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext$StackElement.class
deleted file mode 100755
index f298463..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext$StackElement.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/SerializerContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext.class
deleted file mode 100755
index 1d86e46..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext.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/SerializerContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext.java
deleted file mode 100755
index f646b0a..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerContext.java
+++ /dev/null
@@ -1,464 +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.serializer;
-
-import static com.ibm.juno.core.serializer.SerializerProperties.*;
-
-import java.lang.reflect.*;
-import java.text.*;
-import java.util.*;
-import java.util.logging.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Context object that lives for the duration of a single serialization of {@link Serializer} and its subclasses.
- * <p>
- *  	Used by serializers for the following purposes:
- * 	<ul>
- * 		<li>Keeping track of how deep it is in a model for indentation purposes.
- * 		<li>Ensuring infinite loops don't occur by setting a limit on how deep to traverse a model.
- * 		<li>Ensuring infinite loops don't occur from loops in the model (when detectRecursions is enabled.
- * 		<li>Allowing serializer properties to be overridden on method calls.
- * 	</ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SerializerContext {
-
-	private static Logger logger = Logger.getLogger(SerializerContext.class.getName());
-
-	private final int maxDepth, initialDepth;
-	private final boolean
-		debug,
-		detectRecursions,
-		ignoreRecursions,
-		useIndentation,
-		addClassAttrs,
-		trimNulls,
-		trimEmptyLists,
-		trimEmptyMaps,
-		sortCollections,
-		sortMaps;
-	private final char quoteChar;
-	private final String relativeUriBase, absolutePathUriBase;
-	private final ObjectMap overrideProperties;
-
-	/** The current indentation depth into the model. */
-	public int indent;
-
-	/** Contains the current objects in the current branch of the model. */
-	private Map<Object,Object> set;
-
-	/** Contains the current objects in the current branch of the model. */
-	private LinkedList<StackElement> stack;
-
-	/** If 'true', then we're at a leaf in the model (i.e. a String, Number, Boolean, or null). */
-	private boolean isBottom;
-
-	/** Any warnings encountered. */
-	private final List<String> warnings = new LinkedList<String>();
-
-	/** The bean context being used in this context. */
-	private final BeanContext beanContext;
-
-	/** Java method that invoked this serializer. */
-	private final Method javaMethod;
-
-	/**
-	 * Create a new HashStack with the specified options.
-	 *
-	 * @param beanContext The bean context being used by the serializer.
-	 * @param sp The default serializer properties.
-	 * @param op The override properties.
-	 * @param javaMethod Java method that invoked this serializer.
-	 * 	When using the REST API, this is the Java method invoked by the REST call.
-	 * 	Can be used to access annotations defined on the method or class.
-	 */
-	public SerializerContext(BeanContext beanContext, SerializerProperties sp, ObjectMap op, Method javaMethod) {
-		this.beanContext = beanContext;
-		this.javaMethod = javaMethod;
-		if (op == null || op.isEmpty()) {
-			overrideProperties = new ObjectMap();
-			maxDepth = sp.maxDepth;
-			initialDepth = sp.initialDepth;
-			debug = sp.debug;
-			detectRecursions = sp.detectRecursions;
-			ignoreRecursions = sp.ignoreRecursions;
-			useIndentation = sp.useIndentation;
-			addClassAttrs = sp.addClassAttrs;
-			trimNulls = sp.trimNulls;
-			trimEmptyLists = sp.trimEmptyLists;
-			trimEmptyMaps = sp.trimEmptyMaps;
-			quoteChar = sp.quoteChar;
-			relativeUriBase = resolveRelativeUriBase(sp.relativeUriBase);
-			absolutePathUriBase = resolveAbsolutePathUriBase(sp.absolutePathUriBase);
-			sortCollections = sp.sortCollections;
-			sortMaps = sp.sortMaps;
-		} else {
-			overrideProperties = op;
-			maxDepth = op.getInt(SERIALIZER_maxDepth, sp.maxDepth);
-			initialDepth = op.getInt(SERIALIZER_initialDepth, sp.initialDepth);
-			debug = op.getBoolean(SERIALIZER_debug, sp.debug);
-			detectRecursions = op.getBoolean(SERIALIZER_detectRecursions, sp.detectRecursions);
-			ignoreRecursions = op.getBoolean(SERIALIZER_ignoreRecursions, sp.ignoreRecursions);
-			useIndentation = op.getBoolean(SERIALIZER_useIndentation, sp.useIndentation);
-			addClassAttrs = op.getBoolean(SERIALIZER_addClassAttrs, sp.addClassAttrs);
-			trimNulls = op.getBoolean(SERIALIZER_trimNullProperties, sp.trimNulls);
-			trimEmptyLists = op.getBoolean(SERIALIZER_trimEmptyLists, sp.trimEmptyLists);
-			trimEmptyMaps = op.getBoolean(SERIALIZER_trimEmptyMaps, sp.trimEmptyMaps);
-			quoteChar = op.getString(SERIALIZER_quoteChar, ""+sp.quoteChar).charAt(0);
-			relativeUriBase = resolveRelativeUriBase(op.getString(SERIALIZER_relativeUriBase, sp.relativeUriBase));
-			absolutePathUriBase = resolveAbsolutePathUriBase(op.getString(SERIALIZER_absolutePathUriBase, sp.absolutePathUriBase));
-			sortCollections = op.getBoolean(SERIALIZER_sortCollections, sp.sortMaps);
-			sortMaps = op.getBoolean(SERIALIZER_sortMaps, sp.sortMaps);
-		}
-
-		this.indent = initialDepth;
-		if (detectRecursions || debug) {
-			set = new IdentityHashMap<Object,Object>();
-			stack = new LinkedList<StackElement>();
-		}
-	}
-
-	private String resolveRelativeUriBase(String s) {
-		if (StringUtils.isEmpty(s))
-			return null;
-		if (s.equals("/"))
-			return s;
-		else if (StringUtils.endsWith(s, '/'))
-			s = s.substring(0, s.length()-1);
-		return s;
-	}
-
-	private String resolveAbsolutePathUriBase(String s) {
-		if (StringUtils.isEmpty(s))
-			return null;
-		if (StringUtils.endsWith(s, '/'))
-			s = s.substring(0, s.length()-1);
-		return s;
-	}
-
-	/**
-	 * Returns the bean context associated with this context.
-	 *
-	 * @return The bean context associated with this context.
-	 */
-	public final BeanContext getBeanContext() {
-		return beanContext;
-	}
-
-	/**
-	 * Returns the Java method that invoked this serializer.
-	 * <p>
-	 * When using the REST API, this is the Java method invoked by the REST call.
-	 * Can be used to access annotations defined on the method or class.
-	 *
-	 * @return The Java method that invoked this serializer.
-	*/
-	public final Method getJavaMethod() {
-		return javaMethod;
-	}
-
-	/**
-	 * Returns the runtime properties associated with this context.
-	 *
-	 * @return The runtime properties associated with this context.
-	 */
-	public final ObjectMap getProperties() {
-		return overrideProperties;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_maxDepth} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_maxDepth} setting value in this context.
-	 */
-	public final int getMaxDepth() {
-		return maxDepth;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_initialDepth} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_initialDepth} setting value in this context.
-	 */
-	public final int getInitialDepth() {
-		return initialDepth;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_debug} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_debug} setting value in this context.
-	 */
-	public final boolean isDebug() {
-		return debug;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_detectRecursions} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_detectRecursions} setting value in this context.
-	 */
-	public final boolean isDetectRecursions() {
-		return detectRecursions;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_ignoreRecursions} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_ignoreRecursions} setting value in this context.
-	 */
-	public final boolean isIgnoreRecursions() {
-		return ignoreRecursions;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_useIndentation} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_useIndentation} setting value in this context.
-	 */
-	public final boolean isUseIndentation() {
-		return useIndentation;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_addClassAttrs} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_addClassAttrs} setting value in this context.
-	 */
-	public final boolean isAddClassAttrs() {
-		return addClassAttrs;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_quoteChar} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_quoteChar} setting value in this context.
-	 */
-	public final char getQuoteChar() {
-		return quoteChar;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_trimNullProperties} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_trimNullProperties} setting value in this context.
-	 */
-	public final boolean isTrimNulls() {
-		return trimNulls;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_trimEmptyLists} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_trimEmptyLists} setting value in this context.
-	 */
-	public final boolean isTrimEmptyLists() {
-		return trimEmptyLists;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_trimEmptyMaps} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_trimEmptyMaps} setting value in this context.
-	 */
-	public final boolean isTrimEmptyMaps() {
-		return trimEmptyMaps;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_sortCollections} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_sortCollections} setting value in this context.
-	 */
-	public final boolean isSortCollections() {
-		return sortCollections;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_sortMaps} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_sortMaps} setting value in this context.
-	 */
-	public final boolean isSortMaps() {
-		return sortMaps;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_relativeUriBase} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_relativeUriBase} setting value in this context.
-	 */
-	public final String getRelativeUriBase() {
-		return relativeUriBase;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_absolutePathUriBase} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_absolutePathUriBase} setting value in this context.
-	 */
-	public final String getAbsolutePathUriBase() {
-		return absolutePathUriBase;
-	}
-
-	/**
-	 * Push the specified object onto the stack.
-	 *
-	 * @param attrName The attribute name.
-	 * @param o The current object being serialized.
-	 * @param eType The expected class type.
-	 * @return The {@link ClassMeta} of the object so that <code>instanceof</code> operations
-	 * 	only need to be performed once (since they can be expensive).<br>
-	 * @throws SerializeException
-	 */
-	public ClassMeta<?> push(String attrName, Object o, ClassMeta<?> eType) throws SerializeException {
-		indent++;
-		isBottom = true;
-		if (o == null)
-			return null;
-		Class<?> c = o.getClass();
-		ClassMeta<?> cm = (eType != null && c == eType.getInnerClass()) ? eType : beanContext.getClassMeta(c);
-		if (cm.isCharSequence() || cm.isNumber() || cm.isBoolean())
-			return cm;
-		if (detectRecursions || debug) {
-			if (stack.size() > maxDepth)
-				return null;
-			if (willRecurse(attrName, o, cm))
-				return null;
-			isBottom = false;
-			stack.add(new StackElement(stack.size(), attrName, o, cm));
-			if (debug)
-				logger.info(getStack(false));
-			set.put(o, o);
-		}
-		return cm;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if {@link SerializerProperties#SERIALIZER_detectRecursions} is enabled, and the specified
-	 * 	object is already higher up in the serialization chain.
-	 *
-	 * @param attrName The bean property attribute name, or some other identifier.
-	 * @param o The object to check for recursion.
-	 * @param cm The metadata on the object class.
-	 * @return <jk>true</jk> if recursion detected.
-	 * @throws SerializeException
-	 */
-	public boolean willRecurse(String attrName, Object o, ClassMeta<?> cm) throws SerializeException {
-		if (! (detectRecursions || debug))
-			return false;
-		if (! set.containsKey(o))
-			return false;
-		if (ignoreRecursions && ! debug)
-			return true;
-
-		stack.add(new StackElement(stack.size(), attrName, o, cm));
-		throw new SerializeException("Recursion occurred, stack={0}", getStack(true));
-	}
-
-	/**
-	 * Pop an object off the stack.
-	 */
-	public void pop() {
-		indent--;
-		if ((detectRecursions || debug) && ! isBottom)  {
-			Object o = stack.removeLast().o;
-			Object o2 = set.remove(o);
-			if (o2 == null)
-				addWarning("Couldn't remove object of type ''{0}'' on attribute ''{1}'' from object stack.", o.getClass().getName(), stack);
-		}
-		isBottom = false;
-	}
-
-	/**
-	 * The current indentation depth.
-	 *
-	 * @return The current indentation depth.
-	 */
-	public int getIndent() {
-		return indent;
-	}
-
-	/**
-	 * Logs a warning message.
-	 *
-	 * @param msg The warning message.
-	 * @param args Optional printf arguments to replace in the error message.
-	 */
-	public void addWarning(String msg, Object... args) {
-		msg = args.length == 0 ? msg : MessageFormat.format(msg, args);
-		logger.warning(msg);
-		warnings.add(warnings.size() + 1 + ": " + msg);
-	}
-
-	/**
-	 * Specialized warning when an exception is thrown while executing a bean getter.
-	 *
-	 * @param p The bean map entry representing the bean property.
-	 * @param t The throwable that the bean getter threw.
-	 */
-	public void addBeanGetterWarning(BeanPropertyMeta<?> p, Throwable t) {
-		String prefix = (debug ? getStack(false) + ": " : "");
-		addWarning("{0}Could not call getValue() on property ''{1}'' of class ''{2}'', exception = {3}", prefix, p.getName(), p.getBeanMeta().getClassMeta(), t.getLocalizedMessage());
-	}
-
-	/**
-	 * Perform cleanup on this context object if necessary.
-	 *
-	 * @throws SerializeException
-	 */
-	public void close() throws SerializeException {
-		if (debug && warnings.size() > 0)
-			throw new SerializeException("Warnings occurred during serialization: \n" + StringUtils.join(warnings, "\n"));
-	}
-
-	private static class StackElement {
-		private int depth;
-		private String name;
-		private Object o;
-		private ClassMeta<?> aType;
-
-		private StackElement(int depth, String name, Object o, ClassMeta<?> aType) {
-			this.depth = depth;
-			this.name = name;
-			this.o = o;
-			this.aType = aType;
-		}
-
-		private String toString(boolean simple) {
-			StringBuilder sb = new StringBuilder().append('[').append(depth).append(']');
-			sb.append(StringUtils.isEmpty(name) ? "<noname>" : name).append(":");
-			sb.append(aType.toString(simple));
-			if (aType != aType.getFilteredClassMeta())
-				sb.append("/").append(aType.getFilteredClassMeta().toString(simple));
-			return sb.toString();
-		}
-	}
-
-	private String getStack(boolean full) {
-		StringBuilder sb = new StringBuilder();
-		for (StackElement e : stack) {
-			if (full) {
-				sb.append("\n\t");
-				for (int i = 1; i < e.depth; i++)
-					sb.append("  ");
-				if (e.depth > 0)
-					sb.append("->");
-				sb.append(e.toString(false));
-			} else {
-				sb.append(" > ").append(e.toString(true));
-			}
-		}
-		return sb.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup$SerializerEntry.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup$SerializerEntry.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup$SerializerEntry.class
deleted file mode 100755
index ad993fd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup$SerializerEntry.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/SerializerGroup.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup.class
deleted file mode 100755
index b2c10d7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup.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/SerializerGroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup.java
deleted file mode 100755
index 509ed58..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerGroup.java
+++ /dev/null
@@ -1,345 +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.serializer;
-
-import static com.ibm.juno.core.utils.ArrayUtils.*;
-
-import java.io.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Represents a group of {@link Serializer Serializers} that can be looked up by media type.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	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>
- *
- *
- * <h6 class='topic'>Match ordering</h6>
- * <p>
- * 	Serializers are matched against <code>Accept</code> strings in the order they exist in this group.
- * <p>
- * 	Adding new entries will cause the entries to be prepended to the group.
- *  	This allows for previous serializers to be overridden through subsequent calls.
- * <p>
- * 	For example, calling <code>g.append(S1.<jk>class</jk>,S2.<jk>class</jk>).append(S3.<jk>class</jk>,S4.<jk>class</jk>)</code>
- * 	will result in the order <code>S3, S4, S1, S2</code>.
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Construct a new serializer group</jc>
- * 	SerializerGroup g = <jk>new</jk> SerializerGroup();
- *
- * 	<jc>// Add some serializers to it</jc>
- * 	g.append(JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>);
- *
- * 	<jc>// Change settings for all serializers in the group and lock it.</jc>
- * 	g.setProperty(SerializerProperties.<jsf>SERIALIZER_useIndentation</jsf>, <jk>true</jk>)
- * 		.addFilters(CalendarFilter.ISO8601DT.<jk>class</jk>)
- * 		.lock();
- *
- * 	<jc>// Find the appropriate serializer by Accept type</jc>
- * 	String mediaTypeMatch = g.findMatch(<js>"text/foo, text/json;q=0.8, text/*;q:0.6, *\/*;q=0.0"</js>);
- * 	WriterSerializer s = (WriterSerializer)g.getSerializer(mediaTypeMatch);
- *
- * 	<jc>// Serialize a bean to JSON text </jc>
- * 	AddressBook addressBook = <jk>new</jk> AddressBook();  <jc>// Bean to serialize.</jc>
- * 	String json = s.serialize(addressBook);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class SerializerGroup extends Lockable {
-
-	// Maps media-types to serializers.
-	private transient Map<String,SerializerEntry> entryMap = new HashMap<String,SerializerEntry>();
-	private transient LinkedList<SerializerEntry> tempEntries = new LinkedList<SerializerEntry>();
-	private transient SerializerEntry[] entries;
-
-
-	/**
-	 * Registers the specified REST serializers with this serializer group.
-	 *
-	 * @param s The serializers to append to this group.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerGroup append(Serializer<?>...s) {
-		checkLock();
-		entries = null;
-		for (Serializer<?> ss : reverse(s))  {
-			SerializerEntry e = new SerializerEntry(ss);
-			tempEntries.addFirst(e);
-			for (String mediaType : e.mediaTypes)
-				entryMap.put(mediaType, e);
-		}
-		return this;
-	}
-
-	/**
-	 * Same as {@link #append(Serializer[])}, except specify classes instead of class instances
-	 * 	 of {@link Serializer}.
-	 * <p>
-	 * Note that this can only be used on {@link Serializer Serializers} with public no-arg constructors.
-	 *
-	 * @param s The serializers to append to this group.
-	 * @return This object (for method chaining).
-	 * @throws Exception Thrown if {@link Serializer} could not be constructed.
-	 */
-	public SerializerGroup append(Class<? extends Serializer<?>>...s) throws Exception {
-		checkLock();
-		for (Class<? extends Serializer<?>> ss : reverse(s))
-			try {
-			append(ss.newInstance());
-			} catch (NoClassDefFoundError e) {
-				// Ignore if dependent library not found (e.g. Jena).
-				System.err.println(e);
-			}
-		return this;
-	}
-
-	/**
-	 * Same as {@link #append(Class[])}, except specify a single class to avoid unchecked compile warnings.
-	 *
-	 * @param c The serializer to append to this group.
-	 * @return This object (for method chaining).
-	 * @throws Exception Thrown if {@link Serializer} could not be constructed.
-	 */
-	public SerializerGroup append(Class<? extends Serializer<?>> c) throws Exception {
-		checkLock();
-		try {
-		append(c.newInstance());
-		} catch (NoClassDefFoundError e) {
-			// Ignore if dependent library not found (e.g. Jena).
-			System.err.println(e);
-		}
-		return this;
-	}
-
-	/**
-	 * Returns the serializer registered to handle the specified media type.
-	 * <p>
-	 * The media-type string must not contain any parameters or q-values.
-	 *
-	 * @param mediaType The media-type string (e.g. <js>"text/json"</js>
-	 * @return The serializer that handles the specified accept content type, or <jk>null</jk> if
-	 * 		no serializer is registered to handle it.
-	 */
-	public Serializer<?> getSerializer(String mediaType) {
-		SerializerEntry e = entryMap.get(mediaType);
-		return (e == null ? null : e.serializer);
-	}
-
-	/**
-	 * Searches the group for a serializer that can handle the specified <code>Accept</code> value.
-	 * <p>
-	 * 	The <code>accept</code> value complies with the syntax described in RFC2616, Section 14.1, as described below:
-	 * <p class='bcode'>
-	 * 	Accept         = "Accept" ":"
-	 * 	                  #( media-range [ accept-params ] )
-	 *
-	 * 	media-range    = ( "*\/*"
-	 * 	                  | ( type "/" "*" )
-	 * 	                  | ( type "/" subtype )
-	 * 	                  ) *( ";" parameter )
-	 * 	accept-params  = ";" "q" "=" qvalue *( accept-extension )
-	 * 	accept-extension = ";" token [ "=" ( token | quoted-string ) ]
-	 * </p>
-	 * <p>
-	 * 	The general idea behind having the serializer resolution be a two-step process is so that
-	 * 	the matched media type can be passed in to the {@link WriterSerializer#doSerialize(Object, Writer, SerializerContext)} method.
-	 * 	For example...
-	 * <p class='bcode'>
-	 * 	String acceptHeaderValue = request.getHeader(<js>"Accept"</js>);
-	 * 	String matchingMediaType = group.findMatch(acceptHeaderValue);
-	 * 	if (matchingMediaType == <jk>null</jk>)
-	 * 		<jk>throw new</jk> RestException(<jsf>SC_NOT_ACCEPTABLE</jsf>);
-	 * 	WriterSerializer s = (WriterSerializer)group.getSerializer(matchingMediaType);
-	 *  s.serialize(getPojo(), response.getWriter(), response.getProperties(), matchingMediaType);
-	 * </p>
-	 *
-	 * @param accept The accept string.
-	 * @return The media type registered by one of the parsers that matches the <code>accept</code> string,
-	 * 	or <jk>null</jk> if no media types matched.
-	 */
-	public String findMatch(String accept) {
-		MediaRange[] mr = MediaRange.parse(accept);
-		if (mr.length == 0)
-			mr = MediaRange.parse("*/*");
-
-		for (MediaRange a : mr)
-			for (SerializerEntry e : getEntries())
-				for (MediaRange a2 : e.mediaRanges)
-					if (a.matches(a2))
-						return a2.getMediaType();
-
-		return null;
-	}
-
-	/**
-	 * Returns the media types that all serializers in this group can handle
-	 * <p>
-	 * Entries are ordered in the same order as the serializers in the group.
-	 *
-	 * @return The list of media types.
-	 */
-	public List<String> getSupportedMediaTypes() {
-		List<String> l = new ArrayList<String>();
-		for (SerializerEntry e : getEntries())
-			for (String mt : e.mediaTypes)
-				if (! l.contains(mt))
-					l.add(mt);
-		return l;
-	}
-
-	private SerializerEntry[] getEntries() {
-		if (entries == null)
-			entries = tempEntries.toArray(new SerializerEntry[tempEntries.size()]);
-		return entries;
-	}
-
-	static class SerializerEntry {
-		Serializer<?> serializer;
-		MediaRange[] mediaRanges;
-		String[] mediaTypes;
-
-		SerializerEntry(Serializer<?> s) {
-			serializer = s;
-
-			mediaTypes = new String[s.getMediaTypes().length];
-			int i = 0;
-			for (String mt : s.getMediaTypes())
-				mediaTypes[i++] = mt.toLowerCase(Locale.ENGLISH);
-
-			List<MediaRange> l = new LinkedList<MediaRange>();
-			for (i = 0; i < mediaTypes.length; i++)
-				l.addAll(Arrays.asList(MediaRange.parse(mediaTypes[i])));
-			mediaRanges = l.toArray(new MediaRange[l.size()]);
-		}
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Convenience methods for setting properties on all serializers.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Shortcut for calling {@link Serializer#setProperty(String, Object)} on all serializers in this group.
-	 *
-	 * @param property The property name.
-	 * @param value The property value.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerGroup setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		for (SerializerEntry e : getEntries())
-			e.serializer.setProperty(property, value);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link Serializer#setProperties(ObjectMap)} on all serializers in this group.
-	 *
-	 * @param properties The properties to set.  Ignored if <jk>null</jk>.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerGroup setProperties(ObjectMap properties) {
-		checkLock();
-		if (properties != null)
-			for (Map.Entry<String,Object> e : properties.entrySet())
-				setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link Serializer#addNotBeanClasses(Class[])} on all serializers in this group.
-	 *
-	 * @param classes The classes to specify as not-beans to the underlying bean context of all serializers in this group.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerGroup addNotBeanClasses(Class<?>...classes) throws LockedException {
-		checkLock();
-		for (SerializerEntry e : getEntries())
-			e.serializer.addNotBeanClasses(classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link Serializer#addFilters(Class[])} on all serializers in this group.
-	 *
-	 * @param classes The classes to add bean filters for to the underlying bean context of all serializers in this group.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerGroup addFilters(Class<?>...classes) throws LockedException {
-		checkLock();
-		for (SerializerEntry e : getEntries())
-			e.serializer.addFilters(classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link Serializer#addImplClass(Class, Class)} on all serializers in this group.
-	 *
-	 * @param <T> The interface or abstract class type.
-	 * @param interfaceClass The interface or abstract class.
-	 * @param implClass The implementation class.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public <T> SerializerGroup addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		checkLock();
-		for (SerializerEntry e : getEntries())
-			e.serializer.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Locks this group and all serializers in this group.
-	 */
-	@Override /* Lockable */
-	public SerializerGroup lock() {
-		super.lock();
-		for (SerializerEntry e : getEntries())
-			e.serializer.lock();
-		return this;
-	}
-
-	/**
-	 * Clones this group and all serializers in this group.
-	 */
-	@Override /* Lockable */
-	public SerializerGroup clone() throws CloneNotSupportedException {
-		SerializerGroup c = (SerializerGroup)super.clone();
-		c.entryMap = new HashMap<String,SerializerEntry>();
-		c.tempEntries = new LinkedList<SerializerEntry>();
-		c.entries = null;
-		SerializerEntry[] e = getEntries();
-		for (int i = e.length-1; i >= 0; i--)
-			c.append(e[i].serializer.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/SerializerProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerProperties.class
deleted file mode 100755
index ace6ce9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerProperties.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCall.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCall.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCall.java
new file mode 100755
index 0000000..8b79d13
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCall.java
@@ -0,0 +1,947 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.logging.*;
+import java.util.regex.*;
+
+import org.apache.http.*;
+import org.apache.http.client.*;
+import org.apache.http.client.config.*;
+import org.apache.http.client.methods.*;
+import org.apache.http.impl.client.*;
+import org.apache.http.util.*;
+import org.apache.juneau.*;
+import org.apache.juneau.encoders.*;
+import org.apache.juneau.internal.*;
+import org.apache.juneau.parser.*;
+import org.apache.juneau.parser.ParseException;
+import org.apache.juneau.serializer.*;
+import org.apache.juneau.utils.*;
+
+/**
+ * Represents a connection to a remote REST resource.
+ * <p>
+ * 	Instances of this class are created by the various {@code doX()} methods on the {@link RestClient} class.
+ * <p>
+ * 	This class uses only Java standard APIs.  Requests can be built up using a fluent interface with method chaining, like so...
+ *
+ * <p class='bcode'>
+ * 	RestClient client = <jk>new</jk> RestClient();
+ * 	RestCall c = client.doPost(<jsf>URL</jsf>).setInput(o).setHeader(x,y);
+ * 	MyBean b = c.getResponse(MyBean.<jk>class</jk>);
+ * </p>
+ * <p>
+ * 	The actual connection and request/response transaction occurs when calling one of the <code>getResponseXXX()</code> methods.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul>
+ * 	<li><a class='doclink' href='package-summary.html#RestClient'>org.apache.juneau.client &gt; REST client API</a> for more information and code examples.
+ * </ul>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public final class RestCall {
+
+	private final RestClient client;                       // The client that created this call.
+	private final HttpRequestBase request;                 // The request.
+	private HttpResponse response;                         // The response.
+	private List<RestCallInterceptor> interceptors = new ArrayList<RestCallInterceptor>();               // Used for intercepting and altering requests.
+
+	private boolean isConnected = false;                   // connect() has been called.
+	private boolean allowRedirectsOnPosts;
+	private int retries = 1;
+	private int redirectOnPostsTries = 5;
+	private long retryInterval = -1;
+	private RetryOn retryOn = RetryOn.DEFAULT;
+	private boolean ignoreErrors;
+	private boolean byLines = false;
+	private TeeWriter writers = new TeeWriter();
+	private StringWriter capturedResponseWriter;
+	private String capturedResponse;
+	private TeeOutputStream outputStreams = new TeeOutputStream();
+	private boolean isClosed = false;
+	private boolean isFailed = false;
+
+	/**
+	 * Constructs a REST call with the specified method name.
+	 *
+	 * @param client The client that created this request.
+	 * @param request The wrapped Apache HTTP client request object.
+	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
+	 */
+	protected RestCall(RestClient client, HttpRequestBase request) throws RestCallException {
+		this.client = client;
+		this.request = request;
+		for (RestCallInterceptor i : this.client.interceptors)
+			addInterceptor(i);
+	}
+
+	/**
+	 * Sets the input for this REST call.
+	 *
+	 * @param input The input to be sent to the REST resource (only valid for PUT and POST) requests. <br>
+	 * 	Can be of the following types:
+	 * 	<ul class='spaced-list'>
+	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
+	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
+	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
+	 * 		<li>{@link HttpEntity} - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
+	 * 	</ul>
+	 * @return This object (for method chaining).
+	 * @throws RestCallException If a retry was attempted, but the entity was not repeatable.
+	 */
+	public RestCall setInput(final Object input) throws RestCallException {
+		if (! (request instanceof HttpEntityEnclosingRequestBase))
+			throw new RestCallException(0, "Method does not support content entity.", request.getMethod(), request.getURI(), null);
+		HttpEntity entity = (input instanceof HttpEntity ? (HttpEntity)input : new RestRequestEntity(input, client.serializer));
+		((HttpEntityEnclosingRequestBase)request).setEntity(entity);
+		if (retries > 1 && ! entity.isRepeatable())
+			throw new RestCallException("Rest call set to retryable, but entity is not repeatable.");
+		return this;
+	}
+
+	/**
+	 * Convenience method for setting a header value on the request.
+	 * <p>
+	 * Equivalent to calling <code>restCall.getRequest().setHeader(name, value.toString())</code>.
+	 *
+	 * @param name The header name.
+	 * @param value The header value.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall setHeader(String name, Object value) {
+		request.setHeader(name, value.toString());
+		return this;
+	}
+
+	/**
+	 * Make this call retryable if an error response (>=400) is received.
+	 *
+	 * @param retries The number of retries to attempt.
+	 * @param interval The time in milliseconds between attempts.
+	 * @param retryOn Optional object used for determining whether a retry should be attempted.
+	 * 	If <jk>null</jk>, uses {@link RetryOn#DEFAULT}.
+	 * @return This object (for method chaining).
+	 * @throws RestCallException If current entity is not repeatable.
+	 */
+	public RestCall setRetryable(int retries, long interval, RetryOn retryOn) throws RestCallException {
+		if (request instanceof HttpEntityEnclosingRequestBase) {
+		HttpEntity e = ((HttpEntityEnclosingRequestBase)request).getEntity();
+		if (e != null && ! e.isRepeatable())
+			throw new RestCallException("Attempt to make call retryable, but entity is not repeatable.");
+		}
+		this.retries = retries;
+		this.retryInterval = interval;
+		this.retryOn = (retryOn == null ? RetryOn.DEFAULT : retryOn);
+		return this;
+
+	}
+
+	/**
+	 * For this call, allow automatic redirects when a 302 or 307 occurs when
+	 * 	performing a POST.
+	 * <p>
+	 * Note that this can be inefficient since the POST body needs to be serialized
+	 * 	twice.
+	 * The preferred approach if possible is to use the {@link LaxRedirectStrategy} strategy
+	 * 	on the underlying HTTP client.  However, this method is provided if you don't
+	 * 	have access to the underlying client.
+	 *
+	 * @param b Redirect flag.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall allowRedirectsOnPosts(boolean b) {
+		this.allowRedirectsOnPosts = b;
+		return this;
+	}
+
+	/**
+	 * Specify the number of redirects to follow before throwing an exception.
+	 *
+	 * @param maxAttempts Allow a redirect to occur this number of times.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall setRedirectMaxAttempts(int maxAttempts) {
+		this.redirectOnPostsTries = maxAttempts;
+		return this;
+	}
+
+	/**
+	 * Add an interceptor for this call only.
+	 *
+	 * @param interceptor The interceptor to add to this call.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall addInterceptor(RestCallInterceptor interceptor) {
+		interceptors.add(interceptor);
+		interceptor.onInit(this);
+		return this;
+	}
+
+	/**
+	 * Pipes the request output to the specified writer when {@link #run()} is called.
+	 * <p>
+	 * The writer is not closed.
+	 * <p>
+	 * This method can be called multiple times to pipe to multiple writers.
+	 *
+	 * @param w The writer to pipe the output to.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall pipeTo(Writer w) {
+		return pipeTo(w, false);
+	}
+
+	/**
+	 * Pipe output from response to the specified writer when {@link #run()} is called.
+	 * <p>
+	 * This method can be called multiple times to pipe to multiple writers.
+	 *
+	 * @param w The writer to write the output to.
+	 * @param close Close the writer when {@link #close()} is called.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall pipeTo(Writer w, boolean close) {
+		return pipeTo(null, w, close);
+	}
+
+	/**
+	 * Pipe output from response to the specified writer when {@link #run()} is called and associate
+	 * that writer with an ID so it can be retrieved through {@link #getWriter(String)}.
+	 * <p>
+	 * This method can be called multiple times to pipe to multiple writers.
+	 *
+	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
+	 * @param w The writer to write the output to.
+	 * @param close Close the writer when {@link #close()} is called.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall pipeTo(String id, Writer w, boolean close) {
+		writers.add(id, w, close);
+		return this;
+	}
+
+	/**
+	 * Retrieves a writer associated with an ID via {@link #pipeTo(String, Writer, boolean)}
+	 *
+	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
+	 * @return The writer, or <jk>null</jk> if no writer is associated with that ID.
+	 */
+	public Writer getWriter(String id) {
+		return writers.getWriter(id);
+	}
+
+	/**
+	 * When output is piped to writers, flush the writers after every line of output.
+	 *
+	 * @return This object (for method chaining).
+	 */
+	public RestCall byLines() {
+		this.byLines = true;
+		return this;
+	}
+
+	/**
+	 * Pipes the request output to the specified output stream when {@link #run()} is called.
+	 * <p>
+	 * The output stream is not closed.
+	 * <p>
+	 * This method can be called multiple times to pipe to multiple output streams.
+	 *
+	 * @param os The output stream to pipe the output to.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall pipeTo(OutputStream os) {
+		return pipeTo(os, false);
+	}
+
+	/**
+	 * Pipe output from response to the specified output stream when {@link #run()} is called.
+	 * <p>
+	 * This method can be called multiple times to pipe to multiple output stream.
+	 *
+	 * @param os The output stream to write the output to.
+	 * @param close Close the output stream when {@link #close()} is called.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall pipeTo(OutputStream os, boolean close) {
+		return pipeTo(null, os, close);
+	}
+
+	/**
+	 * Pipe output from response to the specified output stream when {@link #run()} is called and associate
+	 * that output stream with an ID so it can be retrieved through {@link #getOutputStream(String)}.
+	 * <p>
+	 * This method can be called multiple times to pipe to multiple output stream.
+	 *
+	 * @param id A string identifier that can be used to retrieve the output stream using {@link #getOutputStream(String)}
+	 * @param os The output stream to write the output to.
+	 * @param close Close the output stream when {@link #close()} is called.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall pipeTo(String id, OutputStream os, boolean close) {
+		outputStreams.add(id, os, close);
+		return this;
+	}
+
+	/**
+	 * Retrieves an output stream associated with an ID via {@link #pipeTo(String, OutputStream, boolean)}
+	 *
+	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
+	 * @return The writer, or <jk>null</jk> if no writer is associated with that ID.
+	 */
+	public OutputStream getOutputStream(String id) {
+		return outputStreams.getOutputStream(id);
+	}
+
+	/**
+	 * Prevent {@link RestCallException RestCallExceptions} from being thrown when HTTP status 400+ is encountered.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall ignoreErrors() {
+		this.ignoreErrors = true;
+		return this;
+	}
+
+	/**
+	 * Stores the response text so that it can later be captured using {@link #getCapturedResponse()}.
+	 * <p>
+	 * This method should only be called once.  Multiple calls to this method are ignored.
+	 *
+	 * @return This object (for method chaining).
+	 */
+	public RestCall captureResponse() {
+		if (capturedResponseWriter == null) {
+			capturedResponseWriter = new StringWriter();
+			writers.add(capturedResponseWriter, false);
+		}
+		return this;
+	}
+
+
+	/**
+	 * Look for the specified regular expression pattern in the response output.
+	 * <p>
+	 * Causes a {@link RestCallException} to be thrown if the specified pattern is found in the output.
+	 * <p>
+	 * This method uses {@link #getCapturedResponse()} to read the response text and so does not affect the other output
+	 * 	methods such as {@link #getResponseAsString()}.
+	 *
+	 * <dl>
+	 * 	<dt>Example:</dt>
+	 * 	<dd>
+	 * <p class='bcode'>
+	 * 	<jc>// Throw a RestCallException if FAILURE or ERROR is found in the output.</jc>
+	 * 	restClient.doGet(<jsf>URL</jsf>)
+	 * 		.failurePattern(<js>"FAILURE|ERROR"</js>)
+	 * 		.run();
+	 * </p>
+	 * 	</dd>
+	 * </dl>
+	 *
+	 * @param errorPattern A regular expression to look for in the response output.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall failurePattern(final String errorPattern) {
+		addResponsePattern(
+			new ResponsePattern(errorPattern) {
+				@Override
+				public void onMatch(RestCall rc, Matcher m) throws RestCallException {
+					throw new RestCallException("Failure pattern detected.");
+				}
+			}
+		);
+		return this;
+	}
+
+	/**
+	 * Look for the specified regular expression pattern in the response output.
+	 * <p>
+	 * Causes a {@link RestCallException} to be thrown if the specified pattern is not found in the output.
+	 * <p>
+	 * This method uses {@link #getCapturedResponse()} to read the response text and so does not affect the other output
+	 * 	methods such as {@link #getResponseAsString()}.
+	 *
+	 * <dl>
+	 * 	<dt>Example:</dt>
+	 * 	<dd>
+	 * <p class='bcode'>
+	 * 	<jc>// Throw a RestCallException if SUCCESS is not found in the output.</jc>
+	 * 	restClient.doGet(<jsf>URL</jsf>)
+	 * 		.successPattern(<js>"SUCCESS"</js>)
+	 * 		.run();
+	 * </p>
+	 * 	</dd>
+	 * </dl>
+	 *
+	 * @param successPattern A regular expression to look for in the response output.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall successPattern(String successPattern) {
+		addResponsePattern(
+			new ResponsePattern(successPattern) {
+				@Override
+				public void onNoMatch(RestCall rc) throws RestCallException {
+					throw new RestCallException("Success pattern not detected.");
+				}
+			}
+		);
+		return this;
+	}
+
+	/**
+	 * Adds a response pattern finder to look for regular expression matches in the response output.
+	 * <p>
+	 * This method can be called multiple times to add multiple response pattern finders.
+	 * <p>
+	 * {@link ResponsePattern ResponsePatterns} use the {@link #getCapturedResponse()} to read the response text and so does not affect the other output
+	 * 	methods such as {@link #getResponseAsString()}.
+	 *
+	 * @param responsePattern The response pattern finder.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall addResponsePattern(final ResponsePattern responsePattern) {
+		captureResponse();
+		addInterceptor(
+			new RestCallInterceptor() {
+				@Override
+				public void onClose(RestCall restCall) throws RestCallException {
+					responsePattern.match(RestCall.this);
+				}
+			}
+		);
+		return this;
+	}
+
+	/**
+	 * Set configuration settings on this request.
+	 * <p>
+	 * Use {@link RequestConfig#custom()} to create configuration parameters for the request.
+	 *
+	 * @param config The new configuration settings for this request.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall setConfig(RequestConfig config) {
+		this.request.setConfig(config);
+		return this;
+	}
+
+	/**
+	 * @return The HTTP response code.
+	 * @throws RestCallException
+	 * @deprecated Use {@link #run()}.
+	 */
+	@Deprecated
+	public int execute() throws RestCallException {
+		return run();
+	}
+
+	/**
+	 * Method used to execute an HTTP response where you're only interested in the HTTP response code.
+	 * <p>
+	 * The response entity is discarded unless one of the pipe methods have been specified to pipe the
+	 * 	 output to an output stream or writer.
+	 *
+	 * <dl>
+	 * 	<dt>Example:</dt>
+	 * 	<dd>
+	 * <p class='bcode'>
+	 * 	<jk>try</jk> {
+	 * 		RestClient client = <jk>new</jk> RestClient();
+	 * 		<jk>int</jk> rc = client.doGet(url).execute();
+	 * 		<jc>// Succeeded!</jc>
+	 * 	} <jk>catch</jk> (RestCallException e) {
+	 * 		<jc>// Failed!</jc>
+	 * 	}
+	 * </p>
+	 * 	</dd>
+	 * </dl>
+	 *
+	 * @return This object (for method chaining).
+	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
+	 */
+	public int run() throws RestCallException {
+		connect();
+		try {
+			StatusLine status = response.getStatusLine();
+			int sc = status.getStatusCode();
+			if (sc >= 400 && ! ignoreErrors)
+				throw new RestCallException(sc, status.getReasonPhrase(), request.getMethod(), request.getURI(), getResponseAsString()).setHttpResponse(response);
+			if (outputStreams.size() > 0 || writers.size() > 0)
+				getReader();
+			return sc;
+		} catch (RestCallException e) {
+			isFailed = true;
+			throw e;
+		} catch (IOException e) {
+			isFailed = true;
+			throw new RestCallException(e).setHttpResponse(response);
+		} finally {
+			close();
+		}
+	}
+
+	/**
+	 * Connects to the REST resource.
+	 * <p>
+	 * 	If this is a <code>PUT</code> or <code>POST</code>, also sends the input to the remote resource.<br>
+	 * <p>
+	 * 	Typically, you would only call this method if you're not interested in retrieving the body of the HTTP response.
+	 * 	Otherwise, you're better off just calling one of the {@link #getReader()}/{@link #getResponse(Class)}/{@link #pipeTo(Writer)}
+	 * 	methods directly which automatically call this method already.
+	 *
+	 * @return This object (for method chaining).
+	 * @throws RestCallException If an exception or <code>400+</code> HTTP status code occurred during the connection attempt.
+	 */
+	public RestCall connect() throws RestCallException {
+
+		if (isConnected)
+			return this;
+		isConnected = true;
+
+		try {
+			int sc = 0;
+			while (retries > 0) {
+				retries--;
+				Exception ex = null;
+				try {
+			response = client.execute(request);
+					sc = (response == null || response.getStatusLine() == null) ? -1 : response.getStatusLine().getStatusCode();
+				} catch (Exception e) {
+					ex = e;
+					sc = -1;
+					if (response != null)
+						EntityUtils.consumeQuietly(response.getEntity());
+				}
+				if (! retryOn.onCode(sc))
+					retries = 0;
+				if (retries > 0) {
+					for (RestCallInterceptor rci : interceptors)
+						rci.onRetry(this, sc, request, response, ex);
+					request.reset();
+					long w = retryInterval;
+					synchronized(this) {
+						wait(w);
+					}
+				} else if (ex != null) {
+					throw ex;
+				}
+			}
+			for (RestCallInterceptor rci : interceptors)
+				rci.onConnect(this, sc, request, response);
+			if (response == null)
+				throw new RestCallException("HttpClient returned a null response");
+			StatusLine sl = response.getStatusLine();
+			String method = request.getMethod();
+			sc = sl.getStatusCode(); // Read it again in case it was changed by one of the interceptors.
+			if (sc >= 400 && ! ignoreErrors)
+				throw new RestCallException(sc, sl.getReasonPhrase(), method, request.getURI(), getResponseAsString()).setHttpResponse(response);
+			if ((sc == 307 || sc == 302) && allowRedirectsOnPosts && method.equalsIgnoreCase("POST")) {
+				if (redirectOnPostsTries-- < 1)
+					throw new RestCallException(sc, "Maximum number of redirects occurred.  Location header: " + response.getFirstHeader("Location"), method, request.getURI(), getResponseAsString());
+				Header h = response.getFirstHeader("Location");
+				if (h != null) {
+					reset();
+					request.setURI(URI.create(h.getValue()));
+					retries++;  // Redirects should affect retries.
+					connect();
+				}
+			}
+
+		} catch (RestCallException e) {
+			isFailed = true;
+			try {
+			close();
+			} catch (RestCallException e2) { /* Ignore */ }
+			throw e;
+		} catch (Exception e) {
+			isFailed = true;
+			close();
+			throw new RestCallException(e).setHttpResponse(response);
+		}
+
+		return this;
+	}
+
+	private void reset() {
+		if (response != null)
+			EntityUtils.consumeQuietly(response.getEntity());
+		request.reset();
+		isConnected = false;
+		isClosed = false;
+		isFailed = false;
+		if (capturedResponseWriter != null)
+			capturedResponseWriter.getBuffer().setLength(0);
+	}
+
+	/**
+	 * Connects to the remote resource (if <code>connect()</code> hasn't already been called) and returns the HTTP response message body as a reader.
+	 * <p>
+	 * 	If an {@link Encoder} has been registered with the {@link RestClient}, then the underlying input stream
+	 * 		will be wrapped in the encoded stream (e.g. a <code>GZIPInputStream</code>).
+	 * <p>
+	 * 	If present, automatically handles the <code>charset</code> value in the <code>Content-Type</code> response header.
+	 * <p>
+	 * 	<b>IMPORTANT:</b>  It is your responsibility to close this reader once you have finished with it.
+	 *
+	 * @return The HTTP response message body reader.  <jk>null</jk> if response was successful but didn't contain a body (e.g. HTTP 204).
+	 * @throws IOException If an exception occurred while streaming was already occurring.
+	 */
+	public Reader getReader() throws IOException {
+		InputStream is = getInputStream();
+		if (is == null)
+			return null;
+
+		// Figure out what the charset of the response is.
+		String cs = null;
+		Header contentType = response.getLastHeader("Content-Type");
+		String ct = contentType == null ? null : contentType.getValue();
+
+		// First look for "charset=" in Content-Type header of response.
+		if (ct != null && ct.contains("charset="))
+			cs = ct.substring(ct.indexOf("charset=")+8).trim();
+
+		if (cs == null)
+			cs = "UTF-8";
+
+		Reader isr = new InputStreamReader(is, cs);
+
+		if (writers.size() > 0) {
+			StringWriter sw = new StringWriter();
+			writers.add(sw, true);
+			IOPipe.create(isr, writers).byLines(byLines).run();
+			return new StringReader(sw.toString());
+		}
+
+		return new InputStreamReader(is, cs);
+	}
+
+	/**
+	 * Returns the response text as a string if {@link #captureResponse()} was called on this object.
+	 * <p>
+	 * Note that while similar to {@link #getResponseAsString()}, this method can be called multiple times
+	 * 	to retrieve the response text multiple times.
+	 * <p>
+	 * Note that this method returns <jk>null</jk> if you have not called one of the methods that cause
+	 * 	the response to be processed.  (e.g. {@link #run()}, {@link #getResponse()}, {@link #getResponseAsString()}.
+	 *
+	 * @return The captured response, or <jk>null</jk> if {@link #captureResponse()} has not been called.
+	 * @throws IllegalStateException If trying to call this method before the response is consumed.
+	 */
+	public String getCapturedResponse() {
+		if (! isClosed)
+			throw new IllegalStateException("This method cannot be called until the response has been consumed.");
+		if (capturedResponse == null && capturedResponseWriter != null && capturedResponseWriter.getBuffer().length() > 0)
+			capturedResponse = capturedResponseWriter.toString();
+		return capturedResponse;
+	}
+
+	/**
+	 * Returns the parser specified on the client to use for parsing HTTP response bodies.
+	 *
+	 * @return The parser.
+	 * @throws RestCallException If no parser was defined on the client.
+	 */
+	protected Parser getParser() throws RestCallException {
+		if (client.parser == null)
+			throw new RestCallException(0, "No parser defined on client", request.getMethod(), request.getURI(), null);
+		return client.parser;
+	}
+
+	/**
+	 * Returns the serializer specified on the client to use for serializing HTTP request bodies.
+	 *
+	 * @return The serializer.
+	 * @throws RestCallException If no serializer was defined on the client.
+	 */
+	protected Serializer getSerializer() throws RestCallException {
+		if (client.serializer == null)
+			throw new RestCallException(0, "No serializer defined on client", request.getMethod(), request.getURI(), null);
+		return client.serializer;
+	}
+
+	/**
+	 * Returns the value of the <code>Content-Length</code> header.
+	 *
+	 * @return The value of the <code>Content-Length</code> header, or <code>-1</code> if header is not present.
+	 * @throws IOException
+	 */
+	public int getContentLength() throws IOException {
+		connect();
+		Header h = response.getLastHeader("Content-Length");
+		if (h == null)
+			return -1;
+		long l = Long.parseLong(h.getValue());
+		if (l > Integer.MAX_VALUE)
+			return Integer.MAX_VALUE;
+		return (int)l;
+	}
+
+	/**
+	 * Connects to the remote resource (if <code>connect()</code> hasn't already been called) and returns the HTTP response message body as an input stream.
+	 * <p>
+	 * 	If an {@link Encoder} has been registered with the {@link RestClient}, then the underlying input stream
+	 * 		will be wrapped in the encoded stream (e.g. a <code>GZIPInputStream</code>).
+	 * <p>
+	 * 	<b>IMPORTANT:</b>  It is your responsibility to close this reader once you have finished with it.
+	 *
+	 * @return The HTTP response message body input stream. <jk>null</jk> if response was successful but didn't contain a body (e.g. HTTP 204).
+	 * @throws IOException If an exception occurred while streaming was already occurring.
+	 * @throws IllegalStateException If an attempt is made to read the response more than once.
+	 */
+	public InputStream getInputStream() throws IOException {
+		if (isClosed)
+			throw new IllegalStateException("Method cannot be called.  Response has already been consumed.");
+		connect();
+		if (response == null)
+			throw new RestCallException("Response was null");
+		if (response.getEntity() == null)  // HTTP 204 results in no content.
+			return null;
+		InputStream is = response.getEntity().getContent();
+
+		if (outputStreams.size() > 0) {
+			ByteArrayInOutStream baios = new ByteArrayInOutStream();
+			outputStreams.add(baios, true);
+			IOPipe.create(is, baios).run();
+			return baios.getInputStream();
+		}
+		return is;
+	}
+
+	/**
+	 * Connects to the remote resource (if {@code connect()} hasn't already been called) and returns the HTTP response message body as plain text.
+	 *
+	 * @return The response as a string.
+	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
+	 * @throws IOException If an exception occurred while streaming was already occurring.
+	 */
+	public String getResponseAsString() throws IOException {
+		try {
+			Reader r = getReader();
+			String s = IOUtils.read(r).toString();
+			return s;
+		} catch (IOException e) {
+			isFailed = true;
+			throw e;
+		} finally {
+			close();
+		}
+	}
+
+	/**
+	 * Converts the output from the connection into an object of the specified class using the registered {@link Parser}.
+	 *
+	 * @param type The class to convert the input to.
+	 * @param <T> The class to convert the input to.
+	 * @return The parsed output.
+	 * @throws IOException If a connection error occurred.
+	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
+	 */
+	public <T> T getResponse(Class<T> type) throws IOException, ParseException {
+		BeanContext bc = getParser().getBeanContext();
+		if (bc == null)
+			bc = BeanContext.DEFAULT;
+		return getResponse(bc.getClassMeta(type));
+	}
+
+	/**
+	 * Parses the output from the connection into the specified type and then wraps that in a {@link PojoRest}.
+	 * <p>
+	 * Useful if you want to quickly retrieve a single value from inside of a larger JSON document.
+	 *
+	 * @param innerType The class type of the POJO being wrapped.
+	 * @return The parsed output wapped in a {@link PojoRest}.
+	 * @throws IOException If a connection error occurred.
+	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
+	 */
+	public PojoRest getResponsePojoRest(Class<?> innerType) throws IOException, ParseException {
+		return new PojoRest(getResponse(innerType));
+	}
+
+	/**
+	 * Converts the output from the connection into an {@link ObjectMap} and then wraps that in a {@link PojoRest}.
+	 * <p>
+	 * Useful if you want to quickly retrieve a single value from inside of a larger JSON document.
+	 *
+	 * @return The parsed output wapped in a {@link PojoRest}.
+	 * @throws IOException If a connection error occurred.
+	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
+	 */
+	public PojoRest getResponsePojoRest() throws IOException, ParseException {
+		return getResponsePojoRest(ObjectMap.class);
+	}
+
+	/**
+	 * Convenience method when you want to parse into a Map&lt;K,V&gt; object.
+	 *
+	 * <dl>
+	 * 	<dt>Example:</dt>
+	 * 	<dd>
+	 * <p class='bcode'>
+	 * 	Map&lt;String,MyBean&gt; m = client.doGet(url).getResponseMap(LinkedHashMap.<jk>class</jk>, String.<jk>class</jk>, MyBean.<jk>class</jk>);
+	 * </p>
+	 * 		<p>
+	 * A simpler approach is often to just extend the map class you want and just use the normal {@link #getResponse(Class)} method:
+	 * 		</p>
+	 * <p class='bcode'>
+	 * 	<jk>public static class</jk> MyMap <jk>extends</jk> LinkedHashMap&lt;String,MyBean&gt; {}
+	 *
+	 * 	Map&lt;String,MyBean&gt; m = client.doGet(url).getResponse(MyMap.<jk>class</jk>);
+	 * </p>
+	 * 	</dd>
+	 * </dl>
+	 *
+	 * @param mapClass The map class to use (e.g. <code>TreeMap</code>)
+	 * @param keyClass The class type of the keys (e.g. <code>String</code>)
+	 * @param valueClass The class type of the values (e.g. <code>MyBean</code>)
+	 * @return The response parsed as a map.
+	 * @throws ParseException
+	 * @throws IOException
+	 */
+	public final <K,V,T extends Map<K,V>> T getResponseMap(Class<T> mapClass, Class<K> keyClass, Class<V> valueClass) throws ParseException, IOException {
+		ClassMeta<T> cm = getBeanContext().getMapClassMeta(mapClass, keyClass, valueClass);
+		return getResponse(cm);
+	}
+
+	/**
+	 * Convenience method when you want to parse into a Collection&lt;E&gt; object.
+	 *
+	 * <dl>
+	 * 	<dt>Example:</dt>
+	 * 	<dd>
+	 * <p class='bcode'>
+	 * 	List&lt;MyBean&gt; l = client.doGet(url).getResponseCollection(LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
+	 * </p>
+	 * 		<p>
+	 * 			A simpler approach is often to just extend the collection class you want and just use the normal {@link #getResponse(Class)} method:
+	 * </p>
+	 * <p class='bcode'>
+	 * 	<jk>public static class</jk> MyList <jk>extends</jk> LinkedList&lt;MyBean&gt; {}
+	 *
+	 * 	List&lt;MyBean&gt; l = client.doGet(url).getResponse(MyList.<jk>class</jk>);
+	 * </p>
+	 * 	</dd>
+	 * </dl>
+	 *
+	 * @param collectionClass The collection class to use (e.g. <code>LinkedList</code>)
+	 * @param entryClass The class type of the values (e.g. <code>MyBean</code>)
+	 * @return The response parsed as a collection.
+	 * @throws ParseException
+	 * @throws IOException
+	 */
+	public final <E,T extends Collection<E>> T getResponseCollection(Class<T> collectionClass, Class<E> entryClass) throws ParseException, IOException {
+		ClassMeta<T> cm = getBeanContext().getCollectionClassMeta(collectionClass, entryClass);
+		return getResponse(cm);
+	}
+
+	<T> T getResponse(ClassMeta<T> type) throws IOException, ParseException {
+		try {
+		Parser p = getParser();
+		T o = null;
+			if (! p.isReaderParser()) {
+			InputStream is = getInputStream();
+			o = ((InputStreamParser)p).parse(is, type);
+		} else {
+			Reader r = getReader();
+			o = ((ReaderParser)p).parse(r, type);
+			}
+		return o;
+		} catch (ParseException e) {
+			isFailed = true;
+			throw e;
+		} catch (IOException e) {
+			isFailed = true;
+			throw e;
+		} finally {
+			close();
+		}
+	}
+
+	BeanContext getBeanContext() throws RestCallException {
+		BeanContext bc = getParser().getBeanContext();
+		if (bc == null)
+			bc = BeanContext.DEFAULT;
+		return bc;
+	}
+
+	/**
+	 * Returns access to the {@link HttpUriRequest} passed to {@link HttpClient#execute(HttpUriRequest)}.
+	 *
+	 * @return The {@link HttpUriRequest} object.
+	 */
+	public HttpUriRequest getRequest() {
+		return request;
+	}
+
+	/**
+	 * Returns access to the {@link HttpResponse} returned by {@link HttpClient#execute(HttpUriRequest)}.
+	 * Returns <jk>null</jk> if {@link #connect()} has not yet been called.
+	 *
+	 * @return The HTTP response object.
+	 * @throws IOException
+	 */
+	public HttpResponse getResponse() throws IOException {
+		connect();
+		return response;
+	}
+
+	/**
+	 * Shortcut for calling <code>getRequest().setHeader(header)</code>
+	 *
+	 * @param header The header to set on the request.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall setHeader(Header header) {
+		request.setHeader(header);
+		return this;
+	}
+
+	/** Use close() */
+	@Deprecated
+	public void consumeResponse() {
+		if (response != null)
+			EntityUtils.consumeQuietly(response.getEntity());
+	}
+
+	/**
+	 * Cleans up this HTTP call.
+	 *
+	 * @return This object (for method chaining).
+	 * @throws RestCallException Can be thrown by one of the {@link RestCallInterceptor#onClose(RestCall)} calls.
+	 */
+	public RestCall close() throws RestCallException {
+		if (response != null)
+			EntityUtils.consumeQuietly(response.getEntity());
+		isClosed = true;
+		if (! isFailed)
+			for (RestCallInterceptor r : interceptors)
+				r.onClose(this);
+		return this;
+	}
+
+	/**
+	 * Adds a {@link RestCallLogger} to the list of interceptors on this class.
+	 *
+	 * @param level The log level to log events at.
+	 * @param log The logger.
+	 * @return This object (for method chaining).
+	 */
+	public RestCall logTo(Level level, Logger log) {
+		addInterceptor(new RestCallLogger(level, log));
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallException.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallException.java
new file mode 100755
index 0000000..ced55d7
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallException.java
@@ -0,0 +1,153 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import static java.lang.String.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.regex.*;
+
+import org.apache.http.*;
+import org.apache.http.client.*;
+import org.apache.http.util.*;
+import org.apache.juneau.internal.*;
+
+/**
+ * Exception representing a <code>400+</code> HTTP response code against a remote resource.
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public final class RestCallException extends IOException {
+
+	private static final long serialVersionUID = 1L;
+
+	private int responseCode;
+	private String response, responseStatusMessage;
+	HttpResponseException e;
+	private HttpResponse httpResponse;
+
+
+	/**
+	 * Constructor.
+	 *
+	 * @param msg The exception message.
+	 */
+	public RestCallException(String msg) {
+		super(msg);
+	}
+
+	/**
+	 * Constructor.
+	 *
+	 * @param e The inner cause of the exception.
+	 */
+	public RestCallException(Exception e) {
+		super(e.getLocalizedMessage(), e);
+		if (e instanceof FileNotFoundException) {
+			responseCode = 404;
+		} else if (e.getMessage() != null) {
+			Pattern p = Pattern.compile("[^\\d](\\d{3})[^\\d]");
+			Matcher m = p.matcher(e.getMessage());
+			if (m.find())
+				responseCode = Integer.parseInt(m.group(1));
+		}
+		setStackTrace(e.getStackTrace());
+	}
+
+	/**
+	 * Create an exception with a simple message and the status code and body of the specified response.
+	 *
+	 * @param msg The exception message.
+	 * @param response The HTTP response object.
+	 * @throws ParseException
+	 * @throws IOException
+	 */
+	public RestCallException(String msg, HttpResponse response) throws ParseException, IOException {
+		super(format("%s%nstatus='%s'%nResponse: %n%s%n", msg, response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), IOUtils.UTF8)));
+	}
+
+	/**
+	 * Constructor.
+	 *
+	 * @param responseCode The response code.
+	 * @param responseMsg The response message.
+	 * @param method The HTTP method (for message purposes).
+	 * @param url The HTTP URL (for message purposes).
+	 * @param response The reponse from the server.
+	 */
+	public RestCallException(int responseCode, String responseMsg, String method, URI url, String response) {
+		super(format("HTTP method '%s' call to '%s' caused response code '%s,%s'.%nResponse: %n%s%n", method, url, responseCode, responseMsg, response));
+		this.responseCode = responseCode;
+		this.responseStatusMessage = responseMsg;
+		this.response = response;
+	}
+
+	/**
+	 * Sets the HTTP response object that caused this exception.
+	 *
+	 * @param httpResponse The HTTP respose object.
+	 * @return This object (for method chaining).
+	 */
+	protected RestCallException setHttpResponse(HttpResponse httpResponse) {
+		this.httpResponse = httpResponse;
+		return this;
+	}
+
+	/**
+	 * Returns the HTTP response object that caused this exception.
+	 *
+	 * @return The HTTP response object that caused this exception, or <jk>null</jk> if no response was created yet when the exception was thrown.
+	 */
+	public HttpResponse getHttpResponse() {
+		return this.httpResponse;
+	}
+
+	/**
+	 * Returns the HTTP response status code.
+	 *
+	 * @return The response status code.  If a connection could not be made at all, returns <code>0</code>.
+	 */
+	public int getResponseCode() {
+		return responseCode;
+	}
+
+	/**
+	 * Returns the HTTP response message body text.
+	 *
+	 * @return The response message body text.
+	 */
+	public String getResponseMessage() {
+		return response;
+	}
+
+	/**
+	 * Returns the response status message as a plain string.
+	 *
+	 * @return The response status message.
+	 */
+	public String getResponseStatusMessage() {
+		return responseStatusMessage;
+	}
+
+	/**
+	 * Sets the inner cause for this exception.
+	 * @param cause The inner cause.
+	 * @return This object (for method chaining).
+	 */
+	@Override /* Throwable */
+	public synchronized RestCallException initCause(Throwable cause) {
+		super.initCause(cause);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallInterceptor.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallInterceptor.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallInterceptor.java
new file mode 100755
index 0000000..0de9533
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallInterceptor.java
@@ -0,0 +1,60 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import org.apache.http.*;
+
+/**
+ * Used to intercept http connection responses to allow modification of that response before processing
+ * and for listening for call lifecycle events.
+ * <p>
+ * Useful if you want to prevent {@link RestCallException RestCallExceptions} from being thrown on error conditions.
+ */
+public abstract class RestCallInterceptor {
+
+	/**
+	 * Called when {@link RestCall} object is created.
+	 *
+	 * @param restCall The restCall object invoking this method.
+	 */
+	public void onInit(RestCall restCall) {}
+
+	/**
+	 * Called immediately after an HTTP response has been received.
+	 *
+	 * @param statusCode The HTTP status code received.
+	 * @param restCall The restCall object invoking this method.
+	 * @param req The HTTP request object.
+	 * @param res The HTTP response object.
+	 */
+	public void onConnect(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res) {}
+
+	/**
+	 * Called if retry is going to be attempted.
+	 *
+	 * @param statusCode The HTTP status code received.
+	 * @param restCall The restCall object invoking this method.
+	 * @param req The HTTP request object.
+	 * @param res The HTTP response object.
+	 * @param ex The exception thrown from the client.
+	 */
+	public void onRetry(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res, Exception ex) {}
+
+	/**
+	 * Called when {@link RestCall#close()} is called.
+	 *
+	 * @param restCall The restCall object invoking this method.
+	 * @throws RestCallException
+	 */
+	public void onClose(RestCall restCall) throws RestCallException {}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallLogger.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallLogger.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallLogger.java
new file mode 100755
index 0000000..3960a98
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallLogger.java
@@ -0,0 +1,120 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import java.io.*;
+import java.text.*;
+import java.util.logging.*;
+
+import org.apache.http.*;
+import org.apache.http.client.methods.*;
+import org.apache.http.util.*;
+
+/**
+ * Specialized interceptor for logging calls to a log file.
+ * <p>
+ * Causes a log entry to be created that shows all the request and response headers and content
+ * 	at the end of the request.
+ * <p>
+ * Use the {@link RestClient#logTo(Level, Logger)} and {@link RestCall#logTo(Level, Logger)}
+ * <p>
+ * methods to create instances of this class.
+ */
+public class RestCallLogger extends RestCallInterceptor {
+
+	private Level level;
+	private Logger log;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param level The log level to log messages at.
+	 * @param log The logger to log to.
+	 */
+	protected RestCallLogger(Level level, Logger log) {
+		this.level = level;
+		this.log = log;
+	}
+
+	@Override /* RestCallInterceptor */
+	public void onInit(RestCall restCall) {
+		if (log.isLoggable(level))
+			restCall.captureResponse();
+	}
+
+	@Override /* RestCallInterceptor */
+	public void onConnect(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res) {
+		// Do nothing.
+	}
+
+	@Override /* RestCallInterceptor */
+	public void onRetry(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res, Exception ex) {
+		if (log.isLoggable(level)) {
+			if (ex == null)
+			log.log(level, MessageFormat.format("Call to {0} returned {1}.  Will retry.", req.getRequestLine().getUri(), statusCode)); //$NON-NLS-1$
+			else
+				log.log(level, MessageFormat.format("Call to {0} caused exception {1}.  Will retry.", req.getRequestLine().getUri(), ex.getLocalizedMessage()), ex); //$NON-NLS-1$
+		}
+	}
+
+	@Override /* RestCallInterceptor */
+	public void onClose(RestCall restCall) throws RestCallException {
+		try {
+			if (log.isLoggable(level)) {
+				String output = restCall.getCapturedResponse();
+				StringBuilder sb = new StringBuilder();
+				HttpUriRequest req = restCall.getRequest();
+				HttpResponse res = restCall.getResponse();
+				if (req != null) {
+					sb.append("\n=== HTTP Call ==================================================================");
+
+					sb.append("\n=== REQUEST ===\n").append(req);
+					sb.append("\n---request headers---");
+					for (Header h : req.getAllHeaders())
+						sb.append("\n").append(h);
+					if (req instanceof HttpEntityEnclosingRequestBase) {
+						sb.append("\n---request entity---");
+						HttpEntityEnclosingRequestBase req2 = (HttpEntityEnclosingRequestBase)req;
+						HttpEntity e = req2.getEntity();
+						if (e == null)
+							sb.append("\nEntity is null");
+						else {
+							if (e.getContentType() != null)
+								sb.append("\n").append(e.getContentType());
+							if (e.getContentEncoding() != null)
+								sb.append("\n").append(e.getContentEncoding());
+							if (e.isRepeatable()) {
+								try {
+									sb.append("\n---request content---\n").append(EntityUtils.toString(e));
+								} catch (Exception ex) {
+									throw new RuntimeException(ex);
+								}
+							}
+						}
+					}
+				}
+				if (res != null) {
+					sb.append("\n=== RESPONSE ===\n").append(res.getStatusLine());
+					sb.append("\n---response headers---");
+					for (Header h : res.getAllHeaders())
+						sb.append("\n").append(h);
+					sb.append("\n---response content---\n").append(output);
+					sb.append("\n=== END ========================================================================");
+				}
+				log.log(level, sb.toString());
+			}
+		} catch (IOException e) {
+			log.log(Level.SEVERE, e.getLocalizedMessage(), e);
+		}
+	}
+}


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaProperty.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaProperty.java
deleted file mode 100755
index 47c6826..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaProperty.java
+++ /dev/null
@@ -1,44 +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.dto.jsonschema;
-
-/**
- * Represents a JSON property in the JSON-Schema core specification.
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SchemaProperty extends Schema {
-
-	/**
-	 * Default constructor.
-	 */
-	public SchemaProperty() {}
-
-	/**
-	 * Convenience constructor.
-	 *
-	 * @param name The name of this property.
-	 */
-	public SchemaProperty(String name) {
-		setName(name);
-	}
-
-	/**
-	 * Convenience constructor.
-	 *
-	 * @param name The name of this property.
-	 * @param type The JSON type of this property.
-	 */
-	public SchemaProperty(String name, JsonType type) {
-		setName(name);
-		setType(type);
-	}
-}
\ 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/dto/jsonschema/SchemaPropertySimpleArray.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaPropertySimpleArray.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaPropertySimpleArray.class
deleted file mode 100755
index 6bc08cb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaPropertySimpleArray.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/dto/jsonschema/SchemaPropertySimpleArray.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaPropertySimpleArray.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaPropertySimpleArray.java
deleted file mode 100755
index d611ca8..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaPropertySimpleArray.java
+++ /dev/null
@@ -1,41 +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.dto.jsonschema;
-
-/**
- * Convenience class for representing a property that's an array of simple types.
- * <p>
- * 	An instance of this object is equivalent to calling...
- *
- * <p class='bcode'>
- * 	SchemaProperty p = <jk>new</jk> SchemaProperty(name)
- * 		.setType(JsonType.<jsf>ARRAY</jsf>)
- * 		.setItems(
- * 			<jk>new</jk> Schema().setType(elementType)
- * 		);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SchemaPropertySimpleArray extends SchemaProperty {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param name The name of the schema property.
-	 * @param elementType The JSON type of the elements in the array.
-	 */
-	public SchemaPropertySimpleArray(String name, JsonType elementType) {
-		setName(name);
-		setType(JsonType.ARRAY);
-		setItems(
-			new Schema().setType(elementType)
-		);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaRef.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaRef.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaRef.class
deleted file mode 100755
index 3537129..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaRef.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/dto/jsonschema/SchemaRef.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaRef.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaRef.java
deleted file mode 100755
index 9bbbf03..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaRef.java
+++ /dev/null
@@ -1,34 +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.dto.jsonschema;
-
-import java.net.*;
-
-/**
- * Convenience class for representing a schema reference such as <js>"{'$ref':'/url/to/ref'}"</js>.
- * <p>
- * 	An instance of this object is equivalent to calling...
- *
- * <p class='bcode'>
- * 	Schema s = <jk>new</jk> Schema().setRef(uri);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SchemaRef extends Schema {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param uri The URI of the target reference.  Can be <jk>null</jk>.
-	 */
-	public SchemaRef(String uri) {
-		this.setRef(uri == null ? null : URI.create(uri));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Html.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Html.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Html.png
deleted file mode 100755
index 3848b4f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Html.png 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/dto/jsonschema/doc-files/Example_Json.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Json.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Json.png
deleted file mode 100755
index 6c8ddd1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Json.png 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/dto/jsonschema/doc-files/Example_Options.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Options.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Options.png
deleted file mode 100755
index 5250d3b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Options.png 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/dto/jsonschema/doc-files/Example_Turtle.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Turtle.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Turtle.png
deleted file mode 100755
index 478de82..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Turtle.png 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/dto/jsonschema/doc-files/Example_UrlEncoded.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_UrlEncoded.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_UrlEncoded.png
deleted file mode 100755
index 86576e7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_UrlEncoded.png 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/dto/jsonschema/doc-files/Example_Xml.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Xml.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Xml.png
deleted file mode 100755
index 0195c5a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_Xml.png 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/dto/jsonschema/doc-files/Example_XmlRdfAbbrev.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_XmlRdfAbbrev.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_XmlRdfAbbrev.png
deleted file mode 100755
index 129f9df..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/doc-files/Example_XmlRdfAbbrev.png 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/dto/jsonschema/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/package.html
deleted file mode 100755
index 1034f18..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/package.html
+++ /dev/null
@@ -1,511 +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>JSON-Schema Data Transfer Objects</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='#Overview'>Overview</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#SchemaDefinition'>JSON-Schema schema definition</a></p>
-		<li><p><a class='doclink' href='#Serialize'>Creating JSON-Schema documents</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#SerializeToOther'>Serializing to other data types</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#Parse'>Parsing JSON-Schema documents</a></p>
-	</ol>
-</ol>
-<!-- ======================================================================================================== -->
-<a id="Overview"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Overview</h2>
-<div class='topic'>
-	<p>
-		Juno supports serializing and parsing of JSON-Schema documents through the use of beans defined in the <code>com.ibm.juno.core.dto.jsonschema</code> package.<br>
-		These beans are used with the existing {@link com.ibm.juno.core.json.JsonSerializer} and {@link com.ibm.juno.core.json.JsonParser} classes to produce and consume JSON-Schema documents. 
-	</p>
-	<p>
-		<b>NOTE:</b>  JSON-Schema is currently in draft form.  This API may change as the JSON-Schema specification changes.
-	</p>
-	
-	<!-- ======================================================================================================== -->
-	<a id="SchemaDefinition"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - JSON-Schema schema definition</h3>
-	<div class='topic'>
-		<p>
-			The draft JSON-Schema specification that the JSON-Schema beans are modeled after is as follows:
-		</p>
-		<p class='bcode'>
-	{
-	    <js>"id"</js>: <js>"http://json-schema.org/draft-04/schema#"</js>,
-	    <js>"$schema"</js>: <js>"http://json-schema.org/draft-04/schema#"</js>,
-	    <js>"description"</js>: <js>"Core schema meta-schema"</js>,
-	    <js>"definitions"</js>: {
-	        <js>"schemaArray"</js>: {
-	            <js>"type"</js>: <js>"array"</js>,
-	            <js>"minItems"</js>: 1,
-	            <js>"items"</js>: { <js>"$ref"</js>: <js>"#"</js> }
-	        },
-	        <js>"positiveInteger"</js>: {
-	            <js>"type"</js>: <js>"integer"</js>,
-	            <js>"minimum"</js>: 0
-	        },
-	        <js>"positiveIntegerDefault0"</js>: {
-	            <js>"allOf"</js>: [ { <js>"$ref"</js>: <js>"#/definitions/positiveInteger"</js> }, { <js>"default"</js>: 0 } ]
-	        },
-	        <js>"simpleTypes"</js>: {
-	            <js>"enum"</js>: [ <js>"array"</js>, <js>"boolean"</js>, <js>"integer"</js>, <js>"null"</js>, <js>"number"</js>, <js>"object"</js>, <js>"string"</js> ]
-	        },
-	        <js>"stringArray"</js>: {
-	            <js>"type"</js>: <js>"array"</js>,
-	            <js>"items"</js>: { <js>"type"</js>: <js>"string"</js> },
-	            <js>"minItems"</js>: 1,
-	            <js>"uniqueItems"</js>: <jk>true</jk>
-	        }
-	    },
-	    <js>"type"</js>: <js>"object"</js>,
-	    <js>"properties"</js>: {
-	        <js>"id"</js>: {
-	            <js>"type"</js>: <js>"string"</js>,
-	            <js>"format"</js>: <js>"uri"</js>
-	        },
-	        <js>"$schema"</js>: {
-	            <js>"type"</js>: <js>"string"</js>,
-	            <js>"format"</js>: <js>"uri"</js>
-	        },
-	        <js>"title"</js>: {
-	            <js>"type"</js>: <js>"string"</js>
-	        },
-	        <js>"description"</js>: {
-	            <js>"type"</js>: <js>"string"</js>
-	        },
-	        <js>"default"</js>: {},
-	        <js>"multipleOf"</js>: {
-	            <js>"type"</js>: <js>"number"</js>,
-	            <js>"minimum"</js>: 0,
-	            <js>"exclusiveMinimum"</js>: <jk>true</jk>
-	        },
-	        <js>"maximum"</js>: {
-	            <js>"type"</js>: <js>"number"</js>
-	        },
-	        <js>"exclusiveMaximum"</js>: {
-	            <js>"type"</js>: <js>"boolean"</js>,
-	            <js>"default"</js>: <jk>false</jk>
-	        },
-	        <js>"minimum"</js>: {
-	            <js>"type"</js>: <js>"number"</js>
-	        },
-	        <js>"exclusiveMinimum"</js>: {
-	            <js>"type"</js>: <js>"boolean"</js>,
-	            <js>"default"</js>: <jk>false</jk>
-	        },
-	        <js>"maxLength"</js>: { <js>"$ref"</js>: <js>"#/definitions/positiveInteger"</js> },
-	        <js>"minLength"</js>: { <js>"$ref"</js>: <js>"#/definitions/positiveIntegerDefault0"</js> },
-	        <js>"pattern"</js>: {
-	            <js>"type"</js>: <js>"string"</js>,
-	            <js>"format"</js>: <js>"regex"</js>
-	        },
-	        <js>"additionalItems"</js>: {
-	            <js>"anyOf"</js>: [
-	                { <js>"type"</js>: <js>"boolean"</js> },
-	                { <js>"$ref"</js>: <js>"#"</js> }
-	            ],
-	            <js>"default"</js>: {}
-	        },
-	        <js>"items"</js>: {
-	            <js>"anyOf"</js>: [
-	                { <js>"$ref"</js>: <js>"#"</js> },
-	                { <js>"$ref"</js>: <js>"#/definitions/schemaArray"</js> }
-	            ],
-	            <js>"default"</js>: {}
-	        },
-	        <js>"maxItems"</js>: { <js>"$ref"</js>: <js>"#/definitions/positiveInteger"</js> },
-	        <js>"minItems"</js>: { <js>"$ref"</js>: <js>"#/definitions/positiveIntegerDefault0"</js> },
-	        <js>"uniqueItems"</js>: {
-	            <js>"type"</js>: <js>"boolean"</js>,
-	            <js>"default"</js>: <jk>false</jk>
-	        },
-	        <js>"maxProperties"</js>: { <js>"$ref"</js>: <js>"#/definitions/positiveInteger"</js> },
-	        <js>"minProperties"</js>: { <js>"$ref"</js>: <js>"#/definitions/positiveIntegerDefault0"</js> },
-	        <js>"required"</js>: { <js>"$ref"</js>: <js>"#/definitions/stringArray"</js> },
-	        <js>"additionalProperties"</js>: {
-	            <js>"anyOf"</js>: [
-	                { <js>"type"</js>: <js>"boolean"</js> },
-	                { <js>"$ref"</js>: <js>"#"</js> }
-	            ],
-	            <js>"default"</js>: {}
-	        },
-	        <js>"definitions"</js>: {
-	            <js>"type"</js>: <js>"object"</js>,
-	            <js>"additionalProperties"</js>: { <js>"$ref"</js>: <js>"#"</js> },
-	            <js>"default"</js>: {}
-	        },
-	        <js>"properties"</js>: {
-	            <js>"type"</js>: <js>"object"</js>,
-	            <js>"additionalProperties"</js>: { <js>"$ref"</js>: <js>"#"</js> },
-	            <js>"default"</js>: {}
-	        },
-	        <js>"patternProperties"</js>: {
-	            <js>"type"</js>: <js>"object"</js>,
-	            <js>"additionalProperties"</js>: { <js>"$ref"</js>: <js>"#"</js> },
-	            <js>"default"</js>: {}
-	        },
-	        <js>"dependencies"</js>: {
-	            <js>"type"</js>: <js>"object"</js>,
-	            <js>"additionalProperties"</js>: {
-	                <js>"anyOf"</js>: [
-	                    { <js>"$ref"</js>: <js>"#"</js> },
-	                    { <js>"$ref"</js>: <js>"#/definitions/stringArray"</js> }
-	                ]
-	            }
-	        },
-	        <js>"enum"</js>: {
-	            <js>"type"</js>: <js>"array"</js>,
-	            <js>"minItems"</js>: 1,
-	            <js>"uniqueItems"</js>: <jk>true</jk>
-	        },
-	        <js>"type"</js>: {
-	            <js>"anyOf"</js>: [
-	                { <js>"$ref"</js>: <js>"#/definitions/simpleTypes"</js> },
-	                {
-	                    <js>"type"</js>: <js>"array"</js>,
-	                    <js>"items"</js>: { <js>"$ref"</js>: <js>"#/definitions/simpleTypes"</js> },
-	                    <js>"minItems"</js>: 1,
-	                    <js>"uniqueItems"</js>: <jk>true</jk>
-	                }
-	            ]
-	        },
-	        <js>"allOf"</js>: { <js>"$ref"</js>: <js>"#/definitions/schemaArray"</js> },
-	        <js>"anyOf"</js>: { <js>"$ref"</js>: <js>"#/definitions/schemaArray"</js> },
-	        <js>"oneOf"</js>: { <js>"$ref"</js>: <js>"#/definitions/schemaArray"</js> },
-	        <js>"not"</js>: { <js>"$ref"</js>: <js>"#"</js> }
-	    },
-	    <js>"dependencies"</js>: {
-	        <js>"exclusiveMaximum"</js>: [ <js>"maximum"</js> ],
-	        <js>"exclusiveMinimum"</js>: [ <js>"minimum"</js> ]
-	    },
-	    <js>"default"</js>: {}
-	}
-		</p>
-		<p>
-			The bean classes that make up the model are as follows:
-		</p>
-		<ul>
-			<li>{@link com.ibm.juno.core.dto.jsonschema.Schema} - Top level schema object.
-			<li>{@link com.ibm.juno.core.dto.jsonschema.SchemaProperty} - A subclass of <code>Schema</code> for representing properties.
-			<li>{@link com.ibm.juno.core.dto.jsonschema.SchemaPropertySimpleArray} - A convenience subclass of <code>SchemaProperty</code> for representing properties of simple array types.
-			<li>{@link com.ibm.juno.core.dto.jsonschema.SchemaRef} - Represents a URI reference to another schema.
-			<li>{@link com.ibm.juno.core.dto.jsonschema.SchemaArray} - An array of <code>Schema</code> objects.
-			<li>{@link com.ibm.juno.core.dto.jsonschema.JsonType} - An enum of possible JSON data types.
-			<li>{@link com.ibm.juno.core.dto.jsonschema.JsonTypeArray} - An array of <code>JsonType</code> objects.
-		</ul>
-	</div>	
-
-
-	<!-- ======================================================================================================== -->
-	<a id="Serialize"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.2 - Creating JSON-Schema documents</h3>
-	<div class='topic'>
-		<p>
-			JSON-Schema documents can be constructed using the Juno JSON-Schema beans as a document model object.
-			These beans are defined with fluent-style setters to make constructing documents as easy as possible.
-		</p>
-		<p>
-			The following is an example JSON-Schema document:
-		</p>
-		<p class='bcode'>
-	{
-		<js>"title"</js>: <js>"Example Schema"</js>,
-		<js>"type"</js>: <js>"object"</js>,
-		<js>"properties"</js>: {
-			<js>"firstName"</js>: {
-				<js>"type"</js>: <js>"string"</js>
-			},
-			<js>"lastName"</js>: {
-				<js>"type"</js>: <js>"string"</js>
-			},
-			<js>"age"</js>: {
-				<js>"description"</js>: <js>"Age in years"</js>,
-				<js>"type"</js>: <js>"integer"</js>,
-				<js>"minimum"</js>: 0
-			}
-		},
-		<js>"required"</js>: [<js>"firstName"</js>, <js>"lastName"</js>]
-	}		
-		</p>
-		<p>
-			This document can be constructing using the following code:
-		</p>
-		<p class='bcode'>
-	<jc>// Create the document object model</jc>
-	Schema s = <jk>new</jk> Schema()
-		.setTitle(<js>"Example Schema"</js>)
-		.setType(JsonType.<jsf>OBJECT</jsf>)
-		.addProperties(
-			<jk>new</jk> SchemaProperty(<js>"firstName"</js>, JsonType.<jsf>STRING</jsf>),
-			<jk>new</jk> SchemaProperty(<js>"lastName"</js>, JsonType.<jsf>STRING</jsf>),
-			<jk>new</jk> SchemaProperty(<js>"age"</js>, JsonType.<jsf>INTEGER</jsf>)
-				.setDescription(<js>"Age in years"</js>)
-				.setMinimum(0)
-		)
-		.addRequired(<js>"firstName"</js>, <js>"lastName"</js>);
-		
-	<jc>// Serialize to JSON</jc>
-	String json = JsonSerializer.<jsf>DEFAULT_READABLE</jsf>.serialize(s);
-		</p>	
-		<p>
-			The following is a more-complex example showing various kinds of constraints.
-		</p>		
-		<p class='bcode'>
-	{
-	    <js>"id"</js>: <js>"http://some.site.somewhere/entry-schema#"</js>,
-	    <js>"$schema"</js>: <js>"http://json-schema.org/draft-04/schema#"</js>,
-	    <js>"description"</js>: <js>"schema for an fstab entry"</js>,
-	    <js>"type"</js>: <js>"object"</js>,
-	    <js>"required"</js>: [ <js>"storage"</js> ],
-	    <js>"properties"</js>: {
-	        <js>"storage"</js>: {
-	            <js>"type"</js>: <js>"object"</js>,
-	            <js>"oneOf"</js>: [
-	                { <js>"$ref"</js>: <js>"#/definitions/diskDevice"</js> },
-	                { <js>"$ref"</js>: <js>"#/definitions/diskUUID"</js> },
-	                { <js>"$ref"</js>: <js>"#/definitions/nfs"</js> },
-	                { <js>"$ref"</js>: <js>"#/definitions/tmpfs"</js> }
-	            ]
-	        },
-	        <js>"fstype"</js>: {
-	            <js>"enum"</js>: [ <js>"ext3"</js>, <js>"ext4"</js>, <js>"btrfs"</js> ]
-	        },
-	        <js>"options"</js>: {
-	            <js>"type"</js>: <js>"array"</js>,
-	            <js>"minItems"</js>: 1,
-	            <js>"items"</js>: { <js>"type"</js>: <js>"string"</js> },
-	            <js>"uniqueItems"</js>: <jk>true</jk>
-	        },
-	        <js>"readonly"</js>: { <js>"type"</js>: <js>"boolean"</js> }
-	    },
-	    <js>"definitions"</js>: {
-	        <js>"diskDevice"</js>: {},
-	        <js>"diskUUID"</js>: {},
-	        <js>"nfs"</js>: {},
-	        <js>"tmpfs"</js>: {}
-	    }
-	}
-		</p>
-		<p>
-			This document can be constructing using the following code:
-		</p>
-		<p class='bcode'>
-	Schema s = <jk>new</jk> Schema()
-		.setId(<js>"http://some.site.somewhere/entry-schema#"</js>)
-		.setSchemaVersionId(<js>"http://json-schema.org/draft-04/schema#"</js>)
-		.setDescription(<js>"schema for an fstab entry"</js>)
-		.setType(JsonType.<jsf>OBJECT</jsf>)
-		.addRequired(<js>"storage"</js>)
-		.addProperties(
-			<jk>new</jk> SchemaProperty(<js>"storage"</js>)
-				.setType(JsonType.<jsf>OBJECT</jsf>)
-				.addOneOf(
-					<jk>new</jk> SchemaRef(<js>"#/definitions/diskDevice"</js>),
-					<jk>new</jk> SchemaRef(<js>"#/definitions/diskUUID"</js>),
-					<jk>new</jk> SchemaRef(<js>"#/definitions/nsf"</js>),
-					<jk>new</jk> SchemaRef(<js>"#/definitions/tmpfs"</js>)
-				),
-			<jk>new</jk> SchemaProperty(<js>"fstype"</js>)
-				.addEnum(<js>"ext3"</js>, <js>"ext4"</js>, <js>"btrfs"</js>),
-			<jk>new</jk> SchemaPropertySimpleArray(<js>"options"</js>, JsonType.<jsf>STRING</jsf>)
-				.setMinItems(1)
-				.setUniqueItems(<jk>true</jk>),
-			<jk>new</jk> SchemaProperty(<js>"readonly"</js>)
-				.setType(JsonType.<jsf>BOOLEAN</jsf>)
-		)
-		.addDefinition(<js>"diskDevice"</js>,
-			<jk>new</jk> Schema()
-		)
-		.addDefinition(<js>"diskUUID"</js>,
-			<jk>new</jk> Schema()
-		)
-		.addDefinition(<js>"nfs"</js>,
-			<jk>new</jk> Schema()
-		)
-		.addDefinition(<js>"tmpfs"</js>,
-			<jk>new</jk> Schema()
-		);
-
-	<jc>// Serialize to JSON</jc>
-	String json = JsonSerializer.<jsf>DEFAULT_READABLE</jsf>.serialize(s);
-		</p>
-	
-	
-		<!-- ======================================================================================================== -->
-		<a id="SerializeToOther"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.1 - Serializing to other data types</h4>
-		<div class='topic'>
-			<p>
-				Since the JSON-Schema DTOs are simple beans, they can be used to serialize to a variety of other language types as well as JSON.
-				This also allows JSON-Schema documents to be easily served up using the Juno REST API.
-			</p>
-			<p>
-				The sample web application includes a REST resource that generates a JSON-Schema document.  
-				We'll use this resource to show what the JSON-Schema document looks like in other languages.
-			</p>
-			<p class='bcode'>
-	<jd>/**
-	 * Sample resource that shows how to serialize JSON-Schema documents.
-	 */</jd>
-	<ja>@RestResource</ja>(
-		path=<js>"/jsonSchema"</js>,
-		messages=<js>"nls/JsonSchemaResource"</js>,
-		properties={
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, value=<js>"Sample JSON-Schema document"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'?method=OPTIONS'}"</js>)
-		}
-	)
-	<jk>public class</jk> JsonSchemaResource <jk>extends</jk> RestServletJenaDefault {
-	
-		<jk>private</jk> Schema <jf>schema</jf>;     <jc>// The schema document</jc>
-		
-		<jd>/** Servlet initialization */</jd> 
-		<ja>@Override</ja>
-		<jk>public void</jk> init() {
-	
-			<jk>try</jk> {
-				<jf>schema</jf> = <jk>new</jk> Schema()
-					.setId(<js>"http://example.com/sample-schema#"</js>)
-					.setSchemaVersionUri(<js>"http://json-schema.org/draft-04/schema#"</js>)
-					.setTitle(<js>"Example Schema"</js>)
-					.setType(JsonType.<jsf>OBJECT</jsf>)
-					.addProperties(
-						<jk>new</jk> SchemaProperty(<js>"firstName"</js>, JsonType.<jsf>STRING</jsf>),
-						<jk>new</jk> SchemaProperty(<js>"lastName"</js>, JsonType.<jsf>STRING</jsf>),
-						<jk>new</jk> SchemaProperty(<js>"age"</js>, JsonType.<jsf>INTEGER</jsf>)
-							.setDescription(<js>"Age in years"</js>)
-							.setMinimum(0)
-					)
-					.addRequired(<js>"firstName"</js>, <js>"lastName"</js>);
-			} <jk>catch</jk> (Exception e) {
-				<jk>throw new</jk> RuntimeException(e);
-			}
-		}
-		
-		<jd>/** GET request handler */</jd>
-		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/"</js>)
-		<jk>public</jk> Schema getSchema() <jk>throws</jk> Exception {
-			<jk>return</jk> <jf>schema</jf>;
-		}
-		
-		<jd>/** 
-		 * PUT request handler.
-		 * Replaces the schema document with the specified content, and then mirrors it as the response. 
-		 */</jd>
-		<ja>@RestMethod</ja>(name=<js>"PUT"</js>, path=<js>"/"</js>)
-		<jk>public</jk> Schema setSchema(<ja>@Content</ja> Schema schema) <jk>throws</jk> Exception {
-			<jk>this</jk>.<jf>schema</jf> = schema;
-			<jk>return</jk> <jk>this</jk>.<jf>schema</jf>;
-		}
-	
-		<jd>/** OPTIONS request handler */</jd>
-	 	<ja>@RestMethod</ja>(name=<js>"OPTIONS"</js>, path=<js>"/*"</js>)
-		<jk>public</jk> ResourceOptions doOptions(RestRequest req) {
-			<jk>return new</jk> ResourceOptions(<jk>this</jk>, req);
-		}
-	}
-			</p>
-			<p>
-				When you point your browser to this resource, the default content type is HTML (since that's what the browser asks for
-				by default).
-			</p>
-			<h6 class='figure'>HTML</h6>
-			<img class='bordered' src="doc-files/Example_Html.png">
-			<p>
-				The REST API allows you to specify the <code>Accept</code> header as a GET parameter, and the <code>plainText=true</code>
-					parameter forces the returned <code>Content-Type</code> to be <code>text/plain</code>.
-				We'll use this to view the JSON-Schema document in other languages.
-			</p>			
-			
-			<h6 class='figure'>Normal JSON</h6>
-			<img class='bordered' src="doc-files/Example_Json.png">
-			
-			<h6 class='figure'>XML</h6>
-			<img class='bordered' src="doc-files/Example_Xml.png">
-
-			<h6 class='figure'>URL-Encoded</h6>
-			<img class='bordered' src="doc-files/Example_UrlEncoded.png">
-
-			<h6 class='figure'>Abbreviated RDF/XML</h6>
-			<img class='bordered' src="doc-files/Example_XmlRdfAbbrev.png">
-
-			<h6 class='figure'>Turtle</h6>
-			<img class='bordered' src="doc-files/Example_Turtle.png">
-			
-			<p>
-				The full list of options for this resource can be accessed by the <code>options</code> link on the HTML page.
-			</p>
-			
-			<h6 class='figure'>Resource Options</h6>
-			<img class='bordered' src="doc-files/Example_Options.png">
-		</div>	
-		
-	<!-- ======================================================================================================== -->
-	<a id="Parse"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.3 - Parsing JSON-Schema documents</h3>
-	<div class='topic'>
-		<p>
-			Use the {@link com.ibm.juno.core.json.JsonParser} to parse JSON-Schema documents into DTOs:
-		</p>
-		<p class='bcode'>		
-	<jc>// Use parser to load JSON-Schema document into JSON-Schema DTOs</jc>
-	Schema schema = JsonParser.<jsf>DEFAULT</jsf>.parse(json, Schema.<jk>class</jk>);
-		</p>
-		<p>
-			Schema objects can also be constructed from the other media types using the appropriate parsers.
-		</p>
-	</div>
-
-</div>
-<p align="center"><i><b>*** f�n ***</b></i></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/dto/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/package.html
deleted file mode 100755
index 9f97884..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/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>Data transfer objects</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/encoders/Encoder.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/Encoder.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/Encoder.class
deleted file mode 100755
index 79acd6a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/Encoder.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/encoders/Encoder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/Encoder.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/Encoder.java
deleted file mode 100755
index abe8e5d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/Encoder.java
+++ /dev/null
@@ -1,53 +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.encoders;
-
-import java.io.*;
-
-/**
- * Used for enabling decompression on requests and compression on responses, such as support for GZIP compression.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Used to wrap input and output streams withing compression/decompression streams.
- * <p>
- * 	Encoders are registered with <code>RestServlets</code> through the <ja>@RestResource.encoders()</ja> annotation.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class Encoder {
-
-	/**
-	 * Converts the specified compressed input stream into an uncompressed stream.
-	 *
-	 * @param is The compressed stream.
-	 * @return The uncompressed stream.
-	 * @throws IOException If any errors occur, such as on a stream that's not a valid GZIP input stream.
-	 */
-	public abstract InputStream getInputStream(InputStream is) throws IOException;
-
-	/**
-	 * Converts the specified uncompressed output stream into an uncompressed stream.
-	 *
-	 * @param os The uncompressed stream.
-	 * @return The compressed stream stream.
-	 * @throws IOException If any errors occur.
-	 */
-	public abstract OutputStream getOutputStream(OutputStream os) throws IOException;
-
-	/**
-	 * Returns the codings in <code>Content-Encoding</code> and <code>Accept-Encoding</code> headers
-	 * 	that this encoder handles (e.g. <js>"gzip"</js>).
-	 *
-	 * @return The codings that this encoder handles.
-	 */
-	public abstract String[] getCodings();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup$EncoderEntry.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup$EncoderEntry.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup$EncoderEntry.class
deleted file mode 100755
index 45e34e1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup$EncoderEntry.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/encoders/EncoderGroup.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup.class
deleted file mode 100755
index b6a78a4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup.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/encoders/EncoderGroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup.java
deleted file mode 100755
index 0106432..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/EncoderGroup.java
+++ /dev/null
@@ -1,195 +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.encoders;
-
-import static com.ibm.juno.core.utils.ArrayUtils.*;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Represents the group of {@link Encoder encoders} keyed by codings.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Maintains a set of encoders and the codings that they can handle.
- * <p>
- * 	The {@link #findMatch(String)} and {@link #getEncoder(String)} methods are then
- * 		used to find appropriate encoders for specific <code>Accept-Encoding</code>
- * 		and <code>Content-Encoding</code> header values.
- *
- *
- * <h6 class='topic'>Match ordering</h6>
- * <p>
- * 	Encoders are matched against <code>Accept-Encoding</code> strings in the order they exist in this group.
- * <p>
- * 	Adding new entries will cause the entries to be prepended to the group.
- *  	This allows for previous encoders to be overridden through subsequent calls.
- * <p>
- * 	For example, calling <code>g.append(E1.<jk>class</jk>,E2.<jk>class</jk>).append(E3.<jk>class</jk>,E4.<jk>class</jk>)</code>
- * 	will result in the order <code>E3, E4, E1, E2</code>.
- *
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<jc>// Create an encoder group with support for gzip compression.</jc>
- * 	EncoderGroup g = <jk>new</jk> EncoderGroup().append(GzipEncoder.<jk>class</jk>);
- *
- * 	<jc>// Should return "gzip"</jc>
- * 	String matchedCoding = g.findMatch(<js>"compress;q=1.0, gzip;q=0.8, identity;q=0.5, *;q=0"</js>);
- *
- * 	<jc>// Get the encoder</jc>
- * 	IEncoder encoder = g.getEncoder(matchedCoding);
- * </p>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class EncoderGroup {
-
-	private Map<String,EncoderEntry> entryMap = new TreeMap<String,EncoderEntry>(String.CASE_INSENSITIVE_ORDER);
-	private LinkedList<EncoderEntry> tempEntries = new LinkedList<EncoderEntry>();
-	private EncoderEntry[] entries;
-
-	/**
-	 * Returns the coding string for the matching encoder that can handle the specified <code>Accept-Encoding</code>
-	 * 	or <code>Content-Encoding</code> header value.
-	 * <p>
-	 * 	Returns <jk>null</jk> if no encoders can handle it.
-	 * <p>
-	 * 	This method is fully compliant with the RFC2616/14.3 and 14.11 specifications.
-	 *
-	 * @param acceptEncoding The <code>Accept-Encoding</code> or <code>Content-Encoding</code> value.
-	 * @return The coding value (e.g. <js>"gzip"</js>).
-	 */
-	public String findMatch(String acceptEncoding) {
-		if (getEntries().length == 0)
-			return null;
-
-		MediaRange[] ae = MediaRange.parse(acceptEncoding);
-
-		if (ae.length == 0)
-			ae = MediaRange.parse("*");
-
-		for (MediaRange a : ae)
-			for (EncoderEntry e : getEntries())
-				for (MediaRange a2 : e.encodingRanges)
-					if (a.matches(a2))
-						return a2.getType();
-
-		return null;
-	}
-
-	/**
-	 * Adds the specified encoders to this group.
-	 *
-	 * @param e The encoders to instantiate and add to this group.
-	 * @return This object (for method chaining).
-	 * @throws Exception If an instantiation error occurred.
-	 */
-	public EncoderGroup append(Class<? extends Encoder>...e) throws Exception {
-		for (Class<? extends Encoder> r : reverse(e))
-			append(r.newInstance());
-		return this;
-	}
-
-	/**
-	 * Adds the specified encoders to this group.
-	 *
-	 * @param e The encoder to instantiate and add to this group.
-	 * @return This object (for method chaining).
-	 * @throws Exception If an instantiation error occurred.
-	 */
-	public EncoderGroup append(Class<? extends Encoder> e) throws Exception {
-		append(e.newInstance());
-		return this;
-	}
-
-	/**
-	 * Adds the specified encoders to this group.
-	 *
-	 * @param e The encoders to add to this group.
-	 * @return This object (for method chaining).
-	 */
-	public EncoderGroup append(Encoder...e) {
-		entries = null;
-		for (Encoder r : reverse(e)) {
-			EncoderEntry ee = new EncoderEntry(r);
-			tempEntries.addFirst(ee);
-			for (String s : ee.encodings)
-				this.entryMap.put(s, ee);
-		}
-		return this;
-	}
-
-	/**
-	 * Adds the encoders in the specified group to this group.
-	 *
-	 * @param g The group containing the encoders to add to this group.
-	 * @return This object (for method chaining).
-	 */
-	public EncoderGroup append(EncoderGroup g) {
-		for (EncoderEntry e : reverse(g.getEntries()))
-			append(e.encoder);
-		return this;
-	}
-
-	/**
-	 * Returns the encoder registered with the specified coding (e.g. <js>"gzip"</js>).
-	 *
-	 * @param coding The coding string.
-	 * @return The encoder, or <jk>null</jk> if encoder isn't registered with that coding.
-	 */
-	public Encoder getEncoder(String coding) {
-		EncoderEntry e = entryMap.get(coding);
-		return (e == null ? null : e.encoder);
-	}
-
-	/**
-	 * Returns the set of codings supported by all encoders in this group.
-	 *
-	 * @return The set of codings supported by all encoders in this group.  Never <jk>null</jk>.
-	 */
-	public List<String> getSupportedEncodings() {
-		List<String> l = new ArrayList<String>();
-		for (EncoderEntry e : getEntries())
-			for (String enc : e.encodings)
-				if (! l.contains(enc))
-					l.add(enc);
-		return l;
-	}
-
-	private EncoderEntry[] getEntries() {
-		if (entries == null)
-			entries = tempEntries.toArray(new EncoderEntry[tempEntries.size()]);
-		return entries;
-	}
-
-	static class EncoderEntry {
-		Encoder encoder;
-		MediaRange[] encodingRanges;
-		String[] encodings;
-
-		EncoderEntry(Encoder e) {
-			encoder = e;
-
-			encodings = new String[e.getCodings().length];
-			int i = 0;
-			for (String enc : e.getCodings())
-				encodings[i++] = enc;
-
-			List<MediaRange> l = new LinkedList<MediaRange>();
-			for (i = 0; i < encodings.length; i++)
-				l.addAll(Arrays.asList(MediaRange.parse(encodings[i])));
-			encodingRanges = l.toArray(new MediaRange[l.size()]);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder$1.class
deleted file mode 100755
index 9a33700..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder$1.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/encoders/GzipEncoder.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder.class
deleted file mode 100755
index c0325ac..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder.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/encoders/GzipEncoder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder.java
deleted file mode 100755
index 5b2886a..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/GzipEncoder.java
+++ /dev/null
@@ -1,44 +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.encoders;
-
-import java.io.*;
-import java.util.zip.*;
-
-/**
- * Encoder for handling <js>"gzip"</js> encoding and decoding.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class GzipEncoder extends Encoder {
-
-	@Override /* Encoder */
-	public OutputStream getOutputStream(OutputStream os) throws IOException {
-		return new GZIPOutputStream(os) {
-			@Override /* OutputStream */
-			public final void close() throws IOException {
-				finish();
-				super.close();
-			}
-		};
-	}
-
-	@Override /* Encoder */
-	public InputStream getInputStream(InputStream is) throws IOException {
-		return new GZIPInputStream(is);
-	}
-
-	/**
-	 * Returns <code>[<js>"gzip"</js>]</code>.
-	 */
-	@Override /* Encoder */
-	public String[] getCodings() {
-		return new String[]{"gzip"};
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/IdentityEncoder.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/IdentityEncoder.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/IdentityEncoder.class
deleted file mode 100755
index a0b1737..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/IdentityEncoder.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/encoders/IdentityEncoder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/IdentityEncoder.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/IdentityEncoder.java
deleted file mode 100755
index 7fcfff9..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/IdentityEncoder.java
+++ /dev/null
@@ -1,43 +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.encoders;
-
-import java.io.*;
-
-/**
- * Encoder for handling <js>"identity"</js> encoding and decoding (e.g. no encoding at all).
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class IdentityEncoder extends Encoder {
-
-	/** Singleton */
-	public static final IdentityEncoder INSTANCE = new IdentityEncoder();
-
-	/** Constructor. */
-	protected IdentityEncoder() {}
-
-	@Override /* Encoder */
-	public InputStream getInputStream(InputStream is) throws IOException {
-		return is;
-	}
-
-	@Override /* Encoder */
-	public OutputStream getOutputStream(OutputStream os) throws IOException {
-		return os;
-	}
-
-	/**
-	 * Returns <code>[<js>"identity"</js>]</code>.
-	 */
-	@Override /* Encoder */
-	public String[] getCodings() {
-		return new String[]{"identity"};
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/package.html
deleted file mode 100755
index c536ac9..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/encoders/package.html
+++ /dev/null
@@ -1,53 +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>Encoder 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>
-
-</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/filter/AnnotationBeanFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/AnnotationBeanFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/AnnotationBeanFilter.class
deleted file mode 100755
index 178f374..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/AnnotationBeanFilter.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/filter/AnnotationBeanFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/AnnotationBeanFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/AnnotationBeanFilter.java
deleted file mode 100755
index 3199113..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/AnnotationBeanFilter.java
+++ /dev/null
@@ -1,63 +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.filter;
-
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-
-/**
- * Bean filter constructed from a {@link Bean @Bean} annotation found on a class.
- * <p>
- * <b>*** Internal class - Not intended for external use ***</b>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type that this filter applies to.
- */
-public final class AnnotationBeanFilter<T> extends BeanFilter<T> {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param annotatedClass The class found to have a {@link Bean @Bean} annotation.
-	 * @param annotations The {@link Bean @Bean} annotations found on the class and all parent classes in child-to-parent order.
-	 */
-	public AnnotationBeanFilter(Class<T> annotatedClass, List<Bean> annotations) {
-		super(annotatedClass);
-
-		ListIterator<Bean> li = annotations.listIterator(annotations.size());
-		while (li.hasPrevious()) {
-			Bean b = li.previous();
-
-			if (b.properties().length > 0)
-				setProperties(b.properties());
-
-			if (b.excludeProperties().length > 0)
-				setExcludeProperties(b.excludeProperties());
-
-			setPropertyNamer(b.propertyNamer());
-
-			if (b.interfaceClass() != Object.class)
-				setInterfaceClass(b.interfaceClass());
-
-			if (b.stopClass() != Object.class)
-				setStopClass(b.stopClass());
-
-			if (! b.subTypeProperty().isEmpty()) {
-				setSubTypeProperty(b.subTypeProperty());
-
-				LinkedHashMap<Class<?>,String> subTypes = new LinkedHashMap<Class<?>,String>();
-				for (BeanSubType bst : b.subTypes())
-					subTypes.put(bst.type(), bst.id());
-
-				setSubTypes(subTypes);
-			}
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/BeanFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/BeanFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/BeanFilter.class
deleted file mode 100755
index 2392596..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/BeanFilter.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/filter/BeanFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/BeanFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/BeanFilter.java
deleted file mode 100755
index 0f91aae..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/BeanFilter.java
+++ /dev/null
@@ -1,472 +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.filter;
-
-import java.beans.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-
-/**
- * Parent class for all bean filters.
- * <p>
- * 	Bean filters are used to control aspects of how beans are handled during serialization and parsing.
- * <p>
- * 	This class can be considered a programmatic equivalent to using the {@link Bean @Bean} annotation on bean classes.
- * 	Thus, it can be used to perform the same function as the <code>@Bean</code> annotation when you don't have
- * 		the ability to annotate those classes (e.g. you don't have access to the source code).
- * <p>
- * 	Note that value returned by the {@link Filter#forClass()} method is automatically determined through reflection
- * 		when the no-arg constructor is used.
- *
- * <p>
- * 	When defining bean filters, you can either call the setters in the contructor, or override getters.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<jc>// Create our serializer with a filter.</jc>
- * 	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(AddressFilter.<jk>class</jk>);
- *
- * 	Address a = <jk>new</jk> Address();
- * 	String json = s.serialize(a); <jc>// Serializes only street, city, state.</jc>
- *
- * 	<jc>// Filter class defined via setters</jc>
- * 	<jk>public class</jk> AddressFilter <jk>extends</jk> BeanFilter&lt;Address&gt; {
- * 		<jk>public</jk> AddressFilter() {
- * 			setProperties(<js>"street"</js>,<js>"city"</js>,<js>"state"</js>);
- * 		}
- * 	}
- *
- * 	<jc>// Filter class defined by overriding getters</jc>
- * 	<jk>public class</jk> AddressFilter <jk>extends</jk> BeanFilter&lt;Address&gt; {
- * 		<jk>public</jk> String[] getProperties() {
- * 			<jk>return new</jk> String[]{<js>"street"</js>,<js>"city"</js>,<js>"state"</js>};
- * 		}
- * 	}
- * </p>
- * <p>
- * 	The examples in this class use the setters approach.
- *
- * <h6 class='topic'>Additional information</h6>
- * 	See {@link com.ibm.juno.core.filter} for more information.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type that this filter applies to.
- */
-public abstract class BeanFilter<T> extends Filter {
-
-	private String[] properties, excludeProperties;
-	private LinkedHashMap<Class<?>, String> subTypes;
-	private String subTypeAttr;
-	private Class<? extends PropertyNamer> propertyNamer;
-	private Class<?> interfaceClass, stopClass;
-
-	/**
-	 * Constructor that determines the for-class value using reflection.
-	 */
-	@SuppressWarnings("unchecked")
-	public BeanFilter() {
-		super();
-		this.type = FilterType.BEAN;
-
-		Class<?> c = this.getClass().getSuperclass();
-		Type t = this.getClass().getGenericSuperclass();
-		while (c != BeanFilter.class) {
-			t = c.getGenericSuperclass();
-			c = c.getSuperclass();
-		}
-
-		// Attempt to determine the T and G classes using reflection.
-		if (t instanceof ParameterizedType) {
-			ParameterizedType pt = (ParameterizedType)t;
-			Type[] pta = pt.getActualTypeArguments();
-			if (pta.length > 0) {
-				Type nType = pta[0];
-				if (nType instanceof Class)
-					this.forClass = (Class<T>)nType;
-
-				else
-					throw new RuntimeException("Unsupported parameter type: " + nType);
-			}
-		}
-	}
-
-	/**
-	 * Constructor that specifies the for-class explicitly.
-	 * <p>
-	 * This constructor only needs to be called when the class type cannot be inferred through reflection.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> SomeArbitraryFilter <jk>extends</jk> BeanFilter&lt?&gt; {
-	 * 		<jk>public</jk> SomeArbitraryFilter(Class&lt?&gt; forClass) {
-	 * 			<jk>super</jk>(forClass);
-	 * 			...
-	 * 		}
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param forClass The class that this bean filter applies to.
-	 */
-	public BeanFilter(Class<T> forClass) {
-		super(forClass);
-		this.type = FilterType.BEAN;
-	}
-
-	/**
-	 * Returns the set and order of names of properties associated with a bean class.
-	 *
-	 * @see #setProperties(String...)
-	 * @return The name of the properties associated with a bean class, or <jk>null</jk> if all bean properties should be used.
-	 */
-	public String[] getProperties() {
-		return properties;
-	}
-
-	/**
-	 * Specifies the set and order of names of properties associated with a bean class.
-	 * <p>
-	 * 	The order specified is the same order that the entries will be returned by the {@link BeanMap#entrySet()} and related methods.
-	 * <p>
-	 * 	This method is an alternative to using the {@link Bean#properties()} annotation on a class.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Create our serializer with a filter.</jc>
-	 * 	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(AddressFilter.<jk>class</jk>);
-	 *
-	 * 	Address a = <jk>new</jk> Address();
-	 * 	String json = s.serialize(a); <jc>// Serializes only street, city, state.</jc>
-	 *
-	 * 	<jc>// Filter class</jc>
-	 * 	<jk>public class</jk> AddressFilter <jk>extends</jk> BeanFilter&lt;Address&gt; {
-	 * 		<jk>public</jk> AddressFilter() {
-	 * 			setProperties(<js>"street"</js>,<js>"city"</js>,<js>"state"</js>);
-	 * 		}
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param properties The name of the properties associated with a bean class.
-	 * @return This object (for method chaining).
-	 */
-	public BeanFilter<T> setProperties(String...properties) {
-		this.properties = properties;
-		return this;
-	}
-
-	/**
-	 * Returns the list of properties to ignore on a bean.
-	 *
-	 * @see #setExcludeProperties(String...)
-	 * @return The name of the properties to ignore on a bean, or <jk>null</jk> to not ignore any properties.
-	 */
-	public String[] getExcludeProperties() {
-		return excludeProperties;
-	}
-
-	/**
-	 * Specifies a list of properties to ignore on a bean.
-	 * <p>
-	 * 	This method is an alternative to using the {@link Bean#excludeProperties()} annotation on a class.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Create our serializer with a filter.</jc>
-	 * 	WriterSerializer s = <jk>new</jk> JsonSerializer().addFilters(NoCityOrStateFilter.<jk>class</jk>);
-	 *
-	 * 	Address a = <jk>new</jk> Address();
-	 * 	String json = s.serialize(a); <jc>// Excludes city and state.</jc>
-	 *
-	 * 	<jc>// Filter class</jc>
-	 * 	<jk>public class</jk> NoCityOrStateFilter <jk>extends</jk> BeanFilter&lt;Address&gt; {
-	 * 		<jk>public</jk> AddressFilter() {
-	 * 			setExcludeProperties(<js>"city"</js>,<js>"state"</js>);
-	 * 		}
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param excludeProperties The name of the properties to ignore on a bean class.
-	 * @return This object (for method chaining).
-	 */
-	public BeanFilter<T> setExcludeProperties(String...excludeProperties) {
-		this.excludeProperties = excludeProperties;
-		return this;
-	}
-
-	/**
-	 * Returns the {@link PropertyNamer} associated with the bean to tailor the names of bean properties.
-	 *
-	 * @see #setPropertyNamer(Class)
-	 * @return The property namer class, or <jk>null</jk> if no property namer is associated with this bean property.
-	 */
-	public Class<? extends PropertyNamer> getPropertyNamer() {
-		return propertyNamer;
-	}
-
-	/**
-	 * Associates a {@link PropertyNamer} with this bean to tailor the names of the bean properties.
-	 * <p>
-	 * 	Property namers are used to transform bean property names from standard form to some other form.
-	 * 	For example, the {@link PropertyNamerDashedLC} will convert property names to dashed-lowercase, and
-	 * 		these will be used as attribute names in JSON, and element names in XML.
-	 * <p>
-	 * 	This method is an alternative to using the {@link Bean#propertyNamer()} annotation on a class.
-	 *
-	 * @param propertyNamer The property namer class.
-	 * @return This object (for method chaining).
-	 */
-	public BeanFilter<T> setPropertyNamer(Class<? extends PropertyNamer> propertyNamer) {
-		this.propertyNamer = propertyNamer;
-		return this;
-	}
-
-	/**
-	 * Returns the name of the sub type property associated with the bean class.
-	 *
-	 * @see #setSubTypeProperty(String)
-	 * @return The sub type property name, or <jk>null</jk> if bean has no subtypes defined.
-	 */
-	public String getSubTypeProperty() {
-		return subTypeAttr;
-	}
-
-	/**
-	 * Defines a virtual property on a superclass that identifies bean subtype classes.
-	 * <p>
-	 * 	In the following example, the abstract class has two subclasses that are differentiated
-	 * 		by a property called <code>subType</code>
-	 *
-	 * <p class='bcode'>
-	 * 	<jc>// Abstract superclass</jc>
-	 * 	<jk>public abstract class</jk> A {
-	 * 		<jk>public</jk> String <jf>f0</jf> = <js>"f0"</js>;
-	 * 	}
-	 *
-	 * 	<jc>// Subclass 1</jc>
-	 * 	<jk>public class</jk> A1 <jk>extends</jk> A {
-	 * 		<jk>public</jk> String <jf>f1</jf>;
-	 * 	}
-	 *
-	 * 	<jc>// Subclass 2</jc>
-	 * 	<jk>public class</jk> A2 <jk>extends</jk> A {
-	 * 		<jk>public</jk> String <jf>f2</jf>;
-	 * 	}
-	 *
-	 * 	<jc>// Filter for defining subtypes</jc>
-	 * 	<jk>public class</jk> AFilter <jk>extends</jk> BeanFilter&lt;A&gt; {
-	 * 		<jk>public</jk> AFilter() {
-	 * 			setSubTypeProperty(<js>"subType"</js>);
-	 * 			addSubType(Al.<jk>class</jk>, <js>"A1"</js>);
-	 * 			addSubType(A2.<jk>class</jk>, <js>"A2"</js>);
-	 * 		}
-	 * 	}
-	 * </p>
-	 * <p>
-	 * 	The following shows what happens when serializing a subclassed object to JSON:
-	 * <p class='bcode'>
-	 * 	JsonSerializer s = <jk>new</jk> JsonSerializer().addFilters(AFilter.<jk>class</jk>);
-	 * 	A1 a1 = <jk>new</jk> A1();
-	 * 	a1.<jf>f1</jf> = <js>"f1"</js>;
-	 * 	String r = s.serialize(a1);
-	 * 	<jsm>assertEquals</jsm>(<js>"{subType:'A1',f1:'f1',f0:'f0'}"</js>, r);
-	 * </p>
-	 * <p>
-	 * 	The following shows what happens when parsing back into the original object.
-	 * <p class='bcode'>
-	 * 	JsonParser p = <jk>new</jk> JsonParser().addFilters(AFilter.<jk>class</jk>);
-	 * 	A a = p.parse(r, A.<jk>class</jk>);
-	 * 	<jsm>assertTrue</jsm>(a <jk>instanceof</jk> A1);
-	 * </p>
-	 * <p>
-	 * 	This method is an alternative to using the {@link Bean#subTypeProperty()} annotation on a class.
-	 *
-	 * @param subTypeAttr The name of the attribute representing the subtype.
-	 * @return This object (for method chaining).
-	 */
-	public BeanFilter<T> setSubTypeProperty(String subTypeAttr) {
-		this.subTypeAttr = subTypeAttr;
-		return this;
-	}
-
-	/**
-	 * Returns the subtypes associated with the bean class.
-	 *
-	 * @see #setSubTypeProperty(String)
-	 * @return The set of sub types associated with this bean class, or <jk>null</jk> if bean has no subtypes defined.
-	 */
-	public LinkedHashMap<Class<?>, String> getSubTypes() {
-		return subTypes;
-	}
-
-	/**
-	 * Specifies the set of subclasses of this bean class in addition to a string identifier for that subclass.
-	 *
-	 * @see #setSubTypeProperty(String)
-	 * @param subTypes the map of subtype classes to subtype identifier strings.
-	 * @return This object (for method chaining).
-	 */
-	public BeanFilter<T> setSubTypes(LinkedHashMap<Class<?>, String> subTypes) {
-		this.subTypes = subTypes;
-		return this;
-	}
-
-	/**
-	 * Convenience method for adding a single subtype in leu of using {@link #setSubTypes(LinkedHashMap)} in one call.
-	 *
-	 * @see #setSubTypeProperty(String)
-	 * @param c The subtype class.
-	 * @param id The subtype identifier string for the specified subtype class.
-	 * @return This object (for method chaining).
-	 */
-	public BeanFilter<T> addSubType(Class<?> c, String id) {
-		if (subTypes == null)
-			subTypes = new LinkedHashMap<Class<?>, String>();
-		subTypes.put(c, id);
-		return this;
-	}
-
-	/**
-	 * Returns the interface class associated with this class.
-	 *
-	 * @see #setInterfaceClass(Class)
-	 * @return The interface class associated with this class, or <jk>null</jk> if no interface class is associated.
-	 */
-	public Class<?> getInterfaceClass() {
-		return interfaceClass;
-	}
-
-	/**
-	 * Identifies a class to be used as the interface class for this and all subclasses.
-	 * <p>
-	 * 	Functionally equivalent to using the {@link Bean#interfaceClass()} annotation.
-	 * <p>
-	 * 	When specified, only the list of properties defined on the interface class will be used during serialization.
-	 * 	Additional properties on subclasses will be ignored.
-	 * <p class='bcode'>
-	 * 	<jc>// Parent class</jc>
-	 * 	<jk>public abstract class</jk> A {
-	 * 		<jk>public</jk> String <jf>f0</jf> = <js>"f0"</js>;
-	 * 	}
-	 *
-	 * 	<jc>// Sub class</jc>
-	 * 	<jk>public class</jk> A1 <jk>extends</jk> A {
-	 * 		<jk>public</jk> String <jf>f1</jf> = <js>"f1"</js>;
-	 * 	}
-	 *
-	 * 	<jc>// Filter class</jc>
-	 * 	<jk>public class</jk> AFilter <jk>extends</jk> BeanFilter&lt;A&gt; {
-	 * 		<jk>public</jk> AFilter() {
-	 * 			setInterfaceClass(A.<jk>class</jk>);
-	 * 		}
-	 * 	}
-	 *
-	 * 	JsonSerializer s = new JsonSerializer().addFilters(AFilter.<jk>class</jk>);
-	 * 	A1 a1 = <jk>new</jk> A1();
-	 * 	String r = s.serialize(a1);
-	 * 	<jsm>assertEquals</jsm>(<js>"{f0:'f0'}"</js>, r);  <jc>// Note f1 is not serialized</jc>
-	 * </p>
-	 * <p>
-	 * 	Note that this filter can be used on the parent class so that it filters to all child classes,
-	 * 		or can be set individually on the child classes.
-	 * <p>
-	 * 	This method is an alternative to using the {@link Bean#interfaceClass()}} annotation.
-	 *
-	 * @param interfaceClass The interface class.
-	 * @return This object (for method chaining).
-	 */
-	public BeanFilter<T> setInterfaceClass(Class<?> interfaceClass) {
-		this.interfaceClass = interfaceClass;
-		return this;
-	}
-
-	/**
-	 * Returns the stop class associated with this class.
-	 *
-	 * @see #setStopClass(Class)
-	 * @return The stop class associated with this class, or <jk>null</jk> if no stop class is associated.
-	 */
-	public Class<?> getStopClass() {
-		return stopClass;
-	}
-
-	/**
-	 * Identifies a stop class for this class and all subclasses.
-	 * <p>
-	 * 	Functionally equivalent to using the {@link Bean#stopClass()} annotation.
-	 * <p>
-	 * 	Identical in purpose to the stop class specified by {@link Introspector#getBeanInfo(Class, Class)}.
-	 * 	Any properties in the stop class or in its baseclasses will be ignored during analysis.
-	 * <p>
-	 * 	For example, in the following class hierarchy, instances of <code>C3</code> will include property <code>p3</code>, but
-	 * 		not <code>p1</code> or <code>p2</code>.
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> C1 {
-	 * 		<jk>public int</jk> getP1();
-	 * 	}
-	 *
-	 * 	<jk>public class</jk> C2 <jk>extends</jk> C1 {
-	 * 		<jk>public int</jk> getP2();
-	 * 	}
-	 *
-	 * 	<ja>@Bean</ja>(stopClass=C2.<jk>class</jk>)
-	 * 	<jk>public class</jk> C3 <jk>extends</jk> C2 {
-	 * 		<jk>public int</jk> getP3();
-	 * 	}
-	 * </p>
-	 *
-	 * @param stopClass The stop class.
-	 * @return This object (for method chaining).
-	 */
-	public BeanFilter<T> setStopClass(Class<?> stopClass) {
-		this.stopClass = stopClass;
-		return this;
-	}
-
-	/**
-	 * Subclasses can override this property to convert property values to some other
-	 * 	object just before serialization.
-	 *
-	 * @param bean The bean from which the property was read.
-	 * @param name The property name.
-	 * @param value The value just extracted from calling the bean getter.
-	 * @return The value to serialize.  Default is just to return the existing value.
-	 */
-	public Object readProperty(Object bean, String name, Object value) {
-		return value;
-	}
-
-	/**
-	 * Subclasses can override this property to convert property values to some other
-	 * 	object just before calling the bean setter.
-	 *
-	 * @param bean The bean from which the property was read.
-	 * @param name The property name.
-	 * @param value The value just parsed.
-	 * @return <jk>true</jk> if we set the property, <jk>false</jk> if we should allow the
-	 * 	framework to call the setter.
-	 */
-	public boolean writeProperty(Object bean, String name, Object value) {
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter$FilterType.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter$FilterType.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter$FilterType.class
deleted file mode 100755
index c5fe96d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter$FilterType.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/filter/Filter$NULL.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter$NULL.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter$NULL.class
deleted file mode 100755
index 8f2d92b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter$NULL.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/filter/Filter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter.class
deleted file mode 100755
index 96e2efc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter.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/filter/Filter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter.java
deleted file mode 100755
index 153b679..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/Filter.java
+++ /dev/null
@@ -1,134 +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.filter;
-
-import com.ibm.juno.core.*;
-
-/**
- * Parent class for all bean and POJO filters.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Filters are used to alter how POJOs are handled by bean contexts (and subsequently serializers and parsers).
- * 	The are a very powerful feature of the Juno framework that allows virtually any POJO to be serialized and parsed.
- * 	For example, they can be used to...
- * <ul>
- * 	<li>Convert a non-serializable POJO into a serializable POJO during serialization (and optionally vis-versa during parsing).
- * 	<li>Control various aspects of beans, such as what properties are visible, bean subclasses, etc...
- * </ul>
- * <p>
- * 	There are 2 subclasses of filters:
- * <ul>
- * 	<li>{@link PojoFilter} - Non-bean filters for converting POJOs into serializable equivalents.
- * 	<li>{@link BeanFilter} - Bean filters for configuring how beans are handled.
- * </ul>
- * <p>
- * 	Filters are associated with bean contexts (and serializers/parsers) through the {@link BeanContextFactory#addFilters(Class[])}
- * 		and {@link CoreApi#addFilters(Class[])} methods.
- *
- *
- * <h6 class='topic'>Additional information</h6>
- * 	See {@link com.ibm.juno.core.filter} for more information.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class Filter {
-
-	/** Represents no filter. */
-	public static class NULL extends Filter {}
-
-	/** The filter subtype */
-	public static enum FilterType {
-		/** PojoFilter */
-		POJO,
-		/** BeanFilter */
-		BEAN
-	}
-
-	/** The class that this filter applies to. */
-	protected Class<?> forClass;
-
-	/** The bean context that this filter instance belongs to. */
-	protected BeanContext beanContext;
-
-	/** Whether this is a BeanFilter or PojoFilter. */
-	protected FilterType type = FilterType.POJO;
-
-	Filter() {}
-
-	Filter(Class<?> forClass) {
-		this.forClass = forClass;
-	}
-
-
-	/**
-	 * Returns the class that this filter applies to.
-	 *
-	 * @return The class that this filter applies to.
-	 */
-	public Class<?> forClass() {
-		return forClass;
-	}
-
-	/**
-	 * Returns the implementation class.
-	 * Useful for debugging when calling {@link BeanContext#toString()}.
-	 *
-	 * @return The implementation class of this filter.
-	 */
-	public Class<?> getImplClass() {
-		return this.getClass();
-	}
-
-	/**
-	 * Returns whether this is an instance of {@link PojoFilter} or {@link BeanFilter}.
-	 *
-	 * @return The filter type.
-	 */
-	public FilterType getType() {
-		return type;
-	}
-
-	/**
-	 * Returns the {@link BeanContext} that created this filter.
-	 *
-	 * @return The bean context that created this filter.
-	 */
-	protected BeanContext getBeanContext() {
-		return beanContext;
-	}
-
-	/**
-	 * Sets the bean context that this filter instance was created by.
-	 *
-	 * @param beanContext The bean context that created this filter.
-	 * @return This object (for method chaining).
-	 */
-	public Filter setBeanContext(BeanContext beanContext) {
-		this.beanContext = beanContext;
-		return this;
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		return getClass().getName().hashCode() + forClass().getName().hashCode();
-	}
-
-	/**
-	 * Checks if the specified filter class is the same as this one.
-	 *
-	 * @param f The filter to check.
-	 * @return <jk>true</jk> if the specified filter is equivalent to this one.
-	 */
-	public boolean isSameAs(Filter f) {
-		return f.getClass().equals(getClass()) && f.forClass().equals(forClass());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/InterfaceBeanFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/InterfaceBeanFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/InterfaceBeanFilter.class
deleted file mode 100755
index 6df5a7d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/InterfaceBeanFilter.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/filter/InterfaceBeanFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/InterfaceBeanFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/InterfaceBeanFilter.java
deleted file mode 100755
index 4496c79..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/InterfaceBeanFilter.java
+++ /dev/null
@@ -1,35 +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.filter;
-
-import com.ibm.juno.core.*;
-
-
-/**
- * Simple bean filter that simply identifies a class to be used as an interface
- * 	class for all child classes.
- * <p>
- * 	These objects are created when you pass in non-<code>Filter</code> classes to {@link BeanContextFactory#addFilters(Class...)},
- * 		and are equivalent to adding a <code><ja>@Bean</ja>(interfaceClass=Foo.<jk>class</jk>)</code> annotation on the <code>Foo</code> class.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type that this filter applies to.
- */
-public class InterfaceBeanFilter<T> extends BeanFilter<T> {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param interfaceClass The class to use as an interface on all child classes.
-	 */
-	public InterfaceBeanFilter(Class<T> interfaceClass) {
-		super(interfaceClass);
-		setInterfaceClass(interfaceClass);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter$NULL.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter$NULL.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter$NULL.class
deleted file mode 100755
index d072bf8..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter$NULL.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/filter/PojoFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter.class
deleted file mode 100755
index 8893adc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filter/PojoFilter.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_BeanFilter$E3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_BeanFilter$E3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_BeanFilter$E3.class
deleted file mode 100755
index b914073..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_BeanFilter$E3.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_ByteArrayBase64Filter$A$4.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_ByteArrayBase64Filter$A$4.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_ByteArrayBase64Filter$A$4.class
deleted file mode 100755
index 24c00d2..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_ByteArrayBase64Filter$A$4.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/html/CT_Common$E1$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/html/CT_Common$E1$3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/html/CT_Common$E1$3.class
deleted file mode 100755
index 04b5e7a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/html/CT_Common$E1$3.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/jena/CT_Common$E1$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/jena/CT_Common$E1$2.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/jena/CT_Common$E1$2.class
deleted file mode 100755
index 59a5506..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/jena/CT_Common$E1$2.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/jena/CT_Common$E1$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/jena/CT_Common$E1$3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/jena/CT_Common$E1$3.class
deleted file mode 100755
index 47c8572..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/jena/CT_Common$E1$3.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/BrokenCognosOutput.txt
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/BrokenCognosOutput.txt b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/BrokenCognosOutput.txt
deleted file mode 100755
index 948fe0b..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/json/BrokenCognosOutput.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"filterResultSet":{"secondaryOperations":[{"value":"RELEASE"}],"locationReference":[{"ref":"R1","di":"Type","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[1]/listColumnTitle/contents/textItem"},{"ref":"R2","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[1]/listColumnTitle"},{"ref":"R3","di":"ID","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[2]/listColumnTitle/contents/textItem"},{"ref":"R4","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[2]/listColumnTitle"},{"ref":"R5","di":"Name","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[3]/listColumnTitle/contents/textItem"},{"ref":"R6","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[3]/listColumnTitle"},{"ref":"R7","di":"CrossTrack URL","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listCo
 lumns/listColumn[4]/listColumnTitle/contents/textItem"},{"ref":"R8","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[4]/listColumnTitle"},{"ref":"R9","di":"Tooltip","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[5]/listColumnTitle/contents/textItem"},{"ref":"R10","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[5]/listColumnTitle"},{"ref":"R11","di":"Full Path","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[6]/listColumnTitle/contents/textItem"},{"ref":"R12","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[6]/listColumnTitle"},{"ref":"R13","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[7]/listColumnTitle/contents/textItem"},{"ref":"R14","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[7]/listColumnTitle"},{"ref":"R1
 5","di":"Risk Name","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[8]/listColumnTitle/contents/textItem"},{"ref":"R16","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[8]/listColumnTitle"},{"ref":"R17","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[9]/listColumnTitle/contents/textItem"},{"ref":"R18","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[9]/listColumnTitle"},{"ref":"R19","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[10]/listColumnTitle/contents/textItem"},{"ref":"R20","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[10]/listColumnTitle"},{"ref":"R21","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[11]/listColumnTitle/contents/textItem"},{"ref":"R22","loc":"./layouts/layout/reportPages/page/pageBody/conte
 nts/list/listColumns/listColumn[11]/listColumnTitle"},{"ref":"R23","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[12]/listColumnTitle/contents/textItem"},{"ref":"R24","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[12]/listColumnTitle"},{"ref":"R25","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[13]/listColumnTitle/contents/textItem"},{"ref":"R26","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[13]/listColumnTitle"},{"ref":"R27","di":"Control Name","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[14]/listColumnTitle/contents/textItem"},{"ref":"R28","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[14]/listColumnTitle"},{"ref":"R29","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[15]/listColumnTitle/contents/textItem
 "},{"ref":"R30","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[15]/listColumnTitle"},{"ref":"R31","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[16]/listColumnTitle/contents/textItem"},{"ref":"R32","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[16]/listColumnTitle"},{"ref":"R33","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[17]/listColumnTitle/contents/textItem"},{"ref":"R34","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[17]/listColumnTitle"},{"ref":"R35","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[18]/listColumnTitle/contents/textItem"},{"ref":"R36","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[18]/listColumnTitle"},{"ref":"R37","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColum
 ns"},{"ref":"R38","di":"Type","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[1]/listColumnBody/contents/textItem"},{"ref":"R39","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[1]/listColumnBody"},{"ref":"R40","di":"ID","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[2]/listColumnBody/contents/textItem"},{"ref":"R41","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[2]/listColumnBody"},{"ref":"R42","di":"Name","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[3]/listColumnBody/contents/textItem"},{"ref":"R43","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[3]/listColumnBody"},{"ref":"R44","di":"CrossTrack URL","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[4]/listColumnBody/contents/textItem"},{"ref":"R45","loc":"./la
 youts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[4]/listColumnBody"},{"ref":"R46","di":"Tooltip","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[5]/listColumnBody/contents/textItem"},{"ref":"R47","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[5]/listColumnBody"},{"ref":"R48","di":"Full Path","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[6]/listColumnBody/contents/textItem"},{"ref":"R49","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[6]/listColumnBody"},{"ref":"R50","di":"Risk ID","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[7]/listColumnBody/contents/textItem"},{"ref":"R51","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[7]/listColumnBody"},{"ref":"R52","di":"Risk Name","loc":"./layouts/layout/reportPages/page/pageBody/
 contents/list/listColumns/listColumn[8]/listColumnBody/contents/textItem"},{"ref":"R53","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[8]/listColumnBody"},{"ref":"R54","di":"Risk CrossTrack URL","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[9]/listColumnBody/contents/textItem"},{"ref":"R55","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[9]/listColumnBody"},{"ref":"R56","di":"Risk Tooltip","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[10]/listColumnBody/contents/textItem"},{"ref":"R57","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[10]/listColumnBody"},{"ref":"R58","di":"Risk Status","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[11]/listColumnBody/contents/textItem"},{"ref":"R59","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/li
 stColumns/listColumn[11]/listColumnBody"},{"ref":"R60","di":"Risk Full Path","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[12]/listColumnBody/contents/textItem"},{"ref":"R61","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[12]/listColumnBody"},{"ref":"R62","di":"Control ID","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[13]/listColumnBody/contents/textItem"},{"ref":"R63","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[13]/listColumnBody"},{"ref":"R64","di":"Control Name","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[14]/listColumnBody/contents/textItem"},{"ref":"R65","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[14]/listColumnBody"},{"ref":"R66","di":"Control CrossTrack URL","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColu
 mns/listColumn[15]/listColumnBody/contents/textItem"},{"ref":"R67","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[15]/listColumnBody"},{"ref":"R68","di":"Control Tooltip","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[16]/listColumnBody/contents/textItem"},{"ref":"R69","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[16]/listColumnBody"},{"ref":"R70","di":"Control Status","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[17]/listColumnBody/contents/textItem"},{"ref":"R71","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[17]/listColumnBody"},{"ref":"R72","di":"Control Full Path","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/listColumn[18]/listColumnBody/contents/textItem"},{"ref":"R73","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns/list
 Column[18]/listColumnBody"},{"ref":"R74","loc":"./layouts/layout/reportPages/page/pageBody/contents/list/listColumns"},{"ref":"R75","loc":"./layouts/layout/reportPages/page/pageBody/contents/list"},{"ref":"R76","loc":"./layouts/layout/reportPages/page/pageBody"},{"ref":"R77","loc":"./layouts/layout/reportPages/page"},{"ref":"R78","loc":"./layouts/layout/reportPages/page"}],"filterResult":[{"filterType":"OBJECT_ID","filterValue":"Process Data","reportElement":[{"lst":{"id":"Process Data","ref":"R75","style":["S75"],"colTitle":[{"ref":"R2","style":["S2"],"item":[{"txt":{"ref":"R1","ctx":"1","style":["S1"],"val":"Type","valTyp":"text"}}]},{"ref":"R4","style":["S4"],"item":[{"txt":{"ref":"R3","ctx":"2","style":["S3"],"val":"ID","valTyp":"text"}}]},{"ref":"R6","style":["S6"],"item":[{"txt":{"ref":"R5","ctx":"3","style":["S5"],"val":"Name","valTyp":"text"}}]},{"ref":"R8","style":["S8"],"item":[{"txt":{"ref":"R7","ctx":"4","style":["S7"],"val":"CrossTrack URL","valTyp":"text"}}]},{"ref":"R
 10","style":["S10"],"item":[{"txt":{"ref":"R9","ctx":"5","style":["S9"],"val":"Tooltip","valTyp":"text"}}]},{"ref":"R12","style":["S12"],"item":[{"txt":{"ref":"R11","ctx":"6","style":["S11"],"val":"Full Path","valTyp":"text"}}]},{"ref":"R14","style":["S14"],"item":[{"txt":{"ref":"R13","ctx":"7","style":["S13"],"val":"Risk ID","valTyp":"text"}}]},{"ref":"R16","style":["S16"],"item":[{"txt":{"ref":"R15","ctx":"8","style":["S15"],"val":"Risk Name","valTyp":"text"}}]},{"ref":"R18","style":["S18"],"item":[{"txt":{"ref":"R17","ctx":"9","style":["S17"],"val":"Risk CrossTrack URL","valTyp":"text"}}]},{"ref":"R20","style":["S20"],"item":[{"txt":{"ref":"R19","ctx":"10","style":["S19"],"val":"Risk Tooltip","valTyp":"text"}}]},{"ref":"R22","style":["S22"],"item":[{"txt":{"ref":"R21","ctx":"11","style":["S21"],"val":"Risk Status","valTyp":"text"}}]},{"ref":"R24","style":["S24"],"item":[{"txt":{"ref":"R23","ctx":"12","style":["S23"],"val":"Risk Full Path","valTyp":"text"}}]},{"ref":"R26","style":
 ["S26"],"item":[{"txt":{"ref":"R25","ctx":"13","style":["S25"],"val":"Control ID","valTyp":"text"}}]},{"ref":"R28","style":["S28"],"item":[{"txt":{"ref":"R27","ctx":"14","style":["S27"],"val":"Control Name","valTyp":"text"}}]},{"ref":"R30","style":["S30"],"item":[{"txt":{"ref":"R29","ctx":"15","style":["S29"],"val":"Control CrossTrack URL","valTyp":"text"}}]},{"ref":"R32","style":["S32"],"item":[{"txt":{"ref":"R31","ctx":"16","style":["S31"],"val":"Control Tooltip","valTyp":"text"}}]},{"ref":"R34","style":["S34"],"item":[{"txt":{"ref":"R33","ctx":"17","style":["S33"],"val":"Control Status","valTyp":"text"}}]},{"ref":"R36","style":["S36"],"item":[{"txt":{"ref":"R35","ctx":"18","style":["S35"],"val":"Control Full Path","valTyp":"text"}}]}],"group":{"row":[{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"19:20:21:22:23:24:25:26:27:28:29:30:31:32:33:34:35:36","style":["S38"],"val":"P","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","c
 tx":"20:19:21:22:23:24:25:26:27:28:29:30:31:32:33:34:35:36","style":["S40"],"val":"685","valTyp":"number","fmtVal":"685","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"21:19:20:22:23:24:25:26:27:28:29:30:31:32:33:34:35:36","style":["S42"],"val":"Get ready to work","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"22:19:20:21:23:24:25:26:27:28:29:30:31:32:33:34:35:36","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=685","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"23:19:20:21:22:24:25:26:27:28:29:30:31:32:33:34:35:36","style":["S46"],"val":"Created by Emily for Testing. This would hold all the subprocesses that I need to get ready to work in the morning","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"24:19:20:21:22:23:25:26:27:28:29:30:31:32:33:34:35:36","style":["S48"],"val
 ":"/Emily/Get ready to work","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"25:19:20:21:22:23:24:26:27:28:29:30:31:32:33:34:35:36","style":["S50"],"val":,"valErrorState":"NULL","valTyp":"number"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"26:19:20:21:22:23:24:25:27:28:29:30:31:32:33:34:35:36","style":["S52"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"27:19:20:21:22:23:24:25:26:28:29:30:31:32:33:34:35:36","style":["S54"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"28:19:20:21:22:23:24:25:26:27:29:30:31:32:33:34:35:36","style":["S56"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"29:19:20:21:22:23:24:25:26:27:28:30:31:32:33:34:35:36","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":
 ["S61"],"item":[{"txt":{"ref":"R60","ctx":"30:19:20:21:22:23:24:25:26:27:28:29:31:32:33:34:35:36","style":["S60"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"31:19:20:21:22:23:24:25:26:27:28:29:30:32:33:34:35:36","style":["S62"],"val":,"valErrorState":"NULL","valTyp":"number"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"32:19:20:21:22:23:24:25:26:27:28:29:30:31:33:34:35:36","style":["S64"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"33:19:20:21:22:23:24:25:26:27:28:29:30:31:32:34:35:36","style":["S66"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"34:19:20:21:22:23:24:25:26:27:28:29:30:31:32:33:35:36","style":["S68"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"35:19:20:21:22:23:24:25:26:
 27:28:29:30:31:32:33:34:36","style":["S70"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"36:19:20:21:22:23:24:25:26:27:28:29:30:31:32:33:34:35","style":["S72"],"val":,"valErrorState":"NULL","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"37:38:39:40:41:42:43:44:45:46:47:48:49:50:51:52:53:54","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"38:37:39:40:41:42:43:44:45:46:47:48:49:50:51:52:53:54","style":["S40"],"val":"688","valTyp":"number","fmtVal":"688","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"39:37:38:40:41:42:43:44:45:46:47:48:49:50:51:52:53:54","style":["S42"],"val":"Blowdry my hair","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"40:37:38:39:41:42:43:44:45:46:47:48:49:50:51:52:53:54","style":["S44"],"val":"ht
 tp://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=688","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"41:37:38:39:40:42:43:44:45:46:47:48:49:50:51:52:53:54","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"42:37:38:39:40:41:43:44:45:46:47:48:49:50:51:52:53:54","style":["S48"],"val":"/Emily/Get ready to work/Blowdry my hair","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"43:37:38:39:40:41:42:44:45:46:47:48:49:50:51:52:53:54","style":["S50"],"val":"701","valTyp":"number","fmtVal":"701","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"44:37:38:39:40:41:42:43:45:46:47:48:49:50:51:52:53:54","style":["S52"],"val":"R1","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"45:37:38:39:40:41:42:43:44:46:47:48:49:50:51:52:53:54","style":[
 "S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=701","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"46:37:38:39:40:41:42:43:44:45:47:48:49:50:51:52:53:54","style":["S56"],"val":"Broken hair dryer","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"47:37:38:39:40:41:42:43:44:45:46:48:49:50:51:52:53:54","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"48:37:38:39:40:41:42:43:44:45:46:47:49:50:51:52:53:54","style":["S60"],"val":"/Emily/Get ready to work/Broken hair dryer","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"49:37:38:39:40:41:42:43:44:45:46:47:48:50:51:52:53:54","style":["S62"],"val":"741","valTyp":"number","fmtVal":"741","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"50:37:38:39:40:41:42:43:44:45:4
 6:47:48:49:51:52:53:54","style":["S64"],"val":"C1","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"51:37:38:39:40:41:42:43:44:45:46:47:48:49:50:52:53:54","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=741","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"52:37:38:39:40:41:42:43:44:45:46:47:48:49:50:51:53:54","style":["S68"],"val":"Buy new hair dryer","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"53:37:38:39:40:41:42:43:44:45:46:47:48:49:50:51:52:54","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"54:37:38:39:40:41:42:43:44:45:46:47:48:49:50:51:52:53","style":["S72"],"val":"/Emily/Get ready to work/Broken hair dryer/Buy new hair dryer","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"55:56:57:58:59:60:61:62:63:
 64:65:66:67:68:69:70:71:72","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"56:55:57:58:59:60:61:62:63:64:65:66:67:68:69:70:71:72","style":["S40"],"val":"689","valTyp":"number","fmtVal":"689","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"57:55:56:58:59:60:61:62:63:64:65:66:67:68:69:70:71:72","style":["S42"],"val":"Brush my teeth","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"58:55:56:57:59:60:61:62:63:64:65:66:67:68:69:70:71:72","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=689","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"59:55:56:57:58:60:61:62:63:64:65:66:67:68:69:70:71:72","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"60:55:56:57:58:59:61:62:63:64:65:66:67
 :68:69:70:71:72","style":["S48"],"val":"/Emily/Get ready to work/Brush my teeth","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"61:55:56:57:58:59:60:62:63:64:65:66:67:68:69:70:71:72","style":["S50"],"val":"703","valTyp":"number","fmtVal":"703","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"62:55:56:57:58:59:60:61:63:64:65:66:67:68:69:70:71:72","style":["S52"],"val":"R2","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"63:55:56:57:58:59:60:61:62:64:65:66:67:68:69:70:71:72","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=703","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"64:55:56:57:58:59:60:61:62:63:65:66:67:68:69:70:71:72","style":["S56"],"val":"Broken tooth brush","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"65:55:56:57:58:59:60:61:62
 :63:64:66:67:68:69:70:71:72","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"66:55:56:57:58:59:60:61:62:63:64:65:67:68:69:70:71:72","style":["S60"],"val":"/Emily/Get ready to work/Broken tooth brush","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"67:55:56:57:58:59:60:61:62:63:64:65:66:68:69:70:71:72","style":["S62"],"val":"750","valTyp":"number","fmtVal":"750","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"68:55:56:57:58:59:60:61:62:63:64:65:66:67:69:70:71:72","style":["S64"],"val":"C2","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"69:55:56:57:58:59:60:61:62:63:64:65:66:67:68:70:71:72","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=750","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"70:55:5
 6:57:58:59:60:61:62:63:64:65:66:67:68:69:71:72","style":["S68"],"val":"Buy tooth brush","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"71:55:56:57:58:59:60:61:62:63:64:65:66:67:68:69:70:72","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"72:55:56:57:58:59:60:61:62:63:64:65:66:67:68:69:70:71","style":["S72"],"val":"/Emily/Get ready to work/Broken tooth brush/Buy tooth brush","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"73:56:74:75:76:77:78:79:80:81:82:83:84:85:86:87:88:89","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"56:73:74:75:76:77:78:79:80:81:82:83:84:85:86:87:88:89","style":["S40"],"val":"689","valTyp":"number","fmtVal":"689","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"74:73:56:75:76:77:78:79:80:81
 :82:83:84:85:86:87:88:89","style":["S42"],"val":"Brush my teeth","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"75:73:56:74:76:77:78:79:80:81:82:83:84:85:86:87:88:89","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=689","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"76:73:56:74:75:77:78:79:80:81:82:83:84:85:86:87:88:89","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"77:73:56:74:75:76:78:79:80:81:82:83:84:85:86:87:88:89","style":["S48"],"val":"/Emily/Get ready to work/Brush my teeth","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"78:73:56:74:75:76:77:79:80:81:82:83:84:85:86:87:88:89","style":["S50"],"val":"725","valTyp":"number","fmtVal":"725","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"79
 :73:56:74:75:76:77:78:80:81:82:83:84:85:86:87:88:89","style":["S52"],"val":"R3","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"80:73:56:74:75:76:77:78:79:81:82:83:84:85:86:87:88:89","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=725","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"81:73:56:74:75:76:77:78:79:80:82:83:84:85:86:87:88:89","style":["S56"],"val":"Out of tooth paste","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"82:73:56:74:75:76:77:78:79:80:81:83:84:85:86:87:88:89","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"83:73:56:74:75:76:77:78:79:80:81:82:84:85:86:87:88:89","style":["S60"],"val":"/Emily/Get ready to work/Out of tooth paste","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"84:73:56:74:75:76:77
 :78:79:80:81:82:83:85:86:87:88:89","style":["S62"],"val":"753","valTyp":"number","fmtVal":"753","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"85:73:56:74:75:76:77:78:79:80:81:82:83:84:86:87:88:89","style":["S64"],"val":"C16","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"86:73:56:74:75:76:77:78:79:80:81:82:83:84:85:87:88:89","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=753","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"87:73:56:74:75:76:77:78:79:80:81:82:83:84:85:86:88:89","style":["S68"],"val":"Buy toothpaste","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"88:73:56:74:75:76:77:78:79:80:81:82:83:84:85:86:87:89","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"89:73:56:74:75:76:77:78:79:80:81:82:
 83:84:85:86:87:88","style":["S72"],"val":"/Emily/Get ready to work/Out of tooth paste/Buy toothpaste","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"90:91:92:93:94:95:25:96:97:98:99:100:31:101:102:103:104:105","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"91:90:92:93:94:95:25:96:97:98:99:100:31:101:102:103:104:105","style":["S40"],"val":"690","valTyp":"number","fmtVal":"690","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"92:90:91:93:94:95:25:96:97:98:99:100:31:101:102:103:104:105","style":["S42"],"val":"Check for weather","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"93:90:91:92:94:95:25:96:97:98:99:100:31:101:102:103:104:105","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=690","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":
 [{"txt":{"ref":"R46","ctx":"94:90:91:92:93:95:25:96:97:98:99:100:31:101:102:103:104:105","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"95:90:91:92:93:94:25:96:97:98:99:100:31:101:102:103:104:105","style":["S48"],"val":"/Emily/Get ready to work/Check for weather","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"25:90:91:92:93:94:95:96:97:98:99:100:31:101:102:103:104:105","style":["S50"],"val":,"valErrorState":"NULL","valTyp":"number","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"96:90:91:92:93:94:95:25:97:98:99:100:31:101:102:103:104:105","style":["S52"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"97:90:91:92:93:94:95:25:96:98:99:100:31:101:102:103:104:105","style":["S54"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R57","style"
 :["S57"],"item":[{"txt":{"ref":"R56","ctx":"98:90:91:92:93:94:95:25:96:97:99:100:31:101:102:103:104:105","style":["S56"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"99:90:91:92:93:94:95:25:96:97:98:100:31:101:102:103:104:105","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"100:90:91:92:93:94:95:25:96:97:98:99:31:101:102:103:104:105","style":["S60"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"31:90:91:92:93:94:95:25:96:97:98:99:100:101:102:103:104:105","style":["S62"],"val":,"valErrorState":"NULL","valTyp":"number","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"101:90:91:92:93:94:95:25:96:97:98:99:100:31:102:103:104:105","style":["S64"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R67","style":["S6
 7"],"item":[{"txt":{"ref":"R66","ctx":"102:90:91:92:93:94:95:25:96:97:98:99:100:31:101:103:104:105","style":["S66"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"103:90:91:92:93:94:95:25:96:97:98:99:100:31:101:102:104:105","style":["S68"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"104:90:91:92:93:94:95:25:96:97:98:99:100:31:101:102:103:105","style":["S70"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"105:90:91:92:93:94:95:25:96:97:98:99:100:31:101:102:103:104","style":["S72"],"val":,"valErrorState":"NULL","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"106:107:108:109:110:111:112:113:114:115:116:117:118:119:120:121:122:123","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"
 107:106:108:109:110:111:112:113:114:115:116:117:118:119:120:121:122:123","style":["S40"],"val":"691","valTyp":"number","fmtVal":"691","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"108:106:107:109:110:111:112:113:114:115:116:117:118:119:120:121:122:123","style":["S42"],"val":"Cook breakfast","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"109:106:107:108:110:111:112:113:114:115:116:117:118:119:120:121:122:123","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=691","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"110:106:107:108:109:111:112:113:114:115:116:117:118:119:120:121:122:123","style":["S46"],"val":"Hey this is the subprocess for cook breakfast. What I usually eat for breakfast: bacon bacon bacon","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"111:106:107:108:109:110:112
 :113:114:115:116:117:118:119:120:121:122:123","style":["S48"],"val":"/Emily/Get ready to work/Cook breakfast","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"112:106:107:108:109:110:111:113:114:115:116:117:118:119:120:121:122:123","style":["S50"],"val":"705","valTyp":"number","fmtVal":"705","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"113:106:107:108:109:110:111:112:114:115:116:117:118:119:120:121:122:123","style":["S52"],"val":"R4","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"114:106:107:108:109:110:111:112:113:115:116:117:118:119:120:121:122:123","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=705","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"115:106:107:108:109:110:111:112:113:114:116:117:118:119:120:121:122:123","style":["S56"],"val":"Burn the breakfast","valTyp":
 "text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"116:106:107:108:109:110:111:112:113:114:115:117:118:119:120:121:122:123","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"117:106:107:108:109:110:111:112:113:114:115:116:118:119:120:121:122:123","style":["S60"],"val":"/Emily/Get ready to work/Burn the breakfast","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"118:106:107:108:109:110:111:112:113:114:115:116:117:119:120:121:122:123","style":["S62"],"val":"780","valTyp":"number","fmtVal":"780","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"119:106:107:108:109:110:111:112:113:114:115:116:117:118:120:121:122:123","style":["S64"],"val":"C3","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"120:106:107:108:109:110:111:112:113:114:115:116:117:118:119:121:122:123",
 "style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=780","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"121:106:107:108:109:110:111:112:113:114:115:116:117:118:119:120:122:123","style":["S68"],"val":"throw it away","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"122:106:107:108:109:110:111:112:113:114:115:116:117:118:119:120:121:123","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"123:106:107:108:109:110:111:112:113:114:115:116:117:118:119:120:121:122","style":["S72"],"val":"/Emily/Get ready to work/Burn the breakfast/throw it away","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"124:107:125:126:127:128:129:130:131:132:133:134:31:135:136:137:138:139","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R4
 0","ctx":"107:124:125:126:127:128:129:130:131:132:133:134:31:135:136:137:138:139","style":["S40"],"val":"691","valTyp":"number","fmtVal":"691","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"125:124:107:126:127:128:129:130:131:132:133:134:31:135:136:137:138:139","style":["S42"],"val":"Cook breakfast","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"126:124:107:125:127:128:129:130:131:132:133:134:31:135:136:137:138:139","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=691","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"127:124:107:125:126:128:129:130:131:132:133:134:31:135:136:137:138:139","style":["S46"],"val":"Hey this is the subprocess for cook breakfast. What I usually eat for breakfast: bacon bacon bacon","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"128:124:107:125:126:1
 27:129:130:131:132:133:134:31:135:136:137:138:139","style":["S48"],"val":"/Emily/Get ready to work/Cook breakfast","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"129:124:107:125:126:127:128:130:131:132:133:134:31:135:136:137:138:139","style":["S50"],"val":"711","valTyp":"number","fmtVal":"711","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"130:124:107:125:126:127:128:129:131:132:133:134:31:135:136:137:138:139","style":["S52"],"val":"R5","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"131:124:107:125:126:127:128:129:130:132:133:134:31:135:136:137:138:139","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=711","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"132:124:107:125:126:127:128:129:130:131:133:134:31:135:136:137:138:139","style":["S56"],"val":"Forgot to turn off the stove
 ","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"133:124:107:125:126:127:128:129:130:131:132:134:31:135:136:137:138:139","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"134:124:107:125:126:127:128:129:130:131:132:133:31:135:136:137:138:139","style":["S60"],"val":"/Emily/Get ready to work/Forgot to turn off the stove","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"31:124:107:125:126:127:128:129:130:131:132:133:134:135:136:137:138:139","style":["S62"],"val":,"valErrorState":"NULL","valTyp":"number","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"135:124:107:125:126:127:128:129:130:131:132:133:134:31:136:137:138:139","style":["S64"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"136:124:107:125:126:127:128:129:13
 0:131:132:133:134:31:135:137:138:139","style":["S66"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"137:124:107:125:126:127:128:129:130:131:132:133:134:31:135:136:138:139","style":["S68"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"138:124:107:125:126:127:128:129:130:131:132:133:134:31:135:136:137:139","style":["S70"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"139:124:107:125:126:127:128:129:130:131:132:133:134:31:135:136:137:138","style":["S72"],"val":,"valErrorState":"NULL","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"140:107:141:142:143:144:145:146:147:148:149:150:151:152:153:154:155:156","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"107:140:141:142:143:144:145:1
 46:147:148:149:150:151:152:153:154:155:156","style":["S40"],"val":"691","valTyp":"number","fmtVal":"691","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"141:140:107:142:143:144:145:146:147:148:149:150:151:152:153:154:155:156","style":["S42"],"val":"Cook breakfast","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"142:140:107:141:143:144:145:146:147:148:149:150:151:152:153:154:155:156","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=691","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"143:140:107:141:142:144:145:146:147:148:149:150:151:152:153:154:155:156","style":["S46"],"val":"Hey this is the subprocess for cook breakfast. What I usually eat for breakfast: bacon bacon bacon","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"144:140:107:141:142:143:145:146:147:148:149:150:151:152:
 153:154:155:156","style":["S48"],"val":"/Emily/Get ready to work/Cook breakfast","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"145:140:107:141:142:143:144:146:147:148:149:150:151:152:153:154:155:156","style":["S50"],"val":"715","valTyp":"number","fmtVal":"715","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"146:140:107:141:142:143:144:145:147:148:149:150:151:152:153:154:155:156","style":["S52"],"val":"R6","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"147:140:107:141:142:143:144:145:146:148:149:150:151:152:153:154:155:156","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=715","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"148:140:107:141:142:143:144:145:146:147:149:150:151:152:153:154:155:156","style":["S56"],"val":"No food in the fridge","valTyp":"text"}}]},{"ref":"R59","s
 tyle":["S59"],"item":[{"txt":{"ref":"R58","ctx":"149:140:107:141:142:143:144:145:146:147:148:150:151:152:153:154:155:156","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"150:140:107:141:142:143:144:145:146:147:148:149:151:152:153:154:155:156","style":["S60"],"val":"/Emily/Get ready to work/No food in the fridge","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"151:140:107:141:142:143:144:145:146:147:148:149:150:152:153:154:155:156","style":["S62"],"val":"775","valTyp":"number","fmtVal":"775","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"152:140:107:141:142:143:144:145:146:147:148:149:150:151:153:154:155:156","style":["S64"],"val":"C10","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"153:140:107:141:142:143:144:145:146:147:148:149:150:151:152:154:155:156","style":["S66"],"val":
 "http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=775","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"154:140:107:141:142:143:144:145:146:147:148:149:150:151:152:153:155:156","style":["S68"],"val":"Stock up the fridge","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"155:140:107:141:142:143:144:145:146:147:148:149:150:151:152:153:154:156","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"156:140:107:141:142:143:144:145:146:147:148:149:150:151:152:153:154:155","style":["S72"],"val":"/Emily/Get ready to work/No food in the fridge/Stock up the fridge","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"157:107:158:159:160:161:162:163:164:165:166:167:31:168:169:170:171:172","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx
 ":"107:157:158:159:160:161:162:163:164:165:166:167:31:168:169:170:171:172","style":["S40"],"val":"691","valTyp":"number","fmtVal":"691","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"158:157:107:159:160:161:162:163:164:165:166:167:31:168:169:170:171:172","style":["S42"],"val":"Cook breakfast","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"159:157:107:158:160:161:162:163:164:165:166:167:31:168:169:170:171:172","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=691","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"160:157:107:158:159:161:162:163:164:165:166:167:31:168:169:170:171:172","style":["S46"],"val":"Hey this is the subprocess for cook breakfast. What I usually eat for breakfast: bacon bacon bacon","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"161:157:107:158:159:160:162:
 163:164:165:166:167:31:168:169:170:171:172","style":["S48"],"val":"/Emily/Get ready to work/Cook breakfast","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"162:157:107:158:159:160:161:163:164:165:166:167:31:168:169:170:171:172","style":["S50"],"val":"727","valTyp":"number","fmtVal":"727","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"163:157:107:158:159:160:161:162:164:165:166:167:31:168:169:170:171:172","style":["S52"],"val":"R7","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"164:157:107:158:159:160:161:162:163:165:166:167:31:168:169:170:171:172","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=727","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"165:157:107:158:159:160:161:162:163:164:166:167:31:168:169:170:171:172","style":["S56"],"val":"power outage","valTyp":"text"}}]},{
 "ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"166:157:107:158:159:160:161:162:163:164:165:167:31:168:169:170:171:172","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"167:157:107:158:159:160:161:162:163:164:165:166:31:168:169:170:171:172","style":["S60"],"val":"/Emily/Get ready to work/power outage","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"31:157:107:158:159:160:161:162:163:164:165:166:167:168:169:170:171:172","style":["S62"],"val":,"valErrorState":"NULL","valTyp":"number","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"168:157:107:158:159:160:161:162:163:164:165:166:167:31:169:170:171:172","style":["S64"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"169:157:107:158:159:160:161:162:163:164:165:166:167:31:168:170:171:172","
 style":["S66"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"170:157:107:158:159:160:161:162:163:164:165:166:167:31:168:169:171:172","style":["S68"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"171:157:107:158:159:160:161:162:163:164:165:166:167:31:168:169:170:172","style":["S70"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"172:157:107:158:159:160:161:162:163:164:165:166:167:31:168:169:170:171","style":["S72"],"val":,"valErrorState":"NULL","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"173:174:175:176:177:178:179:180:181:182:183:184:31:185:186:187:188:189","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"174:173:175:176:177:178:179:180:181:182:183:184:31:185:186:187:188:18
 9","style":["S40"],"val":"692","valTyp":"number","fmtVal":"692","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"175:173:174:176:177:178:179:180:181:182:183:184:31:185:186:187:188:189","style":["S42"],"val":"Drive to work","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"176:173:174:175:177:178:179:180:181:182:183:184:31:185:186:187:188:189","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=692","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"177:173:174:175:176:178:179:180:181:182:183:184:31:185:186:187:188:189","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"178:173:174:175:176:177:179:180:181:182:183:184:31:185:186:187:188:189","style":["S48"],"val":"/Emily/Get ready to work/Drive to work","valTyp":"text"}}]},{"ref":"R51","style":["
 S51"],"item":[{"txt":{"ref":"R50","ctx":"179:173:174:175:176:177:178:180:181:182:183:184:31:185:186:187:188:189","style":["S50"],"val":"699","valTyp":"number","fmtVal":"699","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"180:173:174:175:176:177:178:179:181:182:183:184:31:185:186:187:188:189","style":["S52"],"val":"R8","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"181:173:174:175:176:177:178:179:180:182:183:184:31:185:186:187:188:189","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=699","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"182:173:174:175:176:177:178:179:180:181:183:184:31:185:186:187:188:189","style":["S56"],"val":"bad road condition","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"183:173:174:175:176:177:178:179:180:181:182:184:31:185:186:187:188:189","style":["
 S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"184:173:174:175:176:177:178:179:180:181:182:183:31:185:186:187:188:189","style":["S60"],"val":"/Emily/Get ready to work/bad road condition","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"31:173:174:175:176:177:178:179:180:181:182:183:184:185:186:187:188:189","style":["S62"],"val":,"valErrorState":"NULL","valTyp":"number","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"185:173:174:175:176:177:178:179:180:181:182:183:184:31:186:187:188:189","style":["S64"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"186:173:174:175:176:177:178:179:180:181:182:183:184:31:185:187:188:189","style":["S66"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"187:173:17
 4:175:176:177:178:179:180:181:182:183:184:31:185:186:188:189","style":["S68"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"188:173:174:175:176:177:178:179:180:181:182:183:184:31:185:186:187:189","style":["S70"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"189:173:174:175:176:177:178:179:180:181:182:183:184:31:185:186:187:188","style":["S72"],"val":,"valErrorState":"NULL","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"190:174:191:192:193:194:195:196:197:198:199:200:201:202:203:204:205:206","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"174:190:191:192:193:194:195:196:197:198:199:200:201:202:203:204:205:206","style":["S40"],"val":"692","valTyp":"number","fmtVal":"692","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item
 ":[{"txt":{"ref":"R42","ctx":"191:190:174:192:193:194:195:196:197:198:199:200:201:202:203:204:205:206","style":["S42"],"val":"Drive to work","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"192:190:174:191:193:194:195:196:197:198:199:200:201:202:203:204:205:206","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=692","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"193:190:174:191:192:194:195:196:197:198:199:200:201:202:203:204:205:206","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"194:190:174:191:192:193:195:196:197:198:199:200:201:202:203:204:205:206","style":["S48"],"val":"/Emily/Get ready to work/Drive to work","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"195:190:174:191:192:193:194:196:197:198:199:200:201:202:203:204:205:206","style":["S50"],"va
 l":"707","valTyp":"number","fmtVal":"707","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"196:190:174:191:192:193:194:195:197:198:199:200:201:202:203:204:205:206","style":["S52"],"val":"R9","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"197:190:174:191:192:193:194:195:196:198:199:200:201:202:203:204:205:206","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=707","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"198:190:174:191:192:193:194:195:196:197:199:200:201:202:203:204:205:206","style":["S56"],"val":"Flat tires","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"199:190:174:191:192:193:194:195:196:197:198:200:201:202:203:204:205:206","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"200:190:174:191:
 192:193:194:195:196:197:198:199:201:202:203:204:205:206","style":["S60"],"val":"/Emily/Get ready to work/Flat tires","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"201:190:174:191:192:193:194:195:196:197:198:199:200:202:203:204:205:206","style":["S62"],"val":"756","valTyp":"number","fmtVal":"756","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"202:190:174:191:192:193:194:195:196:197:198:199:200:201:203:204:205:206","style":["S64"],"val":"C4","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"203:190:174:191:192:193:194:195:196:197:198:199:200:201:202:204:205:206","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=756","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"204:190:174:191:192:193:194:195:196:197:198:199:200:201:202:203:205:206","style":["S68"],"val":"Change new tires","val
 Typ":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"205:190:174:191:192:193:194:195:196:197:198:199:200:201:202:203:204:206","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"206:190:174:191:192:193:194:195:196:197:198:199:200:201:202:203:204:205","style":["S72"],"val":"/Emily/Get ready to work/Flat tires/Change new tires","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"207:174:208:209:210:211:195:212:213:214:215:216:217:218:219:220:221:222","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"174:207:208:209:210:211:195:212:213:214:215:216:217:218:219:220:221:222","style":["S40"],"val":"692","valTyp":"number","fmtVal":"692","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"208:207:174:209:210:211:195:212:213:214:215:216:217:218:
 219:220:221:222","style":["S42"],"val":"Drive to work","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"209:207:174:208:210:211:195:212:213:214:215:216:217:218:219:220:221:222","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=692","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"210:207:174:208:209:211:195:212:213:214:215:216:217:218:219:220:221:222","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"211:207:174:208:209:210:195:212:213:214:215:216:217:218:219:220:221:222","style":["S48"],"val":"/Emily/Get ready to work/Drive to work","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"195:207:174:208:209:210:211:212:213:214:215:216:217:218:219:220:221:222","style":["S50"],"val":"707","valTyp":"number","fmtVal":"707","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref
 ":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"212:207:174:208:209:210:211:195:213:214:215:216:217:218:219:220:221:222","style":["S52"],"val":"R9","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"213:207:174:208:209:210:211:195:212:214:215:216:217:218:219:220:221:222","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=707","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"214:207:174:208:209:210:211:195:212:213:215:216:217:218:219:220:221:222","style":["S56"],"val":"Flat tires","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"215:207:174:208:209:210:211:195:212:213:214:216:217:218:219:220:221:222","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"216:207:174:208:209:210:211:195:212:213:214:215:217:218:219:220:221:222","style":["S60"],"val":"/Emily
 /Get ready to work/Flat tires","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"217:207:174:208:209:210:211:195:212:213:214:215:216:218:219:220:221:222","style":["S62"],"val":"758","valTyp":"number","fmtVal":"758","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"218:207:174:208:209:210:211:195:212:213:214:215:216:217:219:220:221:222","style":["S64"],"val":"C5","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"219:207:174:208:209:210:211:195:212:213:214:215:216:217:218:220:221:222","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=758","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"220:207:174:208:209:210:211:195:212:213:214:215:216:217:218:219:221:222","style":["S68"],"val":"Check the alignment regularly","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70",
 "ctx":"221:207:174:208:209:210:211:195:212:213:214:215:216:217:218:219:220:222","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"222:207:174:208:209:210:211:195:212:213:214:215:216:217:218:219:220:221","style":["S72"],"val":"/Emily/Get ready to work/Flat tires/Check the alignment regularly","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"223:174:224:225:226:227:195:228:229:230:231:232:233:234:235:236:237:238","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"174:223:224:225:226:227:195:228:229:230:231:232:233:234:235:236:237:238","style":["S40"],"val":"692","valTyp":"number","fmtVal":"692","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"224:223:174:225:226:227:195:228:229:230:231:232:233:234:235:236:237:238","style":["S42"],"val":"Drive to work","valT
 yp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"225:223:174:224:226:227:195:228:229:230:231:232:233:234:235:236:237:238","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=692","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"226:223:174:224:225:227:195:228:229:230:231:232:233:234:235:236:237:238","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"227:223:174:224:225:226:195:228:229:230:231:232:233:234:235:236:237:238","style":["S48"],"val":"/Emily/Get ready to work/Drive to work","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"195:223:174:224:225:226:227:228:229:230:231:232:233:234:235:236:237:238","style":["S50"],"val":"707","valTyp":"number","fmtVal":"707","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"2
 28:223:174:224:225:226:227:195:229:230:231:232:233:234:235:236:237:238","style":["S52"],"val":"R9","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"229:223:174:224:225:226:227:195:228:230:231:232:233:234:235:236:237:238","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=707","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"230:223:174:224:225:226:227:195:228:229:231:232:233:234:235:236:237:238","style":["S56"],"val":"Flat tires","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"231:223:174:224:225:226:227:195:228:229:230:232:233:234:235:236:237:238","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"232:223:174:224:225:226:227:195:228:229:230:231:233:234:235:236:237:238","style":["S60"],"val":"/Emily/Get ready to work/Flat tires","valTyp":"text"}}]},{"ref":"R
 63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"233:223:174:224:225:226:227:195:228:229:230:231:232:234:235:236:237:238","style":["S62"],"val":"760","valTyp":"number","fmtVal":"760","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"234:223:174:224:225:226:227:195:228:229:230:231:232:233:235:236:237:238","style":["S64"],"val":"C6","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"235:223:174:224:225:226:227:195:228:229:230:231:232:233:234:236:237:238","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=760","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"236:223:174:224:225:226:227:195:228:229:230:231:232:233:234:235:237:238","style":["S68"],"val":"Check the tires pressure regularly","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"237:223:174:224:225:226:227:195:228:229:230:231:
 232:233:234:235:236:238","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"238:223:174:224:225:226:227:195:228:229:230:231:232:233:234:235:236:237","style":["S72"],"val":"/Emily/Get ready to work/Flat tires/Check the tires pressure regularly","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"239:174:240:241:242:243:244:245:246:247:248:249:250:251:252:253:254:255","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"174:239:240:241:242:243:244:245:246:247:248:249:250:251:252:253:254:255","style":["S40"],"val":"692","valTyp":"number","fmtVal":"692","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"240:239:174:241:242:243:244:245:246:247:248:249:250:251:252:253:254:255","style":["S42"],"val":"Drive to work","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item"
 :[{"txt":{"ref":"R44","ctx":"241:239:174:240:242:243:244:245:246:247:248:249:250:251:252:253:254:255","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=692","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"242:239:174:240:241:243:244:245:246:247:248:249:250:251:252:253:254:255","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"243:239:174:240:241:242:244:245:246:247:248:249:250:251:252:253:254:255","style":["S48"],"val":"/Emily/Get ready to work/Drive to work","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"244:239:174:240:241:242:243:245:246:247:248:249:250:251:252:253:254:255","style":["S50"],"val":"713","valTyp":"number","fmtVal":"713","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"245:239:174:240:241:242:243:244:246:247:248:249:250
 :251:252:253:254:255","style":["S52"],"val":"R10","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"246:239:174:240:241:242:243:244:245:247:248:249:250:251:252:253:254:255","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=713","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"247:239:174:240:241:242:243:244:245:246:248:249:250:251:252:253:254:255","style":["S56"],"val":"Low on gas","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"248:239:174:240:241:242:243:244:245:246:247:249:250:251:252:253:254:255","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"249:239:174:240:241:242:243:244:245:246:247:248:250:251:252:253:254:255","style":["S60"],"val":"/Emily/Get ready to work/Low on gas","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","
 ctx":"250:239:174:240:241:242:243:244:245:246:247:248:249:251:252:253:254:255","style":["S62"],"val":"766","valTyp":"number","fmtVal":"766","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"251:239:174:240:241:242:243:244:245:246:247:248:249:250:252:253:254:255","style":["S64"],"val":"C9","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"252:239:174:240:241:242:243:244:245:246:247:248:249:250:251:253:254:255","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=766","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"253:239:174:240:241:242:243:244:245:246:247:248:249:250:251:252:254:255","style":["S68"],"val":"fill up the car","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"254:239:174:240:241:242:243:244:245:246:247:248:249:250:251:252:253:255","style":["S70"],"val":"Not Determined","val
 Typ":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"255:239:174:240:241:242:243:244:245:246:247:248:249:250:251:252:253:254","style":["S72"],"val":"/Emily/Get ready to work/Low on gas/fill up the car","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"256:174:257:258:259:260:261:262:263:264:265:266:267:268:269:270:271:272","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"174:256:257:258:259:260:261:262:263:264:265:266:267:268:269:270:271:272","style":["S40"],"val":"692","valTyp":"number","fmtVal":"692","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"257:256:174:258:259:260:261:262:263:264:265:266:267:268:269:270:271:272","style":["S42"],"val":"Drive to work","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"258:256:174:257:259:260:261:262:263:264:265:266:267:268:26
 9:270:271:272","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=692","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"259:256:174:257:258:260:261:262:263:264:265:266:267:268:269:270:271:272","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"260:256:174:257:258:259:261:262:263:264:265:266:267:268:269:270:271:272","style":["S48"],"val":"/Emily/Get ready to work/Drive to work","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"261:256:174:257:258:259:260:262:263:264:265:266:267:268:269:270:271:272","style":["S50"],"val":"717","valTyp":"number","fmtVal":"717","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"262:256:174:257:258:259:260:261:263:264:265:266:267:268:269:270:271:272","style":["S52"],"val":"R11","valTyp":"text"}}]},{"ref":"R55","sty
 le":["S55"],"item":[{"txt":{"ref":"R54","ctx":"263:256:174:257:258:259:260:261:262:264:265:266:267:268:269:270:271:272","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=717","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"264:256:174:257:258:259:260:261:262:263:265:266:267:268:269:270:271:272","style":["S56"],"val":"other car problem","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"265:256:174:257:258:259:260:261:262:263:264:266:267:268:269:270:271:272","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"266:256:174:257:258:259:260:261:262:263:264:265:267:268:269:270:271:272","style":["S60"],"val":"/Emily/Get ready to work/other car problem","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"267:256:174:257:258:259:260:261:262:263:264:265:266:268:269:270:271
 :272","style":["S62"],"val":"772","valTyp":"number","fmtVal":"772","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"268:256:174:257:258:259:260:261:262:263:264:265:266:267:269:270:271:272","style":["S64"],"val":"C11","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"269:256:174:257:258:259:260:261:262:263:264:265:266:267:268:270:271:272","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=772","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"270:256:174:257:258:259:260:261:262:263:264:265:266:267:268:269:271:272","style":["S68"],"val":"Regular maintainence on the car","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"271:256:174:257:258:259:260:261:262:263:264:265:266:267:268:269:270:272","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"t
 xt":{"ref":"R72","ctx":"272:256:174:257:258:259:260:261:262:263:264:265:266:267:268:269:270:271","style":["S72"],"val":"/Emily/Get ready to work/other car problem/Regular maintainence on the car","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"273:174:274:275:276:277:261:278:279:280:281:282:283:284:285:286:287:288","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"174:273:274:275:276:277:261:278:279:280:281:282:283:284:285:286:287:288","style":["S40"],"val":"692","valTyp":"number","fmtVal":"692","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"274:273:174:275:276:277:261:278:279:280:281:282:283:284:285:286:287:288","style":["S42"],"val":"Drive to work","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"275:273:174:274:276:277:261:278:279:280:281:282:283:284:285:286:287:288","style":["S44"],"v
 al":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=692","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"276:273:174:274:275:277:261:278:279:280:281:282:283:284:285:286:287:288","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"277:273:174:274:275:276:261:278:279:280:281:282:283:284:285:286:287:288","style":["S48"],"val":"/Emily/Get ready to work/Drive to work","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"261:273:174:274:275:276:277:278:279:280:281:282:283:284:285:286:287:288","style":["S50"],"val":"717","valTyp":"number","fmtVal":"717","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"278:273:174:274:275:276:277:261:279:280:281:282:283:284:285:286:287:288","style":["S52"],"val":"R11","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref"
 :"R54","ctx":"279:273:174:274:275:276:277:261:278:280:281:282:283:284:285:286:287:288","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=717","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"280:273:174:274:275:276:277:261:278:279:281:282:283:284:285:286:287:288","style":["S56"],"val":"other car problem","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"281:273:174:274:275:276:277:261:278:279:280:282:283:284:285:286:287:288","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"282:273:174:274:275:276:277:261:278:279:280:281:283:284:285:286:287:288","style":["S60"],"val":"/Emily/Get ready to work/other car problem","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"283:273:174:274:275:276:277:261:278:279:280:281:282:284:285:286:287:288","style":["S62"],"val":"777"
 ,"valTyp":"number","fmtVal":"777","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"284:273:174:274:275:276:277:261:278:279:280:281:282:283:285:286:287:288","style":["S64"],"val":"C12","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"285:273:174:274:275:276:277:261:278:279:280:281:282:283:284:286:287:288","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=777","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"286:273:174:274:275:276:277:261:278:279:280:281:282:283:284:285:287:288","style":["S68"],"val":"Subscribe to CAA","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"287:273:174:274:275:276:277:261:278:279:280:281:282:283:284:285:286:288","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"288:273:174:274:275:276:
 277:261:278:279:280:281:282:283:284:285:286:287","style":["S72"],"val":"/Emily/Get ready to work/other car problem/Subscribe to CAA","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"289:290:291:292:293:294:295:296:297:298:299:300:301:302:303:304:305:306","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"290:289:291:292:293:294:295:296:297:298:299:300:301:302:303:304:305:306","style":["S40"],"val":"693","valTyp":"number","fmtVal":"693","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"291:289:290:292:293:294:295:296:297:298:299:300:301:302:303:304:305:306","style":["S42"],"val":"Feed the cats","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"292:289:290:291:293:294:295:296:297:298:299:300:301:302:303:304:305:306","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resou
 rce.do?fileId=693","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"293:289:290:291:292:294:295:296:297:298:299:300:301:302:303:304:305:306","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"294:289:290:291:292:293:295:296:297:298:299:300:301:302:303:304:305:306","style":["S48"],"val":"/Emily/Get ready to work/Feed the cats","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"295:289:290:291:292:293:294:296:297:298:299:300:301:302:303:304:305:306","style":["S50"],"val":"719","valTyp":"number","fmtVal":"719","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"296:289:290:291:292:293:294:295:297:298:299:300:301:302:303:304:305:306","style":["S52"],"val":"R12","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"297:289:290:291:292:293:294:295:296:298:299:300:3
 01:302:303:304:305:306","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=719","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"298:289:290:291:292:293:294:295:296:297:299:300:301:302:303:304:305:306","style":["S56"],"val":"Out of cat food","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"299:289:290:291:292:293:294:295:296:297:298:300:301:302:303:304:305:306","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"300:289:290:291:292:293:294:295:296:297:298:299:301:302:303:304:305:306","style":["S60"],"val":"/Emily/Get ready to work/Out of cat food","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"301:289:290:291:292:293:294:295:296:297:298:299:300:302:303:304:305:306","style":["S62"],"val":"738","valTyp":"number","fmtVal":"738","fmtPatrn":"#0","exclPatrn":"\\#0
 "}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"302:289:290:291:292:293:294:295:296:297:298:299:300:301:303:304:305:306","style":["S64"],"val":"C13","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"303:289:290:291:292:293:294:295:296:297:298:299:300:301:302:304:305:306","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=738","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"304:289:290:291:292:293:294:295:296:297:298:299:300:301:302:303:305:306","style":["S68"],"val":"Buy cat food","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"305:289:290:291:292:293:294:295:296:297:298:299:300:301:302:303:304:306","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"306:289:290:291:292:293:294:295:296:297:298:299:300:301:302:303:304:305","style":["S72"],"val":
 "/Emily/Get ready to work/Out of cat food/Buy cat food","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"307:308:309:310:311:312:313:314:315:316:317:318:319:320:321:322:323:324","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"308:307:309:310:311:312:313:314:315:316:317:318:319:320:321:322:323:324","style":["S40"],"val":"694","valTyp":"number","fmtVal":"694","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"309:307:308:310:311:312:313:314:315:316:317:318:319:320:321:322:323:324","style":["S42"],"val":"Get dressed","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"310:307:308:309:311:312:313:314:315:316:317:318:319:320:321:322:323:324","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=694","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"t
 xt":{"ref":"R46","ctx":"311:307:308:309:310:312:313:314:315:316:317:318:319:320:321:322:323:324","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"312:307:308:309:310:311:313:314:315:316:317:318:319:320:321:322:323:324","style":["S48"],"val":"/Emily/Get ready to work/Get dressed","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"313:307:308:309:310:311:312:314:315:316:317:318:319:320:321:322:323:324","style":["S50"],"val":"709","valTyp":"number","fmtVal":"709","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"314:307:308:309:310:311:312:313:315:316:317:318:319:320:321:322:323:324","style":["S52"],"val":"R13","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"315:307:308:309:310:311:312:313:314:316:317:318:319:320:321:322:323:324","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10
 108/openpages/view.resource.do?fileId=709","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"316:307:308:309:310:311:312:313:314:315:317:318:319:320:321:322:323:324","style":["S56"],"val":"Forgot to do laundry","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"317:307:308:309:310:311:312:313:314:315:316:318:319:320:321:322:323:324","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"318:307:308:309:310:311:312:313:314:315:316:317:319:320:321:322:323:324","style":["S60"],"val":"/Emily/Get ready to work/Forgot to do laundry","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"319:307:308:309:310:311:312:313:314:315:316:317:318:320:321:322:323:324","style":["S62"],"val":"763","valTyp":"number","fmtVal":"763","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"3
 20:307:308:309:310:311:312:313:314:315:316:317:318:319:321:322:323:324","style":["S64"],"val":"C7","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"321:307:308:309:310:311:312:313:314:315:316:317:318:319:320:322:323:324","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=763","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"322:307:308:309:310:311:312:313:314:315:316:317:318:319:320:321:323:324","style":["S68"],"val":"Do laundry","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"323:307:308:309:310:311:312:313:314:315:316:317:318:319:320:321:322:324","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"324:307:308:309:310:311:312:313:314:315:316:317:318:319:320:321:322:323","style":["S72"],"val":"/Emily/Get ready to work/Forgot to do laundry/Do laundry","valTyp":"text"
 }}]}]},{"cell":[{"ref":"R39","style":["S39"],"item":[{"txt":{"ref":"R38","ctx":"325:308:326:327:328:329:313:330:331:332:333:334:335:336:337:338:339:340","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"308:325:326:327:328:329:313:330:331:332:333:334:335:336:337:338:339:340","style":["S40"],"val":"694","valTyp":"number","fmtVal":"694","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"326:325:308:327:328:329:313:330:331:332:333:334:335:336:337:338:339:340","style":["S42"],"val":"Get dressed","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"327:325:308:326:328:329:313:330:331:332:333:334:335:336:337:338:339:340","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=694","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"328:325:308:326:327:329:313:330:331:332:333:334
 :335:336:337:338:339:340","style":["S46"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"329:325:308:326:327:328:313:330:331:332:333:334:335:336:337:338:339:340","style":["S48"],"val":"/Emily/Get ready to work/Get dressed","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"313:325:308:326:327:328:329:330:331:332:333:334:335:336:337:338:339:340","style":["S50"],"val":"709","valTyp":"number","fmtVal":"709","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"330:325:308:326:327:328:329:313:331:332:333:334:335:336:337:338:339:340","style":["S52"],"val":"R13","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"331:325:308:326:327:328:329:313:330:332:333:334:335:336:337:338:339:340","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=709","valTyp":"text"}}]},{"ref":"
 R57","style":["S57"],"item":[{"txt":{"ref":"R56","ctx":"332:325:308:326:327:328:329:313:330:331:333:334:335:336:337:338:339:340","style":["S56"],"val":"Forgot to do laundry","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"333:325:308:326:327:328:329:313:330:331:332:334:335:336:337:338:339:340","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"334:325:308:326:327:328:329:313:330:331:332:333:335:336:337:338:339:340","style":["S60"],"val":"/Emily/Get ready to work/Forgot to do laundry","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"335:325:308:326:327:328:329:313:330:331:332:333:334:336:337:338:339:340","style":["S62"],"val":"782","valTyp":"number","fmtVal":"782","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"336:325:308:326:327:328:329:313:330:331:332:333:334:335:337:338:339:340"
 ,"style":["S64"],"val":"C8","valTyp":"text"}}]},{"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"337:325:308:326:327:328:329:313:330:331:332:333:334:335:336:338:339:340","style":["S66"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=782","valTyp":"text"}}]},{"ref":"R69","style":["S69"],"item":[{"txt":{"ref":"R68","ctx":"338:325:308:326:327:328:329:313:330:331:332:333:334:335:336:337:339:340","style":["S68"],"val":"Wear the dirty clothes","valTyp":"text"}}]},{"ref":"R71","style":["S71"],"item":[{"txt":{"ref":"R70","ctx":"339:325:308:326:327:328:329:313:330:331:332:333:334:335:336:337:338:340","style":["S70"],"val":"Not Determined","valTyp":"text"}}]},{"ref":"R73","style":["S73"],"item":[{"txt":{"ref":"R72","ctx":"340:325:308:326:327:328:329:313:330:331:332:333:334:335:336:337:338:339","style":["S72"],"val":"/Emily/Get ready to work/Forgot to do laundry/Wear the dirty clothes","valTyp":"text"}}]}]},{"cell":[{"ref":"R39","style":["S39"],"i
 tem":[{"txt":{"ref":"R38","ctx":"341:308:342:343:344:345:346:347:348:349:350:351:352:353:354:355:356:357","style":["S38"],"val":"S","valTyp":"text"}}]},{"ref":"R41","style":["S41"],"item":[{"txt":{"ref":"R40","ctx":"308:341:342:343:344:345:346:347:348:349:350:351:352:353:354:355:356:357","style":["S40"],"val":"694","valTyp":"number","fmtVal":"694","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R43","style":["S43"],"item":[{"txt":{"ref":"R42","ctx":"342:341:308:343:344:345:346:347:348:349:350:351:352:353:354:355:356:357","style":["S42"],"val":"Get dressed","valTyp":"text"}}]},{"ref":"R45","style":["S45"],"item":[{"txt":{"ref":"R44","ctx":"343:341:308:342:344:345:346:347:348:349:350:351:352:353:354:355:356:357","style":["S44"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=694","valTyp":"text"}}]},{"ref":"R47","style":["S47"],"item":[{"txt":{"ref":"R46","ctx":"344:341:308:342:343:345:346:347:348:349:350:351:352:353:354:355:356:357","style":["S46"],"val"
 :,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R49","style":["S49"],"item":[{"txt":{"ref":"R48","ctx":"345:341:308:342:343:344:346:347:348:349:350:351:352:353:354:355:356:357","style":["S48"],"val":"/Emily/Get ready to work/Get dressed","valTyp":"text"}}]},{"ref":"R51","style":["S51"],"item":[{"txt":{"ref":"R50","ctx":"346:341:308:342:343:344:345:347:348:349:350:351:352:353:354:355:356:357","style":["S50"],"val":"733","valTyp":"number","fmtVal":"733","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R53","style":["S53"],"item":[{"txt":{"ref":"R52","ctx":"347:341:308:342:343:344:345:346:348:349:350:351:352:353:354:355:356:357","style":["S52"],"val":"R14","valTyp":"text"}}]},{"ref":"R55","style":["S55"],"item":[{"txt":{"ref":"R54","ctx":"348:341:308:342:343:344:345:346:347:349:350:351:352:353:354:355:356:357","style":["S54"],"val":"http://VOTTOPG10.ottawa.ibm.com:10108/openpages/view.resource.do?fileId=733","valTyp":"text"}}]},{"ref":"R57","style":["S57"],"item":[{"txt":{"ref":"R56
 ","ctx":"349:341:308:342:343:344:345:346:347:348:350:351:352:353:354:355:356:357","style":["S56"],"val":"Wrinkles on clothes","valTyp":"text"}}]},{"ref":"R59","style":["S59"],"item":[{"txt":{"ref":"R58","ctx":"350:341:308:342:343:344:345:346:347:348:349:351:352:353:354:355:356:357","style":["S58"],"val":,"valErrorState":"NULL","valTyp":"text"}}]},{"ref":"R61","style":["S61"],"item":[{"txt":{"ref":"R60","ctx":"351:341:308:342:343:344:345:346:347:348:349:350:352:353:354:355:356:357","style":["S60"],"val":"/Emily/Get ready to work/Wrinkles on clothes","valTyp":"text"}}]},{"ref":"R63","style":["S63"],"item":[{"txt":{"ref":"R62","ctx":"352:341:308:342:343:344:345:346:347:348:349:350:351:353:354:355:356:357","style":["S62"],"val":"769","valTyp":"number","fmtVal":"769","fmtPatrn":"#0","exclPatrn":"\\#0"}}]},{"ref":"R65","style":["S65"],"item":[{"txt":{"ref":"R64","ctx":"353:341:308:342:343:344:345:346:347:348:349:350:351:352:354:355:356:357","style":["S64"],"val":"C17","valTyp":"text"}}]},
 {"ref":"R67","style":["S67"],"item":[{"txt":{"ref":"R66","ctx":"354:341:308:342:343:344:345:346:347:348:349:350:351:352:353:355:356:357","style":["S66"],"va

<TRUNCATED>


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter.java
deleted file mode 100755
index af88d87..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarFilter.java
+++ /dev/null
@@ -1,289 +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.filters;
-
-import java.text.*;
-import java.util.*;
-
-import javax.xml.bind.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.ParseException;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Transforms {@link Calendar Calendars} to {@link String Strings}.
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * 	The following direct subclasses are provided for convenience:
- * <ul>
- * 	<li>{@link ToString} - Transforms to {@link String Strings} using the {@code Date.toString()} method.
- * 	<li>{@link ISO8601DT} - Transforms to ISO8601 date-time strings.
- * 	<li>{@link ISO8601DTZ} - Same as {@link ISO8601DT}, except always serializes in GMT.
- * 	<li>{@link RFC2822DT} - Transforms to RFC2822 date-time strings.
- * 	<li>{@link RFC2822DTZ} - Same as {@link RFC2822DT}, except always serializes in GMT.
- * 	<li>{@link RFC2822D} - Transforms to RFC2822 date strings.
- * 	<li>{@link Simple} - Transforms to simple <js>"yyyy/MM/dd HH:mm:ss"</js> strings.
- * 	<li>{@link Medium} - Transforms to {@link DateFormat#MEDIUM} strings.
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class CalendarFilter extends PojoFilter<Calendar,String> {
-
-	private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
-
-	/**
-	 * Transforms {@link Calendar Calendars} to {@link String Strings} using the {@code Date.toString()} method.
-	 *
-	 * <dl>
-	 * 	<dt>Example output:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li><js>"Wed Jul 04 15:30:45 EST 2001"</js>
-	 * </ul>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static class ToString extends CalendarFilter {
-		/** Constructor */
-		public ToString() {
-			super("EEE MMM dd HH:mm:ss zzz yyyy");
-		}
-	}
-
-	/**
-	 * Transforms {@link Calendar Calendars} to ISO8601 date-time strings.
-	 *
-	 * <dl>
-	 * 	<dt>Example output:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li><js>"2001-07-04T15:30:45-05:00"</js>
-	 * 	<li><js>"2001-07-04T15:30:45Z"</js>
-	 * </ul>
-	 * 	</dd>
-	 * 	<dt>Example input:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li><js>"2001-07-04T15:30:45-05:00"</js>
-	 * 	<li><js>"2001-07-04T15:30:45Z"</js>
-	 * 	<li><js>"2001-07-04T15:30:45.1Z"</js>
-	 * 	<li><js>"2001-07-04T15:30Z"</js>
-	 * 	<li><js>"2001-07-04"</js>
-	 * 	<li><js>"2001-07"</js>
-	 * 	<li><js>"2001"</js>
-	 * </ul>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static class ISO8601DT extends CalendarFilter {
-
-		/** Constructor */
-		public ISO8601DT() {}
-
-		@Override /* PojoFilter */
-		public Calendar unfilter(String o, ClassMeta<?> hint) throws ParseException {
-			try {
-				if (StringUtils.isEmpty(o))
-					return null;
-				return convert(DatatypeConverter.parseDateTime(o), hint);
-			} catch (Exception e) {
-				throw new ParseException(e);
-			}
-		}
-
-		@Override /* PojoFilter */
-		public String filter(Calendar o) {
-			return DatatypeConverter.printDateTime(o);
-		}
-	}
-
-	/**
-	 * Same as {@link ISO8601DT}, except always serializes in GMT.
-	 * <p>
-	 * Example output: <js>"2001-07-04T15:30:45Z"</js>
-	 */
-	public static class ISO8601DTZ extends CalendarFilter {
-
-		/** Constructor */
-		public ISO8601DTZ() {}
-
-		@Override /* PojoFilter */
-		public Calendar unfilter(String o, ClassMeta<?> hint) throws ParseException {
-			try {
-				if (StringUtils.isEmpty(o))
-					return null;
-				return convert(DatatypeConverter.parseDateTime(o), hint);
-			} catch (Exception e) {
-				throw new ParseException(e);
-			}
-		}
-
-		@Override /* PojoFilter */
-		public String filter(Calendar o) {
-			if (o.getTimeZone().getRawOffset() != 0) {
-				Calendar c = Calendar.getInstance(GMT);
-				c.setTime(o.getTime());
-				o = c;
-			}
-			return DatatypeConverter.printDateTime(o);
-		}
-	}
-
-	/**
-	 * Transforms {@link Calendar Calendars} to RFC2822 date-time strings.
-	 */
-	public static class RFC2822DT extends CalendarFilter {
-		/** Constructor */
-		public RFC2822DT() {
-			super("EEE, dd MMM yyyy HH:mm:ss Z");
-		}
-	}
-
-	/**
-	 * Same as {@link RFC2822DT}, except always serializes in GMT.
-	 * <p>
-	 * Example output: <js>"Wed, 31 Jan 2001 12:34:56 +0000"</js>
-	 */
-	public static class RFC2822DTZ extends CalendarFilter {
-		/** Constructor */
-		public RFC2822DTZ() {
-			super("EEE, dd MMM yyyy HH:mm:ss 'GMT'", GMT);
-		}
-	}
-
-	/**
-	 * Transforms {@link Calendar Calendars} to RFC2822 date strings.
-	 */
-	public static class RFC2822D extends CalendarFilter {
-		/** Constructor */
-		public RFC2822D() {
-			super("dd MMM yyyy");
-		}
-	}
-
-	/**
-	 * Transforms {@link Calendar Calendars} to simple <js>"yyyy/MM/dd HH:mm:ss"</js> strings.
-	 */
-	public static class Simple extends CalendarFilter {
-		/** Constructor */
-		public Simple() {
-			super("yyyy/MM/dd HH:mm:ss");
-		}
-	}
-
-	/**
-	 * Transforms {@link Calendar Calendars} to {@link DateFormat#MEDIUM} strings.
-	 */
-	public static class Medium extends CalendarFilter {
-		/** Constructor */
-		public Medium() {
-			super(DateFormat.getDateInstance(DateFormat.MEDIUM));
-		}
-	}
-
-	/** The formatter to convert dates to Strings. */
-	private DateFormat format;
-
-	private TimeZone timeZone;
-
-	/**
-	 * Default constructor.
-	 * <p>
-	 * 	This constructor is used when <code>filter()</code> and <code>unfilter()</code> are overridden by subclasses.
-	 */
-	public CalendarFilter() {}
-
-	/**
-	 * Construct a filter using the specified date format string that will be
-	 * 	used to construct a {@link SimpleDateFormat} that will be used to convert
-	 * 	dates to strings.
-	 *
-	 * @param simpleDateFormat The {@link SimpleDateFormat} pattern.
-	 */
-	public CalendarFilter(String simpleDateFormat) {
-		this(new SimpleDateFormat(simpleDateFormat));
-	}
-
-	/**
-	 * Construct a filter using the specified date format string that will be
-	 * 	used to construct a {@link SimpleDateFormat} that will be used to convert
-	 * 	dates to strings.
-	 *
-	 * @param simpleDateFormat The {@link SimpleDateFormat} pattern.
-	 * @param timeZone The time zone to associate with the date pattern.
-	 */
-	public CalendarFilter(String simpleDateFormat, TimeZone timeZone) {
-		this(new SimpleDateFormat(simpleDateFormat));
-		format.setTimeZone(timeZone);
-		this.timeZone = timeZone;
-	}
-
-	/**
-	 * Construct a filter using the specified {@link DateFormat} that will be used to convert
-	 * 	dates to strings.
-	 *
-	 * @param format The format to use to convert dates to strings.
-	 */
-	public CalendarFilter(DateFormat format) {
-		super();
-		this.format = format;
-	}
-
-	/**
-	 * Converts the specified {@link Calendar} to a {@link String}.
-	 */
-	@Override /* PojoFilter */
-	public String filter(Calendar o) {
-		DateFormat df = format;
-		TimeZone tz1 = o.getTimeZone();
-		TimeZone tz2 = format.getTimeZone();
-		if (timeZone == null && ! tz1.equals(tz2)) {
-			df = (DateFormat)format.clone();
-			df.setTimeZone(tz1);
-		}
-		return df.format(o.getTime());
-	}
-
-	/**
-	 * Converts the specified {@link String} to a {@link Calendar}.
-	 */
-	@Override /* PojoFilter */
-	public Calendar unfilter(String o, ClassMeta<?> hint) throws ParseException {
-		try {
-			if (StringUtils.isEmpty(o))
-				return null;
-			return convert(format.parse(o), hint);
-		} catch (Exception e) {
-			throw new ParseException(e);
-		}
-	}
-
-	private static Calendar convert(Calendar in, ClassMeta<?> hint) throws Exception {
-		if (hint.isInstance(in) || ! hint.canCreateNewInstance())
-			return in;
-		Calendar c = (Calendar)hint.newInstance();
-		c.setTime(in.getTime());
-		c.setTimeZone(in.getTimeZone());
-		return c;
-	}
-
-	private static Calendar convert(Date in, ClassMeta<?> hint) throws Exception {
-		if (hint == null || ! hint.canCreateNewInstance())
-			hint = BeanContext.DEFAULT.getClassMeta(GregorianCalendar.class);
-		Calendar c = (Calendar)hint.newInstance();
-		c.setTime(in);
-		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/filters/CalendarLongFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarLongFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarLongFilter.class
deleted file mode 100755
index 98d2415..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarLongFilter.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/filters/CalendarLongFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarLongFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarLongFilter.java
deleted file mode 100755
index c68b3c9..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarLongFilter.java
+++ /dev/null
@@ -1,52 +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.filters;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Transforms {@link Calendar Calendars} to {@link Long Longs} using {@code Calender.getTime().getTime()}.
- * <p>
- * 	TODO:  This class does not handle timezones correctly when parsing {@code GregorianCalendar} objects.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class CalendarLongFilter extends PojoFilter<Calendar,Long> {
-
-	/**
-	 * Converts the specified {@link Calendar} to a {@link Long}.
-	 */
-	@Override /* PojoFilter */
-	public Long filter(Calendar o) {
-		return o.getTime().getTime();
-	}
-
-	/**
-	 * Converts the specified {@link Long} to a {@link Calendar}.
-	 */
-	@Override /* PojoFilter */
-	@SuppressWarnings("unchecked")
-	public Calendar unfilter(Long o, ClassMeta<?> hint) throws ParseException {
-		ClassMeta<? extends Calendar> tt;
-		try {
-			if (hint == null || ! hint.canCreateNewInstance())
-				hint = getBeanContext().getClassMeta(GregorianCalendar.class);
-			tt = (ClassMeta<? extends Calendar>)hint;
-			Calendar c = tt.newInstance();
-			c.setTimeInMillis(o);
-			return c;
-		} catch (Exception e) {
-			throw new ParseException(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarMapFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarMapFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarMapFilter.class
deleted file mode 100755
index bf9f7fd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarMapFilter.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/filters/CalendarMapFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarMapFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarMapFilter.java
deleted file mode 100755
index 9c4ab3f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/CalendarMapFilter.java
+++ /dev/null
@@ -1,60 +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.filters;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Transforms {@link Calendar Calendars} to {@link Map Maps} of the format <code>{_class:String,value:long}</code>.
- * <p>
- * 	TODO:  This class does not handle timezones correctly when parsing {@code GregorianCalendar} objects.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("rawtypes")
-public class CalendarMapFilter extends PojoFilter<Calendar,Map> {
-
-	/**
-	 * Converts the specified {@link Calendar} to a {@link Map}.
-	 */
-	@Override /* PojoFilter */
-	public Map filter(Calendar o) {
-		ObjectMap m = new ObjectMap();
-		m.put("time", o.getTime().getTime());
-		m.put("timeZone", o.getTimeZone().getID());
-		return m;
-	}
-
-	/**
-	 * Converts the specified {@link Map} to a {@link Calendar}.
-	 */
-	@Override /* PojoFilter */
-	@SuppressWarnings("unchecked")
-	public Calendar unfilter(Map o, ClassMeta<?> hint) throws ParseException {
-		ClassMeta<? extends Calendar> tt;
-		try {
-			if (hint == null || ! hint.canCreateNewInstance())
-				hint = getBeanContext().getClassMeta(GregorianCalendar.class);
-			tt = (ClassMeta<? extends Calendar>)hint;
-			long time = Long.parseLong(o.get("time").toString());
-			String timeZone = o.get("timeZone").toString();
-			Date d = new Date(time);
-			Calendar c = tt.newInstance();
-			c.setTime(d);
-			c.setTimeZone(TimeZone.getTimeZone(timeZone));
-			return c;
-		} catch (Exception e) {
-			throw new ParseException(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DT.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DT.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DT.class
deleted file mode 100755
index 19e7cf5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DT.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/filters/DateFilter$ISO8601DTP.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTP.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTP.class
deleted file mode 100755
index 5063f59..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTP.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/filters/DateFilter$ISO8601DTPNZ.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTPNZ.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTPNZ.class
deleted file mode 100755
index 3c4fc61..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTPNZ.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/filters/DateFilter$ISO8601DTZ.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTZ.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTZ.class
deleted file mode 100755
index 5e26cba..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTZ.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/filters/DateFilter$ISO8601DTZP.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTZP.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTZP.class
deleted file mode 100755
index d41205f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ISO8601DTZP.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/filters/DateFilter$Medium.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$Medium.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$Medium.class
deleted file mode 100755
index 570a27b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$Medium.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/filters/DateFilter$RFC2822D.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822D.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822D.class
deleted file mode 100755
index 0c8f4f1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822D.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/filters/DateFilter$RFC2822DT.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822DT.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822DT.class
deleted file mode 100755
index f034235..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822DT.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/filters/DateFilter$RFC2822DTZ.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822DTZ.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822DTZ.class
deleted file mode 100755
index 41db26c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$RFC2822DTZ.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/filters/DateFilter$Simple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$Simple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$Simple.class
deleted file mode 100755
index e438251..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$Simple.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/filters/DateFilter$SimpleP.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$SimpleP.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$SimpleP.class
deleted file mode 100755
index be31fe4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$SimpleP.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/filters/DateFilter$ToString.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ToString.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ToString.class
deleted file mode 100755
index 7a78e4d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter$ToString.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/filters/DateFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter.class
deleted file mode 100755
index 123a252..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter.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/filters/DateFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter.java
deleted file mode 100755
index 1759b41..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateFilter.java
+++ /dev/null
@@ -1,345 +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.filters;
-
-import java.text.*;
-import java.util.*;
-
-import javax.xml.bind.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.ParseException;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Transforms {@link Date Dates} to {@link String Strings}.
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * 	The following direct subclasses are provided for convenience:
- * <ul>
- * 	<li>{@link ToString} - Transforms to {@link String Strings} using the {@code Date.toString()} method.
- * 	<li>{@link ISO8601DT} - Transforms to ISO8601 date-time strings.
- * 	<li>{@link ISO8601DTP} - Transforms to ISO8601 date-time strings with millisecond precision.
- * 	<li>{@link ISO8601DTZ} - Same as {@link ISO8601DT}, except always serializes in GMT.
- * 	<li>{@link ISO8601DTZ} - Same as {@link ISO8601DTZ}, except with millisecond precision.
- * 	<li>{@link RFC2822DT} - Transforms to RFC2822 date-time strings.
- * 	<li>{@link RFC2822DTZ} - Same as {@link RFC2822DT}, except always serializes in GMT.
- * 	<li>{@link RFC2822D} - Transforms to RFC2822 date strings.
- * 	<li>{@link Simple} - Transforms to simple <js>"yyyy/MM/dd HH:mm:ss"</js> strings.
- * 	<li>{@link Medium} - Transforms to {@link DateFormat#MEDIUM} strings.
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class DateFilter extends PojoFilter<Date,String> {
-
-	/**
-	 * Transforms {@link Date Dates} to {@link String Strings} using the {@code Date.toString()} method.
-	 * <p>
-	 * <dl>
-	 * 	<dt>Example output:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li><js>"Wed Jul 04 15:30:45 EST 2001"</js>
-	 * </ul>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static class ToString extends DateFilter {
-		/** Constructor */
-		public ToString() {
-			super("EEE MMM dd HH:mm:ss zzz yyyy");
-		}
-	}
-
-	/**
-	 * Transforms {@link Date Dates} to ISO8601 date-time strings.
-	 *
-	 * <dl>
-	 * 	<dt>Example output:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li><js>"2001-07-04T15:30:45-05:00"</js>
-	 * 	<li><js>"2001-07-04T15:30:45Z"</js>
-	 * </ul>
-	 * 	</dd>
-	 * 	<dt>Example input:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li><js>"2001-07-04T15:30:45-05:00"</js>
-	 * 	<li><js>"2001-07-04T15:30:45Z"</js>
-	 * 	<li><js>"2001-07-04T15:30:45.1Z"</js>
-	 * 	<li><js>"2001-07-04T15:30Z"</js>
-	 * 	<li><js>"2001-07-04"</js>
-	 * 	<li><js>"2001-07"</js>
-	 * 	<li><js>"2001"</js>
-	 * </ul>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static class ISO8601DT extends DateFilter {
-		private SimpleDateFormat tzFormat = new SimpleDateFormat("Z");
-
-		/** Constructor */
-		public ISO8601DT() {
-			this("yyyy-MM-dd'T'HH:mm:ss");
-		}
-
-		/**
-		 * Constructor with specific pattern.
-		 *
-		 * @param pattern The {@link MessageFormat}-style format string.
-		 */
-		protected ISO8601DT(String pattern) {
-			super(pattern);
-		}
-
-		@Override /* PojoFilter */
-		public Date unfilter(String o, ClassMeta<?> hint) throws ParseException {
-			try {
-				if (StringUtils.isEmpty(o))
-					return null;
-				return convert(DatatypeConverter.parseDateTime(o).getTime(), hint);
-			} catch (ParseException e) {
-				throw e;
-			} catch (Exception e) {
-				throw new ParseException(e);
-			}
-		}
-
-		@Override /* PojoFilter */
-		public String filter(Date o) {
-			String s = super.filter(o);
-			String tz = tzFormat.format(o);
-			if (tz.equals("+0000"))
-				return s + "Z";
-			return s + tz.substring(0,3) + ':' + tz.substring(3);
-		}
-	}
-
-	/**
-	 * Same as {@link ISO8601DT} except serializes to millisecond precision.
-	 * <p>
-	 * Example output: <js>"2001-07-04T15:30:45.123-05:00"</js>
-	 */
-	public static class ISO8601DTP extends ISO8601DT {
-
-		/** Constructor */
-		public ISO8601DTP() {
-			super("yyyy-MM-dd'T'HH:mm:ss.SSS");
-		}
-	}
-
-	/**
-	 * Same as {@link ISO8601DT} except serializes to millisecond precision and doesn't include timezone.
-	 * <p>
-	 * Example output: <js>"2001-07-04T15:30:45.123"</js>
-	 */
-	public static class ISO8601DTPNZ extends DateFilter {
-
-		/** Constructor */
-		public ISO8601DTPNZ() {
-			super("yyyy-MM-dd'T'HH:mm:ss.SSS");
-		}
-	}
-
-	/**
-	 * Same as {@link ISO8601DT}, except always serializes in GMT.
-	 * <p>
-	 * Example output:  <js>"2001-07-04T15:30:45Z"</js>
-	 */
-	public static class ISO8601DTZ extends DateFilter {
-
-		/** Constructor */
-		public ISO8601DTZ() {
-			this("yyyy-MM-dd'T'HH:mm:ss'Z'");
-		}
-
-		/**
-		 * Constructor with specific pattern.
-		 *
-		 * @param pattern The {@link MessageFormat}-style format string.
-		 */
-		protected ISO8601DTZ(String pattern) {
-			super(pattern, "GMT");
-		}
-
-		@Override /* PojoFilter */
-		public Date unfilter(String o, ClassMeta<?> hint) throws ParseException {
-			try {
-				if (StringUtils.isEmpty(o))
-					return null;
-				return convert(DatatypeConverter.parseDateTime(o).getTime(), hint);
-			} catch (ParseException e) {
-				throw e;
-			} catch (Exception e) {
-				throw new ParseException(e);
-			}
-		}
-	}
-
-	/**
-	 * Same as {@link ISO8601DTZ} except serializes to millisecond precision.
-	 * <p>
-	 * Example output:  <js>"2001-07-04T15:30:45.123Z"</js>
-	 */
-	public static class ISO8601DTZP extends ISO8601DT {
-
-		/** Constructor */
-		public ISO8601DTZP() {
-			super("yyyy-MM-dd'T'HH:mm:ss.SSS");
-		}
-	}
-
-	/**
-	 * Transforms {@link Date Dates} to RFC2822 date-time strings.
-	 */
-	public static class RFC2822DT extends DateFilter {
-		/** Constructor */
-		public RFC2822DT() {
-			super("EEE, dd MMM yyyy HH:mm:ss z");
-		}
-	}
-
-	/**
-	 * Same as {@link RFC2822DT}, except always serializes in GMT.
-	 * <p>
-	 * Example output:  <js>"2001-07-04T15:30:45Z"</js>
-	 */
-	public static class RFC2822DTZ extends DateFilter {
-		/** Constructor */
-		public RFC2822DTZ() {
-			super("EEE, dd MMM yyyy HH:mm:ss z", "GMT");
-		}
-	}
-
-	/**
-	 * Transforms {@link Date Dates} to RFC2822 date strings.
-	 */
-	public static class RFC2822D extends DateFilter {
-		/** Constructor */
-		public RFC2822D() {
-			super("dd MMM yyyy");
-		}
-	}
-
-	/**
-	 * Transforms {@link Date Dates} to simple <js>"yyyy/MM/dd HH:mm:ss"</js> strings.
-	 */
-	public static class Simple extends DateFilter {
-		/** Constructor */
-		public Simple() {
-			super("yyyy/MM/dd HH:mm:ss");
-		}
-	}
-
-	/**
-	 * Transforms {@link Date Dates} to simple <js>"yyyy/MM/dd HH:mm:ss.SSS"</js> strings.
-	 */
-	public static class SimpleP extends DateFilter {
-		/** Constructor */
-		public SimpleP() {
-			super("yyyy/MM/dd HH:mm:ss.SSS");
-		}
-	}
-
-	/**
-	 * Transforms {@link Date Dates} to {@link DateFormat#MEDIUM} strings.
-	 */
-	public static class Medium extends DateFilter {
-		/** Constructor */
-		public Medium() {
-			super(DateFormat.getDateInstance(DateFormat.MEDIUM));
-		}
-	}
-
-	/** The formatter to convert dates to Strings. */
-	private DateFormat format;
-
-	/**
-	 * Construct a filter using the specified date format string that will be
-	 * 	used to construct a {@link SimpleDateFormat} that will be used to convert
-	 * 	dates to strings.
-	 *
-	 * @param simpleDateFormat The {@link SimpleDateFormat} pattern.
-	 */
-	public DateFilter(String simpleDateFormat) {
-		this(new SimpleDateFormat(simpleDateFormat));
-	}
-
-	/**
-	 * Construct a filter using the specified date format string that will be
-	 * 	used to construct a {@link SimpleDateFormat} that will be used to convert
-	 * 	dates to strings.
-	 *
-	 * @param simpleDateFormat The {@link SimpleDateFormat} pattern.
-	 * @param timeZone The time zone to associate with the date pattern.
-	 */
-	public DateFilter(String simpleDateFormat, String timeZone) {
-		this(new SimpleDateFormat(simpleDateFormat));
-		format.setTimeZone(TimeZone.getTimeZone(timeZone));
-	}
-
-	/**
-	 * Construct a filter using the specified {@link DateFormat} that will be used to convert
-	 * 	dates to strings.
-	 *
-	 * @param format The format to use to convert dates to strings.
-	 */
-	public DateFilter(DateFormat format) {
-		super();
-		this.format = format;
-	}
-
-	/**
-	 * Converts the specified {@link Date} to a {@link String}.
-	 */
-	@Override /* PojoFilter */
-	public String filter(Date o) {
-		return format.format(o);
-	}
-
-	/**
-	 * Converts the specified {@link String} to a {@link Date}.
-	 */
-	@Override /* PojoFilter */
-	public Date unfilter(String o, ClassMeta<?> hint) throws ParseException {
-		try {
-			if (StringUtils.isEmpty(o))
-				return null;
-			Date d = format.parse(o);
-			return convert(d, hint);
-		} catch (ParseException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new ParseException(e);
-		}
-	}
-
-	private static Date convert(Date in, ClassMeta<?> hint) throws Exception {
-		if (in == null)
-			return null;
-		if (hint == null || hint.isInstance(in))
-			return in;
-		Class<?> c = hint.getInnerClass();
-		if (c == java.util.Date.class)
-			return in;
-		if (c == java.sql.Date.class)
-			return new java.sql.Date(in.getTime());
-		if (c == java.sql.Time.class)
-			return new java.sql.Time(in.getTime());
-		if (c == java.sql.Timestamp.class)
-			return new java.sql.Timestamp(in.getTime());
-		throw new ParseException("DateFilter is unable to narrow object of type ''{0}''", c);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateLongFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateLongFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateLongFilter.class
deleted file mode 100755
index 70b7348..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateLongFilter.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/filters/DateLongFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateLongFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateLongFilter.java
deleted file mode 100755
index c454645..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateLongFilter.java
+++ /dev/null
@@ -1,48 +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.filters;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Transforms {@link Date Dates} to {@link Long Longs}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class DateLongFilter extends PojoFilter<Date,Long> {
-
-	/**
-	 * Converts the specified {@link Date} to a {@link Long}.
-	 */
-	@Override /* PojoFilter */
-	public Long filter(Date o) {
-		return o.getTime();
-	}
-
-	/**
-	 * Converts the specified {@link Long} to a {@link Date}.
-	 */
-	@Override /* PojoFilter */
-	public Date unfilter(Long o, ClassMeta<?> hint) throws ParseException {
-		Class<?> c = (hint == null ? java.util.Date.class : hint.getInnerClass());
-		if (c == java.util.Date.class)
-			return new java.util.Date(o);
-		if (c == java.sql.Date.class)
-			return new java.sql.Date(o);
-		if (c == java.sql.Time.class)
-			return new java.sql.Time(o);
-		if (c == java.sql.Timestamp.class)
-			return new java.sql.Timestamp(o);
-		throw new ParseException("DateLongFilter is unable to narrow object of type ''{0}''", c);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateMapFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateMapFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateMapFilter.class
deleted file mode 100755
index 1a84d40..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateMapFilter.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/filters/DateMapFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateMapFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateMapFilter.java
deleted file mode 100755
index ba5c63f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/DateMapFilter.java
+++ /dev/null
@@ -1,52 +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.filters;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Transforms {@link Date Dates} to {@link Map Maps} of the format <tt>{value:long}</tt>.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("rawtypes")
-public class DateMapFilter extends PojoFilter<Date,Map> {
-
-	/**
-	 * Converts the specified {@link Date} to a {@link Map}.
-	 */
-	@Override /* PojoFilter */
-	public Map filter(Date o) {
-		ObjectMap m = new ObjectMap();
-		m.put("time", o.getTime());
-		return m;
-	}
-
-	/**
-	 * Converts the specified {@link Map} to a {@link Date}.
-	 */
-	@Override /* PojoFilter */
-	public Date unfilter(Map o, ClassMeta<?> hint) throws ParseException {
-		Class<?> c = (hint == null ? java.util.Date.class : hint.getInnerClass());
-		long l = Long.parseLong(((Map<?,?>)o).get("time").toString());
-		if (c == java.util.Date.class)
-			return new java.util.Date(l);
-		if (c == java.sql.Date.class)
-			return new java.sql.Date(l);
-		if (c == java.sql.Time.class)
-			return new java.sql.Time(l);
-		if (c == java.sql.Timestamp.class)
-			return new java.sql.Timestamp(l);
-		throw new ParseException("DateMapFilter is unable to narrow object of type ''{0}''", c);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/EnumerationFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/EnumerationFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/EnumerationFilter.class
deleted file mode 100755
index 3aaf8b1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/EnumerationFilter.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/filters/EnumerationFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/EnumerationFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/EnumerationFilter.java
deleted file mode 100755
index 549f7da..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/EnumerationFilter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.filters;
-
-import java.util.*;
-
-import com.ibm.juno.core.filter.*;
-
-/**
- * Transforms {@link Enumeration Enumerations} to {@code List<Object>} objects.
- * <p>
- * 	This is a one-way filter, since {@code Enumerations} cannot be reconstituted.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({"unchecked","rawtypes"})
-public class EnumerationFilter extends PojoFilter<Enumeration,List> {
-
-	/**
-	 * Converts the specified {@link Enumeration} to a {@link List}.
-	 */
-	@Override /* PojoFilter */
-	public List filter(Enumeration o) {
-		List l = new LinkedList();
-		while (o.hasMoreElements())
-			l.add(o.nextElement());
-		return l;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/IteratorFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/IteratorFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/IteratorFilter.class
deleted file mode 100755
index f7ef926..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/IteratorFilter.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/filters/IteratorFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/IteratorFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/IteratorFilter.java
deleted file mode 100755
index 7e5ded6..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/IteratorFilter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.filters;
-
-import java.util.*;
-
-import com.ibm.juno.core.filter.*;
-
-/**
- * Transforms {@link Iterator Iterators} to {@code List<Object>} objects.
- * <p>
- * 	This is a one-way filter, since {@code Iterators} cannot be reconstituted.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({"unchecked","rawtypes"})
-public class IteratorFilter extends PojoFilter<Iterator,List> {
-
-	/**
-	 * Converts the specified {@link Iterator} to a {@link List}.
-	 */
-	@Override /* PojoFilter */
-	public List filter(Iterator o) {
-		List l = new LinkedList();
-		while (o.hasNext())
-			l.add(o.next());
-		return l;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Html.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Html.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Html.class
deleted file mode 100755
index 1e70661..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Html.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/filters/ReaderFilter$Json.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Json.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Json.class
deleted file mode 100755
index 4a97b6b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Json.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/filters/ReaderFilter$PlainText.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$PlainText.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$PlainText.class
deleted file mode 100755
index 8e5c6fd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$PlainText.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/filters/ReaderFilter$Xml.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Xml.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Xml.class
deleted file mode 100755
index 21130fc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter$Xml.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/filters/ReaderFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter.class
deleted file mode 100755
index c425ae6..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter.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/filters/ReaderFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter.java
deleted file mode 100755
index e1d4ecc..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/ReaderFilter.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.filters;
-
-import java.io.*;
-
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.html.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Transforms the contents of a {@link Reader} into an {@code Object}.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	The {@code Reader} must contain JSON, Juno-generated XML (output from {@link XmlSerializer}),
- * 		or Juno-generated HTML (output from {@link JsonSerializer}) in order to be parsed correctly.
- * <p>
- * 	Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.
- * <p>
- * 	This is a one-way filter, since {@code Readers} cannot be reconstituted.
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * 	The following direct subclasses are provided for convenience:
- * <ul>
- * 	<li>{@link Json} - Parses JSON text.
- * 	<li>{@link Xml} - Parses XML text.
- * 	<li>{@link Html} - Parses HTML text.
- * 	<li>{@link PlainText} - Parses plain text.
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ReaderFilter extends PojoFilter<Reader,Object> {
-
-	/** Reader filter for reading JSON text. */
-	public static class Json extends ReaderFilter {
-		/** Constructor */
-		public Json() {
-			super(JsonParser.DEFAULT);
-		}
-	}
-
-	/** Reader filter for reading XML text. */
-	public static class Xml extends ReaderFilter {
-		/** Constructor */
-		public Xml() {
-			super(XmlParser.DEFAULT);
-		}
-	}
-
-	/** Reader filter for reading HTML text. */
-	public static class Html extends ReaderFilter {
-		/** Constructor */
-		public Html() {
-			super(HtmlParser.DEFAULT);
-		}
-	}
-
-	/** Reader filter for reading plain text. */
-	public static class PlainText extends ReaderFilter {
-		/** Constructor */
-		public PlainText() {
-			super(null);
-		}
-	}
-
-	/** The parser to use to parse the contents of the Reader. */
-	private ReaderParser parser;
-
-	/**
-	 * @param parser The parser to use to convert the contents of the reader to Java objects.
-	 */
-	public ReaderFilter(ReaderParser parser) {
-		this.parser = parser;
-	}
-
-	/**
-	 * Converts the specified {@link Reader} to an {@link Object} whose type is determined
-	 * by the contents of the reader.
-	 */
-	@Override /* PojoFilter */
-	public Object filter(Reader o) throws SerializeException {
-		try {
-			if (parser == null)
-				return IOUtils.read(o);
-			return parser.parse(o, -1, beanContext.object());
-		} catch (IOException e) {
-			return e.getLocalizedMessage();
-		} catch (Exception e) {
-			throw new SerializeException("ReaderFilter could not filter object of type ''{0}''", o == null ? null : o.getClass().getName()).initCause(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/XMLGregorianCalendarFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/XMLGregorianCalendarFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/XMLGregorianCalendarFilter.class
deleted file mode 100755
index 51e4b5d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/XMLGregorianCalendarFilter.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/filters/XMLGregorianCalendarFilter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/XMLGregorianCalendarFilter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/XMLGregorianCalendarFilter.java
deleted file mode 100755
index f2f111f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/XMLGregorianCalendarFilter.java
+++ /dev/null
@@ -1,60 +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.filters;
-
-import javax.xml.datatype.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Transforms {@link XMLGregorianCalendar XMLGregorianCalendars} to ISO8601 date-time {@link String Strings}.
- * <p>
- * 	Objects are converted to strings using {@link XMLGregorianCalendar#toXMLFormat()}.
- * <p>
- * 	Strings are converted to objects using {@link DatatypeFactory#newXMLGregorianCalendar(String)}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class XMLGregorianCalendarFilter extends PojoFilter<XMLGregorianCalendar,String> {
-
-	private DatatypeFactory dtf;
-
-	/**
-	 * Constructor.
-	 */
-	public XMLGregorianCalendarFilter() {
-		try {
-			this.dtf = DatatypeFactory.newInstance();
-		} catch (DatatypeConfigurationException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * Converts the specified <code>XMLGregorianCalendar</code> to a {@link String}.
-	 */
-	@Override /* PojoFilter */
-	public String filter(XMLGregorianCalendar b) throws SerializeException {
-		return b.toXMLFormat();
-	}
-
-	/**
-	 * Converts the specified {@link String} to an <code>XMLGregorianCalendar</code>.
-	 */
-	@Override /* PojoFilter */
-	public XMLGregorianCalendar unfilter(String s, ClassMeta<?> hint) throws ParseException {
-		if (StringUtils.isEmpty(s))
-			return null;
-		return dtf.newXMLGregorianCalendar(s);
-	}
-}
\ 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/filters/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/package.html
deleted file mode 100755
index 27e7a14..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/filters/package.html
+++ /dev/null
@@ -1,59 +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>Predefined Filter implementations</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="PredefinedFilters"></a><h2 class='topic'>1 - Predefined filter support</h2>
-<p>
-	This package contains various predefined instances of filters for commonly-serialized/parsed class types.
-</p>
-<p>
-	See {@link com.ibm.juno.core.filter} for more information about filters.
-</p>
-</body>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlBeanPropertyMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlBeanPropertyMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlBeanPropertyMeta.class
deleted file mode 100755
index bcdcdb8..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlBeanPropertyMeta.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/html/HtmlBeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlBeanPropertyMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlBeanPropertyMeta.java
deleted file mode 100755
index 4405f91..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlBeanPropertyMeta.java
+++ /dev/null
@@ -1,86 +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.html;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.html.annotation.*;
-
-/**
- * Metadata on bean properties specific to the HTML serializers and parsers pulled from the {@link Html @Html} annotation on the bean property.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The bean class.
- */
-public class HtmlBeanPropertyMeta<T> {
-
-	private boolean asXml, noTables, noTableHeaders, asPlainText;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param beanPropertyMeta The metadata of the bean property of this additional metadata.
-	 */
-	public HtmlBeanPropertyMeta(BeanPropertyMeta<T> beanPropertyMeta) {
-		if (beanPropertyMeta.getField() != null)
-			findHtmlInfo(beanPropertyMeta.getField().getAnnotation(Html.class));
-		if (beanPropertyMeta.getGetter() != null)
-			findHtmlInfo(beanPropertyMeta.getGetter().getAnnotation(Html.class));
-		if (beanPropertyMeta.getSetter() != null)
-			findHtmlInfo(beanPropertyMeta.getSetter().getAnnotation(Html.class));
-	}
-
-	private void findHtmlInfo(Html html) {
-		if (html == null)
-			return;
-		if (html.asXml())
-			asXml = html.asXml();
-		if (html.noTables())
-			noTables = html.noTables();
-		if (html.noTableHeaders())
-			noTableHeaders = html.noTableHeaders();
-		if (html.asPlainText())
-			asPlainText = html.asPlainText();
-	}
-
-	/**
-	 * Returns whether this bean property should be serialized as XML instead of HTML.
-	 *
-	 * @return <jk>true</jk> if the the {@link Html} annotation is specified, and {@link Html#asXml()} is <jk>true</jk>.
-	 */
-	protected boolean isAsXml() {
-		return asXml;
-	}
-
-	/**
-	 * Returns whether this bean property should be serialized as plain text instead of HTML.
-	 *
-	 * @return <jk>true</jk> if the the {@link Html} annotation is specified, and {@link Html#asPlainText()} is <jk>true</jk>.
-	 */
-	protected boolean isAsPlainText() {
-		return asPlainText;
-	}
-
-	/**
-	 * Returns whether this bean property should not be serialized as an HTML table.
-	 *
-	 * @return <jk>true</jk> if the the {@link Html} annotation is specified, and {@link Html#noTables()} is <jk>true</jk>.
-	 */
-	protected boolean isNoTables() {
-		return noTables;
-	}
-
-	/**
-	 * Returns whether this bean property should not include table headers when serialized as an HTML table.
-	 *
-	 * @return <jk>true</jk> if the the {@link Html} annotation is specified, and {@link Html#noTableHeaders()} is <jk>true</jk>.
-	 */
-	public boolean isNoTableHeaders() {
-		return noTableHeaders;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlClassMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlClassMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlClassMeta.class
deleted file mode 100755
index 74294b9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlClassMeta.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/html/HtmlClassMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlClassMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlClassMeta.java
deleted file mode 100755
index b5af7e5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlClassMeta.java
+++ /dev/null
@@ -1,88 +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.html;
-
-import com.ibm.juno.core.html.annotation.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Metadata on classes specific to the HTML serializers and parsers pulled from the {@link Html @Html} annotation on the class.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class HtmlClassMeta {
-
-	private final Html html;
-	private final boolean asXml, noTables, noTableHeaders, asPlainText;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param c The class that this annotation is defined on.
-	 */
-	public HtmlClassMeta(Class<?> c) {
-		this.html = ReflectionUtils.getAnnotation(Html.class, c);
-		if (html != null) {
-			asXml = html.asXml();
-			noTables = html.noTables();
-			noTableHeaders = html.noTableHeaders();
-			asPlainText = html.asPlainText();
-		} else {
-			asXml = false;
-			noTables = false;
-			noTableHeaders = false;
-			asPlainText = false;
-		}
-	}
-
-	/**
-	 * Returns the {@link Html} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Html} annotation, or <jk>null</jk> if not specified.
-	 */
-	protected Html getAnnotation() {
-		return html;
-	}
-
-	/**
-	 * Returns the {@link Html#asXml()} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Html#asXml()} annotation.
-	 */
-	protected boolean isAsXml() {
-		return asXml;
-	}
-
-	/**
-	 * Returns the {@link Html#asPlainText()} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Html#asPlainText()} annotation.
-	 */
-	protected boolean isAsPlainText() {
-		return asPlainText;
-	}
-
-	/**
-	 * Returns the {@link Html#noTables()} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Html#noTables()} annotation.
-	 */
-	protected boolean isNoTables() {
-		return noTables;
-	}
-
-	/**
-	 * Returns the {@link Html#noTableHeaders()} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Html#noTableHeaders()} annotation.
-	 */
-	public boolean isNoTableHeaders() {
-		return noTableHeaders;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializer.class
deleted file mode 100755
index e0992ad..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializer.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/html/HtmlDocSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializer.java
deleted file mode 100755
index a58709d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializer.java
+++ /dev/null
@@ -1,162 +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.html;
-
-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.dto.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Serializes POJOs to HTTP responses as HTML documents.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>text/html</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>text/html</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Same as {@link HtmlSerializer}, except wraps the response in <code><xt>&lt;html&gt;</code>, <code><xt>&lt;head&gt;</code>,
- * 	and <code><xt>&lt;body&gt;</code> tags so that it can be rendered in a browser.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link HtmlDocSerializerProperties}
- * 	<li>{@link HtmlSerializerProperties}
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces("text/html")
-public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
-
-	// Properties defined in RestServletProperties
-	private static final String
-		REST_method = "RestServlet.method",
-		REST_relativeServletURI = "RestServlet.relativeServletURI";
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-
-		HtmlSerializerContext hctx = (HtmlSerializerContext)ctx;
-		HtmlSerializerWriter w = hctx.getWriter(out);
-
-		ObjectMap properties = hctx.getProperties();
-
-		boolean isOptionsPage = properties.containsKey(REST_method) && properties.getString(REST_method).equalsIgnoreCase("OPTIONS");
-
-		// Render the header.
-		w.sTag("html").nl();
-		w.sTag("head").nl();
-
-		String cssUrl = hctx.getCssUrl();
-		if (cssUrl == null)
-			cssUrl = properties.getString(REST_relativeServletURI) + "/style.css";
-
-		w.oTag(1, "style")
-			.attr("type", "text/css")
-			.appendln(">")
-			.append(2, "@import ").q().append(cssUrl).q().appendln(";");
-		if (hctx.isNoWrap())
-			w.appendln("\n* {white-space:nowrap;}");
-		if (hctx.getCssImports() != null)
-			for (String cssImport : hctx.getCssImports())
-				w.append(2, "@import ").q().append(cssImport).q().appendln(";");
-		w.eTag(1, "style").nl();
-		w.eTag("head").nl();
-		w.sTag("body").nl();
-		// Write the title of the page.
-		String title = hctx.getTitle();
-		if (title == null && isOptionsPage)
-			title = "Options";
-		String description = hctx.getDescription();
-		if (title != null)
-			w.oTag(1, "h3").attr("class", "title").append('>').encodeText(title).eTag("h3").nl();
-		if (description != null)
-			w.oTag(1, "h5").attr("class", "description").append('>').encodeText(description).eTag("h5").nl();
-
-		// Write the action links that render above the results.
-		List<Link> actions = new LinkedList<Link>();
-
-		// If this is an OPTIONS request, provide a 'back' link to return to the GET request page.
-		if (! isOptionsPage) {
-			ObjectMap htmlLinks = hctx.getLinks();
-			if (htmlLinks != null) {
-				for (Map.Entry<String,Object> e : htmlLinks.entrySet()) {
-					String uri = e.getValue().toString();
-					if (uri.indexOf("://") == -1 && ! StringUtils.startsWith(uri, '/')) {
-						StringBuilder sb = new StringBuilder(properties.getString(REST_relativeServletURI));
-						if (! (uri.isEmpty() || uri.charAt(0) == '?' || uri.charAt(0) == '/'))
-							sb.append('/');
-						sb.append(uri);
-						uri = sb.toString();
-					}
-
-					actions.add(new Link(e.getKey(), uri));
-				}
-			}
-		}
-
-		if (actions.size() > 0) {
-			w.oTag(1, "p").attr("class", "links").append('>').nl();
-			for (Iterator<Link> i = actions.iterator(); i.hasNext();) {
-				Link h = i.next();
-				w.oTag(2, "a").attr("class", "link").attr("href", h.getHref(), true).append('>').append(h.getName()).eTag("a").nl();
-				if (i.hasNext())
-					w.append(3, " - ").nl();
-			}
-			w.eTag(1, "p").nl();
-		}
-
-		hctx.indent = 3;
-
-		// To allow for page formatting using CSS, we encapsulate the data inside two div tags:
-		// <div class='outerdata'><div class='data' id='data'>...</div></div>
-		w.oTag(1, "div").attr("class","outerdata").append('>').nl();
-		w.oTag(2, "div").attr("class","data").attr("id", "data").append('>').nl();
-		if (isEmptyList(o))
-			w.oTag(3, "p").append('>').append("no results").eTag("p");
-		else
-			super.doSerialize(o, w, hctx);
-		w.eTag(2, "div").nl();
-		w.eTag(1, "div").nl();
-
-		w.eTag("body").nl().eTag("html").nl();
-	}
-
-	private boolean isEmptyList(Object o) {
-		if (o == null)
-			return false;
-		if (o instanceof Collection && ((Collection<?>)o).size() == 0)
-			return true;
-		if (o.getClass().isArray() && Array.getLength(o) == 0)
-			return true;
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializerProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializerProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializerProperties.class
deleted file mode 100755
index b9afc9c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializerProperties.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/html/HtmlDocSerializerProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializerProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializerProperties.java
deleted file mode 100755
index dd565af..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlDocSerializerProperties.java
+++ /dev/null
@@ -1,165 +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.html;
-
-
-/**
- * Properties associated with the {@link HtmlDocSerializer} class.
- * <p>
- * 	These are typically specified via <ja>@RestResource.properties()</ja> and <ja>@RestMethod.properties()</ja> annotations,
- * 		although they can also be set programmatically via the <code>RestREsponse.setProperty()</code> method.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestResource</ja>(
- * 		messages=<js>"nls/AddressBookResource"</js>,
- * 		properties={
- * 			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, value=<js>"$L{title}"</js>),
- * 			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_description</jsf>, value=<js>"$L{description}"</js>),
- * 			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'?method=OPTIONS',doc:'doc'}"</js>)
- * 		}
- * 	)
- * 	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {
- * </p>
- * <p>
- * 	The <code>$L{...}</code> variable represent localized strings pulled from the resource bundle identified by the <code>messages</code> annotation.
- * 	These variables are replaced at runtime based on the HTTP request locale.
- * 	Several built-in runtime variable types are defined, and the API can be extended to include user-defined variables.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class HtmlDocSerializerProperties {
-
-	/**
-	 * Adds a title at the top of a page.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p>
-	 * 	The <code>AddressBookResource</code> sample class uses this property...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<ja>@RestResource</ja>(
-	 * 		messages=<js>"nls/AddressBookResource"</js>,
-	 * 		properties={
-	 * 			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, value=<js>"$L{title}"</js>)
-	 * 		}
-	 * 	)
-	 * 	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {
-	 * </p>
-	 * <p>
-	 * 	...with this property in <code>AddressBookResource.properties</code>...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	title = <js>AddressBook sample resource</js>
-	 * </p>
-	 * <p>
-	 * 	...to produce this title on the HTML page...
-	 * </p>
-	 * 		<img class='bordered' src='doc-files/HTML_TITLE.png'>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static final String HTMLDOC_title = "HtmlSerializer.title";
-
-	/**
-	 * Adds a description right below the title of a page.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p>
-	 * 	The <code>AddressBookResource</code> sample class uses this property...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<ja>@RestResource</ja>(
-	 * 		messages=<js>"nls/AddressBookResource"</js>,
-	 * 		properties={
-	 * 			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_description</jsf>, value=<js>"description"</js>, type=<jsf>NLS</jsf>)
-	 * 		}
-	 * 	)
-	 * 	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {
-	 * </p>
-	 * <p>
-	 * 	...with this property in <code>AddressBookResource.properties</code>...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	description = <js>Simple address book POJO sample resource</js>
-	 * </p>
-	 * <p>
-	 * 	...to produce this description on the HTML page...
-	 * </p>
-	 * 		<img class='bordered' src='doc-files/HTML_DESCRIPTION.png'>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static final String HTMLDOC_description = "HtmlSerializer.description";
-
-	/**
-	 * Adds a list of hyperlinks immediately under the title and description but above the content of the page.
-	 * <p>
-	 * 	This can be used to provide convenient hyperlinks when viewing the REST interface from a browser.
-	 * <p>
-	 * 	The value is a JSON object string where the keys are anchor text and the values are URLs.
-	 * <p>
-	 * 	Relative URLs are considered relative to the servlet path.
-	 * 	For example, if the servlet path is <js>"http://localhost/myContext/myServlet"</js>, and the
-	 * 		URL is <js>"foo"</js>, the link becomes <js>"http://localhost/myContext/myServlet/foo"</js>.
-	 * 	Absolute (<js>"/myOtherContext/foo"</js>) and fully-qualified (<js>"http://localhost2/foo"</js>) URLs
-	 * 		can also be used.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p>
-	 * 	The <code>AddressBookResource</code> sample class uses this property...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<ja>@RestResource</ja>(
-	 * 		messages=<js>"nls/AddressBookResource"</js>,
-	 * 		properties={
-	 * 			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'?method=OPTIONS',doc:'doc'}"</js>)
-	 * 		}
-	 * 	)
-	 * 	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {
-	 * </p>
-	 * <p>
-	 * 	...to produce this list of links on the HTML page...
-	 * </p>
-	 * 		<img class='bordered' src='doc-files/HTML_LINKS.png'>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static final String HTMLDOC_links = "HtmlDocSerializer.links";
-
-	/**
-	 * Similar to {@link #HTMLDOC_links} except appends on to the existing list of links.
-	 */
-	public static final String HTMLDOC_addLinks = "HtmlDocSerializer.addLinks";
-
-	/**
-	 * Adds a link to the specified stylesheet URL.
-	 * <p>
-	 * 	If not specified, defaults to the built-in stylesheet located at <js>"/servletPath/style.css"</js>.
-	 * 	Note that this stylesheet is controlled by the <code><ja>@RestResource</ja>.style()</code> annotation.
-	 */
-	public static final String HTMLDOC_cssUrl = "HtmlDocSerializer.cssUrl";
-
-	/**
-	 * Imports the specified CSS page URLs into the page.
-	 */
-	public static final String HTMLDOC_cssImports = "HtmlDocSerializer.cssImports";
-
-	/**
-	 * Adds <js>"* {white-space:nowrap}"</js> to the style header to prevent word wrapping.
-	 */
-	public static final String HTMLDOC_nowrap = "HtmlDocSerializer.nowrap";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlLink.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlLink.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlLink.class
deleted file mode 100755
index 54ac01b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlLink.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/html/HtmlLink.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlLink.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlLink.java
deleted file mode 100755
index 208f1bd..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlLink.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.html;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Used in conjunction with the {@link HtmlSerializer} class to define hyperlinks.
- * <p>
- * 	This annotation is applied to classes.
- * <p>
- * 	Annotation that can be used to specify that a class has a URL associated with it.
- * <p>
- * 	When rendered using the {@link com.ibm.juno.core.html.HtmlSerializer HtmlSerializer} class, this class will get rendered as a hyperlink like so...
- * <p class='code'>
- * 	<xt>&lt;a</xt> <xa>href</xa>=<xs>'hrefProperty'</xs><xt>&gt;</xt>nameProperty<xt>&lt;/a&gt;</xt>
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target(TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface HtmlLink {
-
-	/**
-	 * The bean property whose value becomes the name in the hyperlink.
-	 */
-	String nameProperty() default "";
-
-	/**
-	 * The bean property whose value becomes the url in the hyperlink.
-	 */
-	String hrefProperty() default "";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser$Tag.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser$Tag.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser$Tag.class
deleted file mode 100755
index 70e31b6..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser$Tag.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/html/HtmlParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser.class
deleted file mode 100755
index 9c3206d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder.java
deleted file mode 100755
index 3050209..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder.java
+++ /dev/null
@@ -1,382 +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.utils;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-import java.util.logging.*;
-
-import com.ibm.juno.core.utils.IOPipe.LineProcessor;
-
-/**
- * Utility class for running operating system processes.
- * <p>
- * Similar to {@link java.lang.ProcessBuilder} but with additional features.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("hiding")
-public class ProcBuilder {
-
-	private java.lang.ProcessBuilder pb = new java.lang.ProcessBuilder();
-	private TeeWriter outWriters = new TeeWriter(), logWriters = new TeeWriter();
-	private LineProcessor lp;
-	private Process p;
-	private int maxExitStatus = 0;
-	private boolean byLines;
-	private String divider = "--------------------------------------------------------------------------------";
-
-	/**
-	 * Creates a process builder with the specified arguments.
-	 * Equivalent to calling <code>ProcessBuilder.create().command(args);</code>
-	 *
-	 * @param args The command-line arguments.
-	 * @return A new process builder.
-	 */
-	public static ProcBuilder create(Object...args) {
-		return new ProcBuilder().command(args);
-	}
-
-	/**
-	 * Creates an empty process builder.
-	 *
-	 * @return A new process builder.
-	 */
-	public static ProcBuilder create() {
-		return new ProcBuilder().command();
-	}
-
-	/**
-	 * Command arguments.
-	 * Arguments can be collections or arrays and will be automatically expanded.
-	 *
-	 * @param args The command-line arguments.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder command(Object...args) {
-		return commandIf(ANY, args);
-	}
-
-	/**
-	 * Command arguments if the specified matcher matches.
-	 * Can be used for specifying os-specific commands.
-	 * Example:
-	 * <p class='bcode'>
-	 * 	ProcessBuilder pb = ProcessBuilder
-	 * 		.create()
-	 * 		.commandIf(<jsf>WINDOWS</jsf>, <js>"cmd /c dir"</js>)
-	 * 		.commandIf(<jsf>UNIX</jsf>, <js>"bash -c ls"</js>)
-	 * 		.merge()
-	 * 		.execute();
-	 * </p>
-	 *
-	 * @param m The matcher.
-	 * @param args The command line arguments if matcher matches.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder commandIf(Matcher m, Object...args) {
-		if (m.matches())
-			pb.command(toList(args));
-		return this;
-	}
-
-	/**
-	 * Append to the command arguments.
-	 * Arguments can be collections or arrays and will be automatically expanded.
-	 *
-	 * @param args The command-line arguments.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder append(Object...args) {
-		return appendIf(ANY, args);
-	}
-
-	/**
-	 * Append to the command arguments if the specified matcher matches.
-	 * Arguments can be collections or arrays and will be automatically expanded.
-	 *
-	 * @param m The matcher.
-	 * @param args The command line arguments if matcher matches.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder appendIf(Matcher m, Object...args) {
-		if (m.matches())
-			pb.command().addAll(toList(args));
-		return this;
-	}
-
-	/**
-	 * Merge STDOUT and STDERR into a single stream.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder merge() {
-		pb.redirectErrorStream(true);
-		return this;
-	}
-
-	/**
-	 * Use by-lines mode.
-	 * Flushes output after every line of input.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder byLines() {
-		this.byLines = true;
-		return this;
-	}
-
-	/**
-	 * Pipe output to the specified writer.
-	 * The method can be called multiple times to write to multiple writers.
-	 *
-	 * @param w The writer to pipe to.
-	 * @param close Close the writer afterwards.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder pipeTo(Writer w, boolean close) {
-		this.outWriters.add(w, close);
-		return this;
-	}
-
-	/**
-	 * Pipe output to the specified writer, but don't close the writer.
-	 *
-	 * @param w The writer to pipe to.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder pipeTo(Writer w) {
-		return pipeTo(w, false);
-	}
-
-	/**
-	 * Pipe output to the specified writer, including the command and return code.
-	 * The method can be called multiple times to write to multiple writers.
-	 *
-	 * @param w The writer to pipe to.
-	 * @param close Close the writer afterwards.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder logTo(Writer w, boolean close) {
-		this.logWriters.add(w, close);
-		this.outWriters.add(w, close);
-		return this;
-	}
-
-	/**
-	 * Pipe output to the specified writer, including the command and return code.
-	 * The method can be called multiple times to write to multiple writers.
-	 * Don't close the writer afterwards.
-	 *
-	 * @param w The writer to pipe to.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder logTo(Writer w) {
-		return logTo(w, false);
-	}
-
-	/**
-	 * Pipe output to the specified writer, including the command and return code.
-	 * The method can be called multiple times to write to multiple writers.
-	 *
-	 * @param level The log level.
-	 * @param logger The logger to log to.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder logTo(final Level level, final Logger logger) {
-		if (logger.isLoggable(level)) {
-			logTo(new StringWriter() {
-				private boolean isClosed;  // Prevents messages from being written twice.
-				@Override /* Writer */
-				public void close() {
-					if (! isClosed)
-						logger.log(level, this.toString());
-					isClosed = true;
-				}
-			}, true);
-		}
-		return this;
-	}
-
-	/**
-	 * Line processor to use to process/convert lines of output returned by the process.
-	 *
-	 * @param lp The new line processor.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder lp(LineProcessor lp) {
-		this.lp = lp;
-		return this;
-	}
-
-	/**
-	 * Append the specified environment variables to the process.
-	 *
-	 * @param env The new set of environment variables.
-	 * @return This object (for method chaining).
-	 */
-	@SuppressWarnings({"rawtypes", "unchecked"})
-	public ProcBuilder env(Map env) {
-		if (env != null)
-		for (Map.Entry e : (Set<Map.Entry>)env.entrySet())
-			environment(e.getKey().toString(), e.getValue() == null ? null : e.getValue().toString());
-		return this;
-	}
-
-	/**
-	 * Append the specified environment variable.
-	 *
-	 * @param key The environment variable name.
-	 * @param val The environment variable value.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder environment(String key, String val) {
-		pb.environment().put(key, val);
-		return this;
-	}
-
-	/**
-	 * Sets the directory where the command will be executed.
-	 *
-	 * @param directory The directory.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder directory(File directory) {
-		pb.directory(directory);
-		return this;
-	}
-
-	/**
-	 * Sets the maximum allowed return code on the process call.
-	 * If the return code exceeds this value, an IOException is returned on the {@link #run()} command.
-	 * The default value is '0'.
-	 *
-	 * @param maxExitStatus The maximum exit status.
-	 * @return This object (for method chaining).
-	 */
-	public ProcBuilder maxExitStatus(int maxExitStatus) {
-		this.maxExitStatus = maxExitStatus;
-		return this;
-	}
-
-	/**
-	 * Run this command and pipes the output to the specified writer or output stream.
-	 *
-	 * @return The exit code from the process.
-	 * @throws IOException
-	 * @throws InterruptedException
-	 */
-	public int run() throws IOException, InterruptedException {
-		if (pb.command().size() == 0)
-			throw new IOException("No command specified in ProcBuilder.");
-		try {
-			logWriters.append(divider).append("\n").flush();
-			logWriters.append(StringUtils.join(pb.command(), " ")).append("\n").flush();
-				p = pb.start();
-			IOPipe.create(p.getInputStream(), outWriters).lineProcessor(lp).byLines(byLines).run();
-			int rc = p.waitFor();
-			logWriters.append("Exit: ").append(String.valueOf(p.exitValue())).append("\n").flush();
-			if (rc > maxExitStatus)
-				throw new IOException("Return code "+rc+" from command " + StringUtils.join(pb.command(), " "));
-			return rc;
-		} finally {
-			close();
-		}
-	}
-
-	/**
-	 * Run this command and returns the output as a simple string.
-	 *
-	 * @return The output from the command.
-	 * @throws IOException
-	 * @throws InterruptedException
-	 */
-	public String getOutput() throws IOException, InterruptedException {
-		StringWriter sw = new StringWriter();
-		pipeTo(sw).run();
-		return sw.toString();
-	}
-
-	/**
-	 * Returns the output from this process as a {@link Scanner}.
-	 *
-	 * @return The output from the process as a Scanner object.
-	 * @throws IOException
-	 * @throws InterruptedException
-	 */
-	public Scanner getScanner() throws IOException, InterruptedException {
-		StringWriter sw = new StringWriter();
-		pipeTo(sw, true);
-		run();
-		return new Scanner(sw.toString());
-	}
-
-	/**
-	 * Destroys the underlying process.
-	 * This method is only needed if the {@link #getScanner()} method was used.
-	 */
-	private void close() {
-		IOUtils.closeQuietly(logWriters, outWriters);
-		if (p != null)
-			p.destroy();
-	}
-
-	/**
-	 * Specifies interface for defining OS-specific commands.
-	 */
-	public abstract static class Matcher {
-		abstract boolean matches();
-	}
-
-	private static String OS = System.getProperty("os.name").toLowerCase();
-
-	/** Operating system matcher: Any operating system. */
-	public final static Matcher ANY = new Matcher() {
-			@Override boolean matches() {
-				return true;
-			}
-	};
-
-	/** Operating system matcher: Any Windows system. */
-	public final static Matcher WINDOWS = new Matcher() {
-			@Override boolean matches() {
-				return OS.indexOf("win") >= 0;
-			}
-	};
-
-	/** Operating system matcher: Any Mac system. */
-	public final static Matcher MAC = new Matcher() {
-			@Override boolean matches() {
-				return OS.indexOf("mac") >= 0;
-			}
-	};
-
-	/** Operating system matcher: Any Unix or Linux system. */
-	public final static Matcher UNIX = new Matcher() {
-			@Override boolean matches() {
-				return OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0;
-			}
-	};
-
-	private static List<String> toList(Object...args) {
-		List<String> l = new LinkedList<String>();
-		for (Object o : args) {
-			if (o.getClass().isArray())
-				for (int i = 0; i < Array.getLength(o); i++)
-					l.add(Array.get(o, i).toString());
-			else if (o instanceof Collection)
-				for (Object o2 : (Collection<?>)o)
-					l.add(o2.toString());
-			else
-				l.add(o.toString());
-		}
-		return l;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ReflectionUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ReflectionUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ReflectionUtils.class
deleted file mode 100755
index 2088152..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ReflectionUtils.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/utils/ReflectionUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ReflectionUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ReflectionUtils.java
deleted file mode 100755
index b8ddc56..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ReflectionUtils.java
+++ /dev/null
@@ -1,159 +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.utils;
-
-import static com.ibm.juno.core.utils.CollectionUtils.*;
-
-import java.io.*;
-import java.lang.annotation.*;
-import java.util.*;
-
-/**
- * Reflection utilities.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ReflectionUtils {
-
-	/**
-	 * Similar to {@link Class#getAnnotation(Class)} except also searches annotations on interfaces.
-	 *
-	 * @param <T> The annotation class type.
-	 * @param a The annotation class.
-	 * @param c The annotated class.
-	 * @return The annotation, or <jk>null</jk> if not found.
-	 */
-	public static <T extends Annotation> T getAnnotation(Class<T> a, Class<?> c) {
-		if (c == null)
-			return null;
-
-		T t = getDeclaredAnnotation(a, c);
-		if (t != null)
-			return t;
-
-		t = getAnnotation(a, c.getSuperclass());
-		if (t != null)
-			return t;
-
-		for (Class<?> c2 : c.getInterfaces()) {
-			t = getAnnotation(a, c2);
-			if (t != null)
-				return t;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the specified annotation only if it's been declared on the specified class.
-	 * <p>
-	 * 	More efficient than calling {@link Class#getAnnotation(Class)} since it doesn't
-	 * 	recursively look for the class up the parent chain.
-	 *
-	 * @param <T> The annotation class type.
-	 * @param a The annotation class.
-	 * @param c The annotated class.
-	 * @return The annotation, or <jk>null</jk> if not found.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T extends Annotation> T getDeclaredAnnotation(Class<T> a, Class<?> c) {
-		for (Annotation a2 : c.getDeclaredAnnotations())
-			if (a2.annotationType() == a)
-				return (T)a2;
-		return null;
-	}
-
-	/**
-	 * Returns all instances of the specified annotation on the specified class.
-	 * <p>
-	 * Searches all superclasses and superinterfaces.
-	 * <p>
-	 * Results are ordered child-to-parent.
-	 *
-	 * @param <T> The annotation class type.
-	 * @param a The annotation class type.
-	 * @param c The class being searched.
-	 * @return The found matches, or an empty array if annotation was not found.
-	 */
-	public static <T extends Annotation> List<T> findAnnotations(Class<T> a, Class<?> c) {
-		List<T> l = new LinkedList<T>();
-		appendAnnotations(a, c, l);
-		return l;
-	}
-
-	/**
-	 * Sames as {@link #findAnnotations(Class, Class)} except returns the annotations as a map
-	 * with the keys being the class on which the annotation was found.
-	 * <p>
-	 * Results are ordered child-to-parent.
-	 *
-	 * @param <T> The annotation class type.
-	 * @param a The annotation class type.
-	 * @param c The class being searched.
-	 * @return The found matches, or an empty array if annotation was not found.
-	 */
-	public static <T extends Annotation> LinkedHashMap<Class<?>,T> findAnnotationsMap(Class<T> a, Class<?> c) {
-		LinkedHashMap<Class<?>,T> m = new LinkedHashMap<Class<?>,T>();
-		findAnnotationsMap(a, c, m);
-		return m;
-	}
-
-	private static <T extends Annotation> void findAnnotationsMap(Class<T> a, Class<?> c, Map<Class<?>,T> m) {
-		if (c == null)
-			return;
-
-		T t = getDeclaredAnnotation(a, c);
-		if (t != null)
-			m.put(c, t);
-
-		findAnnotationsMap(a, c.getSuperclass(), m);
-
-		for (Class<?> c2 : c.getInterfaces())
-			findAnnotationsMap(a, c2, m);
-	}
-
-	/**
-	 * Finds and appends the specified annotation on the specified class and superclasses/interfaces to the specified list.
-	 *
-	 * @param a The annotation.
-	 * @param c The class.
-	 * @param l The list of annotations.
-	 */
-	public static <T extends Annotation> void appendAnnotations(Class<T> a, Class<?> c, List<T> l) {
-		if (c == null)
-			return;
-
-		addIfNotNull(l, getDeclaredAnnotation(a, c));
-
-		if (c.getPackage() != null)
-			addIfNotNull(l, c.getPackage().getAnnotation(a));
-
-		appendAnnotations(a, c.getSuperclass(), l);
-
-		for (Class<?> c2 : c.getInterfaces())
-			appendAnnotations(a, c2, l);
-	}
-
-	/**
-	 * Similar to {@link Class#getResourceAsStream(String)} except looks up the
-	 * parent hierarchy for the existence of the specified resource.
-	 *
-	 * @param c The class to return the resource on.
-	 * @param name The resource name.
-	 * @return An input stream on the specified resource, or <jk>null</jk> if the resource could not be found.
-	 */
-	public static InputStream getResource(Class<?> c, String name) {
-		while (c != null) {
-			InputStream is = c.getResourceAsStream(name);
-			if (is != null)
-				return is;
-			c = c.getSuperclass();
-		}
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceBundle.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceBundle.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceBundle.class
deleted file mode 100755
index 5509806..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceBundle.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/utils/SafeResourceBundle.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceBundle.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceBundle.java
deleted file mode 100755
index a19a76d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceBundle.java
+++ /dev/null
@@ -1,132 +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.utils;
-
-import java.text.*;
-import java.util.*;
-
-/**
- * Wraps a {@link ResourceBundle} to gracefully handle missing bundles and entries.
- * <p>
- * If the bundle isn't found, <code>getString(key)</code> returns <js>"{!!key}"</js>.
- * <p>
- * If the key isn't found, <code>getString(key)</code> returns <js>"{!key}"</js>.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SafeResourceBundle extends ResourceBundle {
-
-	private ResourceBundle rb;
-	private String className = null;
-	Map<String,String> classPrefixedKeys = new HashMap<String,String>();
-
-	SafeResourceBundle() {}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param rb The resource bundle to wrap.  Can be <jk>null</jk> to indicate a missing bundle.
-	 * @param forClass The class using this resource bundle.
-	 */
-	public SafeResourceBundle(ResourceBundle rb, Class<?> forClass) {
-		this.rb = rb;
-		if (forClass != null)
-			className = forClass.getSimpleName();
-		if (rb != null) {
-			String c = className + '.';
-			for (Enumeration<String> e = getKeys(); e.hasMoreElements();) {
-				String key = e.nextElement();
-				if (key.startsWith(c))
-					classPrefixedKeys.put(key.substring(className.length() + 1), key);
-			}
-		}
-	}
-
-	@Override /* ResourceBundle */
-	public boolean containsKey(String key) {
-		return rb != null && (rb.containsKey(key) || classPrefixedKeys.containsKey(key));
-	}
-
-	/**
-	 * Similar to {@link ResourceBundle#getString(String)} except allows you to pass in {@link MessageFormat} objects.
-	 *
-	 * @param key The resource bundle key.
-	 * @param args Optional variable replacement arguments.
-	 * @return The resolved value.  Never <jk>null</jk>.  <js>"{!!key}"</j> if the bundle is missing.  <js>"{!key}"</j> if the key is missing.
-	 */
-	public String getString(String key, Object...args) {
-		if (rb == null)
-			return "{!!"+key+"}";
-		if (! containsKey(key))
-			return "{!" + key + "}";
-		String val = getString(key);
-		if (args.length > 0)
-			return MessageFormat.format(val, args);
-		return val;
-	}
-
-	/**
-	 * Looks for all the specified keys in the resource bundle and returns the first value that exists.
-	 *
-	 * @param keys
-	 * @return The resolved value, or <jk>null</jk> if no value is found or the resource bundle is missing.
-	 */
-	public String findFirstString(String...keys) {
-		if (rb == null)
-			return null;
-		for (String k : keys) {
-			if (containsKey(k))
-				return getString(k);
-		}
-		return null;
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override /* ResourceBundle */
-	public Set<String> keySet() {
-		if (rb == null)
-			return Collections.emptySet();
-		return new MultiSet<String>(rb.keySet(), classPrefixedKeys.keySet()) ;
-	}
-
-	/**
-	 * Returns all keys in this resource bundle with the specified prefix.
-	 *
-	 * @param prefix The prefix.
-	 * @return The set of all keys in the resource bundle with the prefix.
-	 */
-	public Set<String> keySet(String prefix) {
-		Set<String> set = new HashSet<String>();
-		for (String s : keySet()) {
-			if (s.equals(prefix) || (s.startsWith(prefix) && s.charAt(prefix.length()) == '.'))
-				set.add(s);
-		}
-		return set;
-	}
-
-	@Override /* ResourceBundle */
-	public Enumeration<String> getKeys() {
-		if (rb == null)
-			return new Vector<String>(0).elements();
-		return rb.getKeys();
-	}
-
-	@Override /* ResourceBundle */
-	protected Object handleGetObject(String key) {
-		if (rb == null)
-			return "{!!"+key+"}";
-		try {
-			if (classPrefixedKeys.containsKey(key))
-				key = classPrefixedKeys.get(key);
-			return rb.getObject(key);
-		} catch (Exception e) {
-			return "{!"+key+"}";
-		}
-	}
-}
\ 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/utils/SafeResourceMultiBundle.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceMultiBundle.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceMultiBundle.class
deleted file mode 100755
index 5e239a4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceMultiBundle.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/utils/SafeResourceMultiBundle.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceMultiBundle.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceMultiBundle.java
deleted file mode 100755
index fcf4ccc..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SafeResourceMultiBundle.java
+++ /dev/null
@@ -1,82 +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.utils;
-
-import java.util.*;
-
-/**
- * A collection of {@link SafeResourceBundle} objects.
- * Allows servlets to define resource bundles for different classes in the class hierarchy.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class SafeResourceMultiBundle extends SafeResourceBundle {
-
-	private List<SafeResourceBundle> bundles = new ArrayList<SafeResourceBundle>();
-
-	/**
-	 * Constructor.
-	 *
-	 * @param bundles The resource bundles to wrap.  Can be <jk>null</jk> to indicate a missing bundle.
-	 */
-	public SafeResourceMultiBundle(Collection<SafeResourceBundle> bundles) {
-		this.bundles.addAll(bundles);
- 	}
-
-	@Override /* SafeResourceBundle */
-	public String findFirstString(String...keys) {
-		for (String key : keys)
-			for (SafeResourceBundle srb : bundles)
-				if (srb.containsKey(key))
-					return srb.getString(key);
-		return null;
-	}
-
-	@Override /* ResourceBundle */
-	public boolean containsKey(String key) {
-		for (SafeResourceBundle srb : bundles)
-			if (srb.containsKey(key))
-				return true;
-		return false;
-	}
-
-	@Override /* SafeResourceBundle */
-	public String getString(String key, Object...args) {
-		for (SafeResourceBundle srb : bundles)
-			if (srb.containsKey(key))
-				return srb.getString(key, args);
-		return "{!" + key + "}";
-	}
-
-	@Override /* ResourceBundle */
-	@SuppressWarnings("unchecked")
-	public Set<String> keySet() {
-		MultiSet<String> s = new MultiSet<String>();
-		for (SafeResourceBundle rb : bundles)
-			s.append(rb.keySet());
-		return s;
-	}
-
-	@Override /* ResourceBundle */
-	@SuppressWarnings("unchecked")
-	public Enumeration<String> getKeys() {
-		MultiSet<String> s = new MultiSet<String>();
-		for (SafeResourceBundle rb : bundles)
-			s.append(rb.keySet());
-		return s.enumerator();
-	}
-
-	@Override /* ResourceBundle */
-	protected Object handleGetObject(String key) {
-		for (SafeResourceBundle srb : bundles)
-			if (srb.containsKey(key))
-				return srb.handleGetObject(key);
-		return "{!"+key+"}";
-	}
-}
\ 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/utils/SimpleMap$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap$1.class
deleted file mode 100755
index e935d78..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap$1.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/utils/SimpleMap$SimpleMapEntry.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap$SimpleMapEntry.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap$SimpleMapEntry.class
deleted file mode 100755
index c515bc1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap$SimpleMapEntry.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/utils/SimpleMap.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap.class
deleted file mode 100755
index 03c32ce..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap.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/utils/SimpleMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap.java
deleted file mode 100755
index 21bd047..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/SimpleMap.java
+++ /dev/null
@@ -1,112 +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.utils;
-
-import static com.ibm.juno.core.utils.ArrayUtils.*;
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.text.*;
-import java.util.*;
-
-/**
- * An instance of a <code>Map</code> where the keys and values
- * 	are simple <code>String[]</code> and <code>Object[]</code> arrays.
- * <p>
- * 	Typically more efficient than <code>HashMaps</code> for small maps (e.g. &lt;10 entries).
- * <p>
- * 	Does not support adding or removing entries.
- * <p>
- * 	Setting values overwrites the value on the underlying value array.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class SimpleMap extends AbstractMap<String,Object> {
-
-	private final String[] keys;
-	private final Object[] values;
-	private final Map.Entry<String,Object>[] entries;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param keys The map keys.  Must not be <jk>null</jk>.
-	 * @param values The map values.  Must not be <jk>null</jk>.
-	 */
-	public SimpleMap(String[] keys, Object[] values) {
-		assertFieldNotNull(keys, "keys");
-		assertFieldNotNull(values, "values");
-		if (keys.length != values.length)
-			illegalArg("keys ''{0}'' and values ''{1}'' array lengths differ", keys.length, values.length);
-
-		this.keys = keys;
-		this.values = values;
-		entries = new SimpleMapEntry[keys.length];
-		for (int i = 0; i < keys.length; i++) {
-			if (keys[i] == null)
-				illegalArg("Keys array cannot contain a null value.");
-			entries[i] = new SimpleMapEntry(i);
-	}
-	}
-
-	@Override /* Map */
-	public Set<Map.Entry<String,Object>> entrySet() {
-		return asSet(entries);
-	}
-
-	@Override /* Map */
-	public Object get(Object key) {
-		for (int i = 0; i < keys.length; i++)
-			if (keys[i].equals(key))
-				return values[i];
-		return null;
-	}
-
-	@Override /* Map */
-	public Set<String> keySet() {
-		return asSet(keys);
-	}
-
-	@Override /* Map */
-	public Object put(String key, Object value) {
-		for (int i = 0; i < keys.length; i++) {
-			if (keys[i].equals(key)) {
-				Object v = values[i];
-				values[i] = value;
-				return v;
-			}
-		}
-		throw new IllegalArgumentException(MessageFormat.format("No key ''{0}'' defined in map", key));
-	}
-
-	private class SimpleMapEntry implements Map.Entry<String,Object> {
-
-		private int index;
-
-		private SimpleMapEntry(int index) {
-			this.index = index;
-		}
-
-		@Override /* Map.Entry */
-		public String getKey() {
-			return keys[index];
-		}
-
-		@Override /* Map.Entry */
-		public Object getValue() {
-			return values[index];
-		}
-
-		@Override /* Map.Entry */
-		public Object setValue(Object val) {
-			Object v = values[index];
-			values[index] = val;
-			return v;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringBuilderWriter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringBuilderWriter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringBuilderWriter.class
deleted file mode 100755
index c1f9118..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringBuilderWriter.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/utils/StringBuilderWriter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringBuilderWriter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringBuilderWriter.java
deleted file mode 100755
index 8fffbdb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringBuilderWriter.java
+++ /dev/null
@@ -1,95 +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.utils;
-
-import java.io.*;
-
-/**
- * Similar to {@link StringWriter}, but uses a {@link StringBuilder} instead to avoid synchronization overhead.
- * <p>
- * Note that this class is NOT thread safe.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class StringBuilderWriter extends Writer {
-
-	private StringBuilder sb;
-
-	/**
-	 * Create a new string writer using the default initial string-builder size.
-	 */
-	public StringBuilderWriter() {
-		sb = new StringBuilder();
-		lock = null;
-	}
-
-	/**
-	 * Create a new string writer using the specified initial string-builder size.
-	 *
-	 * @param initialSize The number of <tt>char</tt> values that will fit into this buffer before it is automatically expanded
-	 * @throws IllegalArgumentException If <tt>initialSize</tt> is negative
-	 */
-	public StringBuilderWriter(int initialSize) {
-		sb = new StringBuilder(initialSize);
-		lock = null;
-	}
-
-	@Override /* Writer */
-	public void write(int c) {
-		sb.append((char) c);
-	}
-
-	@Override /* Writer */
-	public void write(char cbuf[], int start, int length) {
-		sb.append(cbuf, start, length);
-	}
-
-	@Override /* Writer */
-	public void write(String str) {
-		sb.append(str);
-	}
-
-	@Override /* Writer */
-	public void write(String str, int off, int len) {
-		sb.append(str.substring(off, off + len));
-	}
-
-	@Override /* Writer */
-	public StringBuilderWriter append(CharSequence csq) {
-		if (csq == null)
-			write("null");
-		else
-			write(csq.toString());
-		return this;
-	}
-
-	@Override /* Writer */
-	public StringBuilderWriter append(CharSequence csq, int start, int end) {
-		CharSequence cs = (csq == null ? "null" : csq);
-		write(cs.subSequence(start, end).toString());
-		return this;
-	}
-
-	@Override /* Writer */
-	public StringBuilderWriter append(char c) {
-		write(c);
-		return this;
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return sb.toString();
-	}
-
-	@Override /* Writer */
-	public void flush() {}
-
-	@Override /* Writer */
-	public void close() throws IOException {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringUtils.class
deleted file mode 100755
index 82ed33f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringUtils.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/utils/StringUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringUtils.java
deleted file mode 100755
index 4621af4..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringUtils.java
+++ /dev/null
@@ -1,873 +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.utils;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-import java.math.*;
-import java.util.*;
-import java.util.concurrent.atomic.*;
-import java.util.regex.*;
-
-import javax.xml.bind.*;
-
-import com.ibm.juno.core.parser.*;
-
-/**
- * Reusable string utility methods.
- */
-public final class StringUtils {
-
-	private static final AsciiSet numberChars = new AsciiSet("-xX.+-#pP0123456789abcdefABCDEF");
-	private static final AsciiSet firstNumberChars = new AsciiSet("+-.#0123456789");
-	private static final AsciiSet octChars = new AsciiSet("01234567");
-	private static final AsciiSet decChars = new AsciiSet("0123456789");
-	private static final AsciiSet hexChars = new AsciiSet("0123456789abcdefABCDEF");
-
-	// Maps 6-bit nibbles to BASE64 characters.
-	private static final char[] base64m1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
-
-	// Maps BASE64 characters to 6-bit nibbles.
-	private static final byte[] base64m2 = new byte[128];
-	static {
-		for (int i = 0; i < 64; i++)
-			base64m2[base64m1[i]] = (byte)i;
-	}
-
-	/**
-	 * Parses a number from the specified reader stream.
-	 *
-	 * @param r The reader to parse the string from.
-	 * @param type The number type to created. <br>
-	 * 	Can be any of the following:
-	 * 	<ul>
-	 * 		<li> Integer
-	 * 		<li> Double
-	 * 		<li> Float
-	 * 		<li> Long
-	 * 		<li> Short
-	 * 		<li> Byte
-	 * 		<li> BigInteger
-	 * 		<li> BigDecimal
-	 * 	</ul>
-	 * 	If <jk>null</jk>, uses the best guess.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 * @return The parsed number.
-	 * @throws ParseException
-	 */
-	public static Number parseNumber(ParserReader r, Class<? extends Number> type) throws IOException, ParseException {
-		return parseNumber(parseNumberString(r), type);
-	}
-
-	/**
-	 * Reads a numeric string from the specified reader.
-	 *
-	 * @param r The reader to read form.
-	 * @return The parsed number string.
-	 * @throws IOException
-	 */
-	public static String parseNumberString(ParserReader r) throws IOException {
-		r.mark();
-		int c = 0;
-		while (true) {
-			c = r.read();
-			if (c == -1)
-				break;
-			if (! numberChars.contains((char)c)) {
-				r.unread();
-				break;
-			}
-		}
-		return r.getMarked();
-	}
-
-	/**
-	 * Parses a number from the specified string.
-	 *
-	 * @param s The string to parse the number from.
-	 * @param type The number type to created. <br>
-	 * 	Can be any of the following:
-	 * 	<ul>
-	 * 		<li> Integer
-	 * 		<li> Double
-	 * 		<li> Float
-	 * 		<li> Long
-	 * 		<li> Short
-	 * 		<li> Byte
-	 * 		<li> BigInteger
-	 * 		<li> BigDecimal
-	 * 	</ul>
-	 * 	If <jk>null</jk>, uses the best guess.
-	 * @return The parsed number.
-	 * @throws ParseException
-	 */
-	public static Number parseNumber(String s, Class<? extends Number> type) throws ParseException {
-
-		if (s.isEmpty())
-			s = "0";
-		if (type == null)
-			type = Number.class;
-
-		try {
-			// Determine the data type if it wasn't specified.
-			boolean isAutoDetect = (type == Number.class);
-			boolean isDecimal = false;
-			if (isAutoDetect) {
-				// If we're auto-detecting, then we use either an Integer, Long, or Double depending on how
-				// long the string is.
-				// An integer range is -2,147,483,648 to 2,147,483,647
-				// An long range is -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807
-				isDecimal = isDecimal(s);
-				if (isDecimal) {
-					if (s.length() > 20)
-						type = Double.class;
-					else if (s.length() >= 10)
-					type = Long.class;
-					else
-						type = Integer.class;
-				}
-				else if (isFloat(s))
-					type = Double.class;
-				else
-					throw new NumberFormatException(s);
-			}
-
-			if (type == Double.class || type == Double.TYPE) {
-				Double d = Double.valueOf(s);
-				if (isAutoDetect && (! isDecimal) && d >= -Float.MAX_VALUE && d <= Float.MAX_VALUE)
-					return d.floatValue();
-				return d;
-			}
-			if (type == Float.class || type == Float.TYPE)
-				return Float.valueOf(s);
-			if (type == BigDecimal.class)
-				return new BigDecimal(s);
-			if (type == Long.class || type == Long.TYPE || type == AtomicLong.class) {
-				try {
-				Long l = Long.decode(s);
-					if (type == AtomicLong.class)
-						return new AtomicLong(l);
-					if (isAutoDetect && l >= Integer.MIN_VALUE && l <= Integer.MAX_VALUE) {
-						// This occurs if the string is 10 characters long but is still a valid integer value.
-					return l.intValue();
-					}
-				return l;
-				} catch (NumberFormatException e) {
-					if (isAutoDetect) {
-						// This occurs if the string is 20 characters long but still falls outside the range of a valid long.
-						return Double.valueOf(s);
-					}
-					throw e;
-				}
-			}
-			if (type == Integer.class || type == Integer.TYPE)
-				return Integer.decode(s);
-			if (type == Short.class || type == Short.TYPE)
-				return Short.decode(s);
-			if (type == Byte.class || type == Byte.TYPE)
-				return Byte.decode(s);
-			if (type == BigInteger.class)
-				return new BigInteger(s);
-			if (type == AtomicInteger.class)
-				return new AtomicInteger(Integer.decode(s));
-			throw new ParseException("Unsupported Number type: {0}", type.getName());
-		} catch (NumberFormatException e) {
-			throw new ParseException("Could not convert string ''{0}'' to class ''{1}''", s, type.getName()).initCause(e);
-		}
-	}
-
-   private final static Pattern fpRegex = Pattern.compile(
-      "[+-]?(NaN|Infinity|((((\\p{Digit}+)(\\.)?((\\p{Digit}+)?)([eE][+-]?(\\p{Digit}+))?)|(\\.((\\p{Digit}+))([eE][+-]?(\\p{Digit}+))?)|(((0[xX](\\p{XDigit}+)(\\.)?)|(0[xX](\\p{XDigit}+)?(\\.)(\\p{XDigit}+)))[pP][+-]?(\\p{Digit}+)))[fFdD]?))[\\x00-\\x20]*"
-   );
-
-	/**
-	 * Returns <jk>true</jk> if this string can be parsed by {@link #parseNumber(String, Class)}.
-	 *
-	 * @param s The string to check.
-	 * @return <jk>true</jk> if this string can be parsed without causing an exception.
-	 */
-	public static boolean isNumeric(String s) {
-		if (s == null || s.isEmpty())
-			return false;
-		if (! firstNumberChars.contains(s.charAt(0)))
-			return false;
-		return isDecimal(s) || isFloat(s);
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified string is a floating point number.
-	 *
-	 * @param s The string to check.
-	 * @return <jk>true</jk> if the specified string is a floating point number.
-	 */
-	public static boolean isFloat(String s) {
-		if (s == null || s.isEmpty())
-			return false;
-		if (! firstNumberChars.contains(s.charAt(0)))
-			return (s.equals("NaN") || s.equals("Infinity"));
-		int i = 0;
-		int length = s.length();
-		char c = s.charAt(0);
-		if (c == '+' || c == '-')
-			i++;
-		if (i == length)
-			return false;
-		c = s.charAt(i++);
-		if (c == '.' || decChars.contains(c)) {
-			return fpRegex.matcher(s).matches();
-		}
-		return false;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified string is numeric.
-	 *
-	 * @param s The string to check.
-	 * @return <jk>true</jk> if the specified string is numeric.
-	 */
-	public static boolean isDecimal(String s) {
-		if (s == null || s.isEmpty())
-			return false;
-		if (! firstNumberChars.contains(s.charAt(0)))
-			return false;
-		int i = 0;
-		int length = s.length();
-		char c = s.charAt(0);
-		boolean isPrefixed = false;
-		if (c == '+' || c == '-') {
-			isPrefixed = true;
-			i++;
-		}
-		if (i == length)
-			return false;
-		c = s.charAt(i++);
-		if (c == '0' && length > (isPrefixed ? 2 : 1)) {
-			c = s.charAt(i++);
-			if (c == 'x' || c == 'X') {
-				for (int j = i; j < length; j++) {
-					if (! hexChars.contains(s.charAt(j)))
-						return false;
-				}
-			} else if (octChars.contains(c)) {
-				for (int j = i; j < length; j++)
-					if (! octChars.contains(s.charAt(j)))
-						return false;
-			} else {
-				return false;
-			}
-		} else if (c == '#') {
-			for (int j = i; j < length; j++) {
-				if (! hexChars.contains(s.charAt(j)))
-					return false;
-			}
-		} else if (decChars.contains(c)) {
-			for (int j = i; j < length; j++)
-				if (! decChars.contains(s.charAt(j)))
-					return false;
-		} else {
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * Convenience method for getting a stack trace as a string.
-	 *
-	 * @param t The throwable to get the stack trace from.
-	 * @return The same content that would normally be rendered via <code>t.printStackTrace()</code>
-	 */
-	public static String getStackTrace(Throwable t) {
-		StringWriter sw = new StringWriter();
-		PrintWriter pw = new PrintWriter(sw);
-		t.printStackTrace(pw);
-		pw.flush();
-		pw.close();
-		return sw.toString();
-	}
-
-	/**
-	 * Join the specified tokens into a delimited string.
-	 *
-	 * @param tokens The tokens to join.
-	 * @param separator The delimiter.
-	 * @return The delimited string.  If <code>tokens</code> is <jk>null</jk>, returns <jk>null</jk>.
-	 */
-	public static String join(Object[] tokens, String separator) {
-		if (tokens == null)
-			return null;
-		StringBuilder sb = new StringBuilder();
-		for (int i = 0; i < tokens.length; i++) {
-			if (i > 0)
-				sb.append(separator);
-			sb.append(tokens[i]);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Join the specified tokens into a delimited string.
-	 *
-	 * @param tokens The tokens to join.
-	 * @param d The delimiter.
-	 * @return The delimited string.  If <code>tokens</code> is <jk>null</jk>, returns <jk>null</jk>.
-	 */
-	public static String join(int[] tokens, String d) {
-		if (tokens == null)
-			return null;
-		StringBuilder sb = new StringBuilder();
-		for (int i = 0; i < tokens.length; i++) {
-			if (i > 0)
-				sb.append(d);
-			sb.append(tokens[i]);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Join the specified tokens into a delimited string.
-	 *
-	 * @param tokens The tokens to join.
-	 * @param d The delimiter.
-	 * @return The delimited string.  If <code>tokens</code> is <jk>null</jk>, returns <jk>null</jk>.
-	 */
-	public static String join(Collection<?> tokens, String d) {
-		if (tokens == null)
-			return null;
-		StringBuilder sb = new StringBuilder();
-		for (Iterator<?> iter = tokens.iterator(); iter.hasNext();) {
-			sb.append(iter.next());
-			if (iter.hasNext())
-				sb.append(d);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Join the specified tokens into a delimited string.
-	 *
-	 * @param tokens The tokens to join.
-	 * @param d The delimiter.
-	 * @return The delimited string.  If <code>tokens</code> is <jk>null</jk>, returns <jk>null</jk>.
-	 */
-	public static String join(Object[] tokens, char d) {
-		if (tokens == null)
-			return null;
-		StringBuilder sb = new StringBuilder();
-		for (int i = 0; i < tokens.length; i++) {
-			if (i > 0)
-				sb.append(d);
-			sb.append(tokens[i]);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Join the specified tokens into a delimited string.
-	 *
-	 * @param tokens The tokens to join.
-	 * @param d The delimiter.
-	 * @return The delimited string.  If <code>tokens</code> is <jk>null</jk>, returns <jk>null</jk>.
-	 */
-	public static String join(int[] tokens, char d) {
-		if (tokens == null)
-			return null;
-		StringBuilder sb = new StringBuilder();
-		for (int i = 0; i < tokens.length; i++) {
-			if (i > 0)
-				sb.append(d);
-			sb.append(tokens[i]);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Join the specified tokens into a delimited string.
-	 *
-	 * @param tokens The tokens to join.
-	 * @param d The delimiter.
-	 * @return The delimited string.  If <code>tokens</code> is <jk>null</jk>, returns <jk>null</jk>.
-	 */
-	public static String join(Collection<?> tokens, char d) {
-		if (tokens == null)
-			return null;
-		StringBuilder sb = new StringBuilder();
-		for (Iterator<?> iter = tokens.iterator(); iter.hasNext();) {
-			sb.append(iter.next());
-			if (iter.hasNext())
-				sb.append(d);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Splits a character-delimited string into a string array.
-	 * Does not split on escaped-delimiters (e.g. "\,");
-	 * Resulting tokens are trimmed of whitespace.
-	 * NOTE:  This behavior is different than the Jakarta equivalent.
-	 * split("a,b,c",',') -> {"a","b","c"}
-	 * split("a, b ,c ",',') -> {"a","b","c"}
-	 * split("a,,c",',') -> {"a","","c"}
-	 * split(",,",',') -> {"","",""}
-	 * split("",',') -> {}
-	 * split(null,',') -> null
-	 * split("a,b\,c,d", ',', false) -> {"a","b\,c","d"}
-	 * split("a,b\\,c,d", ',', false) -> {"a","b\","c","d"}
-	 * split("a,b\,c,d", ',', true) -> {"a","b,c","d"}
-	 *
-	 * @param s The string to split.  Can be <jk>null</jk>.
-	 * @param c The character to split on.
-	 * @return The tokens.
-	 */
-	public static String[] split(String s, char c) {
-
-		char[] unEscapeChars = new char[]{'\\', c};
-
-		if (s == null)
-			return null;
-		if (isEmpty(s))
-			return new String[0];
-
-		List<String> l = new LinkedList<String>();
-		char[] sArray = s.toCharArray();
-		int x1 = 0, escapeCount = 0;
-		for (int i = 0; i < sArray.length; i++) {
-			if (sArray[i] == '\\') escapeCount++;
-			else if (sArray[i]==c && escapeCount % 2 == 0) {
-				String s2 = new String(sArray, x1, i-x1);
-				String s3 = unEscapeChars(s2, unEscapeChars);
-				l.add(s3.trim());
-				x1 = i+1;
-			}
-			if (sArray[i] != '\\') escapeCount = 0;
-		}
-		String s2 = new String(sArray, x1, sArray.length-x1);
-		String s3 = unEscapeChars(s2, unEscapeChars);
-		l.add(s3.trim());
-
-		return l.toArray(new String[l.size()]);
-	}
-
-	/**
-	 * Returns <jk>true</jk> if specified string is <jk>null</jk> or empty.
-	 *
-	 * @param s The string to check.
-	 * @return <jk>true</jk> if specified string is <jk>null</jk> or empty.
-	 */
-	public static boolean isEmpty(String s) {
-		return s == null || s.isEmpty();
-	}
-
-	/**
-	 * Returns <jk>true</jk> if specified string is <jk>null</jk> or it's {@link #toString()} method returns an empty string.
-	 *
-	 * @param s The string to check.
-	 * @return <jk>true</jk> if specified string is <jk>null</jk> or it's {@link #toString()} method returns an empty string.
-	 */
-	public static boolean isEmpty(Object s) {
-		return s == null || s.toString().isEmpty();
-	}
-
-	/**
-	 * Returns <jk>null</jk> if the specified string is <jk>null</jk> or empty.
-	 *
-	 * @param s The string to check.
-	 * @return <jk>null</jk> if the specified string is <jk>null</jk> or empty, or the same string if not.
-	 */
-	public static String nullIfEmpty(String s) {
-		if (s == null || s.isEmpty())
-			return null;
-		return s;
-	}
-
-	/**
-	 * Removes escape characters (\) from the specified characters.
-	 *
-	 * @param s The string to remove escape characters from.
-	 * @param toEscape The characters escaped.
-	 * @return A new string if characters were removed, or the same string if not or if the input was <jk>null</jk>.
-	 */
-	public static String unEscapeChars(String s, char[] toEscape) {
-		return unEscapeChars(s, toEscape, '\\');
-	}
-
-	/**
-	 * Removes escape characters (specified by escapeChar) from the specified characters.
-	 *
-	 * @param s The string to remove escape characters from.
-	 * @param toEscape The characters escaped.
-	 * @param escapeChar The escape character.
-	 * @return A new string if characters were removed, or the same string if not or if the input was <jk>null</jk>.
-	 */
-	public static String unEscapeChars(String s, char[] toEscape, char escapeChar) {
-		if (s == null) return null;
-		if (s.length() == 0 || toEscape == null || toEscape.length == 0 || escapeChar == 0) return s;
-		StringBuffer sb = new StringBuffer(s.length());
-		char[] sArray = s.toCharArray();
-		for (int i = 0; i < sArray.length; i++) {
-			char c = sArray[i];
-
-			if (c == escapeChar) {
-				if (i+1 != sArray.length) {
-					char c2 = sArray[i+1];
-					boolean isOneOf = false;
-					for (int j = 0; j < toEscape.length && ! isOneOf; j++)
-						isOneOf = (c2 == toEscape[j]);
-					if (isOneOf) {
-						i++;
-					} else if (c2 == escapeChar) {
-						sb.append(escapeChar);
-						i++;
-					}
-				}
-			}
-			sb.append(sArray[i]);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Debug method for rendering non-ASCII character sequences.
-	 *
-	 * @param s The string to decode.
-	 * @return A string with non-ASCII characters converted to <js>"[hex]"</js> sequences.
-	 */
-	public static String decodeHex(String s) {
-		if (s == null)
-			return null;
-		StringBuilder sb = new StringBuilder();
-		for (char c : s.toCharArray()) {
-			if (c < ' ' || c > '~')
-				sb.append("["+Integer.toHexString(c)+"]");
-			else
-				sb.append(c);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * An efficient method for checking if a string starts with a character.
-	 *
-	 * @param s The string to check.  Can be <jk>null</jk>.
-	 * @param c The character to check for.
-	 * @return <jk>true</jk> if the specified string is not <jk>null</jk> and starts with the specified character.
-	 */
-	public static boolean startsWith(String s, char c) {
-		if (s != null) {
-			int i = s.length();
-			if (i > 0)
-				return s.charAt(0) == c;
-		}
-		return false;
-	}
-
-	/**
-	 * An efficient method for checking if a string ends with a character.
-	 *
-	 * @param s The string to check.  Can be <jk>null</jk>.
-	 * @param c The character to check for.
-	 * @return <jk>true</jk> if the specified string is not <jk>null</jk> and ends with the specified character.
-	 */
-	public static boolean endsWith(String s, char c) {
-		if (s != null) {
-			int i = s.length();
-			if (i > 0)
-				return s.charAt(i-1) == c;
-		}
-		return false;
-	}
-
-	/**
-	 * Tests two strings for equality, but gracefully handles nulls.
-	 *
-	 * @param s1 String 1.
-	 * @param s2 String 2.
-	 * @return <jk>true</jk> if the strings are equal.
-	 */
-	public static boolean isEquals(String s1, String s2) {
-		if (s1 == null)
-			return s2 == null;
-		if (s2 == null)
-			return false;
-		return s1.equals(s2);
-	}
-
-	/**
-	 * Shortcut for calling <code>base64Encode(in.getBytes(<js>"UTF-8"</js>))</code>
-	 *
-	 * @param in The input string to convert.
-	 * @return The string converted to BASE-64 encoding.
-	 */
-	public static String base64EncodeToString(String in) {
-		if (in == null)
-			return null;
-		return base64Encode(in.getBytes(IOUtils.UTF8));
-	}
-
-	/**
-	 * BASE64-encodes the specified byte array.
-	 *
-	 * @param in The input byte array to convert.
-	 * @return The byte array converted to a BASE-64 encoded string.
-	 */
-	public static String base64Encode(byte[] in) {
-		int outLength = (in.length * 4 + 2) / 3;   // Output length without padding
-		char[] out = new char[((in.length + 2) / 3) * 4];  // Length includes padding.
-		int iIn = 0;
-		int iOut = 0;
-		while (iIn < in.length) {
-			int i0 = in[iIn++] & 0xff;
-			int i1 = iIn < in.length ? in[iIn++] & 0xff : 0;
-			int i2 = iIn < in.length ? in[iIn++] & 0xff : 0;
-			int o0 = i0 >>> 2;
-			int o1 = ((i0 & 3) << 4) | (i1 >>> 4);
-			int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);
-			int o3 = i2 & 0x3F;
-			out[iOut++] = base64m1[o0];
-			out[iOut++] = base64m1[o1];
-			out[iOut] = iOut < outLength ? base64m1[o2] : '=';
-			iOut++;
-			out[iOut] = iOut < outLength ? base64m1[o3] : '=';
-			iOut++;
-		}
-		return new String(out);
-	}
-
-	/**
-	 * Shortcut for calling <code>base64Decode(String)</code> and converting the
-	 * 	result to a UTF-8 encoded string.
-	 *
-	 * @param in The BASE-64 encoded string to decode.
-	 * @return The decoded string.
-	 */
-	public static String base64DecodeToString(String in) {
-		byte[] b = base64Decode(in);
-		if (b == null)
-			return null;
-		return new String(b, IOUtils.UTF8);
-	}
-
-	/**
-	 * BASE64-decodes the specified string.
-	 *
-	 * @param in The BASE-64 encoded string.
-	 * @return The decoded byte array.
-	 */
-	public static byte[] base64Decode(String in) {
-		if (in == null)
-			return null;
-
-		byte bIn[] = in.getBytes(IOUtils.UTF8);
-
-		if (bIn.length % 4 != 0)
-			illegalArg("Invalid BASE64 string length.  Must be multiple of 4.");
-
-		// Strip out any trailing '=' filler characters.
-		int inLength = bIn.length;
-		while (inLength > 0 && bIn[inLength - 1] == '=')
-			inLength--;
-
-		int outLength = (inLength * 3) / 4;
-		byte[] out = new byte[outLength];
-		int iIn = 0;
-		int iOut = 0;
-		while (iIn < inLength) {
-			int i0 = bIn[iIn++];
-			int i1 = bIn[iIn++];
-			int i2 = iIn < inLength ? bIn[iIn++] : 'A';
-			int i3 = iIn < inLength ? bIn[iIn++] : 'A';
-			int b0 = base64m2[i0];
-			int b1 = base64m2[i1];
-			int b2 = base64m2[i2];
-			int b3 = base64m2[i3];
-			int o0 = (b0 << 2) | (b1 >>> 4);
-			int o1 = ((b1 & 0xf) << 4) | (b2 >>> 2);
-			int o2 = ((b2 & 3) << 6) | b3;
-			out[iOut++] = (byte)o0;
-			if (iOut < outLength)
-				out[iOut++] = (byte)o1;
-			if (iOut < outLength)
-				out[iOut++] = (byte)o2;
-		}
-		return out;
-	}
-
-	/**
-	 * Generated a random UUID with the specified number of characters.
-	 * Characters are composed of lower-case ASCII letters and numbers only.
-	 * This method conforms to the restrictions for hostnames as specified in <a href='https://tools.ietf.org/html/rfc952'>RFC 952</a>
-	 * Since each character has 36 possible values, the square approximation formula for
-	 * 	the number of generated IDs that would produce a 50% chance of collision is:
-	 * <code>sqrt(36^N)</code>.
-	 * Dividing this number by 10 gives you an approximation of the number of generated IDs
-	 * 	needed to produce a <1% chance of collision.
-	 * For example, given 5 characters, the number of generated IDs need to produce a <1% chance of
-	 * 	collision would be:
-	 * <code>sqrt(36^5)/10=777</code>
-	 *
-	 * @param numchars The number of characters in the generated UUID.
-	 * @return A new random UUID.
-	 */
-	public static String generateUUID(int numchars) {
-		Random r = new Random();
-		StringBuilder sb = new StringBuilder(numchars);
-		for (int i = 0; i < numchars; i++) {
-			int c = r.nextInt(36) + 97;
-			if (c > 'z')
-				c -= ('z'-'0'+1);
-			sb.append((char)c);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Same as {@link String#trim()} but prevents <code>NullPointerExceptions</code>.
-	 *
-	 * @param s The string to trim.
-	 * @return The trimmed string, or <jk>null</jk> if the string was <jk>null</jk>.
-	 */
-	public static String trim(String s) {
-		if (s == null)
-			return null;
-		return s.trim();
-	}
-
-	/**
-	 * Parses an ISO8601 string into a date.
-	 *
-	 * @param date The date string.
-	 * @return The parsed date.
-	 * @throws IllegalArgumentException
-	 */
-	@SuppressWarnings("nls")
-	public static Date parseISO8601Date(String date) throws IllegalArgumentException {
-		if (isEmpty(date))
-			return null;
-		date = date.trim().replace(' ', 'T');  // Convert to 'standard' ISO8601
-		if (date.indexOf(',') != -1)  // Trim milliseconds
-			date = date.substring(0, date.indexOf(','));
-		if (date.matches("\\d{4}"))
-			date += "-01-01T00:00:00";
-		else if (date.matches("\\d{4}\\-\\d{2}"))
-			date += "-01T00:00:00";
-		else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}"))
-			date += "T00:00:00";
-		else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}"))
-			date += ":00:00";
-		else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}"))
-			date += ":00";
-		return DatatypeConverter.parseDateTime(date).getTime();
-	}
-
-	/**
-	 * Simple utility for replacing variables of the form <js>"{key}"</js> with values
-	 * 	in the specified map.
-	 * <p>
-	 * Nested variables are supported in both the input string and map values.
-	 * <p>
-	 * If the map does not contain the specified value, the variable is not replaced.
-	 *	<p>
-	 *	<jk>null</jk> values in the map are treated as blank strings.
-	 *
-	 * @param s The string containing variables to replace.
-	 * @param m The map containing the variable values.
-	 * @return The new string with variables replaced, or the original string if it didn't have variables in it.
-	 */
-	public static String replaceVars(String s, Map<String,Object> m) {
-
-		if (s.indexOf('{') == -1)
-			return s;
-
-		int S1 = 1;	   // Not in variable, looking for {
-		int S2 = 2;    // Found {, Looking for }
-
-		int state = S1;
-		boolean hasInternalVar = false;
-		int x = 0;
-		int depth = 0;
-		int length = s.length();
-		StringBuilder out = new StringBuilder();
-		for (int i = 0; i < length; i++) {
-			char c = s.charAt(i);
-			if (state == S1) {
-				if (c == '{') {
-					state = S2;
-					x = i;
-				} else {
-					out.append(c);
-				}
-			} else /* state == S2 */ {
-				if (c == '{') {
-					depth++;
-					hasInternalVar = true;
-				} else if (c == '}') {
-					if (depth > 0) {
-						depth--;
-					} else {
-						String key = s.substring(x+1, i);
-						key = (hasInternalVar ? replaceVars(key, m) : key);
-						hasInternalVar = false;
-						if (! m.containsKey(key))
-							out.append('{').append(key).append('}');
-						else {
-							Object val = m.get(key);
-							if (val == null)
-								val = "";
-							String v = val.toString();
-							// If the replacement also contains variables, replace them now.
-							if (v.indexOf('{') != -1)
-								v = replaceVars(v, m);
-							out.append(v);
-						}
-						state = 1;
-					}
-				}
-			}
-		}
-		return out.toString();
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified path string is prefixed with the specified prefix.
-	 * <p>
-	 * Examples:
-	 * <p class='bcode'>
-	 * 	pathStartsWith(<js>"foo"</js>, <js>"foo"</js>);  <jc>// true</jc>
-	 * 	pathStartsWith(<js>"foo/bar"</js>, <js>"foo"</js>);  <jc>// true</jc>
-	 * 	pathStartsWith(<js>"foo2"</js>, <js>"foo"</js>);  <jc>// false</jc>
-	 * 	pathStartsWith(<js>"foo2"</js>, <js>""</js>);  <jc>// false</jc>
-	 * </p>
-	 *
-	 * @param path The path to check.
-	 * @param pathPrefix The prefix.
-	 * @return <jk>true</jk> if the specified path string is prefixed with the specified prefix.
-	 */
-	public static boolean pathStartsWith(String path, String pathPrefix) {
-		if (path == null || pathPrefix == null)
-			return false;
-		if (path.startsWith(pathPrefix))
-			return path.length() == pathPrefix.length() || path.charAt(pathPrefix.length()) == '/';
-		return false;
-	}
-
-	/**
-	 * Same as {@link #pathStartsWith(String, String)} but returns <jk>true</jk> if at least one prefix matches.
-	 * <p>
-	 *
-	 * @param path The path to check.
-	 * @param pathPrefixes The prefixes.
-	 * @return <jk>true</jk> if the specified path string is prefixed with any of the specified prefixes.
-	 */
-	public static boolean pathStartsWith(String path, String[] pathPrefixes) {
-		for (String p : pathPrefixes)
-			if (pathStartsWith(path, p))
-				return true;
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVar.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVar.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVar.class
deleted file mode 100755
index 3aa5049..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVar.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/utils/StringVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVar.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVar.java
deleted file mode 100755
index c09e88b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVar.java
+++ /dev/null
@@ -1,37 +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.utils;
-
-/**
- * Interface for the resolution of string variables using the {@link StringVarResolver} API.
- *
- * @author jbognar
- */
-public abstract class StringVar {
-
-	/**
-	 * The method called from {@link StringVarResolver}.
-	 * Can be overridden to intercept the request and do special handling.
-	 * Default implementation simply calls resolve(String).
-	 *
-	 * @param arg The inside argument of the variable.
-	 * @return The resolved value.
-	 */
-	protected String doResolve(String arg) {
-		return resolve(arg);
-	}
-
-	/**
-	 * The interface that needs to be implemented for string vars.
-	 *
-	 * @param arg The inside argument of the variable.
-	 * @return The resolved value.
-	 */
-	public abstract String resolve(String arg);
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarMultipart.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarMultipart.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarMultipart.class
deleted file mode 100755
index 3d6cef6..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarMultipart.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/utils/StringVarMultipart.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarMultipart.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarMultipart.java
deleted file mode 100755
index 5f9b8be..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarMultipart.java
+++ /dev/null
@@ -1,32 +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.utils;
-
-
-/**
- * Interface for the resolution of string vars that consist of a comma-delimited list.
- * <p>
- * (e.g. <js>"$X{foo, bar, baz}"</js>)
- */
-public abstract class StringVarMultipart extends StringVar {
-
-	/**
-	 * The interface that needs to be implemented for this interface.
-	 *
-	 * @param args The arguments inside the variable.
-	 * @return The resolved variable.
-	 */
-	public abstract String resolve(String[] args);
-
-	@Override /* StringVar*/
-	public String resolve(String s) {
-		String[] s2 = s.indexOf(',') == -1 ? new String[]{s} : StringUtils.split(s, ',');
-		return resolve(s2);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver$1.class
deleted file mode 100755
index 91f4947..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver$1.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/utils/StringVarResolver$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver$2.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver$2.class
deleted file mode 100755
index 18f9577..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver$2.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/utils/StringVarResolver.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver.class
deleted file mode 100755
index f65f3b7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver.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/utils/StringVarResolver.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver.java
deleted file mode 100755
index 5abffd7..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarResolver.java
+++ /dev/null
@@ -1,357 +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.utils;
-
-import static com.ibm.juno.core.utils.StringUtils.*;
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Utility class for resolving  variables of the form <code>$X{key}</code> in strings.
- * <p>
- * This class implements the following two methods for resolving variables in strings:
- * <ul>
- * 	<li>{@link #resolve(String)} - Returns a new string with variables replaced.
- * 	<li>{@link #writeTo(String,Writer)} - Resolves variables in the string and sends the result to the writer.
- * </ul>
- * <p>
- * Variables are of the form <code>$X{key}</code>, where <code>X</code> can consist of zero or more ASCII characters.<br>
- * The variable key can contain anything, even nested variables that get recursively resolved.
- * <p>
- * Variable types are defined through the {@link #addVar(String, StringVar)} method.
- * <p>
- * The {@link StringVar} interface defines a simple method for replacing a variable key with a value.
- * <p>
- * <h6 class='topic'>Example:</h6>
- * <p class='bcode'>
- * 	<jc>// Create a variable resolver that resolves system properties (e.g. "$S{java.home}")</jc>
- * 	StringVarResolver r = <jk>new</jk> StringVarResolver()
- * 		.addVar(<js>"S"</js>, <jk>new</jk> StringVar() {
- * 			<ja>@Override</ja>
- * 			<jk>public</jk> String resolve(String varVal) {
- * 				<jk>return</jk> System.<jsm>getProperty</jsm>(varVal);
- * 			}
- * 		});
- *
- * 	System.<jsf>out</jsf>.println(r.resolve(<js>"java.home is set to $S{java.home}"</js>));
- * </p>
- * <p>
- * Subclasses of {@link StringVar} are provided for special purposes:
- * <ul>
- * 	<li>{@link StringVarMultipart} - Interface for the resolution of vars that consist of a comma-delimited list (e.g. <js>"$X{foo, bar, baz}"</js>)
- * 	<li>{@link StringVarWithDefault} - Interface for the resolution of vars with a default value if the <code>resolve(String)</code> method returns <jk>null</jk> (e.g. <js>"$S{myProperty,not found}"</js>).
- * </ul>
- *	<p>
- *	The {@link #DEFAULT} instance is a reusable variable resolver that includes support for system properties and environment variables.
- * <p>
- * <code>StringVarResolvers</code> can be extended by using the {@link #StringVarResolver(StringVarResolver)} constructor.
- * <p>
- * <h6 class='topic'>Example:</h6>
- * <p class='bcode'>
- * 	<jc>// Create a var resolver that extends the default resolver and appends our own "$URLEncode{...}" variable</jc>
- * 	StringVarResolver r = <jk>new</jk> StringVarResolver(StringVarResolver.<jsf>DEFAULT</jsf>)
- * 		.addVar(<js>"URLEncode"</js>, <jk>new</jk> StringVar() {
- * 			<ja>@Override</ja>
- * 			<jk>public</jk> String resolve(String varVal) {
- * 				<jk>return</jk> URLEncoder.<jsm>encode</jsm>(varVal, <js>"UTF-8"</js>);
- * 			}
- * 		});
- *
- * 	<jc>// Retrieve a system property and URL-encode it if necessary.</jc>
- * 	String myProperty = r.resolve(<js>"$URLEncode{$S{my.property}}"</js>);
- * <p>
- * Variables can be nested arbitrarily deep.
- * <p>
- * <h6 class='topic'>Example:</h6>
- * <p class='bcode'>
- * 	<jc>// Look up a property in the following order:
- * 	// 1) MYPROPERTY environment variable.
- * 	// 2) 'my.property' system property if environment variable not found.
- * 	// 3) 'not found' string if system property not found.</jc>
- * 	String myproperty = StringVarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"$E{MYPROPERTY,$S{my.property,not found}}"</js>);
- * </p>
- * <p>
- * Resolved variables can also contain variables.
- * <p class='bcode'>
- * 	<jc>// If MYPROPERTY is "$S{my.property}", and the system property "my.property" is "foo",
- * 	// then the following resolves to "foo".</jc>
- * 	String myproperty = StringVarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"$E{MYPROPERTY}"</js>);
- * </p>
- * <p>
- * <h6 class='topic'>Other notes:</h6>
- * <ul class='spaced-list'>
- * 	<li>The escape character <js>'\'</js> can be used when necessary to escape the following characters: <code>$ , { }</code>
- * 	<li><b>WARNING:</b>  It is possible to cause {@link StackOverflowError StackOverflowErrors} if your nested variables result in
- * 		a recursive loop (e.g. the environment variable <code>'MYPROPERTY'</code> has the value <code>'$E{MYPROPERTY}'</code>).
- * 		So don't do that!
- * 	<li>As a general rule, this class tries to be as efficient as possible by not creating new strings when not needed.<br>
- * 		For example, calling the resolve method on a string that doesn't contain variables (e.g. <code>resolver.resolve(<js>"foobar"</js>)</code>)
- * 		will simply be a no-op and return the same string.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class StringVarResolver {
-
-	/**
-	 * Default string variable resolver with support for system properties and environment variables:
-	 * <p>
-	 * <ul>
-	 * 	<li><code>$S{key}</code>,<code>$S{key,default}</code> - System properties.
-	 * 	<li><code>$E{key}</code>,<code>$E{key,default}</code> - Environment variables.
-	 * </ul>
-	 */
-	public static final StringVarResolver DEFAULT = new StringVarResolver()
-		// System properties.
-		.addVar("S", new StringVarWithDefault() {
-			@Override /* StringVar */
-			public String resolve(String varVal) {
-				return System.getProperty(varVal);
-			}
-		})
-		// Environment variables.
-		.addVar("E", new StringVarWithDefault() {
-			@Override /* StringVar */
-			public String resolve(String varVal) {
-				return System.getenv(varVal);
-			}
-		})
-	;
-
-	// Map of Vars added through addVar() method.
-	private Map<String,StringVar> varMap = new TreeMap<String,StringVar>();
-
-	private StringVarResolver parent;
-
-	/**
-	 * Construct an empty var resolver.
-	 */
-	public StringVarResolver() {}
-
-	/**
-	 * Construct an empty var resolver with the specified parent.
-	 *
-	 * @param parent The parent string variable resolver.  Can be <jk>null</jk>.
-	 */
-	public StringVarResolver(StringVarResolver parent) {
-		this.parent = parent;
-	}
-
-	/**
-	 * Register a new variable with this resolver.
-	 *
-	 * @param varName The variable name (e.g. <js>"X"</js> resolves <js>"$X{...}"</js> variables).
-	 * @param v The variable resolver.
-	 * @return This object (for method chaining).
-	 */
-	public StringVarResolver addVar(String varName, StringVar v) {
-		assertFieldNotNull(v, "v");
-
-		// Need to make sure only ASCII characters are used.
-		for (int i = 0; i < varName.length(); i++) {
-			char c = varName.charAt(i);
-			if (c < 'A' || c > 'z' || (c > 'Z' && c < 'a'))
-				illegalArg("Invalid var name.  Must consist of only uppercase and lowercase ASCII letters.");
-		}
-		varMap.put(varName, v);
-		return this;
-	}
-
-	/**
-	 * Resolve all variables in the specified string.
-	 *
-	 * @param s The string to resolve variables in.
-	 * @return The new string with all variables resolved, or the same string if no variables were found.
-	 * 	Null input results in a blank string.
-	 */
-	public String resolve(String s) {
-
-		if (s == null)
-			return "";
-		if (s.indexOf('$') == -1 && s.indexOf('\\') == -1)
-			return s;
-
-		// Special case where value consists of a single variable with no embedded variables (e.g. "$X{...}").
-		// This is a common case, so we want an optimized solution that doesn't involve string builders.
-		if (isSimpleVar(s)) {
-			String var = s.substring(1, s.indexOf('{'));
-			String val = s.substring(s.indexOf('{')+1, s.length()-1);
-			StringVar v = getVar(var);
-			if (v != null) {
-				s = v.doResolve(val);
-				return resolve(s);
-			}
-			return s;
-		}
-
-		try {
-			return writeTo(s, new StringWriter()).toString();
-		} catch (IOException e) {
-			throw new RuntimeException(e); // Never happens.
-		}
-	}
-
-	/**
-	 * Checks to see if string is of the simple form "$X{...}" with no embedded variables.
-	 * This is a common case, and we can avoid using StringWriters.
-	 */
-	private boolean isSimpleVar(String s) {
-		int S1 = 1;	   // Not in variable, looking for $
-		int S2 = 2;    // Found $, Looking for {
-		int S3 = 3;    // Found {, Looking for }
-		int S4 = 4;    // Found }
-
-		int length = s.length();
-		int state = S1;
-		for (int i = 0; i < length; i++) {
-			char c = s.charAt(i);
-			if (state == S1) {
-				if (c == '$') {
-					state = S2;
-				} else {
-					return false;
-				}
-			} else if (state == S2) {
-				if (c == '{') {
-					state = S3;
-				} else if (c < 'A' || c > 'z' || (c > 'Z' && c < 'a')) {   // False trigger "$X "
-					return false;
-				}
-			} else if (state == S3) {
-				if (c == '}')
-					state = S4;
-				else if (c == '{' || c == '$')
-					return false;
-			} else if (state == S4) {
-				return false;
-			}
-		}
-		return state == S4;
-	}
-
-	/**
-	 * Resolves variables in the specified string and sends the output to the specified writer.
-	 * More efficient than first parsing to a string and then serializing to the writer since this
-	 * method doesn't need to construct a large string.
-	 *
-	 * @param s The string to resolve variables in.
-	 * @param out The writer to write to.
-	 * @return The same writer.
-	 * @throws IOException
-	 */
-	public Writer writeTo(String s, Writer out) throws IOException {
-
-		int S1 = 1;	   // Not in variable, looking for $
-		int S2 = 2;    // Found $, Looking for {
-		int S3 = 3;    // Found {, Looking for }
-
-		int state = S1;
-		boolean isInEscape = false;
-		boolean hasInternalVar = false;
-		boolean hasInnerEscapes = false;
-		String varType = null;
-		String varVal = null;
-		int x = 0, x2 = 0;
-		int depth = 0;
-		int length = s.length();
-		for (int i = 0; i < length; i++) {
-			char c = s.charAt(i);
-			if (state == S1) {
-				if (isInEscape) {
-					if (c == '\\' || c == '$') {
-						out.append(c);
-					} else {
-						out.append('\\').append(c);
-					}
-					isInEscape = false;
-				} else if (c == '\\') {
-					isInEscape = true;
-				} else if (c == '$') {
-					x = i;
-					x2 = i;
-					state = S2;
-				} else {
-					out.append(c);
-				}
-			} else if (state == S2) {
-				if (isInEscape) {
-					isInEscape = false;
-				} else if (c == '\\') {
-					hasInnerEscapes = true;
-					isInEscape = true;
-				} else if (c == '{') {
-					varType = s.substring(x+1, i);
-					x = i;
-					state = S3;
-				} else if (c < 'A' || c > 'z' || (c > 'Z' && c < 'a')) {  // False trigger "$X "
-					if (hasInnerEscapes)
-						out.append(unEscapeChars(s.substring(x, i+1), new char[]{'\\','{'}));
-					else
-						out.append(s, x, i+1);
-					x = i + 1;
-					state = S1;
-					hasInnerEscapes = false;
-				}
-			} else if (state == S3) {
-				if (isInEscape) {
-					isInEscape = false;
-				} else if (c == '\\') {
-					isInEscape = true;
-					hasInnerEscapes = true;
-				} else if (c == '{') {
-					depth++;
-					hasInternalVar = true;
-				} else if (c == '}') {
-					if (depth > 0) {
-						depth--;
-					} else {
-						varVal = s.substring(x+1, i);
-						varVal = (hasInternalVar ? resolve(varVal) : varVal);
-						StringVar r = getVar(varType);
-						if (r == null) {
-							if (hasInnerEscapes)
-								out.append(unEscapeChars(s.substring(x2, i+1), new char[]{'\\','$','{','}'}));
-							else
-								out.append(s, x2, i+1);
-							x = i+1;
-						} else {
-							String replacement = r.doResolve(varVal);
-							if (replacement == null)
-								replacement = "";
-							// If the replacement also contains variables, replace them now.
-							if (replacement.indexOf('$') != -1)
-								replacement = resolve(replacement);
-							out.append(replacement);
-							x = i+1;
-						}
-						state = 1;
-						hasInnerEscapes = false;
-					}
-				}
-			}
-		}
-		if (isInEscape)
-			out.append("\\");
-		else if (state == S2)
-			out.append("$").append(unEscapeChars(s.substring(x+1), new char[]{'{', '\\'}));
-		else if (state == S3)
-			out.append("$").append(varType).append('{').append(unEscapeChars(s.substring(x+1), new char[]{'\\','$','{','}'}));
-		return out;
-	}
-
-	private StringVar getVar(String varType) {
-		StringVar v = varMap.get(varType);
-		if (v == null && parent != null)
-			v = parent.getVar(varType);
-		return v;
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarWithDefault.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarWithDefault.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarWithDefault.class
deleted file mode 100755
index 901efeb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarWithDefault.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/utils/StringVarWithDefault.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarWithDefault.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarWithDefault.java
deleted file mode 100755
index e1f63eb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/StringVarWithDefault.java
+++ /dev/null
@@ -1,31 +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.utils;
-
-
-/**
- * Interface for the resolution of string vars with a default value if the <code>resolve(String)</code> method returns <jk>null</jk>.
- * <p>
- * For example, to resolve the system property <js>"myProperty"</js> but resolve to <js>"not found"</js> if the property doesn't exist:
- * <js>"$S{myProperty,not found}"</js>
- */
-public abstract class StringVarWithDefault extends StringVar {
-
-	@Override /* StringVar*/
-	public String doResolve(String s) {
-		int i = s.indexOf(',');
-		if (i == -1)
-			return resolve(s);
-		String[] s2 = StringUtils.split(s, ',');
-		String v = resolve(s2[0]);
-		if (v == null)
-			v = s2[1];
-		return v;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream$1.class
deleted file mode 100755
index 6ca8b6e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream$1.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/utils/TeeOutputStream$NoCloseOutputStream.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream$NoCloseOutputStream.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream$NoCloseOutputStream.class
deleted file mode 100755
index d759a42..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream$NoCloseOutputStream.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/utils/TeeOutputStream.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream.class
deleted file mode 100755
index edffdca..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/TeeOutputStream.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestClient.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestClient.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestClient.java
deleted file mode 100755
index a63018e..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestClient.java
+++ /dev/null
@@ -1,1378 +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.client;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.lang.reflect.Proxy;
-import java.net.*;
-import java.security.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.logging.*;
-import java.util.regex.*;
-
-import javax.net.ssl.*;
-
-import org.apache.http.*;
-import org.apache.http.auth.*;
-import org.apache.http.client.*;
-import org.apache.http.client.CookieStore;
-import org.apache.http.client.config.*;
-import org.apache.http.client.entity.*;
-import org.apache.http.client.methods.*;
-import org.apache.http.config.*;
-import org.apache.http.conn.*;
-import org.apache.http.conn.routing.*;
-import org.apache.http.conn.socket.*;
-import org.apache.http.conn.ssl.*;
-import org.apache.http.conn.util.*;
-import org.apache.http.cookie.*;
-import org.apache.http.entity.*;
-import org.apache.http.impl.client.*;
-import org.apache.http.impl.conn.*;
-import org.apache.http.protocol.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.urlencoding.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Utility class for interfacing with remote REST interfaces.
- *
- *
- * <h6 class='topic'>Features</h6>
- * <ul>
- * 	<li>Convert POJOs directly to HTTP request message bodies using {@link Serializer} class.
- * 	<li>Convert HTTP response message bodies directly to POJOs using {@link Parser} class.
- * 	<li>Fluent interface.
- * 	<li>Thread safe.
- * 	<li>API for interacting with remoteable services.
- * </ul>
- *
- *
- * <h6 class='topic'>Additional Information</h6>
- * <ul>
- * 	<li><a class='doclink' href='package-summary.html#RestClient'>com.ibm.juno.client &gt; REST client API</a> for more information and code examples.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class RestClient extends CoreApi {
-
-	Map<String,Object> headers = new TreeMap<String,Object>(String.CASE_INSENSITIVE_ORDER);
-	CloseableHttpClient httpClient;
-	HttpClientBuilder httpClientBuilder;
-	HttpClientConnectionManager connectionManager;
-	Serializer<?> serializer;
-	UrlEncodingSerializer urlEncodingSerializer = new UrlEncodingSerializer();  // Used for form posts only.
-	Parser<?> parser;
-	String accept, contentType;
-	List<RestCallInterceptor> interceptors = new ArrayList<RestCallInterceptor>();
-	String remoteableServletUri;
-	private Map<Method,String> remoteableServiceUriMap = new ConcurrentHashMap<Method,String>();
-	private String rootUrl;
-	private SSLOpts sslOpts;
-
-	/**
-	 * Create a new client with no serializer, parser, or HTTP client.
-	 * <p>
-	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
-	 * 	will be created using the {@link #createHttpClient()} method.
-	 */
-	public RestClient() {
-	}
-
-	/**
-	 * Create a new client with the specified HTTP client.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient);
-	 * </p>
-	 *
-	 * @param httpClient The HTTP client to use for communicating with remote server.
-	 */
-	public RestClient(CloseableHttpClient httpClient) {
-		setHttpClient(httpClient);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser instances.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setSerializer(s).setParser(p);
-	 * </p>
-	 * <p>
-	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
-	 * 	will be created using the {@link #createHttpClient()} method.
-	 *
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 */
-	public RestClient(Serializer<?> s, Parser<?> p) {
-		setSerializer(s);
-		setParser(p);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser instances.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient).setSerializer(s).setParser(p);
-	 * </p>
-	 *
-	 * @param httpClient The HTTP client to use for communicating with remote server.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 */
-	public RestClient(CloseableHttpClient httpClient, Serializer<?> s, Parser<?> p) {
-		setHttpClient(httpClient);
-		setSerializer(s);
-		setParser(p);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser classes.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setSerializer(s).setParser(p);
-	 * </p>
-	 * <p>
-	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
-	 * 	will be created using the {@link #createHttpClient()} method.
-	 *
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws InstantiationException If serializer or parser could not be instantiated.
-	 */
-	public RestClient(Class<? extends Serializer<?>> s, Class<? extends Parser<?>> p) throws InstantiationException {
-		setSerializer(s);
-		setParser(p);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser classes.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient).setSerializer(s).setParser(p);
-	 * </p>
-	 *
-	 * @param httpClient The HTTP client to use for communicating with remote server.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws InstantiationException If serializer or parser could not be instantiated.
-	 */
-	public RestClient(CloseableHttpClient httpClient, Class<? extends Serializer<?>> s, Class<? extends Parser<?>> p) throws InstantiationException {
-		setHttpClient(httpClient);
-		setSerializer(s);
-		setParser(p);
-	}
-
-	/**
-	 * Creates an instance of an {@link HttpClient} to be used to handle all HTTP communications with the target server.
-	 * <p>
-	 * This HTTP client is used when the HTTP client is not specified through one of the constructors or the
-	 * 	{@link #setHttpClient(CloseableHttpClient)} method.
-	 * <p>
-	 * Subclasses can override this method to provide specially-configured HTTP clients to handle
-	 * 	stuff such as SSL/TLS certificate handling, authentication, etc.
-	 * <p>
-	 * The default implementation returns an instance of {@link HttpClient} using the client builder
-	 * 	returned by {@link #getHttpClientBuilder()}.
-	 *
-	 * @return The HTTP client to use.
-	 * @throws Exception
-	 */
-	protected CloseableHttpClient createHttpClient() throws Exception {
-		return getHttpClientBuilder().build();
-	}
-
-	/**
-	 * Returns the {@link HttpClientBuilder} used to create {@link HttpClient httpClient} in {@link #createHttpClient()}.
-	 *
-	 * @return The HTTP client builder to use to create the HTTP client.
-	 */
-	protected HttpClientBuilder getHttpClientBuilder() {
-		if (httpClientBuilder == null)
-			httpClientBuilder = createHttpClientBuilder();
-		return httpClientBuilder;
-	}
-
-	/**
-	 * Creates an instance of an {@link HttpClientBuilder} to be used to create
-	 * 	the {@link HttpClient} the first time {@link #getHttpClientBuilder()} is called.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own client builder.
-	 * </p>
-	 * <p>
-	 * 	The predefined method returns an {@link HttpClientBuilder} with the following settings:
-	 * </p>
-	 * <ul>
-	 * 	<li>Lax redirect strategy.
-	 * 	<li>The connection manager returned by {@link #getConnectionManager()}.
-	 * </ul>
-	 *
-	 * @return The HTTP client builder to use to create the HTTP client.
-	 */
-	protected HttpClientBuilder createHttpClientBuilder() {
-		HttpClientBuilder b = HttpClientBuilder.create();
-		b.setRedirectStrategy(new LaxRedirectStrategy());
-		b.setConnectionManager(getConnectionManager());
-		return b;
-	}
-
-	/**
-	 * Returns the {@link HttpClientConnectionManager} passed to the {@link HttpClientBuilder} created in {@link #createHttpClientBuilder()}.
-	 *
-	 * @return The HTTP client builder to use to create the HTTP client.
-	 */
-	protected HttpClientConnectionManager getConnectionManager() {
-		if (connectionManager == null)
-			connectionManager = createConnectionManager();
-		return connectionManager;
-	}
-
-	/**
-	 * Creates the {@link HttpClientConnectionManager} returned by {@link #getConnectionManager()}.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own connection manager.
-	 * </p>
-	 * <p>
-	 * 	The default implementation returns an instance of a {@link PoolingHttpClientConnectionManager}.
-	 * </p>
-	 *
-	 * @return The HTTP client builder to use to create the HTTP client.
-	 */
-	protected HttpClientConnectionManager createConnectionManager() {
-		if (sslOpts != null) {
-			HostnameVerifier hv = null;
-			switch (sslOpts.getHostVerify()) {
-				case LAX: hv = new NoopHostnameVerifier(); break;
-				case DEFAULT: hv = new DefaultHostnameVerifier(); break;
-			}
-
-			for (String p : StringUtils.split(sslOpts.getProtocols(), ',')) {
-				try {
-					TrustManager tm = new SimpleX509TrustManager(sslOpts.getCertValidate() == SSLOpts.CertValidate.LAX);
-
-					SSLContext ctx = SSLContext.getInstance(p);
-					ctx.init(null, new TrustManager[] { tm }, null);
-
-					// Create a socket to ensure this algorithm is acceptable.
-					// This will correctly disallow certain configurations (such as SSL_TLS under FIPS)
-					ctx.getSocketFactory().createSocket().close();
-					SSLConnectionSocketFactory sf = new SSLConnectionSocketFactory(ctx, hv);
-					setSSLSocketFactory(sf);
-
-					Registry<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory> create().register("https", sf).build();
-
-					return new PoolingHttpClientConnectionManager(r);
-				} catch (Throwable t) {}
-			}
-		}
-
-			// Using pooling connection so that this client is threadsafe.
-		return new PoolingHttpClientConnectionManager();
-	}
-
-	/**
-	 * Set up this client to use BASIC auth.
-	 *
-	 * @param host The auth scope hostname.
-	 * @param port The auth scope port.
-	 * @param user The username.
-	 * @param pw The password.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setBasicAuth(String host, int port, String user, String pw) {
-		AuthScope scope = new AuthScope(host, port);
-		Credentials up = new UsernamePasswordCredentials(user, pw);
-		CredentialsProvider p = new BasicCredentialsProvider();
-		p.setCredentials(scope, up);
-		setDefaultCredentialsProvider(p);
-		return this;
-	}
-
-	/**
-	 * Calls {@link CloseableHttpClient#close()} on the underlying {@link CloseableHttpClient}.
-	 * It's good practice to call this method after the client is no longer used.
-	 *
-	 * @throws IOException
-	 */
-	public void close() throws IOException {
-		if (httpClient != null)
-			httpClient.close();
-	}
-
-	/**
-	 * Specifies a request header property to add to all requests created by this client.
-	 *
-	 * @param name The HTTP header name.
-	 * @param value The HTTP header value.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setHeader(String name, Object value) {
-		this.headers.put(name, value);
-		return this;
-	}
-
-	/**
-	 * Sets the serializer used for serializing POJOs to the HTTP request message body.
-	 *
-	 * @param serializer The serializer.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setSerializer(Serializer<?> serializer) {
-		this.serializer = serializer;
-		return this;
-	}
-
-	/**
-	 * Same as {@link #setSerializer(Serializer)}, except takes in a serializer class that
-	 * 	will be instantiated through a no-arg constructor.
-	 *
-	 * @param c The serializer class.
-	 * @return This object (for method chaining).
-	 * @throws InstantiationException If serializer could not be instantiated.
-	 */
-	public RestClient setSerializer(Class<? extends Serializer<?>> c) throws InstantiationException {
-		try {
-			return setSerializer(c.newInstance());
-		} catch (IllegalAccessException e) {
-			throw new InstantiationException(e.getLocalizedMessage());
-		}
-	}
-
-	/**
-	 * Sets the parser used for parsing POJOs from the HTTP response message body.
-	 *
-	 * @param parser The parser.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setParser(Parser<?> parser) {
-		this.parser = parser;
-		this.accept = parser.getMediaTypes()[0];
-		return this;
-	}
-
-	/**
-	 * Same as {@link #setParser(Parser)}, except takes in a parser class that
-	 * 	will be instantiated through a no-arg constructor.
-	 *
-	 * @param c The parser class.
-	 * @return This object (for method chaining).
-	 * @throws InstantiationException If parser could not be instantiated.
-	 */
-	public RestClient setParser(Class<? extends Parser<?>> c) throws InstantiationException {
-		try {
-			return setParser(c.newInstance());
-		} catch (IllegalAccessException e) {
-			throw new InstantiationException(e.getLocalizedMessage());
-		}
-	}
-
-	/**
-	 * Sets the internal {@link HttpClient} to use for handling HTTP communications.
-	 *
-	 * @param httpClient The HTTP client.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setHttpClient(CloseableHttpClient httpClient) {
-		this.httpClient = httpClient;
-		return this;
-	}
-
-	/**
-	 * Adds an interceptor that gets called immediately after a connection is made.
-	 *
-	 * @param interceptor The interceptor.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient addInterceptor(RestCallInterceptor interceptor) {
-		interceptors.add(interceptor);
-		return this;
-	}
-
-	/**
-	 * Adds a {@link RestCallLogger} to the list of interceptors on this class.
-	 *
-	 * @param level The log level to log messsages at.
-	 * @param log The logger to log messages to.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient logTo(Level level, Logger log) {
-		addInterceptor(new RestCallLogger(level, log));
-		return this;
-	}
-
-	/**
-	 * Returns the serializer currently associated with this client.
-	 *
-	 * @return The serializer currently associated with this client, or <jk>null</jk> if no serializer is currently associated.
-	 */
-	public Serializer<?> getSerializer() {
-		return serializer;
-	}
-
-	/**
-	 * Returns the parser currently associated with this client.
-	 *
-	 * @return The parser currently associated with this client, or <jk>null</jk> if no parser is currently associated.
-	 */
-	public Parser<?> getParser() {
-		return parser;
-	}
-
-	/**
-	 * Returns the {@link HttpClient} currently associated with this client.
-	 *
-	 * @return The HTTP client currently associated with this client.
-	 * @throws Exception
-	 */
-	public HttpClient getHttpClient() throws Exception {
-		if (httpClient == null)
-			httpClient = createHttpClient();
-		return httpClient;
-	}
-
-	/**
-	 * Execute the specified request.
-	 * Subclasses can override this method to provide specialized handling.
-	 *
-	 * @param req The HTTP request.
-	 * @return The HTTP response.
-	 * @throws Exception
-	 */
-	protected HttpResponse execute(HttpUriRequest req) throws Exception {
-		return getHttpClient().execute(req);
-	}
-
-	/**
-	 * Sets the value for the <code>Accept</code> request header.
-	 * <p>
-	 * 	This overrides the media type specified on the parser, but is overridden by calling <code>setHeader(<js>"Accept"</js>, newvalue);</code>
-	 *
-	 * @param accept The new header value.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setAccept(String accept) {
-		this.accept = accept;
-		return this;
-	}
-
-	/**
-	 * Sets the value for the <code>Content-Type</code> request header.
-	 * <p>
-	 * 	This overrides the media type specified on the serializer, but is overridden by calling <code>setHeader(<js>"Content-Type"</js>, newvalue);</code>
-	 *
-	 * @param contentType The new header value.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setContentType(String contentType) {
-		this.contentType = contentType;
-		return this;
-	}
-
-	/**
-	 * Sets the URI of the remoteable services REST servlet for invoking remoteable services.
-	 *
-	 * @param remoteableServletUri The URI of the REST resource implementing a remoteable services servlet.
-	 *		(typically an instance of <code>RemoteableServlet</code>).
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setRemoteableServletUri(String remoteableServletUri) {
-		this.remoteableServletUri = remoteableServletUri;
-		return this;
-	}
-
-	/**
-	 * Set a root URL for this client.
-	 * <p>
-	 * When set, URL strings passed in through the various rest call methods (e.g. {@link #doGet(Object)}
-	 * 	will be prefixed with the specified root.
-	 * This root URL is ignored on those methods if you pass in a {@link URL}, {@link URI}, or an absolute URL string.
-	 *
-	 * @param rootUrl The root URL to prefix to relative URL strings.  Trailing slashes are trimmed.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setRootUrl(String rootUrl) {
-		if (rootUrl.endsWith("/"))
-			rootUrl = rootUrl.replaceAll("\\/$", "");
-		this.rootUrl = rootUrl;
-		return this;
-	}
-
-	/**
-	 * Enable SSL support on this client.
-	 *
-	 * @param opts The SSL configuration options.  See {@link SSLOpts} for details.
-	 * 	This method is a no-op if <code>sslConfig</code> is <jk>null</jk>.
-	 * @return This object (for method chaining).
-	 * @throws KeyStoreException
-	 * @throws NoSuchAlgorithmException
-	 */
-	public RestClient enableSSL(SSLOpts opts) throws KeyStoreException, NoSuchAlgorithmException {
-		this.sslOpts = opts;
-		return this;
-	}
-
-	/**
-	 * Enable LAX SSL support.
-	 * <p>
-	 * Certificate chain validation and hostname verification is disabled.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws KeyStoreException
-	 * @throws NoSuchAlgorithmException
-	 */
-	public RestClient enableLaxSSL() throws KeyStoreException, NoSuchAlgorithmException {
-		return enableSSL(SSLOpts.LAX);
-	}
-
-	/**
-	 * Perform a <code>GET</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doGet(Object url) throws RestCallException {
-		return doCall("GET", url, false);
-	}
-
-	/**
-	 * Perform a <code>PUT</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param o The object to serialize and transmit to the URL as the body of the request.
-	 * 	Can be of the following types:
-	 * 	<ul>
-	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
-	 * 		<li>{@link HttpEntity} - Bypass Juno serialization and pass HttpEntity directly to HttpClient.
-	 * 	</ul>
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doPut(Object url, Object o) throws RestCallException {
-		return doCall("PUT", url, true).setInput(o);
-	}
-
-	/**
-	 * Perform a <code>POST</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param o The object to serialize and transmit to the URL as the body of the request.
-	 * 	Can be of the following types:
-	 * 	<ul>
-	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
-	 * 		<li>{@link HttpEntity} - Bypass Juno serialization and pass HttpEntity directly to HttpClient.
-	 * 	</ul>
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doPost(Object url, Object o) throws RestCallException {
-		return doCall("POST", url, true).setInput(o);
-	}
-
-	/**
-	 * Perform a <code>DELETE</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doDelete(Object url) throws RestCallException {
-		return doCall("DELETE", url, false);
-	}
-
-	/**
-	 * Perform an <code>OPTIONS</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doOptions(Object url) throws RestCallException {
-		return doCall("OPTIONS", url, true);
-	}
-
-	/**
-	 * Perform a <code>POST</code> request with a content type of <code>application/x-www-form-urlencoded</code> against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param o The object to serialize and transmit to the URL as the body of the request, serialized as a form post
-	 * 	using the {@link UrlEncodingSerializer#DEFAULT} serializer.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doFormPost(Object url, Object o) throws RestCallException {
-		return doCall("POST", url, true)
-			.setInput(new RestRequestEntity(o, urlEncodingSerializer));
-	}
-
-	/**
-	 * Performs a REST call where the entire call is specified in a simple string.
-	 * <p>
-	 * This method is useful for performing callbacks when the target of a callback is passed in
-	 * on an initial request, for example to signal when a long-running process has completed.
-	 * <p>
-	 * The call string can be any of the following formats:
-	 * <ul>
-	 * 	<li><js>"[method] [url]"</js> - e.g. <js>"GET http://localhost/callback"</js>
-	 * 	<li><js>"[method] [url] [payload]"</js> - e.g. <js>"POST http://localhost/callback some text payload"</js>
-	 * 	<li><js>"[method] [headers] [url] [payload]"</js> - e.g. <js>"POST {'Content-Type':'text/json'} http://localhost/callback {'some':'json'}"</js>
-	 * </ul>
-	 * <p>
-	 * The payload will always be sent using a simple {@link StringEntity}.
-	 *
-	 * @param callString The call string.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException
-	 */
-	public RestCall doCallback(String callString) throws RestCallException {
-		String s = callString;
-		try {
-			RestCall rc = null;
-			String method = null, uri = null, content = null;
-			ObjectMap h = null;
-			int i = s.indexOf(' ');
-			if (i != -1) {
-				method = s.substring(0, i).trim();
-				s = s.substring(i).trim();
-				if (s.length() > 0) {
-					if (s.charAt(0) == '{') {
-						i = s.indexOf('}');
-						if (i != -1) {
-							String json = s.substring(0, i+1);
-							h = JsonParser.DEFAULT.parse(json, ObjectMap.class);
-							s = s.substring(i+1).trim();
-						}
-					}
-					if (s.length() > 0) {
-						i = s.indexOf(' ');
-						if (i == -1)
-							uri = s;
-						else {
-							uri = s.substring(0, i).trim();
-							s = s.substring(i).trim();
-							if (s.length() > 0)
-								content = s;
-						}
-					}
-				}
-			}
-			if (method != null && uri != null) {
-				rc = doCall(method, uri, content != null);
-				if (content != null)
-					rc.setInput(new StringEntity(content));
-				if (h != null)
-					for (Map.Entry<String,Object> e : h.entrySet())
-						rc.setHeader(e.getKey(), e.getValue());
-				return rc;
-			}
-		} catch (Exception e) {
-			throw new RestCallException(e);
-		}
-		throw new RestCallException("Invalid format for call string.");
-	}
-
-	/**
-	 * Perform a generic REST call.
-	 *
-	 * @param method The HTTP method.
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param content The HTTP body content.
-	 * 	Can be of the following types:
-	 * 	<ul>
-	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
-	 * 		<li>{@link HttpEntity} - Bypass Juno serialization and pass HttpEntity directly to HttpClient.
-	 * 	</ul>
-	 * 	This parameter is IGNORED if {@link HttpMethod#hasContent()} is <jk>false</jk>.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doCall(HttpMethod method, Object url, Object content) throws RestCallException {
-		RestCall rc = doCall(method.name(), url, method.hasContent());
-		if (method.hasContent())
-			rc.setInput(content);
-		return rc;
-	}
-
-	/**
-	 * Perform a generic REST call.
-	 *
-	 * @param method The method name (e.g. <js>"GET"</js>, <js>"OPTIONS"</js>).
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param hasContent Boolean flag indicating if the specified request has content associated with it.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doCall(String method, Object url, boolean hasContent) throws RestCallException {
-		HttpRequestBase req = null;
-		RestCall restCall = null;
-		final String methodUC = method.toUpperCase(Locale.ENGLISH);
-		if (hasContent) {
-			req = new HttpEntityEnclosingRequestBase() {
-				@Override /* HttpRequest */
-				public String getMethod() {
-					return methodUC;
-				}
-			};
-			restCall = new RestCall(this, req);
-			if (contentType != null)
-				restCall.setHeader("Content-Type", contentType);
-		} else {
-			req = new HttpRequestBase() {
-				@Override /* HttpRequest */
-				public String getMethod() {
-					return methodUC;
-				}
-			};
-			restCall = new RestCall(this, req);
-		}
-		try {
-			req.setURI(toURI(url));
-		} catch (URISyntaxException e) {
-			throw new RestCallException(e);
-		}
-		if (accept != null)
-			restCall.setHeader("Accept", accept);
-		for (Map.Entry<String,? extends Object> e : headers.entrySet())
-			restCall.setHeader(e.getKey(), e.getValue());
-		return restCall;
-	}
-
-	/**
-	 * Create a new proxy interface for the specified remoteable service interface.
-	 *
-	 * @param interfaceClass The interface to create a proxy for.
-	 * @return The new proxy interface.
-	 * @throws RuntimeException If the Remotable service URI has not been specified on this
-	 * 	client by calling {@link #setRemoteableServletUri(String)}.
-	 */
-	@SuppressWarnings("unchecked")
-	public <T> T getRemoteableProxy(final Class<T> interfaceClass) {
-		if (remoteableServletUri == null)
-			throw new RuntimeException("Remoteable service URI has not been specified.");
-		return (T)Proxy.newProxyInstance(
-			interfaceClass.getClassLoader(),
-			new Class[] { interfaceClass },
-			new InvocationHandler() {
-				@Override /* InvocationHandler */
-				public Object invoke(Object proxy, Method method, Object[] args) {
-					try {
-						String uri = remoteableServiceUriMap.get(method);
-						if (uri == null) {
-							// Constructing this string each time can be time consuming, so cache it.
-							uri = remoteableServletUri + '/' + interfaceClass.getName() + '/' + ClassUtils.getMethodSignature(method);
-							remoteableServiceUriMap.put(method, uri);
-						}
-						return doPost(uri, args).getResponse(method.getReturnType());
-					} catch (Exception e) {
-						throw new RuntimeException(e);
-					}
-				}
-		});
-	}
-
-	private Pattern absUrlPattern = Pattern.compile("^\\w+\\:\\/\\/.*");
-
-	private URI toURI(Object url) throws URISyntaxException {
-		assertFieldNotNull(url, "url");
-		if (url instanceof URI)
-			return (URI)url;
-		if (url instanceof URL)
-			((URL)url).toURI();
-		String s = url.toString();
-		if (rootUrl != null && ! absUrlPattern.matcher(s).matches()) {
-			if (s.isEmpty())
-				s = rootUrl;
-			else {
-				StringBuilder sb = new StringBuilder(rootUrl);
-				if (! s.startsWith("/"))
-					sb.append('/');
-				sb.append(s);
-				s = sb.toString();
-			}
-		}
-		return new URI(s);
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* CoreAPI */
-	public RestClient setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
-		if (serializer != null)
-			serializer.setProperty(property, value);
-		if (parser != null)
-			parser.setProperty(property, value);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public RestClient setProperties(ObjectMap properties) throws LockedException {
-		super.setProperties(properties);
-		if (serializer != null)
-			serializer.setProperties(properties);
-		if (parser != null)
-			parser.setProperties(properties);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.setProperties(properties);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public RestClient addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		if (serializer != null)
-			serializer.addNotBeanClasses(classes);
-		if (parser != null)
-			parser.addNotBeanClasses(classes);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public RestClient addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		if (serializer != null)
-			serializer.addFilters(classes);
-		if (parser != null)
-			parser.addFilters(classes);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public <T> RestClient addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		if (serializer != null)
-			serializer.addImplClass(interfaceClass, implClass);
-		if (parser != null)
-			parser.addImplClass(interfaceClass, implClass);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public RestClient setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		if (serializer != null)
-			serializer.setClassLoader(classLoader);
-		if (parser != null)
-			parser.setClassLoader(classLoader);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.setClassLoader(classLoader);
-		return this;
-	}
-
-
-	//------------------------------------------------------------------------------------------------
-	// Passthrough methods for HttpClientBuilder.
-	//------------------------------------------------------------------------------------------------
-
-	/**
-	 * @param redirectStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setRedirectStrategy(RedirectStrategy)
-	 */
-	public RestClient setRedirectStrategy(RedirectStrategy redirectStrategy) {
-		getHttpClientBuilder().setRedirectStrategy(redirectStrategy);
-		return this;
-	}
-
-	/**
-	 * @param cookieSpecRegistry
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultCookieSpecRegistry(Lookup)
-	 */
-	public RestClient setDefaultCookieSpecRegistry(Lookup<CookieSpecProvider> cookieSpecRegistry) {
-		getHttpClientBuilder().setDefaultCookieSpecRegistry(cookieSpecRegistry);
-		return this;
-	}
-
-	/**
-	 * @param requestExec
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setRequestExecutor(HttpRequestExecutor)
-	 */
-	public RestClient setRequestExecutor(HttpRequestExecutor requestExec) {
-		getHttpClientBuilder().setRequestExecutor(requestExec);
-		return this;
-	}
-
-	/**
-	 * @param hostnameVerifier
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setSSLHostnameVerifier(HostnameVerifier)
-	 */
-	public RestClient setSSLHostnameVerifier(HostnameVerifier hostnameVerifier) {
-		getHttpClientBuilder().setSSLHostnameVerifier(hostnameVerifier);
-		return this;
-	}
-
-	/**
-	 * @param publicSuffixMatcher
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setPublicSuffixMatcher(PublicSuffixMatcher)
-	 */
-	public RestClient setPublicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher) {
-		getHttpClientBuilder().setPublicSuffixMatcher(publicSuffixMatcher);
-		return this;
-	}
-
-	/**
-	 * @param sslContext
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setSSLContext(SSLContext)
-	 */
-	public RestClient setSSLContext(SSLContext sslContext) {
-		getHttpClientBuilder().setSSLContext(sslContext);
-		return this;
-	}
-
-	/**
-	 * @param sslSocketFactory
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setSSLSocketFactory(LayeredConnectionSocketFactory)
-	 */
-	public RestClient setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory) {
-		getHttpClientBuilder().setSSLSocketFactory(sslSocketFactory);
-		return this;
-	}
-
-	/**
-	 * @param maxConnTotal
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setMaxConnTotal(int)
-	 */
-	public RestClient setMaxConnTotal(int maxConnTotal) {
-		getHttpClientBuilder().setMaxConnTotal(maxConnTotal);
-		return this;
-	}
-
-	/**
-	 * @param maxConnPerRoute
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setMaxConnPerRoute(int)
-	 */
-	public RestClient setMaxConnPerRoute(int maxConnPerRoute) {
-		getHttpClientBuilder().setMaxConnPerRoute(maxConnPerRoute);
-		return this;
-	}
-
-	/**
-	 * @param config
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultSocketConfig(SocketConfig)
-	 */
-	public RestClient setDefaultSocketConfig(SocketConfig config) {
-		getHttpClientBuilder().setDefaultSocketConfig(config);
-		return this;
-	}
-
-	/**
-	 * @param config
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultConnectionConfig(ConnectionConfig)
-	 */
-	public RestClient setDefaultConnectionConfig(ConnectionConfig config) {
-		getHttpClientBuilder().setDefaultConnectionConfig(config);
-		return this;
-	}
-
-	/**
-	 * @param connTimeToLive
-	 * @param connTimeToLiveTimeUnit
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionTimeToLive(long,TimeUnit)
-	 */
-	public RestClient setConnectionTimeToLive(long connTimeToLive, TimeUnit connTimeToLiveTimeUnit) {
-		getHttpClientBuilder().setConnectionTimeToLive(connTimeToLive, connTimeToLiveTimeUnit);
-		return this;
-	}
-
-	/**
-	 * @param connManager
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)
-	 */
-	public RestClient setConnectionManager(HttpClientConnectionManager connManager) {
-		this.connectionManager = connManager;
-		getHttpClientBuilder().setConnectionManager(connManager);
-		return this;
-	}
-
-	/**
-	 * @param shared
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionManagerShared(boolean)
-	 */
-	public RestClient setConnectionManagerShared(boolean shared) {
-		getHttpClientBuilder().setConnectionManagerShared(shared);
-		return this;
-	}
-
-	/**
-	 * @param reuseStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionReuseStrategy(ConnectionReuseStrategy)
-	 */
-	public RestClient setConnectionReuseStrategy(ConnectionReuseStrategy reuseStrategy) {
-		getHttpClientBuilder().setConnectionReuseStrategy(reuseStrategy);
-		return this;
-	}
-
-	/**
-	 * @param keepAliveStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setKeepAliveStrategy(ConnectionKeepAliveStrategy)
-	 */
-	public RestClient setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy) {
-		getHttpClientBuilder().setKeepAliveStrategy(keepAliveStrategy);
-		return this;
-	}
-
-	/**
-	 * @param targetAuthStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setTargetAuthenticationStrategy(AuthenticationStrategy)
-	 */
-	public RestClient setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy) {
-		getHttpClientBuilder().setTargetAuthenticationStrategy(targetAuthStrategy);
-		return this;
-	}
-
-	/**
-	 * @param proxyAuthStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setProxyAuthenticationStrategy(AuthenticationStrategy)
-	 */
-	public RestClient setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy) {
-		getHttpClientBuilder().setProxyAuthenticationStrategy(proxyAuthStrategy);
-		return this;
-	}
-
-	/**
-	 * @param userTokenHandler
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setUserTokenHandler(UserTokenHandler)
-	 */
-	public RestClient setUserTokenHandler(UserTokenHandler userTokenHandler) {
-		getHttpClientBuilder().setUserTokenHandler(userTokenHandler);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableConnectionState()
-	 */
-	public RestClient disableConnectionState() {
-		getHttpClientBuilder().disableConnectionState();
-		return this;
-	}
-
-	/**
-	 * @param schemePortResolver
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setSchemePortResolver(SchemePortResolver)
-	 */
-	public RestClient setSchemePortResolver(SchemePortResolver schemePortResolver) {
-		getHttpClientBuilder().setSchemePortResolver(schemePortResolver);
-		return this;
-	}
-
-	/**
-	 * @param userAgent
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setUserAgent(String)
-	 */
-	public RestClient setUserAgent(String userAgent) {
-		getHttpClientBuilder().setUserAgent(userAgent);
-		return this;
-	}
-
-	/**
-	 * @param defaultHeaders
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultHeaders(Collection)
-	 */
-	public RestClient setDefaultHeaders(Collection<? extends Header> defaultHeaders) {
-		getHttpClientBuilder().setDefaultHeaders(defaultHeaders);
-		return this;
-	}
-
-	/**
-	 * @param itcp
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#addInterceptorFirst(HttpResponseInterceptor)
-	 */
-	public RestClient addInterceptorFirst(HttpResponseInterceptor itcp) {
-		getHttpClientBuilder().addInterceptorFirst(itcp);
-		return this;
-	}
-
-	/**
-	 * @param itcp
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#addInterceptorLast(HttpResponseInterceptor)
-	 */
-	public RestClient addInterceptorLast(HttpResponseInterceptor itcp) {
-		getHttpClientBuilder().addInterceptorLast(itcp);
-		return this;
-	}
-
-	/**
-	 * @param itcp
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#addInterceptorFirst(HttpRequestInterceptor)
-	 */
-	public RestClient addInterceptorFirst(HttpRequestInterceptor itcp) {
-		getHttpClientBuilder().addInterceptorFirst(itcp);
-		return this;
-	}
-
-	/**
-	 * @param itcp
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#addInterceptorLast(HttpRequestInterceptor)
-	 */
-	public RestClient addInterceptorLast(HttpRequestInterceptor itcp) {
-		getHttpClientBuilder().addInterceptorLast(itcp);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableCookieManagement()
-	 */
-	public RestClient disableCookieManagement() {
-		getHttpClientBuilder().disableCookieManagement();
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableContentCompression()
-	 */
-	public RestClient disableContentCompression() {
-		getHttpClientBuilder().disableContentCompression();
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableAuthCaching()
-	 */
-	public RestClient disableAuthCaching() {
-		getHttpClientBuilder().disableAuthCaching();
-		return this;
-	}
-
-	/**
-	 * @param httpprocessor
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setHttpProcessor(HttpProcessor)
-	 */
-	public RestClient setHttpProcessor(HttpProcessor httpprocessor) {
-		getHttpClientBuilder().setHttpProcessor(httpprocessor);
-		return this;
-	}
-
-	/**
-	 * @param retryHandler
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setRetryHandler(HttpRequestRetryHandler)
-	 */
-	public RestClient setRetryHandler(HttpRequestRetryHandler retryHandler) {
-		getHttpClientBuilder().setRetryHandler(retryHandler);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableAutomaticRetries()
-	 */
-	public RestClient disableAutomaticRetries() {
-		getHttpClientBuilder().disableAutomaticRetries();
-		return this;
-	}
-
-	/**
-	 * @param proxy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setProxy(HttpHost)
-	 */
-	public RestClient setProxy(HttpHost proxy) {
-		getHttpClientBuilder().setProxy(proxy);
-		return this;
-	}
-
-	/**
-	 * @param routePlanner
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setRoutePlanner(HttpRoutePlanner)
-	 */
-	public RestClient setRoutePlanner(HttpRoutePlanner routePlanner) {
-		getHttpClientBuilder().setRoutePlanner(routePlanner);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableRedirectHandling()
-	 */
-	public RestClient disableRedirectHandling() {
-		getHttpClientBuilder().disableRedirectHandling();
-		return this;
-	}
-
-	/**
-	 * @param connectionBackoffStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionBackoffStrategy(ConnectionBackoffStrategy)
-	 */
-	public RestClient setConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy) {
-		getHttpClientBuilder().setConnectionBackoffStrategy(connectionBackoffStrategy);
-		return this;
-	}
-
-	/**
-	 * @param backoffManager
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setBackoffManager(BackoffManager)
-	 */
-	public RestClient setBackoffManager(BackoffManager backoffManager) {
-		getHttpClientBuilder().setBackoffManager(backoffManager);
-		return this;
-	}
-
-	/**
-	 * @param serviceUnavailStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy)
-	 */
-	public RestClient setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy) {
-		getHttpClientBuilder().setServiceUnavailableRetryStrategy(serviceUnavailStrategy);
-		return this;
-	}
-
-	/**
-	 * @param cookieStore
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultCookieStore(CookieStore)
-	 */
-	public RestClient setDefaultCookieStore(CookieStore cookieStore) {
-		getHttpClientBuilder().setDefaultCookieStore(cookieStore);
-		return this;
-	}
-
-	/**
-	 * @param credentialsProvider
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultCredentialsProvider(CredentialsProvider)
-	 */
-	public RestClient setDefaultCredentialsProvider(CredentialsProvider credentialsProvider) {
-		getHttpClientBuilder().setDefaultCredentialsProvider(credentialsProvider);
-		return this;
-	}
-
-	/**
-	 * @param authSchemeRegistry
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultAuthSchemeRegistry(Lookup)
-	 */
-	public RestClient setDefaultAuthSchemeRegistry(Lookup<AuthSchemeProvider> authSchemeRegistry) {
-		getHttpClientBuilder().setDefaultAuthSchemeRegistry(authSchemeRegistry);
-		return this;
-	}
-
-	/**
-	 * @param contentDecoderMap
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setContentDecoderRegistry(Map)
-	 */
-	public RestClient setContentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap) {
-		getHttpClientBuilder().setContentDecoderRegistry(contentDecoderMap);
-		return this;
-	}
-
-	/**
-	 * @param config
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultRequestConfig(RequestConfig)
-	 */
-	public RestClient setDefaultRequestConfig(RequestConfig config) {
-		getHttpClientBuilder().setDefaultRequestConfig(config);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#useSystemProperties()
-	 */
-	public RestClient useSystemProperties() {
-		getHttpClientBuilder().useSystemProperties();
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#evictExpiredConnections()
-	 */
-	public RestClient evictExpiredConnections() {
-		getHttpClientBuilder().evictExpiredConnections();
-		return this;
-	}
-
-	/**
-	 * @param maxIdleTime
-	 * @param maxIdleTimeUnit
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#evictIdleConnections(long,TimeUnit)
-	 */
-	public RestClient evictIdleConnections(long maxIdleTime, TimeUnit maxIdleTimeUnit) {
-		getHttpClientBuilder().evictIdleConnections(maxIdleTime, maxIdleTimeUnit);
-		return this;
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestRequestEntity.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestRequestEntity.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestRequestEntity.java
deleted file mode 100755
index 9336c23..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RestRequestEntity.java
+++ /dev/null
@@ -1,86 +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.client;
-
-import java.io.*;
-
-import org.apache.http.entity.*;
-import org.apache.http.message.*;
-
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * HttpEntity for serializing POJOs as the body of HTTP requests.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RestRequestEntity extends BasicHttpEntity {
-	final Object output;
-	final Serializer<?> serializer;
-	byte[] outputBytes;
-
-	/**
-	 * Constructor.
-	 * @param input The POJO to serialize.  Can also be a {@link Reader} or {@link InputStream}.
-	 * @param serializer The serializer to use to serialize this response.
-	 */
-	public RestRequestEntity(Object input, Serializer<?> serializer) {
-		this.output = input;
-		this.serializer = serializer;
-		if (serializer != null)
-			setContentType(new BasicHeader("Content-Type", serializer.getResponseContentType()));
-	}
-
-	@Override /* BasicHttpEntity */
-	public void writeTo(OutputStream os) throws IOException {
-		if (output instanceof InputStream) {
-			IOPipe.create(output, os).closeOut().run();
-		} else if (output instanceof Reader) {
-			IOPipe.create(output, new OutputStreamWriter(os, IOUtils.UTF8)).closeOut().run();
-		} else {
-			try {
-				if (serializer == null) {
-					// If no serializer specified, just close the stream.
-					os.close();
-				} else if (! serializer.isWriterSerializer()) {
-					OutputStreamSerializer s2 = (OutputStreamSerializer)serializer;
-					s2.serialize(output, os);
-					os.close();
-				} else {
-					Writer w = new OutputStreamWriter(os, IOUtils.UTF8);
-					WriterSerializer s2 = (WriterSerializer)serializer;
-					s2.serialize(output, w);
-					w.close();
-				}
-			} catch (SerializeException e) {
-				throw new com.ibm.juno.client.RestCallException(e);
-			}
-		}
-	}
-
-	@Override /* BasicHttpEntity */
-	public boolean isRepeatable() {
-		return true;
-	}
-
-	@Override /* BasicHttpEntity */
-	public InputStream getContent() {
-		if (outputBytes == null) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			try {
-				writeTo(baos);
-				outputBytes = baos.toByteArray();
-			} catch (IOException e) {
-				throw new RuntimeException(e);
-			}
-		}
-		return new ByteArrayInputStream(outputBytes);
-	}
-}

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RetryOn.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RetryOn.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RetryOn.java
deleted file mode 100755
index 6b9bf75..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/RetryOn.java
+++ /dev/null
@@ -1,35 +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.client;
-
-/**
- * Used to determine whether a request should be retried based on the HTTP response code.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public interface RetryOn {
-
-	/**
-	 * Default RetryOn that returns <jk>true</jk> of any HTTP response &gt;= 400 is received.
-	 */
-	public static final RetryOn DEFAULT = new RetryOn() {
-		@Override /* RetryOn */
-		public boolean onCode(int httpResponseCode) {
-			return httpResponseCode <= 0 || httpResponseCode >= 400;
-		}
-	};
-
-	/**
-	 * Subclasses should override this method to determine whether the HTTP response is retryable.
-	 *
-	 * @param httpResponseCode The HTTP response code.
-	 * @return <jk>true</jk> if the specified response code is retryable.
-	 */
-	boolean onCode(int httpResponseCode);
-}

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SSLOpts.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SSLOpts.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SSLOpts.java
deleted file mode 100755
index 2a7ed82..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SSLOpts.java
+++ /dev/null
@@ -1,185 +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.client;
-
-import com.ibm.juno.core.utils.*;
-
-/**
- * SSL configuration options that get passed to {@link RestClient#enableSSL(SSLOpts)}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SSLOpts {
-
-	private String protocols = getDefaultProtocols();
-	private CertValidate certValidate = CertValidate.DEFAULT;
-	private HostVerify hostVerify = HostVerify.DEFAULT;
-
-	/**
-	 * Reusable SSL options for lenient SSL (no cert validation or hostname verification).
-	 */
-	public static final SSLOpts LAX = new SSLOpts(null, CertValidate.LAX, HostVerify.LAX);
-
-	/**
-	 * Reusable SSL options for normal SSL (default cert validation and hostname verification).
-	 */
-	public static final SSLOpts DEFAULT = new SSLOpts(null, CertValidate.DEFAULT, HostVerify.DEFAULT);
-
-	/**
-	 * Constructor.
-	 */
-	public SSLOpts() {}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param protocols A comma-delimited list of supported SSL protocols.
-	 * 	If <jk>null</jk>, uses the value returned by {@link #getDefaultProtocols()}.
-	 * @param certValidate Certificate validation setting.
-	 * @param hostVerify Host verification setting.
-	 */
-	public SSLOpts(String protocols, CertValidate certValidate, HostVerify hostVerify) {
-		if (protocols != null)
-			this.protocols = protocols;
-		this.certValidate = certValidate;
-		this.hostVerify = hostVerify;
-	}
-
-	/**
-	 * Returns the default list of SSL protocols to support when the <code>protocols</code>
-	 * 	parameter on the constructor is <jk>null</jk>.
-	 * <p>
-	 * The default value is <jk>"SSL_TLS,TLS,SSL"</js> unless overridden by one of the following
-	 * 	system properties:
-	 * <ul>
-	 * 	<li><js>"com.ibm.team.repository.transport.client.protocol"</js>
-	 * 	<li><js>"transport.client.protocol"</js>
-	 * </ul>
-	 * <p>
-	 * Subclasses can override this method to provide their own logic for determining default supported protocols.
-	 *
-	 * @return The comma-delimited list of supported protocols.
-	 */
-	protected String getDefaultProtocols() {
-		String sp = System.getProperty("com.ibm.team.repository.transport.client.protocol");
-		if (StringUtils.isEmpty(sp))
-			sp = System.getProperty("transport.client.protocol");
-		if (StringUtils.isEmpty(sp))
-			sp = "SSL_TLS,TLS,SSL";
-		return sp;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Bean property getter:  <property>protocols</property>.
-	 *
-	 * @return The value of the <property>protocols</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public String getProtocols() {
-		return protocols;
-	}
-
-	/**
-	 * Bean property setter:  <property>protocols</property>.
-	 *
-	 * @param protocols The new value for the <property>properties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public SSLOpts setProtocols(String protocols) {
-		this.protocols = protocols;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>certValidate</property>.
-	 *
-	 * @return The value of the <property>certValidate</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public CertValidate getCertValidate() {
-		return certValidate;
-	}
-
-	/**
-	 * Bean property setter:  <property>certValidate</property>.
-	 *
-	 * @param certValidate The new value for the <property>properties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public SSLOpts setCertValidate(CertValidate certValidate) {
-		this.certValidate = certValidate;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>hostVerify</property>.
-	 *
-	 * @return The value of the <property>hostVerify</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public HostVerify getHostVerify() {
-		return hostVerify;
-	}
-
-	/**
-	 * Bean property setter:  <property>hostVerify</property>.
-	 *
-	 * @param hostVerify The new value for the <property>properties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public SSLOpts setHostVerify(HostVerify hostVerify) {
-		this.hostVerify = hostVerify;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Enums
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Certificate validation options.
-	 * <p>
-	 * Used as enum for {@link SSLOpts#getCertValidate()} property.
-	 */
-	@SuppressWarnings("hiding")
-	public static enum CertValidate {
-
-		/**
-		 * Verify that the certificate is valid, but allow for self-signed certificates.
-		 */
-		LAX,
-
-		/**
-		 * Do normal certificate chain validation.
-		 */
-		DEFAULT
-	}
-
-	/**
-	 * Certificate host verification options.
-	 * <p>
-	 * Used as enum for {@link SSLOpts#getHostVerify()} property.
-	 */
-	@SuppressWarnings("hiding")
-	public enum HostVerify {
-
-		/**
-		 * Don't verify the hostname in the certificate.
-		 */
-		LAX,
-
-		/**
-		 * Do normal hostname verification.
-		 */
-		DEFAULT
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SerializedNameValuePair.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SerializedNameValuePair.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SerializedNameValuePair.java
deleted file mode 100755
index cdb3b2e..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SerializedNameValuePair.java
+++ /dev/null
@@ -1,79 +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.client;
-
-import static com.ibm.juno.core.urlencoding.UonSerializerProperties.*;
-
-import org.apache.http.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.urlencoding.*;
-
-/**
- * Subclass of {@link NameValuePair} for serializing POJOs as URL-encoded form post entries
- * 	using the {@link UrlEncodingSerializer class}.
- * <p>
- * Example:
- * <p class='bcode'>
- * 	NameValuePairs params = <jk>new</jk> NameValuePairs()
- * 		.append(<jk>new</jk> SerializedNameValuePair(<js>"myPojo"</js>, pojo, UrlEncodingSerializer.<jsf>DEFAULT_SIMPLE</jsf>))
- * 		.append(<jk>new</jk> BasicNameValuePair(<js>"someOtherParam"</js>, <js>"foobar"</js>));
- * 	request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class SerializedNameValuePair implements NameValuePair {
-	private String name;
-	private Object value;
-	private UrlEncodingSerializer serializer;
-
-	// We must be sure to disable character encoding since it's done in the http client layer.
-	private static final ObjectMap op = new ObjectMap().append(UON_encodeChars, false);
-
-	/**
-	 * Constructor.
-	 *
-	 * @param name The parameter name.
-	 * @param value The POJO to serialize to the parameter value.
-	 * @param serializer The serializer to use to convert the value to a string.
-	 */
-	public SerializedNameValuePair(String name, Object value, UrlEncodingSerializer serializer) {
-		this.name = name;
-		this.value = value;
-		this.serializer = serializer;
-	}
-
-	@Override /* NameValuePair */
-	public String getName() {
-		if (name != null && name.length() > 0) {
-			char c = name.charAt(0);
-			if (c == '$' || c == '(') {
-				try {
-					UonSerializerContext ctx = serializer.createContext(op, null);
-					return serializer.serialize(name, ctx);
-				} catch (SerializeException e) {
-					throw new RuntimeException(e);
-				}
-			}
-		}
-		return name;
-	}
-
-	@Override /* NameValuePair */
-	public String getValue() {
-		try {
-			UonSerializerContext ctx = serializer.createContext(op, null);
-			return serializer.serialize(value, ctx);
-		} catch (SerializeException e) {
-			throw new RuntimeException(e);
-		}
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SimpleX509TrustManager.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SimpleX509TrustManager.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SimpleX509TrustManager.java
deleted file mode 100755
index 72975cb..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/SimpleX509TrustManager.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client;
-
-import java.security.*;
-import java.security.cert.*;
-
-import javax.net.ssl.*;
-
-/**
- * A trust manager that optionally allows for self-signed certificates.
- */
-public final class SimpleX509TrustManager implements X509TrustManager {
-
-	private X509TrustManager baseTrustManager;  // The JRE-provided trust manager used to validate certificates presented by a server.
-
-	/**
-	 * Constructor.
-	 *
-	 * @param lax If <jk>true</jk>, allow self-signed and expired certificates.
-	 * @throws KeyStoreException
-	 * @throws NoSuchAlgorithmException
-	 */
-	public SimpleX509TrustManager(boolean lax) throws KeyStoreException, NoSuchAlgorithmException {
-		if (! lax) {
-			// Find the JRE-provided X509 trust manager.
-			KeyStore ks = KeyStore.getInstance("jks");
-			TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
-			factory.init(ks);
-			for (TrustManager tm : factory.getTrustManagers()) {
-				if (tm instanceof X509TrustManager) {
-					baseTrustManager = (X509TrustManager)tm; // Take the first X509TrustManager we find
-					return;
-				}
-			}
-			throw new IllegalStateException("Couldn't find JRE's X509TrustManager"); //$NON-NLS-1$
-		}
-	}
-
-	@Override /* X509TrustManager */
-	public X509Certificate[] getAcceptedIssuers() {
-		return baseTrustManager == null ? new X509Certificate[0] : baseTrustManager.getAcceptedIssuers();
-	}
-
-	@Override /* X509TrustManager */
-	public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-		if (baseTrustManager != null)
-			baseTrustManager.checkClientTrusted(chain, authType);
-	}
-
-	@Override /* X509TrustManager */
-	public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-		if (baseTrustManager != null)
-			baseTrustManager.checkServerTrusted(chain, authType);
-	}
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/CertificateStore.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/CertificateStore.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/CertificateStore.java
deleted file mode 100755
index f06eaf5..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/CertificateStore.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-import java.util.*;
-
-/**
- * Specialized certificate storage based on {@link KeyStore} for managing trusted certificates.
- */
-@Deprecated // Use SimpleX509TrustManager
-public class CertificateStore {
-
-	private final KeyStore keyStore;
-
-	/**
-	 * Get the underlying KeyStore.
-	 */
-	KeyStore getKeyStore() {
-		return keyStore;
-	}
-
-	/**
-	 * Helper method that creates a {@link KeyStore} by reading it from a file.
-	 */
-	static KeyStore load(File file, String password) throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException {
-		KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
-		try {
-			InputStream input = new FileInputStream(file);
-			try {
-				ks.load(input, password == null ? null : password.toCharArray());
-			} finally {
-				input.close();
-			}
-		} catch (IOException e) {
-			// Return an empty initialized KeyStore
-			ks.load(null, null);
-		}
-		return ks;
-	}
-
-	/**
-	 * Helper method that writes a {@link KeyStore} to a file.
-	 */
-	static void store(KeyStore ks, File file, String password) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
-		OutputStream output = new FileOutputStream(file);
-		try {
-			ks.store(output, password == null ? null : password.toCharArray());
-		} finally {
-			output.close();
-		}
-	}
-
-	/**
-	 * Helper to compute a unique alias within the trust store for a specified certificate.
-	 * @param cert The certificate to compute an alias for.
-	 */
-	static String computeAlias(Certificate cert) {
-		// There appears to be no standard way to construct certificate aliases,
-		// but this class never depends on looking up a certificate by its
-		// computed alias, so just create an alias that's unique and be done.
-		return UUID.randomUUID().toString();
-	}
-
-	/**
-	 * Construct a new TrustStore initially containing no certificates.
-	 */
-	public CertificateStore() throws NoSuchAlgorithmException, CertificateException, IOException {
-		try {
-			keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
-		} catch (KeyStoreException e) {
-			// If the code above caused a KeyStoreException, then the JVM classpath is probably messed up.
-			throw new RuntimeException("KeyStoreException: ["+e.getLocalizedMessage()+"]. "
-				+ "Likely cause is that the Java Cryptography Extension libraries are missing from the JRE classpath.  "
-				+ "Make sure %JAVA_HOME%/lib/ext is specified in your JVM's java.ext.dirs system property.");
-		}
-		keyStore.load(null, null);
-	}
-
-	/**
-	 * Does the trust store contain the specified certificate?
-	 */
-	public boolean containsCertificate(Certificate cert) throws KeyStoreException {
-		return (keyStore.getCertificateAlias(cert) != null);
-	}
-
-	/**
-	 * Enter the specified certificate into the trust store.
-	 */
-	public void enterCertificate(Certificate cert) throws KeyStoreException {
-		if (! containsCertificate(cert))
-			keyStore.setCertificateEntry(computeAlias(cert), cert);
-	}
-
-	/*
-	 * Helper to copy all the certificate entries, and none of the other
-	 * entries, from a {@link KeyStore} into the trust store.
-	 */
-	private void enterCertificates(KeyStore ks) throws KeyStoreException {
-		for (Enumeration<String> e = ks.aliases(); e.hasMoreElements();) {
-			String alias = e.nextElement();
-			if (ks.isCertificateEntry(alias)) {
-				Certificate cert = ks.getCertificate(alias);
-				enterCertificate(cert);
-			}
-		}
-	}
-
-	/**
-	 * Load the specified {@link KeyStore} file and copy all of the certificates
-	 * it contains into the trust store. Only certificates, and not any other
-	 * entries, are loaded.
-	 */
-	public void loadCertificates(File file, String password) throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException {
-		KeyStore ks = load(file, password);
-		enterCertificates(ks);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ICertificateValidator$Trust.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ICertificateValidator$Trust.class b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ICertificateValidator$Trust.class
deleted file mode 100755
index 3051b31..0000000
Binary files a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ICertificateValidator$Trust.class and /dev/null differ

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ICertificateValidator.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ICertificateValidator.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ICertificateValidator.java
deleted file mode 100755
index 0ee07e8..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ICertificateValidator.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.security.cert.*;
-
-/**
- * Validator of certificates presented by a server when establishing an SSL
- * connection.
- */
-@Deprecated // Use SimpleX509TrustManager
-public interface ICertificateValidator {
-
-	/** Action to take for a server-supplied certificate. */
-	public enum Trust {
-
-		/** Do not accept the certificate. */
-		REJECT,
-
-		/** Accept the certificate temporarily for the current connection. */
-		ACCEPT_CONNECTION,
-
-		/** Accept the certificate temporarily for the current session. */
-		ACCEPT_SESSION,
-
-		/** Accept the certificate permanently, by saving it in the user's trust store.*/
-		ACCEPT_PERMANENT
-	}
-
-	/**
-	 * There is a problem accepting the server-supplied certificate. What should
-	 * be done?
-	 *
-	 * @param cert The problematic certificate presented by the server
-	 * @param problem The {@link CertificateException} that may indicate the specific
-	 * 	problem with the certificate, e.g. {@link CertificateExpiredException}.
-	 * @return The disposition on the certificate.
-	 */
-	Trust validate(X509Certificate cert, CertificateException problem);
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ITrustStoreProvider.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ITrustStoreProvider.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ITrustStoreProvider.java
deleted file mode 100755
index 47256a9..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/ITrustStoreProvider.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-
-/**
- * Utility class for handling certificate stores.
- */
-@Deprecated // Use SimpleX509TrustManager
-public interface ITrustStoreProvider {
-
-	/**
-	 * Returns the store of all certificates trusted for the lifetime
-	 * of this trust provider
-	 */
-	CertificateStore getSessionTrustStore();
-
-	/**
-	 * Returns the store of all permanently trusted certificates.
-	 */
-	CertificateStore getRuntimeTrustStore();
-
-    /**
-     * Install a certificate in the user's application-specific on-disk key
-     * store, if possible.
-     */
-    public void installCertificate(Certificate cert) throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException;
-
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/LenientCertificateValidator.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/LenientCertificateValidator.java b/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/LenientCertificateValidator.java
deleted file mode 100755
index a12ca43..0000000
--- a/com.ibm.team.juno.releng/bin/client/com/ibm/juno/client/deprecated/LenientCertificateValidator.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.security.cert.*;
-
-/**
- * Lenient certificate validator that always accepts invalid certificates.
- */
-@Deprecated // Use SimpleX509TrustManager
-public final class LenientCertificateValidator implements ICertificateValidator {
-
-	/** Singleton */
-	public static final ICertificateValidator INSTANCE = new LenientCertificateValidator();
-
-	@Override /* ICertificateValidator */
-	public Trust validate(X509Certificate certificate, CertificateException problem) {
-		return Trust.ACCEPT_CONNECTION;
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/bin/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/bin/.gitignore b/com.ibm.team.juno.microservice/bin/.gitignore
deleted file mode 100644
index c2d9872..0000000
--- a/com.ibm.team.juno.microservice/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/com/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/build.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/build.properties b/com.ibm.team.juno.microservice/build.properties
index f32e521..8fe52e5 100755
--- a/com.ibm.team.juno.microservice/build.properties
+++ b/com.ibm.team.juno.microservice/build.properties
@@ -1,15 +1,17 @@
-###############################################################################
-# 
-# Licensed Materials - Property of IBM
-# (c) Copyright IBM Corporation 2015. All Rights Reserved.
-# 
-# Note to U.S. Government Users Restricted Rights:  
-# Use, duplication or disclosure restricted by GSA ADP Schedule 
-# Contract with IBM Corp. 
-#  
-###############################################################################
-source.. = src/
-output.. = bin/
+# ***************************************************************************************************************************
+# * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+# * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+# * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            * 
+# * with the License.  You may obtain a copy of the License at                                                              *
+# *                                                                                                                         *
+# *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+# *                                                                                                                         *
+# * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+# * specific language governing permissions and limitations under the License.                                              *
+# ***************************************************************************************************************************
+source.. = src/main/java
+output.. = target/classes
 bin.includes = META-INF/,\
                .
 jar = microservice.jar

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/Microservice.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/Microservice.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/Microservice.java
deleted file mode 100755
index c175f5f..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/Microservice.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.microservice;
-
-import java.io.Console;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Map;
-import java.util.Set;
-import java.util.jar.Manifest;
-
-import com.ibm.juno.core.ObjectMap;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.ini.ConfigFile;
-import com.ibm.juno.core.ini.ConfigFileListener;
-import com.ibm.juno.core.ini.ConfigMgr;
-
-/**
- * Parent class for all microservices.
- * <p>
- * A microservice defines a simple API for starting and stopping simple Java services
- * 	contained in executable jars.
- * <p>
- * The general command for invoking these services is...
- * <p class='bcode'>
- * 	java -jar mymicroservice.jar [mymicroservice.cfg]
- * </p>
- * <p>
- * Your microservice class must be specified as the <jk>Main-Class</jk> entry in
- * 	the manifest file of your microservice jar file.
- *
- * <h6 class='topic'>Microservice Configuration</h6>
- * 
- * This class defines the following method for accessing configuration for your microservice:
- * <p>
- * <ul>
- * 	<li>{@link #getArgs()} - The command-line arguments passed to the jar file.
- * 	<li>{@link #getConfig()} - An external INI-style configuration file.
- * 	<li>{@link #getManifest()} - The manifest file for the main jar file.
- * </ul>
- *
- * <h6 class='topic'>Entrypoint Method</h6>
- * 
- * Subclasses must implement a static void main method as the entry point for the microservice.
- * Typically, this method will simply consist of the following...
- * <p>
- * <p class='bcode'>
- * 	<jk>public static void</jk> main(String[] args) <jk>throws</jk> Exception {
- * 		<jk>new</jk> MyMicroservice(args).start();
- * 	}
- * </p>
- *
- * <h6 class='topic'>Lifecycle Methods</h6>
- * 
- * Subclasses must implement the following lifecycle methods:
- * <p>
- * <ul>
- * 	<li>{@link #start()} - Gets executed during startup.
- * 	<li>{@link #stop()} - Gets executed when 'exit' is typed in the console or an external shutdown signal is received.
- * 	<li>{@link #kill()} - Can be used to forcibly shut down the service.  Doesn't get called during normal operation.
- * </ul>
- *
- * <h6 class='topic'>Lifecycle Listener Methods</h6>
- * 
- * Subclasses can optionally implement the following event listener methods:
- * <p>
- * <ul>
- * 	<li>{@link #onStart()} - Gets executed before {@link #start()}.
- * 	<li>{@link #onStop()} - Gets executed before {@link #stop()}.
- * 	<li>{@link #onConfigSave(ConfigFile)} - Gets executed after a config file has been saved.
- * 	<li>{@link #onConfigChange(ConfigFile, Set)} - Gets executed after a config file has been modified.
- * </ul>
- *
- * <h6 class='topic'>Other Methods</h6>
- * 
- * Subclasses can optionally override the following methods to provide customized behavior:
- * <p>
- * <ul>
- * 	<li>{@link #createVarResolver()} - Creates the {@link StringVarResolver} used to resolve variables in the config file returned by {@link #getConfig()}.
- * </ul>
- * 
- * @author jbognar@us.ibm.com
- */
-public abstract class Microservice {
-
-	private static Args args;
-	private static ConfigFile cf;
-	private static ObjectMap mf;
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param args2 Command line arguments.
-	 * @throws Exception 
-	 */
-	protected Microservice(String[] args2) throws Exception {
-		Microservice.args = new Args(args2);
-
-		// --------------------------------------------------------------------------------
-		// Try to get the manifest file.
-		// --------------------------------------------------------------------------------
-		Manifest m = new Manifest();
-
-		// If running within an eclipse workspace, need to get it from the file system.
-		File f = new File("META-INF/MANIFEST.MF");
-		if (f.exists()) {
-			try {
-				m.read(new FileInputStream(f));
-			} catch (IOException e) {
-				System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + IOUtils.read(f));
-				throw e;
-			}
-		} else {
-			// Otherwise, read from manifest file in the jar file containing the main class.
-			URLClassLoader cl = (URLClassLoader)getClass().getClassLoader();
-			URL url = cl.findResource("META-INF/MANIFEST.MF");
-			if (url != null) {
-				try {
-					m.read(url.openStream());
-				} catch (IOException e) {
-					System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + IOUtils.read(url.openStream()));
-					throw e;
-				}
-			}
-		}
-		mf = new ObjectMap();
-		for (Map.Entry<Object,Object> e : m.getMainAttributes().entrySet())
-			mf.put(e.getKey().toString(), e.getValue().toString());
-		
-		// --------------------------------------------------------------------------------
-		// Find config file.
-		// Can either be passed in as first parameter, or we discover it using
-		// the 'sun.java.command' system property.
-		// --------------------------------------------------------------------------------
-		String cFile = null;
-		if (args.hasArg(0))
-			cFile = args.getArg(0);
-		else if (mf.containsKey("Main-ConfigFile"))
-			cFile = mf.getString("Main-ConfigFile");
-		else {
-			String cmd = System.getProperty("sun.java.command", "not_found").split("\\s+")[0];
-			if (cmd.endsWith(".jar"))
-				cFile = cmd.replace(".jar", ".cfg");
-		}
-
-		if (cFile == null) {
-			System.err.println("Running class ["+getClass().getSimpleName()+"] without a config file.");
-			cf = ConfigMgr.DEFAULT.create();
-		} else {
-			System.out.println("Running class ["+getClass().getSimpleName()+"] using config file ["+cFile+"]");
-			System.setProperty("juno.configFile", cFile);
-			cf = ConfigMgr.DEFAULT.get(cFile).getResolving(createVarResolver());
-		}
-
-		// --------------------------------------------------------------------------------
-		// Set system properties.
-		// --------------------------------------------------------------------------------
-		Set<String> spKeys = cf.getSectionKeys("SystemProperties");
-		if (spKeys != null)
-			for (String key : spKeys) 
-				System.setProperty(key, cf.get("SystemProperties", key));
-		
-		// --------------------------------------------------------------------------------
-		// Add a config file change listener.
-		// --------------------------------------------------------------------------------
-		cf.addListener(new ConfigFileListener() {
-			@Override /* ConfigFileListener */
-			public void onSave(ConfigFile cf) {
-				onConfigSave(cf);
-			}
-			@Override /* ConfigFileListener */
-			public void onChange(ConfigFile cf, Set<String> changes) {
-				onConfigChange(cf, changes);
-			}
-		});
-
-		// --------------------------------------------------------------------------------
-		// Add exit listeners.
-		// --------------------------------------------------------------------------------
-		new Thread() {
-			@Override /* Thread */
-			public void run() {
-				Console c = System.console();
-				if (c == null)
-					System.out.println("No available console.");
-				else {
-					while (true) {
-						String l = c.readLine("\nEnter 'exit' to exit.\n");
-						if (l == null || l.equals("exit")) {
-							Microservice.this.stop();
-							break;
-						}
-					}
-				}
-			}
-		}.start();
-		Runtime.getRuntime().addShutdownHook(
-			new Thread() {
-				@Override /* Thread */
-				public void run() {
-					Microservice.this.stop();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Creates the {@link StringVarResolver} used to resolve variables in the 
-	 * config file returned by {@link #getConfig()}.
-	 * <p>
-	 * The default implementation resolves the following variables:
-	 * <ul>
-	 * 	<li><code>$S{key}</code>, <code>$S{key,default}</code> - System properties.
-	 * 	<li><code>$E{key}</code>, <code>$E{key,default}</code> - Environment variables.
-	 * 	<li><code>$C{key}</code>, <code>$C{key,default}</code> - Config file entries.
-	 * 	<li><code>$MF{key}</code>, <code>$MF{key,default}</code> - Manifest file entries.
-	 * 	<li><code>$ARG{key}</code>, <code>$ARG{key,default}</code> - Command-line arguments.
-	 * </ul> 
-	 * <p>
-	 * Subclasses can override this method to provide their own variables.
-	 * <dl>
-	 * 	<dt>Examples:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jd>/** 
-	 * 	 * Augment default var resolver with a custom $B{...} variable that simply wraps strings inside square brackets.
-	 * 	 * /</jd>
-	 * 	<ja>@Override</ja> <jc>// Microservice</jc>
-	 * 	<jk>protected</jk> StringVarResolver createVarResolver() {
-	 * 		<jk>return super</jk>.createVarResolver()
-	 * 			.addVar(<js>"B"</js>,
-	 * 				<jk>new</jk> StringVarWithDefault() {
-	 * 					<ja>@Override</ja> <jc>// StringVar</jc> 
-	 * 					<jk>public</jk> String resolve(String varVal) {
-	 * 						<jk>return</jk> <js>'['</js> + varVal + <js>']'</js>;
-	 * 					}
-	 * 				}
-	 * 			);
-	 * 	}
-	 * 		</p>
-	 * 		<p class='bcode'>
-	 * 	<cc># Example config file</cc>
-	 * 	<cs>[MySection]</cs>
-	 * 	<ck>myEntry</ck> = $B{foo}
-	 * 		</p>
-	 * 		<p class='bcode'>
-	 * 	<jc>// Example java code</jc>
-	 * 	String myentry = getConfig().getString(<js>"MySection/myEntry"</js>); <jc>// == "[foo]"</js>
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 * 
-	 * @return A new {@link StringVarResolver}.
-	 */
-	protected StringVarResolver createVarResolver() {
-		return new StringVarResolver(StringVarResolver.DEFAULT)
-			.addVar("C", 
-				new StringVarWithDefault() {
-					@Override /* StringVar */
-					public String resolve(String varVal) {
-						return cf.getString(varVal);
-					}
-				}
-			)
-			.addVar("MF", 
-				new StringVarWithDefault() {
-					@Override /* StringVar */
-					public String resolve(String varVal) {
-						if (mf == null)
-							return null;
-						return mf.getString(varVal);
-					}
-				}
-			)
-			.addVar("ARG", 
-				new StringVarWithDefault() {
-					@Override /* StringVar */
-					public String resolve(String varVal) {
-						if (args == null)
-							return null;
-						return args.getString(varVal);
-					}
-				}
-			);
-	}
-	
-	/**
-	 * Returns the command-line arguments passed into the application.
-	 * <p>
-	 * This method can be called from the class constructor.
-	 * <p>
-	 * See {@link Args} for details on using this method.
-	 * 
-	 * @return The command-line arguments passed into the application.
-	 */
-	protected static Args getArgs() {
-		return args;
-	}
-
-	/**
-	 * Overrides the value returned by {@link #getArgs()}.
-	 * 
-	 * @param args The new arguments. 
-	 * @return This object (for method chaining).
-	 */
-	protected Microservice setArgs(String[] args) {
-		Microservice.args = new Args(args);
-		return this;
-	}
-
-	/**
-	 * Returns the external INI-style configuration file that can be used to configure your microservice.
-	 * <p>
-	 * The config file location is determined in the following order:
-	 * <ol class='spaced-list'>
-	 * 	<li>The first argument passed to the microservice jar.
-	 * 	<li>The <code>Main-ConfigFile</code> entry in the microservice jar manifest file.
-	 * 	<li>The name of the microservice jar with a <js>".cfg"</js> suffix (e.g. <js>"mymicroservice.jar"</js>-&gt;<js>"mymicroservice.cfg"</js>).
-	 * </ol>
-	 * <p>
-	 * If all methods for locating the config file fail, then this method returns <jk>null</jk>.
-	 * <p>
-	 * Subclasses can set their own config file by calling the {@link #setConfig(ConfigFile)} method.
-	 * <p>
-	 * String variables defined by {@link #createVarResolver()} are automatically resolved when using this method.
-	 * <p>
-	 * This method can be called from the class constructor.
-	 * <dl>
-	 * 	<dt>Examples:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<cc>#--------------------------</cc>
-	 * 	<cc># My section</cc>
-	 * 	<cc>#--------------------------</cc>
-	 * 	<cs>[MySection]</cs>
-	 * 	
-	 * 	<cc># An integer</cc>
-	 * 	<ck>anInt</ck> = 1 
-	 * 	
-	 * 	<cc># A boolean</cc>
-	 * 	<ck>aBoolean</ck> = true 
-	 * 	
-	 * 	<cc># An int array</cc>
-	 * 	<ck>anIntArray</ck> = 1,2,3 
-	 * 	
-	 * 	<cc># A POJO that can be converted from a String</cc>
-	 * 	<ck>aURL</ck> = http://foo 
-	 * 	
-	 * 	<cc># A POJO that can be converted from JSON</cc>
-	 * 	<ck>aBean</ck> = {foo:'bar',baz:123}
-	 * 	
-	 * 	<cc># A system property</cc>
-	 * 	<ck>locale</ck> = $S{java.locale, en_US}
-	 * 	
-	 * 	<cc># An environment variable</cc>
-	 * 	<ck>path</ck> = $E{PATH, unknown}
-	 * 	
-	 * 	<cc># A manifest file entry</cc>
-	 * 	<ck>mainClass</ck> = $MF{Main-Class}
-	 * 	
-	 * 	<cc># Another value in this config file</cc>
-	 * 	<ck>sameAsAnInt</ck> = $C{MySection/anInt}
-	 * 	
-	 * 	<cc># A command-line argument in the form "myarg=foo"</cc>
-	 * 	<ck>myArg</ck> = $ARG{myarg}
-	 * 	
-	 * 	<cc># The first command-line argument</cc>
-	 * 	<ck>firstArg</ck> = $ARG{0}
-	 * 
-	 * 	<cc># Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.</cc>
-	 * 	<ck>nested</ck> = $S{mySystemProperty,$E{MY_ENV_VAR,$ARG{0}}}
-	 * 
-	 * 	<cc># A POJO with embedded variables</cc>
-	 * 	<ck>aBean2</ck> = {foo:'$ARG{0}',baz:$C{MySection/anInt}}
-	 * 	
-	 * 		</p>
-	 * 		<p class='bcode'>
-	 * 	<jc>// Java code for accessing config entries above.</jc>
-	 * 	ConfigFile cf = getConfig();
-	 * 	
-	 * 	<jk>int</jk> anInt = cf.getInt(<js>"MySection/anInt"</js>); 
-	 * 	<jk>boolean</jk> aBoolean = cf.getBoolean(<js>"MySection/aBoolean"</js>); 
-	 * 	<jk>int</jk>[] anIntArray = cf.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"MySection/anIntArray"</js>); 
-	 * 	URL aURL = cf.getObject(URL.<jk>class</jk>, <js>"MySection/aURL"</js>); 
-	 * 	MyBean aBean = cf.getObject(MyBean.<jk>class</jk>, <js>"MySection/aBean"</js>); 
-	 * 	Locale locale = cf.getObject(Locale.<jk>class</jk>, <js>"MySection/locale"</js>); 
-	 * 	String path = cf.getString(<js>"MySection/path"</js>); 
-	 * 	String mainClass = cf.getString(<js>"MySection/mainClass"</js>); 
-	 * 	<jk>int</jk> sameAsAnInt = cf.getInt(<js>"MySection/sameAsAnInt"</js>); 
-	 * 	String myArg = cf.getString(<js>"MySection/myArg"</js>); 
-	 * 	String firstArg = cf.getString(<js>"MySection/firstArg"</js>); 
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 * 
-	 * @return The config file for this application, or <jk>null</jk> if no config file is configured. 
-	 */
-	protected static ConfigFile getConfig() {
-		return cf;
-	}
-
-	/**
-	 * Overrides the value returned by {@link #getConfig()}.
-	 * 
-	 * @param cf The config file for this application, or <jk>null</jk> if no config file is configured. 
-	 * @return This object (for method chaining).
-	 */
-	protected Microservice setConfig(ConfigFile cf) {
-		Microservice.cf = cf;
-		return this;
-	}
-
-	/**
-	 * Returns the main jar manifest file contents as a simple {@link ObjectMap}.
-	 * <p>
-	 * This map consists of the contents of {@link Manifest#getMainAttributes()} with the keys
-	 * 	and entries converted to simple strings.
-	 * <p>
-	 * This method can be called from the class constructor.
-	 * <dl>
-	 * 	<dt>Examples:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jc>// Get Main-Class from manifest file.</jc>
-	 * 	String mainClass = Microservice.<jsm>getManifest</jsm>().getString(<js>"Main-Class"</js>, <js>"unknown"</js>);
-	 * 
-	 * 	<jc>// Get Rest-Resources from manifest file.</jc>
-	 * 	String[] restResources = Microservice.<jsm>getManifest</jsm>().getStringArray(<js>"Rest-Resources"</js>);
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 * 
-	 * @return The manifest file from the main jar, or <jk>null</jk> if the manifest file could not be retrieved.
-	 */
-	protected static ObjectMap getManifest() {
-		return mf;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Abstract lifecycle methods.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Start this application.
-	 * <p>
-	 * Default implementation simply calls {@link #onStart()}.
-	 * <p>
-	 * Overridden methods MUST call this method FIRST so that the {@link #onStart()} method is called.
-	 * 
-	 * @throws Exception
-	 */
-	protected void start() throws Exception {
-		onStart();
-	}
-
-	/**
-	 * Stop this application.
-	 * <p>
-	 * Default implementation simply calls {@link #onStop()}.
-	 * <p>
-	 * Overridden methods MUST call this method LAST so that the {@link #onStop()} method is called.
-	 */
-	protected void stop() {
-		onStop();
-	}
-
-	/**
-	 * Kill the JVM by calling <code>System.exit(2);</code>.
-	 */
-	protected void kill() {
-		// This triggers the shutdown hook.
-		System.exit(2);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Lifecycle listener methods.
-	// Subclasses can override these methods to run code on certain events.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Called at the beginning of the {@link #start()} call.
-	 * <p>
-	 * Subclasses can override this method to hook into the lifecycle of this application.
-	 */
-	protected void onStart() {}
-
-	/**
-	 * Called at the end of the {@link #stop()} call.
-	 * <p>
-	 * Subclasses can override this method to hook into the lifecycle of this application.
-	 */
-	protected void onStop() {}
-
-	/**
-	 * Called if the {@link ConfigFile#save()} is called on the config file.
-	 * <p>
-	 * Subclasses can override this method to listen for config file changes.
-	 * 
-	 * @param cf The config file. 
-	 */
-	protected void onConfigSave(ConfigFile cf) {}
-
-	/**
-	 * Called if one or more changes occur in the config file.
-	 * <p>
-	 * Subclasses can override this method to listen for config file changes.
-	 * 
-	 * @param cf The config file. 
-	 * @param changes The list of keys in the config file being changed.
-	 */
-	protected void onConfigChange(ConfigFile cf, Set<String> changes) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/Resource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/Resource.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/Resource.java
deleted file mode 100755
index cce3bc8..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/Resource.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � Copyright IBM Corporation 2015, 2016. 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.microservice;
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.server.*;
-import com.ibm.juno.server.annotation.*;
-
-/**
- * Superclass for all REST resources.
- * <p>
- * In additional to the functionality of the {@link RestServletDefault} group, 
- * augments the {@link #createVarResolver()} method with the following additional variable types:
- * <ul class='spaced-list'>
- * 	<li><code class='snippet'>$ARG{...}</code> - Command line arguments pulled from {@link Microservice#getArgs()}.<br>
- * 		<h6 class='figure'>Example:</h6>
- * 		<p class='bcode'>
- * 			String firstArg = request.getVarResolver().resolve(<js>"$ARG{0}"</js>);  <jc>// First argument.</jc> 
- * 			String namedArg = request.getVarResolver().resolve(<js>"$ARG{myarg}"</js>);  <jc>// Named argument (e.g. "myarg=foo"). </jc>
- * 		</p>
- * 	<li><code class='snippet'>$MF{...}</code> - Manifest file entries pulled from {@link Microservice#getManifest()}.<br>
- * 		<h6 class='figure'>Example:</h6>
- * 		<p class='bcode'>
- * 			String mainClass = request.getVarResolver().resolve(<js>"$MF{Main-Class}"</js>);  <jc>// Main class. </jc>
- * 		</p>
- * </ul>
- * 
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("serial")
-@RestResource(
-	properties={
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS'}")
-	},
-	config="$S{juno.configFile}",
-	stylesheet="$C{REST/stylesheet,styles/juno.css}"
-)
-public abstract class Resource extends RestServletDefault {
-
-	/**
-	 * Adds $ARG and $MF variables to variable resolver defined on {@link RestServlet#createVarResolver()}.
-	 */
-	@Override
-	protected StringVarResolver createVarResolver() {
-		StringVarResolver r = super.createVarResolver();
-
-		// Command-line arguments.
-		r.addVar("ARG", new StringVarWithDefault() {
-			@Override /* StringVar */
-			public String resolve(String varVal) {
-				return Microservice.getArgs().getArg(varVal);
-			}
-		});
-
-		// Manifest file entries.
-		r.addVar("MF", new StringMapVar(Microservice.getManifest()));
-
-		return r;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/ResourceGroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/ResourceGroup.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/ResourceGroup.java
deleted file mode 100755
index db8f3d3..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/ResourceGroup.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � Copyright IBM Corporation 2015, 2016. 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.microservice;
-
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.server.*;
-import com.ibm.juno.server.annotation.*;
-
-/**
- * Superclass for all REST resource groups.
- * <p>
- * In additional to the functionality of the {@link RestServletGroupDefault} group, 
- * augments the {@link #createVarResolver()} method with the following additional variable types:
- * <ul>
- * 	<li><jk>$ARG{...}</jk> - Command line arguments.<br>
- * 		Resolves values from {@link Microservice#getArgs()}.<br>
- * 		<h6>Example:</h6>
- * 		<p class='bcode'>
- * 			String firstArg = request.getVarResolver().resolve(<js>"$ARG{0}"</js>);  <jc>// First argument.</jc> 
- * 			String namedArg = request.getVarResolver().resolve(<js>"$ARG{myarg}"</js>);  <jc>// Named argument (e.g. "myarg=foo"). </jc>
- * 		</p>
- * 	<li><jk>$MF{...}</jk> - Manifest file entries.
- * 		<h6>Example:</h6>
- * 		<p class='bcode'>
- * 			String mainClass = request.getVarResolver().resolve(<js>"$MF{Main-Class}"</js>);  <jc>// Main class. </jc>
- * 		</p>
- * </ul>
- * 
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("serial")
-@RestResource(
-	properties={
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS'}"),
-	},
-	config="$S{juno.configFile}",
-	stylesheet="$C{REST/stylesheet,styles/juno.css}"
-)
-public abstract class ResourceGroup extends RestServletGroupDefault {
-
-	@Override
-	protected StringVarResolver createVarResolver() {
-		StringVarResolver r = super.createVarResolver();
-
-		// Command-line arguments.
-		r.addVar("ARG", new StringVarWithDefault() {
-			@Override /* StringVar */
-			public String resolve(String varVal) {
-				return Microservice.getArgs().getArg(varVal);
-			}
-		});
-
-		// Manifest file entries.
-		r.addVar("MF", new StringMapVar(Microservice.getManifest()));
-
-		return r;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/ResourceJena.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/ResourceJena.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/ResourceJena.java
deleted file mode 100755
index 153a000..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/ResourceJena.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � Copyright IBM Corporation 2015, 2016. 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.microservice;
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-
-import com.ibm.juno.server.annotation.*;
-import com.ibm.juno.server.jena.*;
-
-/**
- * Superclass for all REST resources with RDF support.
- * 
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("serial")
-@RestResource(
-	properties={
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS'}")
-	},
-	config="$S{juno.configFile}",
-	stylesheet="$C{REST/stylesheet,styles/juno.css}"
-)
-public abstract class ResourceJena extends RestServletJenaDefault {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/RestMicroservice.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/RestMicroservice.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/RestMicroservice.java
deleted file mode 100755
index 980f88c..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/RestMicroservice.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.microservice;
-
-import java.io.File;
-import java.util.*;
-import java.util.logging.*;
-
-import javax.servlet.Servlet;
-
-import org.eclipse.jetty.security.ConstraintMapping;
-import org.eclipse.jetty.security.ConstraintSecurityHandler;
-import org.eclipse.jetty.security.HashLoginService;
-import org.eclipse.jetty.security.SecurityHandler;
-import org.eclipse.jetty.security.authentication.BasicAuthenticator;
-import org.eclipse.jetty.server.*;
-import org.eclipse.jetty.server.ssl.SslSocketConnector;
-import org.eclipse.jetty.servlet.*;
-import org.eclipse.jetty.util.security.Constraint;
-import org.eclipse.jetty.util.security.Credential;
-import org.eclipse.jetty.util.ssl.SslContextFactory;
-
-import com.ibm.juno.core.ObjectMap;
-import com.ibm.juno.core.ini.ConfigFile;
-import com.ibm.juno.core.json.JsonSerializer;
-import com.ibm.juno.core.parser.ParseException;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.microservice.resources.LogEntryFormatter;
-import com.ibm.juno.server.annotation.RestResource;
-
-
-/**
- * Entry point for Juno microservice that implements a REST interface using Jetty on a single port.
- * 
- * <h6 class='topic'>Jetty Server Details</h6>
- * <p>
- * The Jetty server is created by the {@link #createServer()} method and started with the {@link #startServer()} method.
- * These methods can be overridden to provided customized behavior.
- * <p>
- * 
- * <h6 class='topic'>Defining REST Resources</h6>
- * <p>
- * Top-level REST resources are defined by the {@link #getResourceMap()} method.
- * This method can be overridden to provide a customized list of REST resources.
- * <p>
- * 
- * <h6 class='topic'>Logging</h6>
- * <p>
- * Logging is initialized by the {@link #initLogging()} method.
- * This method can be overridden to provide customized logging behavior.
- *
- * <h6 class='topic'>Lifecycle Listener Methods</h6>
- * Subclasses can optionally implement the following event listener methods:
- * <ul>
- * 	<li>{@link #onStart()} - Gets executed before {@link #start()}.
- * 	<li>{@link #onStop()} - Gets executed before {@link #stop()}.
- * 	<li>{@link #onCreateServer()} - Gets executed before {@link #createServer()}.
- * 	<li>{@link #onStartServer()} - Gets executed before {@link #startServer()}.
- * 	<li>{@link #onPostStartServer()} - Gets executed after {@link #startServer()}.
- * 	<li>{@link #onStopServer()} - Gets executed before {@link #stop()}.
- * 	<li>{@link #onPostStopServer()} - Gets executed after {@link #stop()}.
- * </ul>
- *
- * @author jbognar@us.ibm.com
- */
-public class RestMicroservice extends Microservice {
-
-	Server server;
-	int port;
-	Logger logger;
-
-	/**
-	 * Main method.
-	 * Subclasses must also implement this method!
-	 * 
-	 * @param args Command line arguments.
-	 * @throws Exception 
-	 */
-	public static void main(String[] args) throws Exception {
-		new RestMicroservice(args).start();
-	}
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param args The command line arguments.
-	 * @throws Exception 
-	 */
-	public RestMicroservice(String[] args) throws Exception {
-		super(args);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Methods implemented on Microservice API
-	//--------------------------------------------------------------------------------
-
-	@Override /* Microservice */
-	protected void start() throws Exception {
-		super.start();
-		initLogging();
-		createServer();
-		startServer();
-	}
-
-	@Override /* Microservice */
-	public void stop() {
-		Thread t = new Thread() {
-			@Override /* Thread */
-			public void run() {
-				try {
-					onStopServer();
-					logger.warning("Stopping server.");
-					System.out.println();
-					server.stop();
-					logger.warning("Server stopped.");
-					onPostStopServer();
-				} catch (Exception e) {
-					logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
-				}
-			}
-		};
-		t.start();
-		try {
-			t.join();
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-		super.stop();
-	}
-
-	//--------------------------------------------------------------------------------
-	// RestMicroservice API methods.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Initialize the logging for this microservice.
-	 * <p>
-	 * Subclasses can override this method to provide customized logging.
-	 * <p>
-	 * The default implementation uses the <cs>Logging</cs> section in the config file to set up logging:
-	 * <p class='bcode'>
-	 * 	<cc>#================================================================================
-	 * 	# Logger settings
-	 * 	# See FileHandler Java class for details.
-	 * 	#================================================================================</cc>
-	 * 	<cs>[Logging]</cs>
-	 * 	
-	 * 	<cc># The directory where to create the log file.
-	 * 	# Default is ".".</cc>
-	 * 	<ck>logDir</ck> = logs
-	 * 	
-	 * 	<cc># The name of the log file to create for the main logger.
-	 * 	# The logDir and logFile make up the pattern that's passed to the FileHandler
-	 * 	# constructor.
-	 * 	# If value is not specified, then logging to a file will not be set up.</cc>
-	 * 	<ck>logFile</ck> = microservice.%g.log
-	 * 	
-	 * 	<cc># Whether to append to the existing log file or create a new one.
-	 * 	# Default is false.</cc>
-	 * 	<ck>append</ck> =
-	 * 	
-	 * 	<cc># The SimpleDateFormat format to use for dates.
-	 * 	# Default is "yyyy.MM.dd hh:mm:ss".</cc>
-	 * 	<ck>dateFormat</ck> = 
-	 * 	
-	 * 	<cc># The log message format.
-	 * 	# The value can contain any of the following variables:
-	 * 	# 	{date} - The date, formatted per dateFormat.
-	 * 	#	{class} - The class name.
-	 * 	#	{method} - The method name.
-	 * 	#	{logger} - The logger name.
-	 * 	#	{level} - The log level name.
-	 * 	#	{msg} - The log message.
-	 * 	#	{threadid} - The thread ID.
-	 * 	#	{exception} - The localized exception message.
-	 * 	# Default is "[{date} {level}] {msg}%n".</cc>
-	 * 	<ck>format</ck> = 
-	 * 	
-	 * 	<cc># The maximum log file size.
-	 * 	# Suffixes available for numbers.
-	 * 	# See ConfigFile.getInt(String,int) for details.
-	 * 	# Default is 1M.</cc>
-	 * 	<ck>limit</ck> = 10M
-	 * 	
-	 * 	<cc># Max number of log files.
-	 * 	# Default is 1.</cc>
-	 * 	<ck>count</ck> = 5
-	 * 
-	 * 	<cc># Default log levels.
-	 * 	# Keys are logger names.
-	 * 	# Values are serialized Level POJOs.</cc>
-	 * 	<ck>levels</ck> = { com.ibm.juno:'INFO' }
-	 * 	
-	 * 	<cc># Only print unique stack traces once and then refer to them by a simple 8 character hash identifier.
-	 * 	# Useful for preventing log files from filling up with duplicate stack traces.
-	 * 	# Default is false.</cc>
-	 * 	<ck>useStackTraceHashes</ck> = true
-	 * 	
-	 * 	<cc># The default level for the console logger.
-	 * 	# Default is WARNING.</cc>
-	 * 	<ck>consoleLevel</ck> = WARNING
-	 * </p>
-	 * 
-	 * @throws Exception 
-	 */
-	protected void initLogging() throws Exception {
-		ConfigFile cf = getConfig();
-		logger = Logger.getLogger("");
-		String logFile = cf.getString("Logging/logFile");
-		if (! StringUtils.isEmpty(logFile)) {
-			LogManager.getLogManager().reset();
-			String logDir = cf.getString("Logging/logDir", ".");
-			FileUtils.mkdirs(new File(logDir), false);
-			boolean append = cf.getBoolean("Logging/append");
-			int limit = cf.getInt("Logging/limit", 1024*1024);
-			int count = cf.getInt("Logging/count", 1);
-			FileHandler fh = new FileHandler(logDir + '/' + logFile, limit, count, append);
-
-			boolean useStackTraceHashes = cf.getBoolean("Logging/useStackTraceHashes");
-			String format = cf.getString("Logging/format", "[{date} {level}] {msg}%n");
-			String dateFormat = cf.getString("Logging/dateFormat", "yyyy.MM.dd hh:mm:ss");
-			fh.setFormatter(new LogEntryFormatter(format, dateFormat, useStackTraceHashes));
-			logger.addHandler(fh);
-
-			ConsoleHandler ch = new ConsoleHandler();
-			ch.setLevel(Level.parse(cf.getString("Logging/consoleLevel", "WARNING")));
-			ch.setFormatter(new LogEntryFormatter(format, dateFormat, false));
-			logger.addHandler(ch);
-		}
-		ObjectMap loggerLevels = cf.getObject(ObjectMap.class, "Logging/levels");
-		if (loggerLevels != null)
-		for (String l : loggerLevels.keySet())
-			Logger.getLogger(l).setLevel(loggerLevels.get(Level.class, l));
-	}
-
-	/**
-	 * Method used to create (but not start) an instance of a Jetty server.
-	 * <p>
-	 * Subclasses can override this method to customize the Jetty server before it is started.
-	 * <p>
-	 * The default implementation is configured by the following values in the config file:
-	 * <p>
-	 * <p class='bcode'>
-	 * 	<cc>#================================================================================
-	 * 	# REST settings
-	 * 	#================================================================================</cc>
-	 * 	<cs>[REST]</cs>
-	 * 	
-	 * 	<cc># The HTTP port number to use.
-	 * 	# Default is Rest-Port setting in manifest file, or 8000.</cc>
-	 * 	<ck>port</ck> = 10000
-	 * 	
-	 * 	<cc># The context root of the Jetty server.
-	 * 	# Default is Rest-ContextPath in manifest file, or "/".</cc>
-	 * 	<ck>contextPath</ck> = 10000
-	 * 
-	 * 	<cc># Authentication:  NONE, BASIC.
-	 * 	# Default is Rest-AuthType in manifest file, or NONE.</cc>
-	 * 	<ck>authType</ck> = NONE
-	 * 
-	 * 	<cc># The BASIC auth username.
-	 * 	# Default is Rest-LoginUser in manifest file.</cc>
-	 * 	<ck>loginUser</ck> = 
-	 * 	
-	 * 	<cc># The BASIC auth password.
-	 * 	# Default is Rest-LoginPassword in manifest file.</cc>
-	 * 	<ck>loginPassword</ck> = 
-	 * 	
-	 * 	<cc># The BASIC auth realm.
-	 * 	# Default is Rest-AuthRealm in manifest file.</cc>
-	 * 	<ck>authRealm</ck> = 
-	 * 	
-	 * 	<cc># Enable SSL support.</cc>
-	 * 	<ck>useSsl</ck> = false
-	 * 
-	 * 	<cc>#================================================================================
-	 * 	# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
-	 * 	#--------------------------------------------------------------------------------
-	 * 	# Ignored if REST/useSsl is false.
-	 * 	#================================================================================</cc>
-	 * 	<cs>[REST-SslContextFactory]</cs>
-	 * 	<ck>keyStorePath</ck> = client_keystore.jks
-	 * 	<ck>keyStorePassword*</ck> = {HRAaRQoT}
-	 * 	<ck>excludeCipherSuites</ck> = TLS_DHE.*, TLS_EDH.*
-	 * 	<ck>excludeProtocols</ck> = SSLv3
-	 * 	<ck>allowRenegotiate</ck> = false
-	 * </p>
-	 * 
-	 * @return The newly-created server. 
-	 * @throws Exception 
-	 */
-	protected Server createServer() throws Exception {
-		onCreateServer();
-
-		ConfigFile cf = getConfig();
-		ObjectMap mf = getManifest();
-		
-		port = cf.getInt("REST/port", mf.getInt("Rest-Port", 8000));
-		String contextPath = cf.getString("REST/contextPath", mf.getString("Rest-ContextPath", "/"));
-
-		if (cf.getBoolean("REST/useSsl")) {
-
-			SslContextFactory sslContextFactory = new SslContextFactory();
-
-			// Write the properties in REST-SslContextFactory to the bean setters on sslContextFactory.
-			// Throws an exception if section contains unknown properties.
-			// Only look for bean properties of type String/String/boolean/int since class has multiple
-			// 	setters with the same name (e.g. setKeyStore(KeyStore) and setKeyStore(String)).
-			ObjectMap m = cf.writeProperties("REST-SslContextFactory", sslContextFactory, false, String.class, String[].class, boolean.class, int.class);
-
-			// We're using Jetty 8 that doesn't allow regular expression matching in SslContextFactory.setExcludeCipherSuites(), 
-			// so to prevent having the config file list all old cipher suites, exclude the known bad ones.
-			String[] excludeCipherSuites = ArrayUtils.combine(
-				StringUtils.split("SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA", ','),
-				sslContextFactory.getExcludeCipherSuites()
-			);
-			sslContextFactory.setExcludeCipherSuites(excludeCipherSuites);
-			
-			logger.log(Level.WARNING, "SSL properties set: {0}", JsonSerializer.DEFAULT_LAX.toString(m));
-
-			SslSocketConnector connector = new SslSocketConnector(sslContextFactory);
-			connector.setPort(port);
-
-			server = new Server();
-			server.setConnectors(new Connector[] { connector });
-
-		} else {
-			server = new Server(port);
-		}
-
-		ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
-
-		String authType = cf.getString("REST/authType", mf.getString("Rest-AuthType", "NONE"));
-		if (authType.equals("BASIC"))
-			context.setSecurityHandler(basicAuth(cf, mf));
-
-		context.setContextPath(contextPath);
-		server.setHandler(context);
-
-		for (Map.Entry<String,Class<? extends Servlet>> e : getResourceMap().entrySet())
-			context.addServlet(e.getValue(), e.getKey()).setInitOrder(0);
-
-		return server;
-	}
-
-	/**
-	 * Method used to start the Jetty server created by {@link #createServer()}.
-	 * <p>
-	 * Subclasses can override this method to customize server startup.
-	 * 
-	 * @throws Exception 
-	 */
-	protected void startServer() throws Exception {
-		onStartServer();
-		server.start();
-		logger.warning("Server started on port " + port);
-		onPostStartServer();
-		server.join();
-	}
-
-	/**
-	 * Returns the resource map to use for this microservice.
-	 * <p>
-	 * <p>
-	 * Subclasses can override this method to programmatically specify their resources.
-	 * <p>
-	 * The default implementation is configured by the following values in the config file:
-	 * <p>
-	 * <p class='bcode'>
-	 * 
-	 * 	<cc>#================================================================================
-	 * 	# REST settings
-	 * 	#================================================================================</cc>
-	 * 	<cs>[REST]</cs>
-	 * 	
-	 * 	<cc># A JSON map of servlet paths to servlet classes.
-	 * 	# Example:  
-	 * 	# 	resourceMap = {'/*':'com.ibm.MyServlet'}
-	 * 	# Either resourceMap or resources must be specified if it's not defined in 
-	 * 	# the manifest file.</cc>
-	 * 	<ck>resourceMap</ck> = 
-	 * 
-	 * 	<cc># A comma-delimited list of names of classes that extend from Servlet.
-	 * 	# Resource paths are pulled from @RestResource.path() annotation, or
-	 * 	# 	"/*" if annotation not specified.
-	 * 	# Example:  
-	 * 	# 	resources = com.ibm.MyServlet
-	 * 	 * 	# Default is Rest-Resources in manifest file.
-	 * 	# Either resourceMap or resources must be specified if it's not defined in 
-	 * 	# the manifest file.</cc>
-	 * 	<ck>resources</ck> =
-	 * </p>
-	 * <p>
-	 * 	In most cases, the rest resources will be specified in the manifest file since
-	 * 	it's not likely to be a configurable property:
-	 * <p>
-	 * <p class='bcode'>
-	 * 	<mk>Rest-Resources:</mk> com.ibm.juno.microservice.sample.RootResources
-	 * </p> 
-	 * 
-	 * @return The map of REST resources. 
-	 * @throws ClassNotFoundException 
-	 * @throws ParseException 
-	 */
-	@SuppressWarnings("unchecked")
-	protected Map<String,Class<? extends Servlet>> getResourceMap() throws ClassNotFoundException, ParseException {
-		ConfigFile cf = getConfig();
-		ObjectMap mf = getManifest();
-		Map<String,Class<? extends Servlet>> rm = new LinkedHashMap<String,Class<? extends Servlet>>();
-
-		ObjectMap resourceMap = cf.getObject(ObjectMap.class, "REST/resourceMap");
-		String[] resources = cf.getStringArray("REST/resources", mf.getStringArray("Rest-Resources"));
-
-		if (resourceMap != null && ! resourceMap.isEmpty()) {
-			for (Map.Entry<String,Object> e : resourceMap.entrySet()) {
-				Class<?> c = Class.forName(e.getValue().toString());
-				if (! ClassUtils.isParentClass(Servlet.class, c))
-					throw new ClassNotFoundException("Invalid class specified as resource.  Must be a Servlet.  Class='"+c.getName()+"'");
-				rm.put(e.getKey(), (Class<? extends Servlet>)c);
-			}
-		} else if (resources.length > 0) {
-			for (String resource : resources) {
-				Class<?> c = Class.forName(resource);
-				if (! ClassUtils.isParentClass(Servlet.class, c))
-					throw new ClassNotFoundException("Invalid class specified as resource.  Must be a Servlet.  Class='"+c.getName()+"'");
-				RestResource rr = c.getAnnotation(RestResource.class);
-				String path = rr == null ? "/*" : rr.path();
-				if (! path.endsWith("*"))
-					path += (path.endsWith("/") ? "*" : "/*");
-				rm.put(path, (Class<? extends Servlet>)c);
-			}
-		}
-		return rm;
-	}
-
-	/**
-	 * Called when {@link ConfigFile#save()} is called on the config file.
-	 * <p>
-	 * The default behavior is configured by the following value in the config file:
-	 * <p>
-	 * <p class='bcode'>
-	 * 	<cs>[REST]</cs>
-	 * 	
-	 * 	<cc># What to do when the config file is saved.
-	 * 	# Possible values:
-	 * 	# 	NOTHING - Don't do anything. (default)
-	 * 	#	RESTART_SERVER - Restart the Jetty server.
-	 * 	#	RESTART_SERVICE - Shutdown and exit with code '3'.</cc>
-	 * 	<ck>saveConfigAction</ck> = RESTART_SERVER
-	 * </p>
-	 */
-	@Override /* Microservice */
-	protected void onConfigSave(ConfigFile cf) {
-		try {
-			String saveConfigAction = cf.getString("REST/saveConfigAction", "NOTHING");
-			if (saveConfigAction.equals("RESTART_SERVER")) {
-				new Thread() {
-					@Override /* Thread */
-					public void run() {
-						try {
-							RestMicroservice.this.stop();
-							RestMicroservice.this.start();
-						} catch (Exception e) {
-							logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
-						}
-					}
-				}.start();
-			} else if (saveConfigAction.equals("RESTART_SERVICE")) {
-				stop();
-				System.exit(3);
-			}
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	//--------------------------------------------------------------------------------
-	// Lifecycle listener methods.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Called before {@link #createServer()} is called.
-	 * <p>
-	 * Subclasses can override this method to hook into the lifecycle of this application.
-	 */
-	protected void onCreateServer() {}
-
-	/**
-	 * Called before {@link #startServer()} is called.
-	 * <p>
-	 * Subclasses can override this method to hook into the lifecycle of this application.
-	 */
-	protected void onStartServer() {}
-
-	/**
-	 * Called after the Jetty server is started.
-	 * <p>
-	 * Subclasses can override this method to hook into the lifecycle of this application.
-	 */
-	protected void onPostStartServer() {}
-
-	/**
-	 * Called before the Jetty server is stopped.
-	 * <p>
-	 * Subclasses can override this method to hook into the lifecycle of this application.
-	 */
-	protected void onStopServer() {}
-
-	/**
-	 * Called after the Jetty server is stopped.
-	 * <p>
-	 * Subclasses can override this method to hook into the lifecycle of this application.
-	 */
-	protected void onPostStopServer() {}
-
-	//--------------------------------------------------------------------------------
-	// Other methods.
-	//--------------------------------------------------------------------------------
-
-	private static final SecurityHandler basicAuth(ConfigFile cf, ObjectMap mf) {
-
-		HashLoginService l = new HashLoginService();
-		String user = cf.getString("REST/loginUser", mf.getString("Rest-LoginUser"));
-		String pw = cf.getString("REST/loginPassword", mf.getString("Rest-LoginPassword"));
-		String realm = cf.getString("REST/authRealm", mf.getString("Rest-AuthRealm", ""));
-		String ctx = cf.getString("REST/contextPath", mf.getString("Rest-ContextPath", "/"));
-
-		l.putUser(user, Credential.getCredential(pw), new String[] { "user" });
-		l.setName(realm);
-
-		Constraint constraint = new Constraint();
-		constraint.setName(Constraint.__BASIC_AUTH);
-		constraint.setRoles(new String[] { "user" });
-		constraint.setAuthenticate(true);
-
-		ConstraintMapping cm = new ConstraintMapping();
-		cm.setConstraint(constraint);
-		cm.setPathSpec(ctx);
-
-		ConstraintSecurityHandler csh = new ConstraintSecurityHandler();
-		csh.setAuthenticator(new BasicAuthenticator());
-		csh.setRealmName("myrealm");
-		csh.addConstraintMapping(cm);
-		csh.setLoginService(l);
-
-		return csh;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/build1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/build1.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/build1.png
deleted file mode 100755
index 008c6b5..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/build1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/build2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/build2.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/build2.png
deleted file mode 100755
index 9e55346..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/build2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/helloworld1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/helloworld1.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/helloworld1.png
deleted file mode 100755
index f5f0c7c..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/helloworld1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions1.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions1.png
deleted file mode 100755
index 1234828..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions2.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions2.png
deleted file mode 100755
index 4589f19..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions3.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions3.png
deleted file mode 100755
index 21808c0..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions4.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions4.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions4.png
deleted file mode 100755
index b5e8471..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions4.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions5.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions5.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions5.png
deleted file mode 100755
index 50504de..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions5.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions6.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions6.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions6.png
deleted file mode 100755
index e730d32..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/instructions6.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/manifest1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/manifest1.png b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/manifest1.png
deleted file mode 100755
index 77604c1..0000000
Binary files a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/doc-files/manifest1.png and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/CT_BeanContext$DummyPojoFilterB.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/CT_BeanContext$DummyPojoFilterB.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/CT_BeanContext$DummyPojoFilterB.class
deleted file mode 100755
index 9c63aa9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/CT_BeanContext$DummyPojoFilterB.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanProperty.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanProperty.java
deleted file mode 100755
index 363947f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanProperty.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.jena.*;
-import com.ibm.juno.core.xml.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Used tailor how bean properties get interpreted by the framework.
- * <p>
- * 	Can be used to do the following:
- * <ul>
- * 	<li>Override the name of a property.
- * 	<li>Identify a getter or setter with a non-standard naming convention.
- * 	<li>Identify a specific subclass for a property with a general class type.
- * 	<li>Identify class types of elements in properties of type <code>Collection</code> or <code>Map</code>.
- * 	<li>Hide properties during serialization.
- * 	<li>Associate filters with bean property values, such as a filter to convert a <code>Calendar</code> field to a string.
- * 	<li>Override the list of properties during serialization on child elements of a property of type <code>Collection</code> or <code>Map</code>.
- * 	<li>Identify a property as the URL for a bean.
- * 	<li>Identify a property as the ID for a bean.
- * </ul>
- * <p>
- * 	This annotation is applied to public fields and public getter/setter methods of beans.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({FIELD,METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface BeanProperty {
-
-	/**
-	 * Identifies the name of the property.
-	 * <p>
-	 * 	Normally, this is automatically inferred from the field name or getter method name
-	 * 	of the property.  However, this property can be used to assign a different
-	 * 	property name from the automatically inferred value.
-	 * <p>
-	 * 	If the {@link BeanContextProperties#BEAN_beanFieldVisibility} setting on the bean context excludes this field (e.g. the visibility
-	 * 	is set to PUBLIC, but the field is PROTECTED), this annotation can be used to force the field to be identified as a property.
-	 */
-	String name() default "";
-
-	/**
-	 * Identifies a specialized class type for the property.
-	 * <p>
-	 * 	Normally this can be inferred through reflection of the field type or getter return type.
-	 * 	However, you'll want to specify this value if you're parsing beans where the bean property class
-	 * 	is an interface or abstract class to identify the bean type to instantiate.  Otherwise, you may
-	 * 	cause an {@link InstantiationException} when trying to set these fields.
-	 * <p>
-	 * 	This property must denote a concrete bean class with a no-arg constructor.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> MyBean {
-	 *
-	 * 		<jc>// Identify concrete map type.</jc>
-	 * 		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>)
-	 * 		<jk>public</jk> Map <jf>p1</jf>;
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	Class<?> type() default Object.class;
-
-	/**
-	 * For bean properties of maps and collections, this annotation can be used to identify
-	 * the class types of the contents of the bean property object when the generic parameter
-	 * types are interfaces or abstract classes.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> MyBean {
-	 *
-	 * 		<jc>// Identify concrete map type with String keys and Integer values.</jc>
-	 * 		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
-	 * 		<jk>public</jk> Map <jf>p1</jf>;
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	Class<?>[] params() default {};
-
-	/**
-	 * Associates an object filter with this bean property that will convert it
-	 * to a different value during serialization and parsing.
-	 * <p>
-	 * This annotation supersedes any filter associated with the bean property type
-	 * 	class itself.
-	 * <p>
-	 * Typically used for rendering {@link Date Dates} and {@link Calendar Calendars}
-	 * 	as a particular string format.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> MyClass {
-	 *
-	 * 		<jc>// During serialization, convert to ISO8601 date-time string.</jc>
-	 * 		<ja>@BeanProperty</ja>(filter=CalendarFilter.ISO8601DT.<jk>class</jk>)
-	 * 		<jk>public</jk> Calendar getTime();
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	Class<? extends PojoFilter<?,?>> filter() default PojoFilter.NULL.class;
-
-	/**
-	 * Used to limit which child properties are rendered by the serializers.
-	 * <p>
-	 * Can be used on any of the following bean property types:
-	 * <ul>
-	 * 	<li>Beans - Only render the specified properties of the bean.
-	 * 	<li>Maps - Only render the specified entries in the map.
-	 * 	<li>Bean/Map arrays - Same, but applied to each element in the array.
-	 * 	<li>Bean/Map collections - Same, but applied to each element in the collection.
-	 * </ul>
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> MyClass {
-	 *
-	 * 		<jc>// Only render 'f1' when serializing this bean property.</jc>
-	 * 		<ja>@BeanProperty</ja>(properties={<js>"f1"</js>})
-	 * 		<jk>public</jk> MyChildClass x1 = <jk>new</jk> MyChildClass();
-	 * 	}
-	 *
-	 * 	<jk>public class</jk> MyChildClass {
-	 * 		<jk>public int</jk> f1 = 1;
-	 * 		<jk>public int</jk> f2 = 2;
-	 * 	}
-	 *
-	 * 	<jc>// Renders "{x1:{f1:1}}"</jc>
-	 * 	String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jk>new</jk> MyClass());
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String[] properties() default {};
-
-	/**
-	 * Marks a bean property as a resource URI identifier for the bean.
-	 * <p>
-	 * Has the following effects on the following serializers:
-	 * <ul>
-	 * 	<li>{@link XmlSerializer} - Will be rendered as an XML attribute on the bean element, unless
-	 * 		marked with a {@link Xml#format} value of {@link XmlFormat#ELEMENT}.
-	 * 	<li>{@link RdfSerializer} - Will be rendered as the value of the <js>"rdf:about"</js> attribute
-	 * 		for the bean.
-	 * </ul>
-	 */
-	boolean beanUri() default false;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanSubType.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanSubType.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanSubType.class
deleted file mode 100755
index a3a120f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanSubType.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/annotation/BeanSubType.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanSubType.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanSubType.java
deleted file mode 100755
index 30f02b5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanSubType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.annotation;
-
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Maps a bean subclass with a string identifier.
- * <p>
- * 	Used in conjunction with {@link Bean#subTypes()} for defining mappings of bean subclasses with string identifiers.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({})
-@Retention(RUNTIME)
-@Inherited
-public @interface BeanSubType {
-
-	/**
-	 * The bean subclass.
-	 * <p>
-	 * Must be a subclass or subinterface of the parent bean.
-	 */
-	Class<?> type();
-
-	/**
-	 * A string identifier for this subtype.
-	 * <p>
-	 * This identifier is used in conjunction with the {@link Bean#subTypeProperty()} during serialization
-	 * 	to create a <code>{subType:<js>'id'</js>}</code> property on the serialized object.
-	 */
-	String id();
-}
\ 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/annotation/Consumes.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Consumes.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Consumes.class
deleted file mode 100755
index b5d8a1b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Consumes.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/annotation/Consumes.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Consumes.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Consumes.java
deleted file mode 100755
index 916ed55..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Consumes.java
+++ /dev/null
@@ -1,69 +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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.parser.*;
-
-/**
- * Annotation used on subclasses of {@link Parser} to identify the media types that it consumes.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Provides a way to define the contents of {@link Parser#getMediaTypes()} through an annotation.
- * <p>
- * 	The {@link Parser#getMediaTypes()} default implementation gathers the media types by looking
- * 		for this annotation.
- * 	It should be noted that this annotation is optional and that the {@link Parser#getMediaTypes()} method can
- * 		be overridden by subclasses to return the media types programmatically.
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p>
- * 	Standard example:
- * <p class='bcode'>
- * 	<ja>@Consumes</ja>({<js>"application/json"</js>,<js>"text/json"</js>})
- * 	<jk>public class</jk> JsonParser <jk>extends</jk> ReaderParser {...}
- * </p>
- * <p>
- * 	The media types can also be <code>media-range</code> values per
- * 		<a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1'>RFC2616/14.1</a>.
- * <p class='bcode'>
- * 	<jc>// Consumes any text</jc>
- * 	<ja>@Consumes</ja>({<js>"text\/*"</js>})
- * 	<jk>public class</jk> AnythingParser <jk>extends</jk> ReaderParser {...}
- *
- * 	<jc>// Consumes anything</jc>
- * 	<ja>@Consumes</ja>({<js>"*\/*"</js>})
- * 	<jk>public class</jk> AnythingParser <jk>extends</jk> ReaderParser {...}
- * </p>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target(TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface Consumes {
-
-	/**
-	 * The media types that the parser can handle.
-	 * <p>
-	 * 	Can contain meta-characters per the <code>media-type</code> specification of
-	 * 	<a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1'>RFC2616/14.1</a>
-	 * @return The media types that the parser can handle.
-	 */
-	String[] value() default {};
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Filter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Filter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Filter.class
deleted file mode 100755
index 817787c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Filter.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/annotation/Filter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Filter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Filter.java
deleted file mode 100755
index a0147ca..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Filter.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Annotation that can be applied to a class to associate a filter with it.
- * <p>
- * 	Typically used to associate {@link PojoFilter PojoFilters} with classes using annotations
- * 		instead of programatically through a method such as {@link Serializer#addFilters(Class...)}.
- *
- * <h6 class='topic'>Example</h6>
- * <p>
- * 	In this case, a filter is being applied to a bean that will force it to be serialized as a <code>String</code>
- * <p class='bcode'>
- * 	<jc>// Our bean class</jc>
- * 	<ja>@Filter</ja>(BFilter.<jk>class</jk>)
- * 	<jk>public class</jk> B {
- * 		<jk>public</jk> String <jf>f1</jf>;
- * 	}
- *
- * 	<jc>// Our filter to force the bean to be serialized as a String</jc>
- * 	<jk>public class</jk> BFilter <jk>extends</jk> PojoFilter&lt;B,String&gt; {
- * 		<jk>public</jk> String filter(B o) <jk>throws</jk> SerializeException {
- * 			<jk>return</jk> o.f1;
- * 		}
- * 		<jk>public</jk> B unfilter(String f, ClassMeta&lt;?&gt; hint) <jk>throws</jk> ParseException {
- * 			B b1 = <jk>new</jk> B();
- * 			b1.<jf>f1</jf> = f;
- * 			<jk>return</jk> b1;
- * 		}
- * 	}
- *
- * 	<jk>public void</jk> testFilter() <jk>throws</jk> Exception {
- * 		WriterSerializer s = JsonSerializer.<jsf>DEFAULT</jsf>;
- * 		B b = <jk>new</jk> B();
- * 		b.<jf>f1</jf> = <js>"bar"</js>;
- * 		String json = s.serialize(b);
- * 		<jsm>assertEquals</jsm>(<js>"'bar'"</js>, json);
- *
- * 		ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
- * 		b = p.parse(json, B.<jk>class</jk>);
- * 		<jsm>assertEquals</jsm>(<js>"bar"</js>, t.<jf>f1</jf>);
- * 	}
- * </p>
- * <p>
- * 	Note that using this annotation is functionally equivalent to adding filters to the serializers and parsers:
- * <p class='bcode'>
- * 	WriterSerializer s = <jk>new</jk> JsonSerializer.addFilters(BFilter.<jk>class</jk>);
- * 	ReaderParser p = <jk>new</jk> JsonParser.addFilters(BFilter.<jk>class</jk>);
- * </p>
- * <p>
- * 	It is technically possible to associate a {@link BeanFilter} with a bean class using this annotation.
- * 	However in practice, it's almost always less code to simply use the {@link Bean @Bean} annotation.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target(TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface Filter {
-
-	/**
-	 * The filter class.
-	 */
-	Class<? extends com.ibm.juno.core.filter.Filter> value() default com.ibm.juno.core.filter.Filter.NULL.class;
-}
\ 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/annotation/NameProperty.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/NameProperty.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/NameProperty.class
deleted file mode 100755
index e25af65..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/NameProperty.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/annotation/NameProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/NameProperty.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/NameProperty.java
deleted file mode 100755
index df21fc3..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/NameProperty.java
+++ /dev/null
@@ -1,31 +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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.ini.*;
-
-/**
- * Identifies a setter as a method for setting the name of a POJO as it's known by
- * its parent object.
- * <p>
- * For example, the {@link Section} class must know the name it's known by it's parent
- * {@link ConfigFileImpl} class, so parsers will call this method with the sectio name
- * using the {@link Section#setName(String)} method.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Target({METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface NameProperty {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/ParentProperty.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/ParentProperty.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/ParentProperty.class
deleted file mode 100755
index 02e8788..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/ParentProperty.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/annotation/ParentProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/ParentProperty.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/ParentProperty.java
deleted file mode 100755
index 68f6d61..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/ParentProperty.java
+++ /dev/null
@@ -1,31 +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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.ini.*;
-
-/**
- * Identifies a setter as a method for adding a parent reference to a child object.
- * <p>
- * Used by the parsers to add references to parent objects in child objects.
- * For example, the {@link Section} class cannot exist outside the scope of a parent
- * {@link ConfigFileImpl} class, so parsers will add a reference to the config file
- * using the {@link Section#setParent(ConfigFileImpl)} method.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Target({METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface ParentProperty {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Produces.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Produces.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Produces.class
deleted file mode 100755
index 0cb6bcf..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Produces.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/annotation/Produces.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Produces.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Produces.java
deleted file mode 100755
index 11aa004..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Produces.java
+++ /dev/null
@@ -1,82 +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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Annotation used on subclasses of {@link Serializer} to identify the media types that it produces.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Provides a way to define the contents of {@link Serializer#getMediaTypes()} through an annotation.
- * <p>
- * 	The {@link Serializer#getMediaTypes()} default implementation gathers the media types by looking
- * 		for this annotation.
- * 	It should be noted that this annotation is optional and that the {@link Serializer#getMediaTypes()} method can
- * 		be overridden by subclasses to return the media types programmatically.
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p>
- * 	Standard example:
- * <p class='bcode'>
- * 	<ja>@Produces</ja>({<js>"application/json"</js>,<js>"text/json"</js>})
- * 	<jk>public class</jk> JsonSerializer <jk>extends</jk> WriterSerializer {...}
- * </p>
- * <p>
- * 	The media types can also be <code>media-range</code> values per
- * 		<a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1'>RFC2616/14.1</a>.
- * 	When meta-characters are used, you should specify the {@link #contentType()} value to
- * 		indicate the real media type value that can be set on the <code>Content-Type</code> response header.
- *
- * <p class='bcode'>
- * 	<jc>// Produces any text</jc>
- * 	<ja>@Produces</ja>(value=<js>"text\/*"</js>, contentType=<js>"text/plain"</js>)
- * 	<jk>public class</jk> AnythingSerializer <jk>extends</jk> WriterSerializer {...}
- *
- * 	<jc>// Produces anything</jc>
- * 	<ja>@Produces</ja>(value=<js>"*\/*"</js>, contentType=<js>"text/plain"</js>)
- * 	<jk>public class</jk> AnythingSerializer <jk>extends</jk> WriterSerializer {...}
- * </p>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target(TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface Produces {
-
-	/**
-	 * The media types that the serializer can handle.
-	 * <p>
-	 * 	Can contain meta-characters per the <code>media-type</code> specification of
-	 * 	<a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1'>RFC2616/14.1</a>
-	 * @return The media types that the parser can handle.
-	 */
-	String[] value() default {};
-
-	/**
-	 * The content type that this serializer produces.
-	 * <p>
-	 * 	Can be used to override the <code>Content-Type</code> response type if the media types
-	 * 		are <code>media-ranges</code> with meta-characters, or the <code>Content-Type</code>
-	 * 		differs from the media type for some reason.
-	 * @return The content type that this serializer produces, or blank if no overriding value exists.
-	 */
-	String contentType() default "";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Remoteable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Remoteable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Remoteable.class
deleted file mode 100755
index aabecef..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Remoteable.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/annotation/Remoteable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Remoteable.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Remoteable.java
deleted file mode 100755
index b8bb148..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Remoteable.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * \ufffd 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Identifies services whose Java class or methods can be invoked remotely.
- */
-@Documented
-@Target({TYPE,METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface Remoteable {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/URI.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/URI.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/URI.class
deleted file mode 100755
index 5dea9ed..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/URI.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/annotation/URI.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/URI.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/URI.java
deleted file mode 100755
index 4f7a888..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/URI.java
+++ /dev/null
@@ -1,64 +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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-import java.net.*;
-
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Used to identify a class or bean property as a URI.
- * <p>
- * 	By default, instances of {@link URL} and {@link URI} are considered URIs during serialization, and are
- * 		handled differently depending on the serializer (e.g. <code>HtmlSerializer</code> creates a hyperlink,
- * 		<code>RdfXmlSerializer</code> creates an <code>rdf:resource</code> object, etc...).
- * <p>
- * 	This annotation allows you to identify other classes that return URIs via <code>toString()</code> as URI objects.
- * <p>
- * 	Relative URIs are automatically prepended with {@link SerializerProperties#SERIALIZER_absolutePathUriBase} and {@link SerializerProperties#SERIALIZER_relativeUriBase}
- * 		during serialization just like relative <code>URIs</code>.
- * <p>
- * 	This annotation can be applied to classes, interfaces, or bean property methods for fields.
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- *
- * 	<jc>// Applied to a class whose toString() method returns a URI.</jc>
- * 	<ja>@URI</ja>
- * 	<jk>public class</jk> MyURI {
- * 		<ja>@Override</ja>
- * 		<jk>public</jk> String toString() {
- * 			<jk>return</jk> <js>"http://localhost:9080/foo/bar"</js>;
- * 		}
- * 	}
- *
- * 	<jc>// Applied to bean properties</jc>
- * 	<jk>public class</jk> MyBean {
- *
- * 		<ja>@URI</ja>
- * 		<jk>public</jk> String <jf>beanUri</jf>;
- *
- * 		<ja>@URI</ja>
- * 		<jk>public</jk> String getParentUri() {
- * 			...
- * 		}
- * 	}
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({TYPE,FIELD,METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface URI {}
\ 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/annotation/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/package.html
deleted file mode 100755
index e876381..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/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>General bean annotations</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/csv/CsvSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/CsvSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/CsvSerializer.class
deleted file mode 100755
index d9caecd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/CsvSerializer.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/csv/CsvSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/CsvSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/CsvSerializer.java
deleted file mode 100755
index f7c3e30..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/CsvSerializer.java
+++ /dev/null
@@ -1,90 +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.csv;
-
-import java.io.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * TODO - Work in progress.  CSV serializer.
- */
-@Produces("text/csv")
-@SuppressWarnings({"unchecked","rawtypes"})
-public final class CsvSerializer extends WriterSerializer {
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		BeanContext bc = ctx.getBeanContext();
-		ClassMeta cm = bc.getClassMetaForObject(o);
-		Collection l = null;
-		if (cm.isArray()) {
-			l = Arrays.asList((Object[])o);
-		} else
-			l = (Collection)o;
-		if (l.size() > 0) {
-			ClassMeta entryType = bc.getClassMetaForObject(l.iterator().next());
-			if (entryType.isBean()) {
-				BeanMeta<?> bm = entryType.getBeanMeta();
-				int i = 0;
-				for (BeanPropertyMeta pm : bm.getPropertyMetas()) {
-					if (i++ > 0)
-						out.append(",");
-					append(out, pm.getName());
-				}
-				out.append("\n");
-				for (Object o2 : l) {
-					i = 0;
-					BeanMap bean = bc.forBean(o2);
-					for (BeanPropertyMeta pm : bm.getPropertyMetas()) {
-						if (i++ > 0)
-							out.append(",");
-						append(out, pm.get(bean));
-					}
-					out.append("\n");
-				}
-			}
-
-		}
-	}
-
-	private void append(Writer w, Object o) throws IOException {
-		if (o == null)
-			w.append("null");
-		else {
-			String s = o.toString();
-			boolean mustQuote = false;
-			for (int i = 0; i < s.length() && ! mustQuote; i++) {
-				char c = s.charAt(i);
-				if (Character.isWhitespace(c) || c == ',')
-					mustQuote = true;
-			}
-			if (mustQuote)
-				w.append('"').append(s).append('"');
-			else
-				w.append(s);
-		}
-	}
-
-	@Override /* Serializer */
-	public CsvSerializer clone() {
-		try {
-			return (CsvSerializer)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/csv/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/package.html
deleted file mode 100755
index 9089ea5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/csv/package.html
+++ /dev/null
@@ -1,55 +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>CSV serialization and parsing support</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>
-
-This code is currently work-in-progress.
-
-</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/doc-files/AddressBook.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/doc-files/AddressBook.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/doc-files/AddressBook.html
deleted file mode 100755
index 2f83bd7..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/doc-files/AddressBook.html
+++ /dev/null
@@ -1,106 +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">@IMPORT url("../../../../../../javadoc.css");</style>
-</head>
-<body style='margin:0 20'>
-	<p></p>
-	<!-- ======================================================================================================== -->
-	<a id="AddressBookSampleSource"></a><h2 class='topic'>AddressBook sample source</h2>
-	<p>
-		Sample code use in various examples throughout the Javadocs.  Represents a simple POJO model consisting
-		of a collection (<code>LinkedList</code>), beans (<code>Address</code>, <code>Person</code>), and a type 4a filtered type (<code>Calendar</code>).
-	</p>
-	<p>
-		Public fields are used for bean properties in-leu of getters and setters to reduce the size of the example.  
-		Bean properties defined using getters and setters would work identically.
-	</p>
-	<a id="AddressBook"></a>
-	<h6 class='figure'>AddressBook.java</h6>
-	<p class='bcode'>
-	<jc>// A collection of people</jc>
-	<jk>public class</jk> AddressBook <jk>extends</jk> LinkedList&lt;Person&gt; {
-		
-		<jc>// Extra method for adding a person to this address book.
-		// Used in PojoIntrospector usage examples.</jc>
-		<jk>public void</jk> addPerson(String name, <jk>String</jk> birthDate, List&lt;Address&gt; addresses) {
-			add(<jk>new</jk> Person(name, birthdate, addresses));
-		}  
-	}
-	</p>
-	<a id="Address"></a>
-	<h6 class='figure'>Address.java</h6>
-	<p class='bcode'>
-	<jk>public class</jk> Address {
-
-		<jc>// Bean properties</jc>
-		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>, <jf>state</jf>;
-		<jk>public int</jk> <jf>zip</jf>;
-		<jk>public boolean</jk> <jf>isCurrent</jf>;
-		
-		<jc>// Bean constructor</jc>
-		<jk>public</jk> Address() {}
-		
-		<jc>// Other constructor</jc>
-		<jk>public</jk> Address(String street, String city, String state, <jk>int</jk> zip, <jk>boolean</jk> isCurrent) {
-			<jk>this</jk>.<jf>street</jf> = street;
-			<jk>this</jk>.<jf>city</jf> = city;
-			<jk>this</jk>.<jf>state</jf> = state;
-			<jk>this</jk>.<jf>zip</jf> = zip;
-			<jk>this</jk>.<jf>isCurrent</jf> = isCurrent;
-		}
-	}
-	</p>
-	<a id="Person"></a>
-	<h6 class='figure'>Person.java</h6>
-	<p class='bcode'>
-	<jk>public class</jk> Person {
-
-		<jc>// Bean properties</jc>
-		<jk>public</jk> String <jf>name</jf>;
-		<jk>public int</jk> <jf>age</jf>;
-		<jk>public</jk> Calendar <jf>birthDate</jf>;
-
-		<jk>public</jk> LinkedList&lt;Address&gt; <jf>addresses</jf> = <jk>new</jk> LinkedList&lt;Address&gt;();
-	
-		<jc>// Bean constructor</jc>
-		<jk>public</jk> Person() {}
-	
-		<jc>// Other constructor</jc>
-		<jk>public</jk> Person(String name, String birthDate, Address...addresses) {
-			<jk>this</jk>.<jf>name</jf> = name;
-			<jk>this</jk>.<jf>birthDate</jf> = <jsm>getBirthDate</jsm>(birthDate);
-			<jk>this</jk>.<jf>age</jf> = <jsm>calcAge</jsm>(birthDate);
-			<jk>this</jk>.<jf>addresses</jf>.addAll(Arrays.<jsm>asList</jsm>(addresses));
-		}
-	
-		<jc>// Other method</jc>
-		<jc>// Calculates a persons age based on the birthdate</jc>
-		<jk>public static int</jk> calcAge(String birthDate) {
-			<jk>return new</jk> GregorianCalendar().get(Calendar.<jsf>YEAR</jsf>) - getBirthDate(birthDate).get(Calendar.<jsf>YEAR</jsf>);
-		}
-	
-		<jc>// Utility method</jc>
-		<jc>// Converts a birthdate string to a Calendar</jc>
-		<jk>private static</jk> Calendar getBirthDate(String birthDate) {
-			<jk>try</jk> {
-				Calendar c = <jk>new</jk> GregorianCalendar();
-				c.setTime(DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
-				<jk>return</jk> c;
-			} <jk>catch</jk> (ParseException e) {
-				<jk>throw new</jk> RuntimeException(e);
-			}
-		}
-	}
-	</p>
-
-</body>
\ 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/dto/Link.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/Link.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/Link.class
deleted file mode 100755
index ca9f6c5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/Link.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/dto/Link.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/Link.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/Link.java
deleted file mode 100755
index ca0fd1f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/Link.java
+++ /dev/null
@@ -1,133 +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.dto;
-
-import java.text.*;
-
-import com.ibm.juno.core.html.*;
-import com.ibm.juno.core.urlencoding.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Simple bean that implements a hyperlink for the HTML serializer.
- * <p>
- * 	The name and url properties correspond to the following parts of a hyperlink in an HTML document...
- * <p class='bcode'>
- * 	<xt>&lt;a</xt> <xa>href</xa>=<xs>'href'</xs><xt>&gt;</xt>name<xt>&lt;/a&gt;</xt>
- * <p>
- * 	When encountered by the {@link HtmlSerializer} class, this object gets converted to a hyperlink.<br>
- * 	All other serializers simply convert it to a simple bean.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@HtmlLink(nameProperty = "name", hrefProperty = "href")
-public class Link implements Comparable<Link> {
-	private String name, href;
-
-	/** No-arg constructor. */
-	public Link() {}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param name Corresponds to the text inside of the <xt>&lt;A&gt;</xt> element.
-	 * @param href Corresponds to the value of the <xa>href</xa> attribute of the <xt>&lt;A&gt;</xt> element.
-	 * @param hrefArgs Optional arguments for {@link MessageFormat} style arguments in the href.
-	 */
-	public Link(String name, String href, Object...hrefArgs) {
-		setName(name);
-		setHref(href, hrefArgs);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Bean property getter:  <property>name</property>.
-	 * Corresponds to the text inside of the <xt>&lt;A&gt;</xt> element.
-	 *
-	 * @return The value of the <property>name</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Bean property setter:  <property>name</property>.
-	 *
-	 * @param name The new value for the <property>name</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Link setName(String name) {
-		this.name = name;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>href</property>.
-	 * Corresponds to the value of the <xa>href</xa> attribute of the <xt>&lt;A&gt;</xt> element.
-	 *
-	 * @return The value of the <property>href</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public String getHref() {
-		return href;
-	}
-
-	/**
-	 * Bean property setter:  <property>href</property>.
-	 *
-	 * @param href The new value for the <property>href</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Link setHref(String href) {
-		setHref(href, new Object[0]);
-		return this;
-	}
-
-	/**
-	 * Bean property setter:  <property>href</property>.
-	 * Same as {@link #setHref(String)} except allows for {@link MessageFormat} style arguments.
-	 *
-	 * @param href The new href.
-	 * @param args Optional message format arguments.
-	 * @return This object (for method chaining).
-	 */
-	public Link setHref(String href, Object...args) {
-		for (int i = 0; i < args.length; i++)
-			args[i] = UrlEncodingSerializer.DEFAULT.serializeUrlPart(args[i]);
-		this.href = (args.length > 0 ? MessageFormat.format(href, args) : href);
-		return this;
-	}
-
-	/**
-	 * Returns the name so that the {@link PojoQuery} class can search against it.
-	 */
-	@Override /* Object */
-	public String toString() {
-		return name;
-	}
-
-	@Override /* Comparable */
-	public int compareTo(Link o) {
-		return name.compareTo(o.name);
-	}
-
-	@Override /* Object */
-	public boolean equals(Object o) {
-		if (! (o instanceof Link))
-			return false;
-		return (compareTo((Link)o) == 0);
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		return super.hashCode();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/ResultSetList.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/ResultSetList.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/ResultSetList.class
deleted file mode 100755
index d35c250..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/ResultSetList.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/dto/ResultSetList.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/ResultSetList.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/ResultSetList.java
deleted file mode 100755
index e381bc8..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/ResultSetList.java
+++ /dev/null
@@ -1,107 +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.dto;
-
-import java.sql.*;
-import java.util.*;
-
-import com.ibm.juno.core.utils.*;
-
-/**
- * Transforms an SQL {@link ResultSet ResultSet} into a list of maps.
- * <p>
- * 	Loads the entire result set into an in-memory data structure, and then closes the result set object.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ResultSetList extends LinkedList<Map<String,Object>> {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param rs The result set to load into this DTO.
-	 * @param pos The start position (zero-indexed).
-	 * @param limit The maximum number of rows to retrieve.
-	 * @param includeRowNums Make the first column be the row number.
-	 * @throws SQLException Database error.
-	 */
-	public ResultSetList(ResultSet rs, int pos, int limit, boolean includeRowNums) throws SQLException {
-		try {
-			int rowNum = pos;
-
-			// Get the column names.
-			ResultSetMetaData rsmd = rs.getMetaData();
-			int offset = (includeRowNums ? 1 : 0);
-			int cc = rsmd.getColumnCount();
-			String[] columns = new String[cc + offset];
-			if (includeRowNums)
-				columns[0] = "ROW";
-			int[] colTypes = new int[cc];
-
-			for (int i = 0; i < cc; i++) {
-				columns[i+offset] = rsmd.getColumnName(i+1);
-				colTypes[i] = rsmd.getColumnType(i+1);
-			}
-
-			while (--pos > 0 && rs.next()) {}
-
-			// Get the rows.
-			while (limit-- > 0 && rs.next()) {
-				Object[] row = new Object[cc + offset];
-				if (includeRowNums)
-					row[0] = rowNum++;
-				for (int i = 0; i < cc; i++) {
-					Object o = readEntry(rs, i+1, colTypes[i]);
-					row[i+offset] = o;
-				}
-				add(new SimpleMap(columns, row));
-			}
-		} finally {
-			try {
-				rs.close();
-			} catch (Exception e) {}
-		}
-	}
-
-	/**
-	 * Reads the specified column from the current row in the result set.
-	 * Subclasses can override this method to handle specific data types in special ways.
-	 *
-	 * @param rs The result set to read from.
-	 * @param col The column number (indexed by 1).
-	 * @param dataType The {@link Types type} of the entry.
-	 * @return The entry as an Object.
-	 */
-	protected Object readEntry(ResultSet rs, int col, int dataType) {
-		try {
-			switch (dataType) {
-				case Types.BLOB:
-					Blob b = rs.getBlob(col);
-					return "blob["+b.length()+"]";
-				case Types.CLOB:
-					Clob c = rs.getClob(col);
-					return "clob["+c.length()+"]";
-				case Types.LONGVARBINARY:
-					return "longvarbinary["+IOUtils.count(rs.getBinaryStream(col))+"]";
-				case Types.LONGVARCHAR:
-					return "longvarchar["+IOUtils.count(rs.getAsciiStream(col))+"]";
-				case Types.LONGNVARCHAR:
-					return "longnvarchar["+IOUtils.count(rs.getCharacterStream(col))+"]";
-				case Types.TIMESTAMP:
-					return rs.getTimestamp(col);  // Oracle returns com.oracle.TIMESTAMP objects from getObject() which isn't a Timestamp.
-				default:
-					return rs.getObject(col);
-			}
-		} catch (Exception e) {
-			return e.getLocalizedMessage();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Category.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Category.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Category.class
deleted file mode 100755
index 2129715..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Category.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/dto/atom/Category.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Category.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Category.java
deleted file mode 100755
index c384b4e..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Category.java
+++ /dev/null
@@ -1,137 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomCategory</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomCategory =
- * 		element atom:category {
- * 			atomCommonAttributes,
- * 			attribute term { text },
- * 			attribute scheme { atomUri }?,
- * 			attribute label { text }?,
- * 			undefinedContent
- * 		}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="category")
-public class Category extends Common {
-
-	private String term;
-	private URI scheme;
-	private String label;
-
-	/**
-	 * Normal constructor.
-	 * @param term The category term.
-	 */
-	public Category(String term) {
-		this.term = term;
-	}
-
-	/** Bean constructor. */
-	public Category() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * @return The category term.
-	 */
-	@Xml(format=ATTR)
-	public String getTerm() {
-		return term;
-	}
-
-	/**
-	 * Sets the category term.
-	 *
-	 * @param term The category term.
-	 * @return This object (for method chaining).
-	 */
-	public Category setTerm(String term) {
-		this.term = term;
-		return this;
-	}
-
-	/**
-	 * Returns the category scheme.
-	 *
-	 * @return The category scheme.
-	 */
-	@Xml(format=ATTR)
-	public URI getScheme() {
-		return scheme;
-	}
-
-	/**
-	 * Sets the category scheme.
-	 *
-	 * @param scheme The category scheme.
-	 * @return This object (for method chaining).
-	 */
-	public Category setScheme(URI scheme) {
-		this.scheme = scheme;
-		return this;
-	}
-
-	/**
-	 * Returns the category label.
-	 *
-	 * @return The category label.
-	 */
-	@Xml(format=ATTR)
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Sets the category label.
-	 *
-	 * @param label The category label.
-	 * @return This object (for method chaining).
-	 */
-	public Category setLabel(String label) {
-		this.label = label;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Common */
-	public Category setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Category setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Common.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Common.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Common.class
deleted file mode 100755
index 4d02fe9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Common.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/dto/atom/Common.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Common.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Common.java
deleted file mode 100755
index a1b19f9..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Common.java
+++ /dev/null
@@ -1,84 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomCommonAttributes</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomCommonAttributes =
- * 		attribute xml:base { atomUri }?,
- * 		attribute xml:lang { atomLanguageTag }?,
- * 		undefinedAttribute*
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class Common {
-
-	private URI base;
-	private String lang;
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the uri base of this object.
-	 *
-	 * @return The URI base of this object.
-	 */
-	@Xml(prefix="xml", format=ATTR)
-	public URI getBase() {
-		return base;
-	}
-
-	/**
-	 * Sets the URI base of this object.
-	 *
-	 * @param base The URI base of this object.
-	 * @return This object (for method chaining).
-	 */
-	public Common setBase(URI base) {
-		this.base = base;
-		return this;
-	}
-
-	/**
-	 * Returns the language of this object.
-	 *
-	 * @return The language of this object.
-	 */
-	@Xml(prefix="xml", format=ATTR)
-	public String getLang() {
-		return lang;
-	}
-
-	/**
-	 * Sets the language of this object.
-	 *
-	 * @param lang The language of this object.
-	 * @return This object (for method chaining).
-	 */
-	public Common setLang(String lang) {
-		this.lang = lang;
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/CommonEntry.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/CommonEntry.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/CommonEntry.class
deleted file mode 100755
index 8b8cf45..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/CommonEntry.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/dto/atom/CommonEntry.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/CommonEntry.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/CommonEntry.java
deleted file mode 100755
index 510cbee..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/CommonEntry.java
+++ /dev/null
@@ -1,276 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filters.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Parent class of {@link Entry}, {@link Feed}, and {@link Source}
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("hiding")
-public class CommonEntry extends Common {
-
-	private List<Person> authors;
-	private List<Category> categories;
-	private List<Person> contributors;
-	private Id id;
-	private List<Link> links;
-	private Text rights;
-	private Text title;
-	private Calendar updated;
-
-
-	/**
-	 * Normal constructor.
-	 * @param id The ID of this object.
-	 * @param title The title of this object.
-	 * @param updated The updated timestamp of this object.
-	 */
-	public CommonEntry(Id id, Text title, Calendar updated) {
-		this.id = id;
-		this.title = title;
-		this.updated = updated;
-	}
-
-	/** Bean constructor. */
-	public CommonEntry() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the list of authors for this object.
-	 *
-	 * @return The list of authors for this object.
-	 */
-	@Xml(format=COLLAPSED, childName="author")
-	public List<Person> getAuthors() {
-		return authors;
-	}
-
-	/**
-	 * Sets the list of authors for this object.
-	 *
-	 * @param authors The list of authors for this object.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry setAuthors(List<Person> authors) {
-		this.authors = authors;
-		return this;
-	}
-
-	/**
-	 * Adds one or more authors to the list of authors of this object.
-	 *
-	 * @param authors The author to add to the list.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry addAuthors(Person...authors) {
-		if (this.authors == null)
-			this.authors = new LinkedList<Person>();
-		this.authors.addAll(Arrays.asList(authors));
-		return this;
-	}
-
-	/**
-	 * Returns the list of categories of this object.
-	 *
-	 * @return The list of categories of this object.
-	 */
-	@Xml(format=COLLAPSED, childName="category")
-	public List<Category> getCatetories() {
-		return categories;
-	}
-
-	/**
-	 * Sets the list of categories of this object.
-	 *
-	 * @param categories The list of categories of this object.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry setCategories(List<Category> categories) {
-		this.categories = categories;
-		return this;
-	}
-
-	/**
-	 * Adds one or more categories to the list of categories of this object.
-	 *
-	 * @param categories The categories to add to the list.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry addCategories(Category...categories) {
-		if (this.categories == null)
-			this.categories = new LinkedList<Category>();
-		this.categories.addAll(Arrays.asList(categories));
-		return this;
-	}
-
-	/**
-	 * Returns the list of contributors of this object.
-	 *
-	 * @return The list of contributors of this object.
-	 */
-	@Xml(format=COLLAPSED, childName="contributor")
-	public List<Person> getContributors() {
-		return contributors;
-	}
-
-	/**
-	 * Sets the list of contributors of this object.
-	 *
-	 * @param contributors The list of contributors of this object.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry setContributors(List<Person> contributors) {
-		this.contributors = contributors;
-		return this;
-	}
-
-	/**
-	 * Adds one or more contributors to the list of contributors of this object.
-	 *
-	 * @param contributors The contributor to add to the list.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry addContributors(Person...contributors) {
-		if (this.contributors == null)
-			this.contributors = new LinkedList<Person>();
-		this.contributors.addAll(Arrays.asList(contributors));
-		return this;
-	}
-
-	/**
-	 * Returns the ID of this object.
-	 *
-	 * @return The ID of this object.
-	 */
-	public Id getId() {
-		return id;
-	}
-
-	/**
-	 * Sets the ID of this object.
-	 *
-	 * @param id The ID of this object.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry setId(Id id) {
-		this.id = id;
-		return this;
-	}
-
-	/**
-	 * Returns the list of links of this object.
-	 *
-	 * @return The list of links of this object.
-	 */
-	@Xml(format=COLLAPSED)
-	public List<Link> getLinks() {
-		return links;
-	}
-
-	/**
-	 * Sets the list of links of this object.
-	 *
-	 * @param links The list of links of this object.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry setLinks(List<Link> links) {
-		this.links = links;
-		return this;
-	}
-
-	/**
-	 * Adds one or more links to the list of links of this object.
-	 *
-	 * @param links The links to add to the list.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry addLinks(Link...links) {
-		if (this.links == null)
-			this.links = new LinkedList<Link>();
-		this.links.addAll(Arrays.asList(links));
-		return this;
-	}
-
-	/**
-	 * Returns the rights statement of this object.
-	 *
-	 * @return The rights statement of this object.
-	 */
-	public Text getRights() {
-		return rights;
-	}
-
-	/**
-	 * Sets the rights statement of this object.
-	 *
-	 * @param rights The rights statement of this object.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry setRights(Text rights) {
-		this.rights = rights;
-		return this;
-	}
-
-	/**
-	 * Returns the title of this object.
-	 *
-	 * @return The title of this object.
-	 */
-	public Text getTitle() {
-		return title;
-	}
-
-	/**
-	 * Sets the title of this object.
-	 *
-	 * @param title The title of this object.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry setTitle(Text title) {
-		this.title = title;
-		return this;
-	}
-
-	/**
-	 * Returns the update timestamp of this object.
-	 *
-	 * @return The update timestamp of this object.
-	 */
-	@BeanProperty(filter=CalendarFilter.ISO8601DT.class)
-	public Calendar getUpdated() {
-		return updated;
-	}
-
-	/**
-	 * Sets the update timestamp of this object.
-	 *
-	 * @param updated The update timestamp of this object.
-	 * @return This object (for method chaining).
-	 */
-	public CommonEntry setUpdated(Calendar updated) {
-		this.updated = updated;
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Content.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Content.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Content.class
deleted file mode 100755
index 8d5ce17..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Content.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/dto/atom/Content.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Content.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Content.java
deleted file mode 100755
index e1e4cca..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Content.java
+++ /dev/null
@@ -1,144 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomContent</code> construct in the RFC4287 specification.
- * <p>
- *
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomContent = atomInlineTextContent
- * 		| atomInlineXHTMLContent
- * 		| atomInlineOtherContent
- * 		| atomOutOfLineContent
- *
- * 	atomInlineTextContent =
- * 		element atom:content {
- * 			atomCommonAttributes,
- * 			attribute type { "text" | "html" }?,
- * 			(text)*
- * 		}
- *
- * 	atomInlineXHTMLContent =
- * 		element atom:content {
- * 			atomCommonAttributes,
- * 			attribute type { "xhtml" },
- * 			xhtmlDiv
- * 		}
- *
- * 	atomInlineOtherContent =
- * 		element atom:content {
- * 			atomCommonAttributes,
- * 			attribute type { atomMediaType }?,
- * 			(text|anyElement)*
- * 	}
- *
- * 	atomOutOfLineContent =
- * 		element atom:content {
- * 			atomCommonAttributes,
- * 			attribute type { atomMediaType }?,
- * 			attribute src { atomUri },
- * 			empty
- * 	}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class Content extends Text {
-
-	private URI src;
-
-
-	/**
-	 * Normal content.
-	 *
-	 * @param type The content type of this content.
-	 * @param content The content of this content.
-	 */
-	public Content(String type, String content) {
-		super(type, content);
-	}
-
-	/**
-	 * Normal content.
-	 *
-	 * @param content The content of this content.
-	 */
-	public Content(String content) {
-		super(content);
-	}
-
-	/** Bean constructor. */
-	public Content() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the source URI.
-	 *
-	 * @return the source URI.
-	 */
-	@Xml(format=ATTR)
-	public URI getSrc() {
-		return src;
-	}
-
-	/**
-	 * Sets the source URI.
-	 *
-	 * @param src The source URI.
-	 * @return This object (for method chaining).
-	 */
-	public Content setSrc(URI src) {
-		this.src = src;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Text */
-	public Content setText(String text) {
-		super.setText(text);
-		return this;
-	}
-
-	@Override /* Text */
-	public Content setType(String type) {
-		super.setType(type);
-		return this;
-	}
-
-	@Override /* Common */
-	public Content setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Content setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}
\ 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/dto/atom/Entry.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Entry.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Entry.class
deleted file mode 100755
index e9a66fe..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Entry.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/dto/atom/Entry.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Entry.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Entry.java
deleted file mode 100755
index 1a1cfcb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Entry.java
+++ /dev/null
@@ -1,243 +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.dto.atom;
-
-import java.net.URI;
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filters.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomEntry</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomEntry =
- * 		element atom:entry {
- * 			atomCommonAttributes,
- * 			(atomAuthor*
- * 			& atomCategory*
- * 			& atomContent?
- * 			& atomContributor*
- * 			& atomId
- * 			& atomLink*
- * 			& atomPublished?
- * 			& atomRights?
- * 			& atomSource?
- * 			& atomSummary?
- * 			& atomTitle
- * 			& atomUpdated
- * 			& extensionElement*)
- * 		}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="entry")
-public class Entry extends CommonEntry {
-
-	private Content content;
-	private Calendar published;
-	private Source source;
-	private Text summary;
-
-	/**
-	 * Normal constructor.
-	 *
-	 * @param id The ID of this entry.
-	 * @param title The title of this entry.
-	 * @param updated The updated timestamp of this entry.
-	 */
-	public Entry(Id id, Text title, Calendar updated) {
-		super(id, title, updated);
-	}
-
-	/** Bean constructor. */
-	public Entry() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the content of this entry.
-	 *
-	 * @return The content of this entry.
-	 */
-	public Content getContent() {
-		return content;
-	}
-
-	/**
-	 * Sets the content of this entry.
-	 *
-	 * @param content The content of this entry.
-	 * @return This object (for method chaining).
-	 */
-	public Entry setContent(Content content) {
-		this.content = content;
-		return this;
-	}
-
-	/**
-	 * Returns the publish timestamp of this entry.
-	 *
-	 * @return The publish timestamp of this entry.
-	 */
- 	@BeanProperty(filter=CalendarFilter.ISO8601DT.class)
-	public Calendar getPublished() {
- 		return published;
- 	}
-
-	/**
-	 * Sets the publish timestamp of this entry.
-	 *
-	 * @param published The publish timestamp of this entry.
-	 * @return This object (for method chaining).
-	 */
- 	public Entry setPublished(Calendar published) {
- 		this.published = published;
- 		return this;
- 	}
-
-	/**
-	 * Returns the source of this entry.
-	 *
-	 * @return The source of this entry.
-	 */
-	public Source getSource() {
-		return source;
-	}
-
-	/**
-	 * Sets the source of this entry.
-	 *
-	 * @param source The source of this entry.
-	 * @return This object (for method chaining).
-	 */
-	public Entry setSource(Source source) {
-		this.source = source;
-		return this;
-	}
-
-	/**
-	 * Returns the summary of this entry.
-	 *
-	 * @return The summary of this entry.
-	 */
-	public Text getSummary() {
-		return summary;
-	}
-
-	/**
-	 * Sets the summary of this entry.
-	 *
-	 * @param summary The summary of this entry.
-	 * @return This object (for method chaining).
-	 */
-	public Entry setSummary(Text summary) {
-		this.summary = summary;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* CommonEntry */
-	public Entry setAuthors(List<Person> authors) {
-		super.setAuthors(authors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry addAuthors(Person...authors) {
-		super.addAuthors(authors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry setCategories(List<Category> categories) {
-		super.setCategories(categories);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry addCategories(Category...categories) {
-		super.addCategories(categories);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry setContributors(List<Person> contributors) {
-		super.setContributors(contributors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry addContributors(Person...contributors) {
-		super.addContributors(contributors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry setId(Id id) {
-		super.setId(id);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry setLinks(List<Link> links) {
-		super.setLinks(links);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry addLinks(Link...links) {
-		super.addLinks(links);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry setRights(Text rights) {
-		super.setRights(rights);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry setTitle(Text title) {
-		super.setTitle(title);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Entry setUpdated(Calendar updated) {
-		super.setUpdated(updated);
-		return this;
-	}
-
-	@Override /* Common */
-	public Entry setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Entry setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}
\ 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/dto/atom/Feed.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Feed.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Feed.class
deleted file mode 100755
index 9484bd7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Feed.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser.java
deleted file mode 100755
index cf96164..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParser.java
+++ /dev/null
@@ -1,743 +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.html;
-
-import static com.ibm.juno.core.html.HtmlParser.Tag.*;
-import static com.ibm.juno.core.utils.StringUtils.*;
-import static javax.xml.stream.XMLStreamConstants.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import javax.xml.namespace.*;
-import javax.xml.stream.*;
-import javax.xml.stream.events.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Parses text generated by the {@link HtmlSerializer} class back into a POJO model.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Content-Type</code> types: <code>text/html</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	See the {@link HtmlSerializer} class for a description of the HTML generated.
- * <p>
- * 	This class is used primarily for automated testing of the {@link HtmlSerializer} class.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link ParserProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({ "rawtypes", "unchecked" })
-@Consumes({"text/html","text/html+stripped"})
-public final class HtmlParser extends ReaderParser {
-
-	/** Default parser, all default settings.*/
-	public static final HtmlParser DEFAULT = new HtmlParser().lock();
-
-	/** HTML specific properties currently defined on this class */
-	protected transient HtmlParserProperties hpp = new HtmlParserProperties();
-
-	/*
-	 * Reads anything starting at the current event.
-	 * <p>
-	 * 	Precondition:  Must be pointing at START_ELEMENT or CHARACTERS event.
-	 * 	Postcondition:  Pointing at next event to be processed.
-	 */
-	private <T> T parseAnything(HtmlParserContext ctx, ClassMeta<T> nt, XMLEventReader r, Object outer, Object name) throws ParseException, IOException {
-
-		try {
-			BeanContext bc = ctx.getBeanContext();
-			if (nt == null)
-				nt = (ClassMeta<T>)object();
-			PojoFilter<T,Object> filter = (PojoFilter<T,Object>)nt.getPojoFilter();
-			ClassMeta<?> ft = nt.getFilteredClassMeta();
-
-			Object o = null;
-
-			XMLEvent event = r.nextEvent();
-			while (! (event.isStartElement() || (event.isCharacters() && ! event.asCharacters().isWhiteSpace()) || event.isEndDocument()))
-				event = r.nextEvent();
-
-			if (event.isEndDocument())
-				throw new XMLStreamException("Unexpected end of stream in parseAnything for type '"+nt+"'", event.getLocation());
-
-			if (event.isCharacters()) {
-				String text = parseCharacters(event, r);
-				if (ft.isObject())
-					o = text;
-				else if (ft.isCharSequence())
-					o = text;
-				else if (ft.isNumber())
-					o = parseNumber(text, (Class<? extends Number>)nt.getInnerClass());
-				else if (ft.isChar())
-					o = text.charAt(0);
-				else if (ft.isBoolean())
-					o = Boolean.parseBoolean(text);
-				else if (ft.canCreateNewInstanceFromString(outer))
-					o = ft.newInstanceFromString(outer, text);
-				else
-					throw new XMLStreamException("Unexpected characters '"+event.asCharacters().getData()+"' for type '"+nt+"'", event.getLocation());
-
-			} else {
-				Tag tag = Tag.forString(event.asStartElement().getName().getLocalPart(), false);
-				String tableType = "object";
-				String text = "";
-
-				if (tag.isOneOf(STRING, NUMBER, BOOLEAN, BR, FF, BS, TB))
-					text = parseCharacters(event, r);
-
-				if (tag == TABLE) {
-					Map<String,String> attrs = getAttributes(event);
-					tableType = attrs.get("type");
-					String c = attrs.get("_class");
-					if (c != null)
-						ft = nt = (ClassMeta<T>)bc.getClassMetaFromString(c);
-				}
-
-				boolean isValid = true;
-
-				if (tag == NULL)
-					nextTag(r, xNULL);
-				else if (tag == A)
-					o = parseAnchor(ctx, event, r, nt);
-				else if (ft.isObject()) {
-					if (tag == STRING)
-						o = text;
-					else if (tag == NUMBER)
-						o = parseNumber(text, null);
-					else if (tag == BOOLEAN)
-						o = Boolean.parseBoolean(text);
-					else if (tag == TABLE) {
-						if (tableType.equals("object")) {
-							o = parseIntoMap(ctx, r, (Map)new ObjectMap(bc), ft.getKeyType(), ft.getValueType());
-						} else if (tableType.equals("array")) {
-							o = parseTableIntoCollection(ctx, r, (Collection)new ObjectList(bc), ft.getElementType());
-						} else
-							isValid = false;
-					}
-					else if (tag == UL)
-						o = parseIntoCollection(ctx, r, new ObjectList(bc), null);
-				}
-				else if (tag == STRING && ft.isCharSequence())
-					o = text;
-				else if (tag == STRING && ft.isChar())
-					o = text.charAt(0);
-				else if (tag == STRING && ft.canCreateNewInstanceFromString(outer))
-					o = ft.newInstanceFromString(outer, text);
-				else if (tag == NUMBER && ft.isNumber())
-					o = parseNumber(text, (Class<? extends Number>)ft.getInnerClass());
-				else if (tag == BOOLEAN && ft.isBoolean())
-					o = Boolean.parseBoolean(text);
-				else if (tag == TABLE) {
-					if (tableType.equals("object")) {
-						if (ft.isMap()) {
-							o = parseIntoMap(ctx, r, (Map)(ft.canCreateNewInstance(outer) ? ft.newInstance(outer) : new ObjectMap(bc)), ft.getKeyType(), ft.getValueType());
-						} 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());
-							o = parseIntoBean(ctx, r, m).getBean();
-						}
-						else
-							isValid = false;
-					} else if (tableType.equals("array")) {
-						if (ft.isCollection())
-							o = parseTableIntoCollection(ctx, r, (Collection)(ft.canCreateNewInstance(outer) ? ft.newInstance(outer) : new ObjectList(bc)), ft.getElementType());
-						else if (ft.isArray())
-							o = bc.toArray(ft, parseTableIntoCollection(ctx, r, new ArrayList(), ft.getElementType()));
-						else
-							isValid = false;
-					} else
-						isValid = false;
-				} else if (tag == UL) {
-					if (ft.isCollection())
-						o = parseIntoCollection(ctx, r, (Collection)(ft.canCreateNewInstance(outer) ? ft.newInstance(outer) : new ObjectList(bc)), ft.getElementType());
-					else if (ft.isArray())
-						o = bc.toArray(ft, parseIntoCollection(ctx, r, new ArrayList(), ft.getElementType()));
-					else
-						isValid = false;
-				} else
-					isValid = false;
-
-				if (! isValid)
-					throw new XMLStreamException("Unexpected tag '"+tag+"' for type '"+nt+"'", event.getLocation());
-			}
-
-
-			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 (ParseException e) {
-			throw e;
-		} catch (IOException e) {
-			throw e;
-		} catch (RuntimeException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new ParseException(e);
-		}
-	}
-
-	/*
-	 * Reads an anchor tag and converts it into a bean.
-	 */
-	private <T> T parseAnchor(HtmlParserContext ctx, XMLEvent e, XMLEventReader r, ClassMeta<T> beanType) throws XMLStreamException {
-		BeanContext bc = ctx.getBeanContext();
-		String href = e.asStartElement().getAttributeByName(new QName("href")).getValue();
-		String name = parseCharacters(e, r);
-		Class<T> beanClass = beanType.getInnerClass();
-		if (beanClass.isAnnotationPresent(HtmlLink.class)) {
-			HtmlLink h = beanClass.getAnnotation(HtmlLink.class);
-			BeanMap<T> m = bc.newBeanMap(beanClass);
-			m.put(h.hrefProperty(), href);
-			m.put(h.nameProperty(), name);
-			return m.getBean();
-		}
-		return bc.convertToType(href, beanType);
-	}
-
-	private Map<String,String> getAttributes(XMLEvent e) {
-		Map<String,String> m = new TreeMap<String,String>() ;
-		for (Iterator i = e.asStartElement().getAttributes(); i.hasNext();) {
-			Attribute a = (Attribute)i.next();
-			m.put(a.getName().getLocalPart(), a.getValue());
-		}
-		return m;
-	}
-
-	/*
-	 * Reads contents of <table> element.
-	 * Precondition:  Must be pointing at <table> event.
-	 * Postcondition:  Pointing at next START_ELEMENT or END_DOCUMENT event.
-	 */
-	private <K,V> Map<K,V> parseIntoMap(HtmlParserContext ctx, XMLEventReader r, Map<K,V> m, ClassMeta<K> keyType, ClassMeta<V> valueType) throws ParseException, IOException {
-		try {
-			Tag tag = nextTag(r, TR);
-
-			// Skip over the column headers.
-			nextTag(r, TH);
-			parseElementText(r, xTH);
-			nextTag(r, TH);
-			parseElementText(r, xTH);
-			nextTag(r, xTR);
-
-			while (true) {
-				tag = nextTag(r, TR, xTABLE);
-				if (tag == xTABLE)
-					break;
-				nextTag(r, TD);
-				K key = parseAnything(ctx, keyType, r, m, null);
-				nextTag(r, xTD);
-				nextTag(r, TD);
-				m.put(key, parseAnything(ctx, valueType, r, m, key));
-				nextTag(r, xTD);
-				nextTag(r, xTR);
-			}
-
-			return m;
-		} catch (XMLStreamException e) {
-			throw new ParseException(e);
-		}
-	}
-
-	/*
-	 * Reads contents of <ul> element.
-	 * Precondition:  Must be pointing at event following <ul> event.
-	 * Postcondition:  Pointing at next START_ELEMENT or END_DOCUMENT event.
-	 */
-	private <E> Collection<E> parseIntoCollection(HtmlParserContext ctx, XMLEventReader r, Collection<E> l, ClassMeta<E> elementType) throws ParseException, IOException {
-		try {
-			while (true) {
-				Tag tag = nextTag(r, LI, xUL);
-				if (tag == xUL)
-					break;
-				l.add(parseAnything(ctx, elementType, r, l, null));
-				nextTag(r, xLI);
-			}
-			return l;
-		} catch (XMLStreamException e) {
-			throw new ParseException(e);
-		}
-	}
-
-	/*
-	 * Reads contents of <ul> element into an Object array.
-	 * Precondition:  Must be pointing at event following <ul> event.
-	 * Postcondition:  Pointing at next START_ELEMENT or END_DOCUMENT event.
-	 */
-	private Object[] parseArgs(HtmlParserContext ctx, XMLEventReader r, ClassMeta<?>[] argTypes) throws ParseException, IOException {
-		try {
-			Object[] o = new Object[argTypes.length];
-			int i = 0;
-			while (true) {
-				Tag tag = nextTag(r, LI, xUL);
-				if (tag == xUL)
-					break;
-				o[i] = parseAnything(ctx, argTypes[i], r, ctx.getOuter(), null);
-				i++;
-				nextTag(r, xLI);
-			}
-			return o;
-		} catch (XMLStreamException e) {
-			throw new ParseException(e);
-		}
-	}
-
-	/*
-	 * Reads contents of <ul> element.
-	 * Precondition:  Must be pointing at event following <ul> event.
-	 * Postcondition:  Pointing at next START_ELEMENT or END_DOCUMENT event.
-	 */
-	private <E> Collection<E> parseTableIntoCollection(HtmlParserContext ctx, XMLEventReader r, Collection<E> l, ClassMeta<E> elementType) throws Exception {
-
-		BeanContext bc = ctx.getBeanContext();
-		if (elementType == null)
-			elementType = (ClassMeta<E>)object();
-
-		Tag tag = nextTag(r, TR);
-		List<String> keys = new ArrayList<String>();
-		while (true) {
-			tag = nextTag(r, TH, xTR);
-			if (tag == xTR)
-				break;
-			keys.add(parseElementText(r, xTH));
-		}
-
-		while (true) {
-			XMLEvent event = r.nextTag();
-			tag = Tag.forEvent(event);
-			if (tag == xTABLE)
-				break;
-			if (elementType.canCreateNewBean(l)) {
-				BeanMap m = bc.newBeanMap(l, elementType.getInnerClass());
-				for (int i = 0; i < keys.size(); i++) {
-					tag = nextTag(r, TD, NULL);
-					if (tag == NULL) {
-						m = null;
-						nextTag(r, xNULL);
-						break;
-					}
-					String key = keys.get(i);
-					BeanMapEntry e = m.getProperty(key);
-					if (e == null) {
-						//onUnknownProperty(key, m, -1, -1);
-						parseAnything(ctx, object(), r, l, null);
-					} else {
-						e.getMeta().set(m, parseAnything(ctx, e.getMeta().getClassMeta(), r, m.getBean(false), key));
-					}
-					nextTag(r, xTD);
-				}
-				l.add(m == null ? null : (E)m.getBean());
-			} else {
-				String c = getAttributes(event).get("_class");
-				Map m = (Map)(elementType.isMap() && elementType.canCreateNewInstance(l) ? elementType.newInstance(l) : new ObjectMap(bc));
-				for (int i = 0; i < keys.size(); i++) {
-					tag = nextTag(r, TD, NULL);
-					if (tag == NULL) {
-						m = null;
-						nextTag(r, xNULL);
-						break;
-					}
-					String key = keys.get(i);
-					if (m != null)
-						m.put(key, parseAnything(ctx, elementType.getElementType(), r, l, key));
-					nextTag(r, xTD);
-				}
-				if (m != null && c != null) {
-					ObjectMap m2 = (m instanceof ObjectMap ? (ObjectMap)m : new ObjectMap(m).setBeanContext(ctx.getBeanContext()));
-					m2.put("_class", c);
-					l.add((E)m2.cast());
-				} else {
-					l.add((E)m);
-				}
-			}
-			nextTag(r, xTR);
-		}
-		return l;
-	}
-
-	/*
-	 * Reads contents of <table> element.
-	 * Precondition:  Must be pointing at event following <table> event.
-	 * Postcondition:  Pointing at next START_ELEMENT or END_DOCUMENT event.
-	 */
-	private <T> BeanMap<T> parseIntoBean(HtmlParserContext ctx, XMLEventReader r, BeanMap<T> m) throws Exception {
-		Tag tag = nextTag(r, TR);
-
-		// Skip over the column headers.
-		nextTag(r, TH);
-		parseElementText(r, xTH);
-		nextTag(r, TH);
-		parseElementText(r, xTH);
-		nextTag(r, xTR);
-
-		while (true) {
-			tag = nextTag(r, TR, xTABLE);
-			if (tag == xTABLE)
-				break;
-			nextTag(r, TD);
-			String key = parseElementText(r, xTD);
-			nextTag(r, TD);
-			BeanPropertyMeta pMeta = m.getPropertyMeta(key);
-			if (pMeta == null) {
-				if (m.getMeta().isSubTyped()) {
-					m.put(key, parseAnything(ctx, object(), r, m.getBean(false), key));
-				} else {
-					onUnknownProperty(ctx, key, m, -1, -1);
-					parseAnything(ctx, object(), r, null, null);
-				}
-			} else {
-				pMeta.set(m, parseAnything(ctx, pMeta.getClassMeta(), r, m.getBean(false), key));
-			}
-			nextTag(r, xTD);
-			nextTag(r, xTR);
-		}
-		return m;
-	}
-
-	/*
-	 * Parse until the next event is an end tag.
-	 */
-	private String parseCharacters(XMLEvent e, XMLEventReader r) throws XMLStreamException {
-
-		List<String> strings = new LinkedList<String>();
-
-		while (true) {
-			int eventType = e.getEventType();
-			if (eventType == CHARACTERS) {
-				Characters c = e.asCharacters();
-				if (! c.isWhiteSpace())
-					strings.add(c.getData());
-			}
-			else if (eventType == START_ELEMENT) {
-				Tag tag = Tag.forEvent(e);
-				if (tag == BR)
-					strings.add("\n");
-				else if (tag == FF)
-					strings.add("\f");
-				else if (tag == BS)
-					strings.add("\b");
-				else if (tag == TB)
-					strings.add("\t");
-			}
-			// Ignore all other elements.
-
-			XMLEvent eNext = r.peek();
-
-			if (eNext.isStartElement() || eNext.isEndElement()) {
-				Tag tag = Tag.forEvent(eNext);
-				if (! (tag.isOneOf(A, xA, BR, xBR, FF, xFF, BS, xBS, TB, xTB, STRING, xSTRING, NUMBER, xNUMBER, BOOLEAN, xBOOLEAN)))
-					return trim(join(strings));
-			} else if (eNext.isEndDocument()) {
-				return trim(join(strings));
-			}
-
-			e = r.nextEvent();
-		}
-	}
-
-	private String trim(String s) {
-		int i2 = 0, i3;
-		for (i2 = 0; i2 < s.length(); i2++) {
-			char c = s.charAt(i2);
-			if (c != ' ')
-				break;
-		}
-		for (i3 = s.length(); i3 > i2; i3--) {
-			char c = s.charAt(i3-1);
-			if (c != ' ')
-				break;
-		}
-		return s.substring(i2, i3);
-	}
-
-	/*
-	 * Reads the element text of the current element, accounting for <a> and <br> tags. <br>
-	 * Precondition:  Must be pointing at first event AFTER the start tag.
-	 * Postcondition:  Pointing at next START_ELEMENT or END_DOCUMENT event.
-	 */
-	private String parseElementText(XMLEventReader r, Tag endTag) throws XMLStreamException {
-
-		List<String> strings = new LinkedList<String>();
-
-		XMLEvent e = r.nextEvent();
-		Tag nTag = (e.isEndElement() ? Tag.forEvent(e) : null);
-
-		while (nTag != endTag) {
-			if (e.isCharacters())
-				strings.add(parseCharacters(e, r));
-			e = r.nextEvent();
-
-			if (e.getEventType() == END_ELEMENT)
-				nTag = Tag.forEvent(e);
-
-			if (nTag == endTag)
-				return join(strings);
-		}
-
-		return "";
-	}
-
-	enum Tag {
-
-		TABLE(1,"<table>"),
-		TR(2,"<tr>"),
-		TH(3,"<th>"),
-		TD(4,"<td>"),
-		UL(5,"<ul>"),
-		LI(6,"<li>"),
-		STRING(7,"<string>"),
-		NUMBER(8,"<number>"),
-		BOOLEAN(9,"<boolean>"),
-		NULL(10,"<null>"),
-		A(11,"<a>"),
-		BR(12,"<br>"),		// newline
-		FF(13,"<ff>"),		// formfeed
-		BS(14,"<bs>"),		// backspace
-		TB(15,"<tb>"),		// tab
-		xTABLE(-1,"</table>"),
-		xTR(-2,"</tr>"),
-		xTH(-3,"</th>"),
-		xTD(-4,"</td>"),
-		xUL(-5,"</ul>"),
-		xLI(-6,"</li>"),
-		xSTRING(-7,"</string>"),
-		xNUMBER(-8,"</number>"),
-		xBOOLEAN(-9,"</boolean>"),
-		xNULL(-10,"</null>"),
-		xA(-11,"</a>"),
-		xBR(-12,"</br>"),
-		xFF(-13,"</ff>"),
-		xBS(-14,"</bs>"),
-		xTB(-15,"</tb>");
-
-		private Map<Integer,Tag> cache = new HashMap<Integer,Tag>();
-
-		int id;
-		String label;
-
-		Tag(int id, String label) {
-			this.id = id;
-			this.label = label;
-			cache.put(id, this);
-		}
-
-		static Tag forEvent(XMLEvent event) throws XMLStreamException {
-			if (event.isStartElement())
-				return forString(event.asStartElement().getName().getLocalPart(), false);
-			else if (event.isEndElement())
-				return forString(event.asEndElement().getName().getLocalPart(), true);
-			throw new XMLStreamException("Invalid call to Tag.forEvent on event of type ["+event.getEventType()+"]");
-		}
-
-		private static Tag forString(String tag, boolean end) throws XMLStreamException {
-			char c = tag.charAt(0);
-			Tag t = null;
-			if (c == 'u')
-				t = (end ? xUL : UL);
-			else if (c == 'l')
-				t = (end ? xLI : LI);
-			else if (c == 's')
-				t = (end ? xSTRING : STRING);
-			else if (c == 'b') {
-				c = tag.charAt(1);
-				if (c == 'o')
-					t = (end ? xBOOLEAN : BOOLEAN);
-				else if (c == 'r')
-					t = (end ? xBR : BR);
-				else if (c == 's')
-					t = (end ? xBS : BS);
-			}
-			else if (c == 'a')
-				t = (end ? xA : A);
-			else if (c == 'n') {
-				c = tag.charAt(2);
-				if (c == 'm')
-					t = (end ? xNUMBER : NUMBER);
-				else if (c == 'l')
-					t = (end ? xNULL : NULL);
-			}
-			else if (c == 't') {
-				c = tag.charAt(1);
-				if (c == 'a')
-					t = (end ? xTABLE : TABLE);
-				else if (c == 'r')
-					t = (end ? xTR : TR);
-				else if (c == 'h')
-					t = (end ? xTH : TH);
-				else if (c == 'd')
-					t = (end ? xTD : TD);
-				else if (c == 'b')
-					t = (end ? xTB : TB);
-			}
-			else if (c == 'f')
-				t = (end ? xFF : FF);
-			if (t == null)
-				throw new XMLStreamException("Unknown tag '"+tag+"' encountered");
-			return t;
-		}
-
-		@Override /* Object */
-		public String toString() {
-			return label;
-		}
-
-		public boolean isOneOf(Tag...tags) {
-			for (Tag tag : tags)
-				if (tag == this)
-					return true;
-			return false;
-		}
-	}
-
-	/*
-	 * Reads the current tag.  Advances past anything that's not a start or end tag.  Throws an exception if
-	 * 	it's not one of the expected tags.
-	 * Precondition:  Must be pointing before the event we want to parse.
-	 * Postcondition:  Pointing at the tag just parsed.
-	 */
-	private Tag nextTag(XMLEventReader r, Tag...expected) throws XMLStreamException {
-		XMLEvent event = r.nextTag();
-		Tag tag = Tag.forEvent(event);
-		if (expected.length == 0)
-			return tag;
-		for (Tag t : expected)
-			if (t == tag)
-				return tag;
-		throw new XMLStreamException("Unexpected tag: " + tag, event.getLocation());
-	}
-
-	private String join(List<String> s) {
-		if (s.size() == 0)
-			return "";
-		if (s.size() == 1)
-			return s.get(0);
-		StringBuilder sb = new StringBuilder();
-		for (String ss : s)
-			sb.append(ss);
-		return sb.toString();
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Parser */
-	public HtmlParserContext createContext(ObjectMap properties, Method javaMethod, Object outer) {
-		return new HtmlParserContext(getBeanContext(), pp, hpp, properties, javaMethod, outer);
-	}
-
-	@Override /* Parser */
-	protected <T> T doParse(Reader in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException {
-		type = ctx.getBeanContext().normalizeClassMeta(type);
-		HtmlParserContext ctx2 = (HtmlParserContext)ctx;
-		return parseAnything(ctx2, type, ctx2.getReader(in, estimatedSize), ctx.getOuter(), null);
-	}
-
-	@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 {
-		HtmlParserContext hctx = (HtmlParserContext)ctx;
-		return parseIntoMap(hctx, hctx.getReader(in, estimatedSize), m, ctx.getBeanContext().getClassMeta(keyType), ctx.getBeanContext().getClassMeta(valueType));
-	}
-
-	@Override /* ReaderParser */
-	protected <E> Collection<E> doParseIntoCollection(Reader in, int estimatedSize, Collection<E> c, Type elementType, ParserContext ctx) throws ParseException, IOException {
-		HtmlParserContext hctx = (HtmlParserContext)ctx;
-		return parseIntoCollection(hctx, hctx.getReader(in, estimatedSize), c, ctx.getBeanContext().getClassMeta(elementType));
-	}
-
-	@Override /* ReaderParser */
-	protected Object[] doParseArgs(Reader in, int estimatedSize, ClassMeta<?>[] argTypes, ParserContext ctx) throws ParseException, IOException {
-		HtmlParserContext hctx = (HtmlParserContext)ctx;
-		return parseArgs(hctx, hctx.getReader(in, estimatedSize), argTypes);
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! hpp.setProperty(property, value))
-			super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> HtmlParser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public HtmlParser lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public HtmlParser clone() {
-		try {
-			return (HtmlParser)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/html/HtmlParserContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserContext.class
deleted file mode 100755
index 00ee7b4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserContext.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/html/HtmlParserContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserContext.java
deleted file mode 100755
index b23546e..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserContext.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core.html;
-
-import java.io.*;
-import java.lang.reflect.*;
-
-import javax.xml.stream.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Context object that lives for the duration of a single parsing of {@link HtmlParser}.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class HtmlParserContext extends ParserContext {
-
-	private XMLEventReader xmlEventReader;
-
-	/**
-	 * Create a new parser context with the specified options.
-	 *
-	 * @param beanContext The bean context being used.
-	 * @param pp The default generic parser properties.
-	 * @param hpp The default HTML parser properties.
-	 * @param properties 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 HtmlParserContext(BeanContext beanContext, ParserProperties pp, HtmlParserProperties hpp, ObjectMap properties, Method javaMethod, Object outer) {
-		super(beanContext, pp, properties, javaMethod, outer);
-	}
-
-	/**
-	 * Wraps the specified reader in an {@link XMLEventReader}.
-	 * This event reader gets closed by the {@link #close()} method.
-	 *
-	 * @param in The reader to read from.
-	 * @param estimatedSize The estimated size of the input.  If <code>-1</code>, uses a default size of <code>8196</code>.
-	 * @return A new XML event reader using a new {@link XMLInputFactory}.
-	 * @throws ParseException
-	 */
-	protected XMLEventReader getReader(Reader in, int estimatedSize) throws ParseException {
-		try {
-			in = IOUtils.getBufferedReader(in, estimatedSize);
-			XMLInputFactory factory = XMLInputFactory.newInstance();
-			factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false);
-			this.xmlEventReader = factory.createXMLEventReader(in);
-		} catch (Error e) {
-			throw new ParseException(e.getLocalizedMessage());
-		} catch (XMLStreamException e) {
-			throw new ParseException(e);
-		}
-		return xmlEventReader;
-	}
-
-	@Override /* ParserContext */
-	public void close() throws ParseException {
-		if (xmlEventReader != null) {
-			try {
-				xmlEventReader.close();
-			} catch (XMLStreamException e) {
-				throw new ParseException(e);
-			}
-		}
-		super.close();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserProperties.class
deleted file mode 100755
index 9fb0222..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserProperties.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/html/HtmlParserProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserProperties.java
deleted file mode 100755
index 5d2ff60..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlParserProperties.java
+++ /dev/null
@@ -1,52 +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.html;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Configurable properties on the {@link HtmlParser} class.
- * <p>
- * 	Use the {@link HtmlParser#setProperty(String, Object)} method to set property values.
- * <p>
- * 	In addition to these properties, the following properties are also applicable for {@link HtmlParser}.
- * <ul>
- * 	<li>{@link ParserProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class HtmlParserProperties implements Cloneable {
-
-	/**
-	 * 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.
-	 */
-	protected boolean setProperty(String property, Object value) {
-		return false;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Lockable */
-	public HtmlParserProperties clone() {
-		try {
-			return (HtmlParserProperties)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/html/HtmlSchemaDocSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSchemaDocSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSchemaDocSerializer.class
deleted file mode 100755
index b25c1fa..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSchemaDocSerializer.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/html/HtmlSchemaDocSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSchemaDocSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSchemaDocSerializer.java
deleted file mode 100755
index 2cf8d95..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSchemaDocSerializer.java
+++ /dev/null
@@ -1,144 +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.html;
-
-import static com.ibm.juno.core.serializer.SerializerProperties.*;
-import static com.ibm.juno.core.utils.ClassUtils.*;
-
-import java.io.*;
-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.serializer.*;
-
-/**
- * Serializes POJO metamodels to HTML.
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>text/html+schema</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>text/html</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Essentially the same as {@link HtmlSerializer}, except serializes the POJO metamodel
- * 		instead of the model itself.
- * <p>
- * 	Produces output that describes the POJO metamodel similar to an XML schema document.
- * <p>
- * 	The easiest way to create instances of this class is through the {@link HtmlSerializer#getSchemaSerializer()},
- * 		which will create a schema serializer with the same settings as the originating serializer.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces(value="text/html+schema", contentType="text/html")
-public final class HtmlSchemaDocSerializer extends HtmlDocSerializer {
-
-	/**
-	 * Constructor.
-	 */
-	public HtmlSchemaDocSerializer() {
-		setProperty(SERIALIZER_detectRecursions, true);
-		setProperty(SERIALIZER_ignoreRecursions, true);
-	}
-
-	@Override /* ISchemaSerializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		HtmlSerializerContext hctx = (HtmlSerializerContext)ctx;
-		ObjectMap schema = getSchema(ctx.getBeanContext().getClassMetaForObject(o), hctx, "root", null);
-		super.doSerialize(schema, out, ctx);
-	}
-
-	/*
-	 * Creates a schema representation of the specified class type.
-	 *
-	 * @param eType The class type to get the schema of.
-	 * @param ctx Serialize context used to prevent infinite loops.
-	 * @param attrName The name of the current attribute.
-	 * @return A schema representation of the specified class.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	private ObjectMap getSchema(ClassMeta<?> eType, HtmlSerializerContext ctx, String attrName, String[] pNames) throws SerializeException {
-		try {
-
-			ObjectMap out = new ObjectMap();
-
-			ClassMeta<?> aType;			// The actual type (will be null if recursion occurs)
-			ClassMeta<?> gType;			// The generic type
-
-			aType = ctx.push(attrName, eType, null);
-
-			gType = eType.getFilteredClassMeta();
-			String type = null;
-
-			if (gType.isEnum() || gType.isCharSequence() || gType.isChar())
-				type = "string";
-			else if (gType.isNumber())
-				type = "number";
-			else if (gType.isBoolean())
-				type = "boolean";
-			else if (gType.isBean() || gType.isMap())
-				type = "object";
-			else if (gType.isCollection() || gType.isArray())
-				type = "array";
-			else
-				type = "any";
-
-			out.put("type", type);
-			out.put("class", eType.toString());
-			PojoFilter f = eType.getPojoFilter();
-			if (f != null)
-				out.put("filter", f);
-
-			if (aType != null) {
-				if (gType.isEnum())
-					out.put("enum", getEnumStrings((Class<Enum<?>>)gType.getInnerClass()));
-				else if (gType.isCollection() || gType.isArray()) {
-					ClassMeta componentType = gType.getElementType();
-					if (gType.isCollection() && isParentClass(Set.class, gType.getInnerClass()))
-						out.put("uniqueItems", true);
-					out.put("items", getSchema(componentType, ctx, "items", pNames));
-				} else if (gType.isBean()) {
-					ObjectMap properties = new ObjectMap();
-					BeanMeta bm = ctx.getBeanContext().getBeanMeta(gType.getInnerClass());
-					if (pNames != null)
-						bm = new BeanMetaFiltered(bm, pNames);
-					for (Iterator<BeanPropertyMeta<?>> i = bm.getPropertyMetas().iterator(); i.hasNext();) {
-						BeanPropertyMeta p = i.next();
-						properties.put(p.getName(), getSchema(p.getClassMeta(), ctx, p.getName(), p.getProperties()));
-					}
-					out.put("properties", properties);
-				}
-			}
-			ctx.pop();
-			return out;
-		} catch (StackOverflowError e) {
-			throw e;
-		} catch (Throwable e) {
-			throw new SerializeException("Exception occured trying to process object of type ''{0}''", eType).initCause(e);
-		}
-	}
-
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	private List<String> getEnumStrings(Class<? extends Enum> c) {
-		List<String> l = new LinkedList<String>();
-		try {
-			for (Object e : EnumSet.allOf(c))
-				l.add(e.toString());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return l;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer$Sq.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer$Sq.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer$Sq.class
deleted file mode 100755
index dc9c801..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer$Sq.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/html/HtmlSerializer$SqReadable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer$SqReadable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer$SqReadable.class
deleted file mode 100755
index 6e0df08..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer$SqReadable.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/html/HtmlSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer.class
deleted file mode 100755
index e182a2c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer.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/html/HtmlSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer.java
deleted file mode 100755
index 022235d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializer.java
+++ /dev/null
@@ -1,668 +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.html;
-
-import static com.ibm.juno.core.html.HtmlSerializerProperties.*;
-import static com.ibm.juno.core.serializer.SerializerProperties.*;
-
-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.serializer.*;
-import com.ibm.juno.core.xml.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Serializes POJO models to HTML.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>text/html</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>text/html</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	The conversion is as follows...
- * 	<ul>
- * 		<li>{@link Map Maps} (e.g. {@link HashMap}, {@link TreeMap}) and beans are converted to HTML tables with 'key' and 'value' columns.
- * 		<li>{@link Collection Collections} (e.g. {@link HashSet}, {@link LinkedList}) and Java arrays are converted to HTML ordered lists.
- * 		<li>{@code Collections} of {@code Maps} and beans are converted to HTML tables with keys as headers.
- * 		<li>Everything else is converted to text.
- * 	</ul>
- * <p>
- * 	This serializer provides several serialization options.  Typically, one of the predefined <jsf>DEFAULT</jsf> serializers will be sufficient.
- * 	However, custom serializers can be constructed to fine-tune behavior.
- * <p>
- * 	The {@link HtmlLink} annotation can be used on beans to add hyperlinks to the output.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link HtmlSerializerProperties}
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * 	The following direct subclasses are provided for convenience:
- * <ul>
- * 	<li>{@link Sq} - Default serializer, single quotes.
- * 	<li>{@link SqReadable} - Default serializer, single quotes, whitespace added.
- * </ul>
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Use one of the default serializers to serialize a POJO</jc>
- * 		String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(someObject);
- *
- * 		<jc>// Create a custom serializer that doesn't use whitespace and newlines</jc>
- * 		HtmlSerializer serializer = <jk>new</jk> HtmlSerializer()
- * 			.setProperty(SerializerProperties.<jsf>SERIALIZER_useIndentation</jsf>, <jk>false</jk>);
- *
- * 		<jc>// Same as above, except uses cloning</jc>
- * 		HtmlSerializer serializer = HtmlSerializer.<jsf>DEFAULT</jsf>.clone()
- * 			.setProperty(SerializerProperties.<jsf>SERIALIZER_useIndentation</jsf>, <jk>false</jk>);
- *
- * 		<jc>// Serialize POJOs to HTML</jc>
- *
- * 		<jc>// Produces: </jc>
- * 		<jc>// &lt;ul&gt;&lt;li&gt;1&lt;li&gt;2&lt;li&gt;3&lt;/ul&gt;</jc>
- * 		List l = new ObjectList(1, 2, 3);
- * 		String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(l);
- *
- * 		<jc>// Produces: </jc>
- * 		<jc>//    &lt;table&gt; </jc>
- * 		<jc>//       &lt;tr&gt;&lt;th&gt;firstName&lt;/th&gt;&lt;th&gt;lastName&lt;/th&gt;&lt;/tr&gt; </jc>
- * 		<jc>//       &lt;tr&gt;&lt;td&gt;Bob&lt;/td&gt;&lt;td&gt;Costas&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//       &lt;tr&gt;&lt;td&gt;Billy&lt;/td&gt;&lt;td&gt;TheKid&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//       &lt;tr&gt;&lt;td&gt;Barney&lt;/td&gt;&lt;td&gt;Miller&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//    &lt;/table&gt; </jc>
- * 		l = <jk>new</jk> ObjectList();
- * 		l.add(<jk>new</jk> ObjectMap(<js>"{firstName:'Bob',lastName:'Costas'}"</js>));
- * 		l.add(<jk>new</jk> ObjectMap(<js>"{firstName:'Billy',lastName:'TheKid'}"</js>));
- * 		l.add(<jk>new</jk> ObjectMap(<js>"{firstName:'Barney',lastName:'Miller'}"</js>));
- * 		String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(l);
- *
- * 		<jc>// Produces: </jc>
- * 		<jc>//    &lt;table&gt; </jc>
- * 		<jc>//       &lt;tr&gt;&lt;th&gt;key&lt;/th&gt;&lt;th&gt;value&lt;/th&gt;&lt;/tr&gt; </jc>
- * 		<jc>//       &lt;tr&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;bar&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//       &lt;tr&gt;&lt;td&gt;baz&lt;/td&gt;&lt;td&gt;123&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//    &lt;/table&gt; </jc>
- * 		Map m = <jk>new</jk> ObjectMap(<js>"{foo:'bar',baz:123}"</js>);
- * 		String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(m);
- *
- * 		<jc>// HTML elements can be nested arbitrarily deep</jc>
- * 		<jc>// Produces: </jc>
- * 		<jc>//	&lt;table&gt; </jc>
- * 		<jc>//		&lt;tr&gt;&lt;th&gt;key&lt;/th&gt;&lt;th&gt;value&lt;/th&gt;&lt;/tr&gt; </jc>
- * 		<jc>//		&lt;tr&gt;&lt;td&gt;foo&lt;/td&gt;&lt;td&gt;bar&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//		&lt;tr&gt;&lt;td&gt;baz&lt;/td&gt;&lt;td&gt;123&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//		&lt;tr&gt;&lt;td&gt;someNumbers&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;1&lt;li&gt;2&lt;li&gt;3&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//		&lt;tr&gt;&lt;td&gt;someSubMap&lt;/td&gt;&lt;td&gt; </jc>
- * 		<jc>//			&lt;table&gt; </jc>
- * 		<jc>//				&lt;tr&gt;&lt;th&gt;key&lt;/th&gt;&lt;th&gt;value&lt;/th&gt;&lt;/tr&gt; </jc>
- * 		<jc>//				&lt;tr&gt;&lt;td&gt;a&lt;/td&gt;&lt;td&gt;b&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//			&lt;/table&gt; </jc>
- * 		<jc>//		&lt;/td&gt;&lt;/tr&gt; </jc>
- * 		<jc>//	&lt;/table&gt; </jc>
- * 		Map m = <jk>new</jk> ObjectMap(<js>"{foo:'bar',baz:123}"</js>);
- * 		m.put("someNumbers", new ObjectList(1, 2, 3));
- * 		m.put(<js>"someSubMap"</js>, new ObjectMap(<js>"{a:'b'}"</js>));
- * 		String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(m);
- * </p>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces("text/html")
-@SuppressWarnings("hiding")
-public class HtmlSerializer extends XmlSerializer {
-
-	/** Default serializer, all default settings. */
-	public static final HtmlSerializer DEFAULT = new HtmlSerializer().lock();
-
-	/** Default serializer, single quotes. */
-	public static final HtmlSerializer DEFAULT_SQ = new HtmlSerializer.Sq().lock();
-
-	/** Default serializer, single quotes, whitespace added. */
-	public static final HtmlSerializer DEFAULT_SQ_READABLE = new HtmlSerializer.SqReadable().lock();
-
-	/** Default serializer, single quotes. */
-	public static class Sq extends HtmlSerializer {
-		/** Constructor */
-		public Sq() {
-			setProperty(SERIALIZER_quoteChar, '\'');
-		}
-	}
-
-	/** Default serializer, single quotes, whitespace added. */
-	public static class SqReadable extends Sq {
-		/** Constructor */
-		public SqReadable() {
-			setProperty(SERIALIZER_useIndentation, true);
-		}
-	}
-
-
-	/** HTML serializer properties currently set on this serializer. */
-	protected transient HtmlSerializerProperties hsp = new HtmlSerializerProperties();
-
-	/**
-	 * Main serialization routine.
-	 *
-	 * @param o The object being serialized.
-	 * @param w The writer to serialize to.
-	 * @param ctx The serialization context object.
-	 *
-	 * @return The same writer passed in.
-	 * @throws IOException If a problem occurred trying to send output to the writer.
-	 */
-	private HtmlSerializerWriter doSerialize(Object o, HtmlSerializerWriter w, HtmlSerializerContext ctx) throws SerializeException, IOException {
-		serializeAnything(w, o, null, ctx, null, ctx.getInitialDepth()-1, null);
-		return w;
-	}
-
-	/**
-	 * Serialize the specified object to the specified writer.
-	 *
-	 * @param out The writer.
-	 * @param o The object to serialize.
-	 * @param eType The expected type of the object if this is a bean property.
-	 * @param ctx The context object that lives for the duration of this serialization.
-	 * @param name The attribute name of this object if this object was a field in a JSON object (i.e. key of a {@link java.util.Map.Entry} or property name of a bean).
-	 * @param indent The current indentation value.
-	 * @param pMeta The bean property being serialized, or <jk>null</jk> if we're not serializing a bean property.
-	 * @throws IOException
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	protected void serializeAnything(HtmlSerializerWriter out, Object o, ClassMeta<?> eType, HtmlSerializerContext ctx, String name, int indent, BeanPropertyMeta pMeta) throws IOException, SerializeException {
-
-		BeanContext bc = ctx.getBeanContext();
-		ClassMeta<?> aType = null;       // The actual type
-		ClassMeta<?> gType = object();   // The generic type
-
-		if (eType == null)
-			eType = object();
-
-		aType = ctx.push(name, o, eType);
-
-		// Handle recursion
-		if (aType == null) {
-			o = null;
-			aType = object();
-		}
-
-		ctx.indent += indent;
-		int i = ctx.indent;
-
-		// Determine the type.
-		if (o == null || (aType.isChar() && ((Character)o).charValue() == 0))
-			out.tag(i, "null").nl();
-		else {
-
-			gType = aType.getFilteredClassMeta();
-			String classAttr = null;
-			if (ctx.isAddClassAttrs() && ! eType.equals(aType))
-				classAttr = aType.toString();
-
-			// Filter if necessary
-			PojoFilter filter = aType.getPojoFilter();
-			if (filter != null) {
-				o = filter.filter(o);
-
-				// If the filter's getFilteredClass() method returns Object, we need to figure out
-				// the actual type now.
-				if (gType.isObject())
-					gType = bc.getClassMetaForObject(o);
-			}
-
-			HtmlClassMeta html = gType.getHtmlMeta();
-
-			if (html.isAsXml() || (pMeta != null && pMeta.getHtmlMeta().isAsXml()))
-				super.serializeAnything(out, o, null, ctx, null, null, false, XmlFormat.NORMAL, null);
-			else if (html.isAsPlainText() || (pMeta != null && pMeta.getHtmlMeta().isAsPlainText()))
-				out.write(o == null ? "null" : o.toString());
-			else if (o == null || (gType.isChar() && ((Character)o).charValue() == 0))
-				out.tag(i, "null").nl();
-			else if (gType.hasToObjectMapMethod())
-				serializeMap(out, gType.toObjectMap(o), eType, ctx, classAttr, pMeta);
-			else if (gType.isBean())
-				serializeBeanMap(out, bc.forBean(o), ctx, classAttr, pMeta);
-			else if (gType.isNumber())
-				out.sTag(i, "number").append(o).eTag("number").nl();
-			else if (gType.isBoolean())
-				out.sTag(i, "boolean").append(o).eTag("boolean").nl();
-			else if (gType.isMap()) {
-				if (o instanceof BeanMap)
-					serializeBeanMap(out, (BeanMap)o, ctx, classAttr, pMeta);
-				else
-					serializeMap(out, (Map)o, eType, ctx, classAttr, pMeta);
-			}
-			else if (gType.isCollection()) {
-				if (classAttr != null)
-					serializeCollection(out, (Collection)o, gType, ctx, name, classAttr, pMeta);
-				else
-					serializeCollection(out, (Collection)o, eType, ctx, name, null, pMeta);
-			}
-			else if (gType.isArray()) {
-				if (classAttr != null)
-					serializeCollection(out, toList(gType.getInnerClass(), o), gType, ctx, name, classAttr, pMeta);
-				else
-					serializeCollection(out, toList(gType.getInnerClass(), o), eType, ctx, name, null, pMeta);
-			}
-			else if (gType.isUri() || (pMeta != null && (pMeta.isUri() || pMeta.isBeanUri()))) {
-				String label = null;
-				String at = ctx.getUriAnchorText();
-				if (at != null) {
-					if (at.equals(LAST_TOKEN)) {
-						label = o.toString();
-						if (label.indexOf('/') != -1)
-							label = label.substring(label.lastIndexOf('/')+1);
-					} else if (at.equals(PROPERTY_NAME)) {
-						label = (pMeta != null ? pMeta.getName() : null);
-					} else {
-						label = o.toString();
-					}
-				}
-				if (label == null)
-					label = o.toString();
-				out.oTag(i, "a").attrUri("href", o).append('>');
-				if (at != null && at.equals(URI))
-					out.appendUri(label);
-				else
-					out.append(label);
-				out.eTag("a").nl();
-			}
-			else
-				out.sTag(i, "string").encodeText(o).eTag("string").nl();
-		}
-		ctx.pop();
-		ctx.indent -= indent;
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private void serializeMap(HtmlSerializerWriter out, Map m, ClassMeta<?> type, HtmlSerializerContext ctx, String classAttr, BeanPropertyMeta<?> ppMeta) throws IOException, SerializeException {
-		ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
-
-		int i = ctx.getIndent();
-		out.oTag(i, "table").attr("type", "object");
-		if (classAttr != null)
-			out.attr("class", classAttr);
-		out.appendln(">");
-		if (! (ppMeta != null && ppMeta.getHtmlMeta().isNoTableHeaders())) {
-		out.sTag(i+1, "tr").nl();
-		out.sTag(i+2, "th").nl().appendln(i+3, "<string>key</string>").eTag(i+2, "th").nl();
-		out.sTag(i+2, "th").nl().appendln(i+3, "<string>value</string>").eTag(i+2, "th").nl();
-		out.eTag(i+1, "tr").nl();
-		}
-		for (Map.Entry e : (Set<Map.Entry>)m.entrySet()) {
-
-			Object key = generalize(ctx, e.getKey(), keyType);
-			Object value = null;
-			try {
-				value = e.getValue();
-			} catch (StackOverflowError t) {
-				throw t;
-			} catch (Throwable t) {
-				ctx.addWarning("Could not call getValue() on property ''{0}'', {1}", e.getKey(), t.getLocalizedMessage());
-			}
-
-			out.sTag(i+1, "tr").nl();
-			out.sTag(i+2, "td").nl();
-			serializeAnything(out, key, keyType, ctx, null, 2, null);
-			out.eTag(i+2, "td").nl();
-			out.sTag(i+2, "td").nl();
-			serializeAnything(out, value, valueType, ctx, (key == null ? "_x0000_" : key.toString()), 2, null);
-			out.eTag(i+2, "td").nl();
-			out.eTag(i+1, "tr").nl();
-		}
-		out.eTag(i, "table").nl();
-	}
-
-	@SuppressWarnings({ "rawtypes" })
-	private void serializeBeanMap(HtmlSerializerWriter out, BeanMap m, HtmlSerializerContext ctx, String classAttr, BeanPropertyMeta<?> ppMeta) throws IOException, SerializeException {
-		int i = ctx.getIndent();
-
-		Object o = m.getBean();
-
-		Class<?> c = o.getClass();
-		if (c.isAnnotationPresent(HtmlLink.class)) {
-			HtmlLink h = o.getClass().getAnnotation(HtmlLink.class);
-			Object urlProp = m.get(h.hrefProperty());
-			Object nameProp = m.get(h.nameProperty());
-			out.oTag(i, "a").attrUri("href", urlProp).append('>').encodeText(nameProp).eTag("a").nl();
-			return;
-		}
-
-		out.oTag(i, "table").attr("type", "object");
-		if (classAttr != null)
-			out.attr("_class", classAttr);
-		out.append('>').nl();
-		if (! (m.getClassMeta().getHtmlMeta().isNoTableHeaders() || (ppMeta != null && ppMeta.getHtmlMeta().isNoTableHeaders()))) {
-		out.sTag(i+1, "tr").nl();
-		out.sTag(i+2, "th").nl().appendln(i+3, "<string>key</string>").eTag(i+2, "th").nl();
-		out.sTag(i+2, "th").nl().appendln(i+3, "<string>value</string>").eTag(i+2, "th").nl();
-		out.eTag(i+1, "tr").nl();
-		}
-
-		Iterator mapEntries = m.entrySet().iterator();
-
-		while (mapEntries.hasNext()) {
-			BeanMapEntry p = (BeanMapEntry)mapEntries.next();
-			BeanPropertyMeta pMeta = p.getMeta();
-
-			String key = p.getKey();
-			Object value = null;
-			try {
-				value = p.getValue();
-			} catch (StackOverflowError e) {
-				throw e;
-			} catch (Throwable t) {
-				ctx.addBeanGetterWarning(pMeta, t);
-			}
-
-			if (canIgnoreValue(ctx, pMeta.getClassMeta(), key, value))
-				continue;
-
-			out.sTag(i+1, "tr").nl();
-			out.sTag(i+2, "td").nl();
-			out.sTag(i+3, "string").encodeText(key).eTag("string").nl();
-			out.eTag(i+2, "td").nl();
-			out.sTag(i+2, "td").nl();
-			try {
-				serializeAnything(out, value, p.getMeta().getClassMeta(), ctx, key, 2, pMeta);
-			} catch (SerializeException t) {
-				throw t;
-			} catch (StackOverflowError t) {
-				throw t;
-			} catch (Throwable t) {
-				ctx.addBeanGetterWarning(pMeta, t);
-			}
-			out.eTag(i+2, "td").nl();
-			out.eTag(i+1, "tr").nl();
-		}
-		out.eTag(i, "table").nl();
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private void serializeCollection(HtmlSerializerWriter out, Collection c, ClassMeta<?> type, HtmlSerializerContext ctx, String name, String classAttr, BeanPropertyMeta<?> ppMeta) throws IOException, SerializeException {
-
-		BeanContext bc = ctx.getBeanContext();
-		ClassMeta<?> elementType = type.getElementType();
-
-		int i = ctx.getIndent();
-		if (c.isEmpty()) {
-			out.appendln(i, "<ul></ul>");
-			return;
-		}
-
-		c = sort(ctx, c);
-
-		// Look at the objects to see how we're going to handle them.  Check the first object to see how we're going to handle this.
-		// If it's a map or bean, then we'll create a table.
-		// Otherwise, we'll create a list.
-		String[] th = getTableHeaders(ctx, c, ppMeta);
-
-		if (th != null) {
-
-			out.oTag(i, "table").attr("type", "array");
-			if (classAttr != null)
-				out.attr("_class", classAttr);
-			out.append('>').nl();
-			out.sTag(i+1, "tr").nl();
-			for (String key : th)
-				out.sTag(i+2, "th").append(key).eTag("th").nl();
-			out.eTag(i+1, "tr").nl();
-
-			for (Object o : c) {
-				ClassMeta<?> cm = bc.getClassMetaForObject(o);
-
-				if (cm != null && cm.getPojoFilter() != null) {
-					PojoFilter f = cm.getPojoFilter();
-					o = f.filter(o);
-					cm = cm.getFilteredClassMeta();
-				}
-
-				if (cm != null && ctx.isAddClassAttrs() && elementType.getInnerClass() != o.getClass())
-					out.oTag(i+1, "tr").attr("_class", o.getClass().getName()).append('>').nl();
-				else
-					out.sTag(i+1, "tr").nl();
-
-				if (cm == null) {
-					serializeAnything(out, o, null, ctx, null, 1, null);
-
-				} else if (cm.isMap() && ! (cm.isBeanMap())) {
-					Map m2 = sort(ctx, (Map)o);
-
-					Iterator mapEntries = m2.entrySet().iterator();
-					while (mapEntries.hasNext()) {
-						Map.Entry e = (Map.Entry)mapEntries.next();
-						out.sTag(i+2, "td").nl();
-						serializeAnything(out, e.getValue(), elementType, ctx, e.getKey().toString(), 2, null);
-						out.eTag(i+2, "td").nl();
-					}
-				} else {
-					BeanMap m2 = null;
-					if (o instanceof BeanMap)
-						m2 = (BeanMap)o;
-					else
-						m2 = bc.forBean(o);
-
-					Iterator mapEntries = m2.entrySet().iterator();
-					while (mapEntries.hasNext()) {
-						BeanMapEntry p = (BeanMapEntry)mapEntries.next();
-						BeanPropertyMeta pMeta = p.getMeta();
-						out.sTag(i+2, "td").nl();
-						serializeAnything(out, p.getValue(), pMeta.getClassMeta(), ctx, p.getKey().toString(), 2, pMeta);
-						out.eTag(i+2, "td").nl();
-					}
-				}
-				out.eTag(i+1, "tr").nl();
-			}
-			out.eTag(i, "table").nl();
-
-		} else {
-			out.sTag(i, "ul").nl();
-			for (Object o : c) {
-				out.sTag(i+1, "li").nl();
-				serializeAnything(out, o, elementType, ctx, name, 1, null);
-				out.eTag(i+1, "li").nl();
-			}
-			out.eTag(i, "ul").nl();
-		}
-	}
-
-	/*
-	 * Returns the table column headers for the specified collection of objects.
-	 * Returns null if collection should not be serialized as a 2-dimensional table.
-	 * 2-dimensional tables are used for collections of objects that all have the same set of property names.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private String[] getTableHeaders(SerializerContext ctx, Collection c, BeanPropertyMeta<?> pMeta) throws SerializeException {
-		BeanContext bc = ctx.getBeanContext();
-		if (c.size() == 0)
-			return null;
-		c = sort(ctx, c);
-		String[] th;
-		Set<String> s = new TreeSet<String>();
-		Set<ClassMeta> prevC = new HashSet<ClassMeta>();
-		Object o1 = null;
-		for (Object o : c)
-			if (o != null) {
-				o1 = o;
-				break;
-			}
-		if (o1 == null)
-			return null;
-		ClassMeta cm = bc.getClassMetaForObject(o1);
-		if (cm.getPojoFilter() != null) {
-			PojoFilter f = cm.getPojoFilter();
-			o1 = f.filter(o1);
-			cm = cm.getFilteredClassMeta();
-		}
-		if (cm == null || ! (cm.isMap() || cm.isBean()))
-			return null;
-		if (cm.getInnerClass().isAnnotationPresent(HtmlLink.class))
-			return null;
-		HtmlClassMeta h = cm.getHtmlMeta();
-		if (h.isNoTables() || (pMeta != null && pMeta.getHtmlMeta().isNoTables()))
-				return null;
-		if (h.isNoTableHeaders() || (pMeta != null && pMeta.getHtmlMeta().isNoTableHeaders()))
-				return new String[0];
-		if (canIgnoreValue(ctx, cm, null, o1))
-			return null;
-		if (cm.isMap() && ! cm.isBeanMap()) {
-			Map m = (Map)o1;
-			th = new String[m.size()];
-			int i = 0;
-			for (Object k : m.keySet())
-				th[i++] = (k == null ? null : k.toString());
-		} else {
-			BeanMap<?> bm = (o1 instanceof BeanMap ? (BeanMap)o1 : bc.forBean(o1));
-			List<String> l = new LinkedList<String>();
-			for (String k : bm.keySet())
-				l.add(k);
-			th = l.toArray(new String[l.size()]);
-		}
-		prevC.add(cm);
-		s.addAll(Arrays.asList(th));
-
-		for (Object o : c) {
-			if (o == null)
-				continue;
-			cm = bc.getClassMetaForObject(o);
-			if (cm != null && cm.getPojoFilter() != null) {
-				PojoFilter f = cm.getPojoFilter();
-				o = f.filter(o);
-				cm = cm.getFilteredClassMeta();
-			}
-			if (prevC.contains(cm))
-				continue;
-			if (cm == null || ! (cm.isMap() || cm.isBean()))
-				return null;
-			if (cm.getInnerClass().isAnnotationPresent(HtmlLink.class))
-				return null;
-			if (canIgnoreValue(ctx, cm, null, o))
-				return null;
-			if (cm.isMap() && ! cm.isBeanMap()) {
-				Map m = (Map)o;
-				if (th.length != m.keySet().size())
-					return null;
-				for (Object k : m.keySet())
-					if (! s.contains(k.toString()))
-						return null;
-			} else {
-				BeanMap<?> bm = (o instanceof BeanMap ? (BeanMap)o : bc.forBean(o));
-				int l = 0;
-				for (String k : bm.keySet()) {
-					if (! s.contains(k))
-						return null;
-					l++;
-				}
-				if (s.size() != l)
-					return null;
-			}
-		}
-		return th;
-	}
-
-	/**
-	 * Returns the schema serializer based on the settings of this serializer.
-	 * @return The schema serializer.
-	 */
-	@Override /* XmlSerializer */
-	public HtmlSerializer getSchemaSerializer() {
-		HtmlSchemaDocSerializer s = new HtmlSchemaDocSerializer();
-		s.beanContextFactory = this.beanContextFactory;
-		s.sp = this.sp;
-		s.xsp = this.xsp;
-		s.hsp = this.hsp;
-		return s;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	public HtmlSerializerContext createContext(ObjectMap properties, Method javaMethod) {
-		return new HtmlSerializerContext(getBeanContext(), sp, xsp, hsp, properties, javaMethod);
-	}
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		HtmlSerializerContext hctx = (HtmlSerializerContext)ctx;
-		doSerialize(o, hctx.getWriter(out), hctx);
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer setProperty(String property, Object value) throws LockedException {
-		if (! hsp.setProperty(property, value))
-			super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> HtmlSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public HtmlSerializer lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public HtmlSerializer clone() {
-		HtmlSerializer c = (HtmlSerializer)super.clone();
-		c.hsp = hsp.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/html/HtmlSerializerContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerContext.class
deleted file mode 100755
index d765a69..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerContext.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/html/HtmlSerializerContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerContext.java
deleted file mode 100755
index 16c8774..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerContext.java
+++ /dev/null
@@ -1,147 +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.html;
-
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-import static com.ibm.juno.core.html.HtmlSerializerProperties.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Context object that lives for the duration of a single serialization of {@link HtmlSerializer} and its subclasses.
- * <p>
- * 	See {@link SerializerContext} for details.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class HtmlSerializerContext extends XmlSerializerContext {
-
-	private final String uriAnchorText, title, description, cssUrl;
-	private final String[] cssImports;
-	private final ObjectMap links;
-	private final boolean nowrap;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param beanContext The bean context being used by the serializer.
-	 * @param sp Default general serializer properties.
-	 * @param xsp Default XML serializer properties.
-	 * @param hsp Default HTML serializer properties.
-	 * @param op Override properties.
-	 * @param javaMethod Java method that invoked this serializer.
-	 * 	When using the REST API, this is the Java method invoked by the REST call.
-	 * 	Can be used to access annotations defined on the method or class.
-	 */
-	protected HtmlSerializerContext(BeanContext beanContext, SerializerProperties sp, XmlSerializerProperties xsp, HtmlSerializerProperties hsp, ObjectMap op, Method javaMethod) {
-		super(beanContext, sp, xsp, op, javaMethod);
-		if (op == null || op.isEmpty()) {
-			uriAnchorText = hsp.uriAnchorText;
-			title = hsp.title;
-			description = hsp.description;
-			links = hsp.links;
-			cssUrl = hsp.cssUrl;
-			cssImports = hsp.cssImports;
-			nowrap = hsp.nowrap;
-		} else {
-			uriAnchorText = op.getString(HTML_uriAnchorText, hsp.uriAnchorText);
-			title = op.getString(HTMLDOC_title, hsp.title);
-			description = op.getString(HTMLDOC_description, hsp.description);
-			ObjectMap m = op.getObjectMap(HTMLDOC_links, hsp.links);
-			if (op.containsKey(HTMLDOC_addLinks))
-				if (m == null)
-					m = op.getObjectMap(HTMLDOC_addLinks, null);
-				else
-					m.putAll(op.getObjectMap(HTMLDOC_addLinks, null));
-			links = m;
-			cssUrl = op.getString(HTMLDOC_cssUrl, hsp.cssUrl);
-			cssImports = StringUtils.split(op.getString(HTMLDOC_cssImports, null), ',');
-			nowrap = op.getBoolean(HTMLDOC_cssUrl, hsp.nowrap);
-		}
-	}
-
-	/**
-	 * Returns the {@link HtmlSerializerProperties#HTML_uriAnchorText} setting value in this context.
-	 *
-	 * @return The {@link HtmlSerializerProperties#HTML_uriAnchorText} setting value in this context.
-	 */
-	public final String getUriAnchorText() {
-		return uriAnchorText;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerProperties#HTMLDOC_title} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerProperties#HTMLDOC_title} setting value in this context.
-	 */
-	public final String getTitle() {
-		return title;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerProperties#HTMLDOC_description} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerProperties#HTMLDOC_description} setting value in this context.
-	 */
-	public final String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerProperties#HTMLDOC_links} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerProperties#HTMLDOC_links} setting value in this context.
-	 */
-	public final ObjectMap getLinks() {
-		return links;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerProperties#HTMLDOC_cssUrl} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerProperties#HTMLDOC_cssUrl} setting value in this context.
-	 */
-	public final String getCssUrl() {
-		return cssUrl;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerProperties#HTMLDOC_cssImports} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerProperties#HTMLDOC_cssImports} setting value in this context.
-	 */
-	public final String[] getCssImports() {
-		return cssImports;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerProperties#HTMLDOC_nowrap} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerProperties#HTMLDOC_nowrap} setting value in this context.
-	 */
-	public final boolean isNoWrap() {
-		return nowrap;
-	}
-
-	/**
-	 * Wraps the specified writer in a {@link HtmlSerializerWriter}.
-	 */
-	@Override /* XmlSerializerContext */
-	public HtmlSerializerWriter getWriter(Writer w) {
-		if (w instanceof HtmlSerializerWriter)
-			return (HtmlSerializerWriter)w;
-		return new HtmlSerializerWriter(w, isUseIndentation(), getQuoteChar(), getRelativeUriBase(), getAbsolutePathUriBase());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerProperties.class
deleted file mode 100755
index 6857e05..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerProperties.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/html/HtmlSerializerProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerProperties.java
deleted file mode 100755
index 8b6068d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerProperties.java
+++ /dev/null
@@ -1,113 +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.html;
-
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Configurable properties on the {@link HtmlSerializer} class.
- * <p>
- * 	Use the {@link HtmlSerializer#setProperty(String, Object)} method to set property values.
- * <p>
- * 	In addition to these properties, the following properties are also applicable for {@link HtmlSerializer}.
- * <ul>
- * 	<li>{@link XmlSerializerProperties}
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class HtmlSerializerProperties implements Cloneable {
-
-	/**
-	 * Anchor text source ({@link String}, default={@link #TO_STRING}).
-	 * <p>
-	 * When creating anchor tags (e.g. <code><xt>&lt;a</xt> <xa>href</xa>=<xs>'...'</xs><xt>&gt;</xt>text<xt>&lt;/a&gt;</xt></code>)
-	 * 	in HTML, this setting defines what to set the inner text to.
-	 * <p>
-	 * Possible values:
-	 * <ul>
-	 * 	<li>{@link #TO_STRING} / <js>"toString"</js> - Set to whatever is returned by {@link #toString()} on the object.
-	 * 	<li>{@link #URI} / <js>"uri"</js> - Set to the URI value.
-	 * 	<li>{@link #LAST_TOKEN} / <js>"lastToken"</js> - Set to the last token of the URI value.
-	 * 	<li>{@link #PROPERTY_NAME} / <js>"propertyName"</js> - Set to the bean property name.
-	 * </ul>
-	 */
-	public static final String HTML_uriAnchorText = "HtmlSerializer.uriAnchorText";
-
-	/** Constant for {@link HtmlSerializerProperties#HTML_uriAnchorText} property. */
-	public static final String PROPERTY_NAME = "propertyName";
-	/** Constant for {@link HtmlSerializerProperties#HTML_uriAnchorText} property. */
-	public static final String TO_STRING = "toString";
-	/** Constant for {@link HtmlSerializerProperties#HTML_uriAnchorText} property. */
-	public static final String URI = "uri";
-	/** Constant for {@link HtmlSerializerProperties#HTML_uriAnchorText} property. */
-	public static final String LAST_TOKEN = "lastToken";
-
-	String uriAnchorText = TO_STRING, title, description, cssUrl;
-	String[] cssImports;
-	ObjectMap links;
-	boolean nowrap;
-
-	/**
-	 * 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) {
-		if (property.equals(HTML_uriAnchorText))
-			uriAnchorText = (value == null ? null : value.toString());
-		else if (property.equals(HTMLDOC_title))
-			title = (value == null ? null : value.toString());
-		else if (property.equals(HTMLDOC_description))
-			description = (value == null ? null : value.toString());
-		else if (property.equals(HTMLDOC_nowrap))
-			nowrap = Boolean.valueOf(value.toString());
-		else if (property.equals(HTMLDOC_links))
-			try {
-				links = new ObjectMap(value.toString());
-			} catch (ParseException e) {
-				e.printStackTrace();
-			}
-		else if (property.equals(HTMLDOC_addLinks))
-			try {
-				if (links == null)
-					links = new ObjectMap(value.toString());
-				else
-					links.putAll(new ObjectMap(value.toString()));
-			} catch (ParseException e) {
-				e.printStackTrace();
-			}
-		else if (property.equals(HTMLDOC_cssUrl))
-			cssUrl = (value == null ? null : value.toString());
-		else if (property.equals(HTMLDOC_cssImports))
-			cssImports = StringUtils.split(value == null ? null : value.toString(), ',');
-		else
-			return false;
-		return true;
-	}
-
-	@Override /* Cloneable */
-	public HtmlSerializerProperties clone() {
-		try {
-			return (HtmlSerializerProperties)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/html/HtmlSerializerWriter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerWriter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerWriter.class
deleted file mode 100755
index 52d07fe..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerWriter.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/html/HtmlSerializerWriter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerWriter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerWriter.java
deleted file mode 100755
index 28e2eb4..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlSerializerWriter.java
+++ /dev/null
@@ -1,328 +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.html;
-
-import java.io.*;
-
-import com.ibm.juno.core.xml.*;
-
-/**
- * Specialized writer for serializing HTML.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class HtmlSerializerWriter extends XmlSerializerWriter {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param out The writer being wrapped.
-	 * @param useIndentation If <jk>true</jk>, tabs will be used in output.
-	 * @param quoteChar The quote character to use (i.e. <js>'\''</js> or <js>'"'</js>)
-	 * @param uriContext The web application context path (e.g. "/contextRoot").
-	 * @param uriAuthority The web application URI authority (e.g. "http://hostname:9080")
-	 */
-	public HtmlSerializerWriter(Writer out, boolean useIndentation, char quoteChar, String uriContext, String uriAuthority) {
-		super(out, useIndentation, quoteChar, uriContext, uriAuthority, false, null);
-	}
-
-	/**
-	 * Append an attribute with a URI value.
-	 *
-	 * @param name The attribute name.
-	 * @param value The attribute value.  Can be any object whose <code>toString()</code> method returns a URI.
-	 * @return This object (for method chaining);
-	 * @throws IOException If a problem occurred.
-	 */
-	public HtmlSerializerWriter attrUri(String name, Object value) throws IOException {
-		super.attrUri((String)null, name, value);
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter encodeText(Object o) throws IOException {
-
-		String s = o.toString();
-		for (int i = 0; i < s.length(); i++) {
-			char test = s.charAt(i);
-			if (test == '&')
-				append("&amp;");
-			else if (test == '<')
-				append("&lt;");
-			else if (test == '>')
-				append("&gt;");
-			else if (test == '\n')
-				append("<br/>");
-			else if (test == '\f')
-				append("<ff/>");
-			else if (test == '\b')
-				append("<bs/>");
-			else if (test == '\t')
-				append("<tb/>");
-			else if (Character.isISOControl(test))
-				append("&#" + (int) test + ";");
-			else
-				append(test);
-		}
-
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter oTag(String ns, String name, boolean needsEncoding) throws IOException {
-		super.oTag(ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter oTag(String ns, String name) throws IOException {
-		super.oTag(ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter oTag(String name) throws IOException {
-		super.oTag(name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter oTag(int indent, String ns, String name, boolean needsEncoding) throws IOException {
-		super.oTag(indent, ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter oTag(int indent, String ns, String name) throws IOException {
-		super.oTag(indent, ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter oTag(int indent, String name) throws IOException {
-		super.oTag(indent, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter tag(String ns, String name, boolean needsEncoding) throws IOException {
-		super.tag(ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter tag(String ns, String name) throws IOException {
-		super.tag(ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter tag(String name) throws IOException {
-		super.tag(name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter tag(int indent, String name) throws IOException {
-		super.tag(indent, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter tag(int indent, String ns, String name, boolean needsEncoding) throws IOException {
-		super.tag(indent, ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter tag(int indent, String ns, String name) throws IOException {
-		super.tag(indent, ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter sTag(String ns, String name) throws IOException {
-		super.sTag(ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter sTag(String ns, String name, boolean needsEncoding) throws IOException {
-		super.sTag(ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter sTag(int indent, String ns, String name) throws IOException {
-		super.sTag(indent, ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter sTag(int indent, String name) throws IOException {
-		super.sTag(indent, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter sTag(String name) throws IOException {
-		super.sTag(name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter sTag(int indent, String ns, String name, boolean needsEncoding) throws IOException {
-		super.sTag(indent, ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter eTag(String ns, String name) throws IOException {
-		super.eTag(ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter eTag(String ns, String name, boolean needsEncoding) throws IOException {
-		super.eTag(ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter eTag(int indent, String ns, String name) throws IOException {
-		super.eTag(indent, ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter eTag(int indent, String name) throws IOException {
-		super.eTag(indent, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter eTag(String name) throws IOException {
-		super.eTag(name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter eTag(int indent, String ns, String name, boolean needsEncoding) throws IOException {
-		super.eTag(indent, ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter attr(String name, Object value) throws IOException {
-		super.attr(name, value);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter attr(String ns, String name, Object value) throws IOException {
-		super.attr(ns, name, value);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter attr(String ns, String name, Object value, boolean needsEncoding) throws IOException {
-		super.attr(ns, name, value, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter attr(String name, Object value, boolean needsEncoding) throws IOException {
-		super.attr(null, name, value, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlSerializerWriter oAttr(String ns, String name) throws IOException {
-		super.oAttr(ns, name);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter cr(int depth) throws IOException {
-		super.cr(depth);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter appendln(int indent, String text) throws IOException {
-		super.appendln(indent, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter appendln(String text) throws IOException {
-		super.appendln(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter append(int indent, String text) throws IOException {
-		super.append(indent, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter append(int indent, char c) throws IOException {
-		super.append(indent, c);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter s() throws IOException {
-		super.s();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter q() throws IOException {
-		super.q();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter i(int indent) throws IOException {
-		super.i(indent);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter nl() throws IOException {
-		super.nl();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter append(Object text) throws IOException {
-		super.append(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter append(String text) throws IOException {
-		super.append(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlSerializerWriter append(char c) throws IOException {
-		super.append(c);
-		return this;
-	}
-
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer.java
deleted file mode 100755
index e4894df..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer.java
+++ /dev/null
@@ -1,515 +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.urlencoding;
-
-import static com.ibm.juno.core.urlencoding.UonSerializerProperties.*;
-import static com.ibm.juno.core.urlencoding.UrlEncodingProperties.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-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.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Serializes POJO models to URL-encoded notation with UON-encoded values (a notation for URL-encoded query paramter values).
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>application/x-www-form-urlencoded</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>application/x-www-form-urlencoded</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	This serializer provides several serialization options.  Typically, one of the predefined DEFAULT serializers will be sufficient.
- * 	However, custom serializers can be constructed to fine-tune behavior.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link UonSerializerProperties}
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- * <p>
- * 	The following shows a sample object defined in Javascript:
- * </p>
- * <p class='bcode'>
- * 	{
- * 		id: 1,
- * 		name: <js>'John Smith'</js>,
- * 		uri: <js>'http://sample/addressBook/person/1'</js>,
- * 		addressBookUri: <js>'http://sample/addressBook'</js>,
- * 		birthDate: <js>'1946-08-12T00:00:00Z'</js>,
- * 		otherIds: <jk>null</jk>,
- * 		addresses: [
- * 			{
- * 				uri: <js>'http://sample/addressBook/address/1'</js>,
- * 				personUri: <js>'http://sample/addressBook/person/1'</js>,
- * 				id: 1,
- * 				street: <js>'100 Main Street'</js>,
- * 				city: <js>'Anywhereville'</js>,
- * 				state: <js>'NY'</js>,
- * 				zip: 12345,
- * 				isCurrent: <jk>true</jk>,
- * 			}
- * 		]
- * 	}
- * </p>
- * <p>
- * 	Using the "strict" syntax defined in this document, the equivalent
- * 		URL-encoded notation would be as follows:
- * </p>
- * <p class='bcode'>
- * 	<xa>id</xa>=$n(<xs>1</xs>)
- * 	&amp;<xa>name</xa>=<xs>John+Smith</xs>,
- * 	&amp;<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>,
- * 	&amp;<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,
- * 	&amp;<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>,
- * 	&amp;<xa>otherIds</xa>=<xs>%00</xs>,
- * 	&amp;<xa>addresses</xa>=$a(
- * 		$o(
- * 			<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>,
- * 			<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>,
- * 			<xa>id</xa>=$n(<xs>1</xs>),
- * 			<xa>street</xa>=<xs>100+Main+Street</xs>,
- * 			<xa>city</xa>=<xs>Anywhereville</xs>,
- * 			<xa>state</xa>=<xs>NY</xs>,
- * 			<xa>zip</xa>=$n(<xs>12345</xs>),
- * 			<xa>isCurrent</xa>=$b(<xs>true</xs>)
- * 		)
- * 	)
- * </p>
- * <p>
- * 	A secondary "lax" syntax is available when the data type of the
- * 		values are already known on the receiving end of the transmission:
- * </p>
- * <p class='bcode'>
- * 	<xa>id</xa>=<xs>1</xs>,
- * 	&amp;<xa>name</xa>=<xs>John+Smith</xs>,
- * 	&amp;<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>,
- * 	&amp;<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,
- * 	&amp;<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>,
- * 	&amp;<xa>otherIds</xa>=<xs>%00</xs>,
- * 	&amp;<xa>addresses</xa>=(
- * 		(
- * 			<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>,
- * 			<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>,
- * 			<xa>id</xa>=<xs>1</xs>,
- * 			<xa>street</xa>=<xs>100+Main+Street</xs>,
- * 			<xa>city</xa>=<xs>Anywhereville</xs>,
- * 			<xa>state</xa>=<xs>NY</xs>,
- * 			<xa>zip</xa>=<xs>12345</xs>,
- * 			<xa>isCurrent</xa>=<xs>true</xs>
- * 		)
- * 	)
- * </p>
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Serialize a Map</jc>
- * 	Map m = <jk>new</jk> ObjectMap(<js>"{a:'b',c:1,d:false,e:['f',1,false],g:{h:'i'}}"</js>);
- *
- * 	<jc>// Serialize to value equivalent to JSON.</jc>
- * 	<jc>// Produces "a=b&amp;c=$n(1)&amp;d=$b(false)&amp;e=$a(f,$n(1),$b(false))&amp;g=$o(h=i)"</jc>
- * 	String s = UrlEncodingSerializer.<jsf>DEFAULT</jsf>.serialize(s);
- *
- * 	<jc>// Serialize to simplified value (for when data type is already known by receiver).</jc>
- * 	<jc>// Produces "a=b&amp;c=1&amp;d=false&amp;e=(f,1,false)&amp;g=(h=i))"</jc>
- * 	String s = UrlEncodingSerializer.<jsf>DEFAULT_SIMPLE</jsf>.serialize(s);
- *
- * 	<jc>// Serialize a bean</jc>
- * 	<jk>public class</jk> Person {
- * 		<jk>public</jk> Person(String s);
- * 		<jk>public</jk> String getName();
- * 		<jk>public int</jk> getAge();
- * 		<jk>public</jk> Address getAddress();
- * 		<jk>public boolean</jk> deceased;
- * 	}
- *
- * 	<jk>public class</jk> Address {
- * 		<jk>public</jk> String getStreet();
- * 		<jk>public</jk> String getCity();
- * 		<jk>public</jk> String getState();
- * 		<jk>public int</jk> getZip();
- * 	}
- *
- * 	Person p = <jk>new</jk> Person(<js>"John Doe"</js>, 23, <js>"123 Main St"</js>, <js>"Anywhere"</js>, <js>"NY"</js>, 12345, <jk>false</jk>);
- *
- * 	<jc>// Produces "name=John+Doe&amp;age=23&amp;address=$o(street=123+Main+St,city=Anywhere,state=NY,zip=$n(12345))&amp;deceased=$b(false)"</jc>
- * 	String s = UrlEncodingSerializer.<jsf>DEFAULT</jsf>.serialize(s);
- *
- * 	<jc>// Produces "name=John+Doe&amp;age=23&amp;address=(street=123+Main+St,city=Anywhere,state=NY,zip=12345)&amp;deceased=false)"</jc>
- * 	String s = UrlEncodingSerializer.<jsf>DEFAULT_SIMPLE</jsf>.serialize(s);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces("application/x-www-form-urlencoded")
-@SuppressWarnings("hiding")
-public class UrlEncodingSerializer extends UonSerializer {
-
-	/** Reusable instance of {@link UrlEncodingSerializer}, all default settings. */
-	public static final UrlEncodingSerializer DEFAULT = new UrlEncodingSerializer().lock();
-
-	/** Reusable instance of {@link UrlEncodingSerializer.Simple}. */
-	public static final UrlEncodingSerializer DEFAULT_SIMPLE = new Simple().lock();
-
-	/** Reusable instance of {@link UrlEncodingSerializer.SimpleExpanded}. */
-	public static final UrlEncodingSerializer DEFAULT_SIMPLE_EXPANDED = new SimpleExpanded().lock();
-
-	/** Reusable instance of {@link UrlEncodingSerializer.Readable}. */
-	public static final UrlEncodingSerializer DEFAULT_READABLE = new Readable().lock();
-
-	/**
-	 * Constructor.
-	 */
-	public UrlEncodingSerializer() {
-		setProperty(UON_encodeChars, true);
-	}
-
-	/**
-	 * Equivalent to <code><jk>new</jk> UrlEncodingSerializer().setProperty(UonSerializerProperties.<jsf>UON_simpleMode</jsf>,<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);
-		}
-	}
-
-	/**
-	 * Equivalent to <code><jk>new</jk> UrlEncodingSerializer().setProperty(UonSerializerProperties.<jsf>UON_simpleMode</jsf>,<jk>true</jk>).setProperty(UonSerializerProperties.<jsf>URLENC_expandedParams</jsf>,<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);
-		}
-	}
-
-	/**
-	 * Equivalent to <code><jk>new</jk> UrlEncodingSerializer().setProperty(UonSerializerProperties.<jsf>UON_useWhitespace</jsf>,<jk>true</jk>);</code>.
-	 */
-	public static class Readable extends UrlEncodingSerializer {
-		/** Constructor */
-		public Readable() {
-			setProperty(UON_useWhitespace, true);
-		}
-	}
-
-	/**
-	 * Workhorse method. Determines the type of object, and then calls the
-	 * appropriate type-specific serialization method.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private SerializerWriter serializeAnything(UonSerializerWriter out, Object o, UonSerializerContext ctx) throws SerializeException {
-		try {
-
-			BeanContext bc = ctx.getBeanContext();
-
-			boolean addClassAttr;		// Add "_class" attribute to element?
-			ClassMeta<?> aType;			// The actual type
-			ClassMeta<?> gType;			// The generic type
-
-			aType = ctx.push("root", o, object());
-			ctx.indent--;
-			if (aType == null)
-				aType = object();
-
-			gType = aType.getFilteredClassMeta();
-			addClassAttr = (ctx.isAddClassAttrs());
-
-			// Filter if necessary
-			PojoFilter filter = aType.getPojoFilter();				// The filter
-			if (filter != null) {
-				o = filter.filter(o);
-
-				// If the filter's getFilteredClass() method returns Object, we need to figure out
-				// the actual type now.
-				if (gType.isObject())
-					gType = bc.getClassMetaForObject(o);
-			}
-
-			if (gType.isMap()) {
-				if (o instanceof BeanMap)
-					serializeBeanMap(out, (BeanMap)o, addClassAttr, ctx);
-				else
-					serializeMap(out, (Map)o, gType, ctx);
-			} else if (gType.hasToObjectMapMethod()) {
-				serializeMap(out, gType.toObjectMap(o), gType, ctx);
-			} else if (gType.isBean()) {
-				serializeBeanMap(out, bc.forBean(o), addClassAttr, ctx);
-			} else if (gType.isCollection()) {
-				serializeMap(out, getCollectionMap((Collection)o), bc.getMapClassMeta(Map.class, Integer.class, gType.getElementType()), ctx);
-			} else {
-				// All other types can't be serialized as key/value pairs, so we create a
-				// mock key/value pair with a "_value" key.
-				out.append("_value=");
-				super.serializeAnything(out, o, null, ctx, null, null, false, true);
-			}
-
-			ctx.pop();
-			return out;
-		} catch (SerializeException e) {
-			throw e;
-		} catch (StackOverflowError e) {
-			throw e;
-		} catch (Throwable e) {
-			throw new SerializeException("Exception occurred trying to process object of type ''{0}''", (o == null ? null : o.getClass().getName())).initCause(e);
-		}
-	}
-
-	private Map<Integer,Object> getCollectionMap(Collection<?> c) {
-		Map<Integer,Object> m = new TreeMap<Integer,Object>();
-		int i = 0;
-		for (Object o : c)
-			m.put(i++, o);
-		return m;
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private SerializerWriter serializeMap(UonSerializerWriter out, Map m, ClassMeta<?> type, UonSerializerContext ctx) throws IOException, SerializeException {
-
-		m = sort(ctx, m);
-
-		ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
-
-		int depth = ctx.getIndent();
-		boolean addAmp = false;
-
-		Iterator mapEntries = m.entrySet().iterator();
-
-		while (mapEntries.hasNext()) {
-			Map.Entry e = (Map.Entry) mapEntries.next();
-			Object value = e.getValue();
-			Object key = generalize(ctx, e.getKey(), keyType);
-
-
-			if (shouldUseExpandedParams(value, ctx)) {
-				Iterator i = value instanceof Collection ? ((Collection)value).iterator() : ArrayUtils.iterator(value);
-				while (i.hasNext()) {
-					if (addAmp)
-						out.cr(depth).append('&');
-					out.appendObject(key, false, true, true).append('=');
-					super.serializeAnything(out, i.next(), null, ctx, (key == null ? null : key.toString()), null, false, true);
-					addAmp = true;
-				}
-			} else {
-				if (addAmp)
-					out.cr(depth).append('&');
-			out.appendObject(key, false, true, true).append('=');
-			super.serializeAnything(out, value, valueType, ctx, (key == null ? null : key.toString()), null, false, true);
-				addAmp = true;
-			}
-		}
-
-		return out;
-	}
-
-	@SuppressWarnings({ "rawtypes" })
-	private SerializerWriter serializeBeanMap(UonSerializerWriter out, BeanMap m, boolean addClassAttr, UonSerializerContext ctx) throws IOException, SerializeException {
-		int depth = ctx.getIndent();
-
-		Iterator mapEntries = m.entrySet().iterator();
-
-		// Print out "_class" attribute on this bean if required.
-		if (addClassAttr) {
-			String attr = "_class";
-			out.appendObject(attr, false, false, true).append('=').append(m.getClassMeta().getInnerClass().getName());
-			if (mapEntries.hasNext())
-				out.cr(depth).append('&');
-		}
-
-		boolean addAmp = false;
-
-		while (mapEntries.hasNext()) {
-			BeanMapEntry p = (BeanMapEntry)mapEntries.next();
-			BeanPropertyMeta pMeta = p.getMeta();
-
-			String key = p.getKey();
-			Object value = null;
-			try {
-				value = p.getValue();
-			} catch (StackOverflowError e) {
-				throw e;
-			} catch (Throwable t) {
-				ctx.addBeanGetterWarning(pMeta, t);
-			}
-
-			if (canIgnoreValue(ctx, pMeta.getClassMeta(), key, value))
-				continue;
-
-			if (value != null && shouldUseExpandedParams(pMeta, ctx)) {
-				ClassMeta cm = pMeta.getClassMeta();
-				// Filtered object array bean properties may be filtered resulting in ArrayLists,
-				// so we need to check type if we think it's an array.
-				Iterator i = (cm.isCollection() || value instanceof Collection) ? ((Collection)value).iterator() : ArrayUtils.iterator(value);
-				while (i.hasNext()) {
-					if (addAmp)
-						out.cr(depth).append('&');
-
-					out.appendObject(key, false, true, true).append('=');
-
-					super.serializeAnything(out, i.next(), pMeta.getClassMeta().getElementType(), ctx, key, pMeta, false, true);
-
-					addAmp = true;
-				}
-			} else {
-				if (addAmp)
-					out.cr(depth).append('&');
-
-				out.appendObject(key, false, true, true).append('=');
-
-				super.serializeAnything(out, value, pMeta.getClassMeta(), ctx, key, pMeta, false, true);
-
-				addAmp = true;
-			}
-
-		}
-		return out;
-	}
-
-	/**
-	 * Returns true if the specified bean property should be expanded as multiple key-value pairs.
-	 */
-	private final boolean shouldUseExpandedParams(BeanPropertyMeta<?> pMeta, UonSerializerContext ctx) {
-		ClassMeta<?> cm = pMeta.getClassMeta();
-		if (cm.isArray() || cm.isCollection()) {
-			if (ctx.isExpandedParams())
-				return true;
-			if (pMeta.getBeanMeta().getClassMeta().getUrlEncodingMeta().isExpandedParams())
-				return true;
-		}
-		return false;
-	}
-
-	private final boolean shouldUseExpandedParams(Object value, UonSerializerContext ctx) {
-		if (value == null)
-			return false;
-		ClassMeta<?> cm = ctx.getBeanContext().getClassMetaForObject(value).getFilteredClassMeta();
-		if (cm.isArray() || cm.isCollection()) {
-			if (ctx.isExpandedParams())
-				return true;
-		}
-		return false;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Methods for constructing individual parameter values.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Converts the specified object to a string using this serializers {@link BeanContext#convertToType(Object, Class)} method
-	 * 	and runs {@link URLEncoder#encode(String,String)} against the results.
-	 * Useful for constructing URL parts.
-	 *
-	 * @param o The object to serialize.
-	 * @return The serialized object.
-	 */
-	public String serializeUrlPart(Object o) {
-		try {
-			// Shortcut for simple types.
-			ClassMeta<?> cm = getBeanContext().getClassMetaForObject(o);
-			if (cm != null)
-				if (cm.isCharSequence() || cm.isNumber() || cm.isBoolean())
-					return o.toString();
-
-			UonSerializerContext uctx = createContext(null, null);
-			StringWriter w = new StringWriter();
-			super.doSerialize(o, w, uctx);
-			return w.toString();
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	public UonSerializerContext createContext(ObjectMap properties, Method javaMethod) {
-		return new UonSerializerContext(getBeanContext(), sp, usp, uep, properties, javaMethod);
-	}
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		UonSerializerContext uctx = (UonSerializerContext)ctx;
-		serializeAnything(uctx.getWriter(out), o, uctx);
-	}
-
-	@Override /* CoreApi */
-	public UrlEncodingSerializer setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! usp.setProperty(property, value))
-			if (! uep.setProperty(property, value))
-				super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UrlEncodingSerializer setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UrlEncodingSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UrlEncodingSerializer addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> UrlEncodingSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UrlEncodingSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public UrlEncodingSerializer lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public UrlEncodingSerializer clone() {
-		UrlEncodingSerializer c = (UrlEncodingSerializer)super.clone();
-		c.usp = usp.clone();
-		c.uep = uep.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/urlencoding/annotation/UrlEncoding.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/UrlEncoding.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/UrlEncoding.class
deleted file mode 100755
index 84e2638..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/UrlEncoding.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/annotation/UrlEncoding.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/UrlEncoding.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/UrlEncoding.java
deleted file mode 100755
index d0870ad..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/UrlEncoding.java
+++ /dev/null
@@ -1,37 +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.urlencoding.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.urlencoding.*;
-
-/**
- * Annotation that can be applied to classes, fields, and methods to tweak how
- * they are handled by {@link UrlEncodingSerializer} and {@link UrlEncodingParser}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({TYPE})
-@Retention(RUNTIME)
-@Inherited
-public @interface UrlEncoding {
-
-	/**
-	 * When true, bean properties of type array or Collection will be expanded into multiple key=value pairings.
-	 * <p>
-	 * This annotation is identical in behavior to using the {@link UrlEncodingProperties#URLENC_expandedParams} 
-	 * property, but applies to only instances of this bean.  
-	 */
-	boolean expandedParams() default false;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/package.html
deleted file mode 100755
index 806eadb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/annotation/package.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-    Licensed Materials - Property of IBM
-    (c) Copyright IBM Corporation 2015 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>URL-Encoding annotations</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/doc-files/Example_HTML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/Example_HTML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/Example_HTML.png
deleted file mode 100755
index ab74763..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/Example_HTML.png 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/doc-files/Example_UrlEncoding.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/Example_UrlEncoding.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/Example_UrlEncoding.png
deleted file mode 100755
index 34de8a7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/Example_UrlEncoding.png 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/doc-files/rfc_uon.txt
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/rfc_uon.txt b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/rfc_uon.txt
deleted file mode 100755
index c79c9c5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/doc-files/rfc_uon.txt
+++ /dev/null
@@ -1,352 +0,0 @@
-Network Working Group                                          J. Bognar
-Request for Comments: 9999                                     C. Chaney  
-Category: Informational                                              IBM
-                                                                Jan 2014
-
-                            ***DRAFT***
-               URI Object Notation (UON): Generic Syntax
-
-
-About this document
-
-   This memo provides information for the Internet community.  It does
-   not specify an Internet standard of any kind.  Distribution of this
-   memo is unlimited.
-
-Copyright Notice
-
-   Copyright (C) IBM Corp. 2014.  All Rights Reserved.
-
-Abstract
-
-   This document describes a grammar that builds upon RFC2396
-   (Uniform Resource Identifiers).  Its purpose is to define a 
-   generalized object notation for URI query parameter values similar in 
-   concept to Javascript Object Notation (RFC4627).  The goal is a 
-   syntax such that any data structure defined in JSON can be losslessly 
-   defined in an equivalent URI-based grammar, yet be fully compliant 
-   with the RFC2396 specification. 
-
-   This grammar provides the ability to construct the following data 
-   structures in URL parameter values: 
-	
-      OBJECT
-      ARRAY
-      NUMBER
-      BOOLEAN
-      STRING
-      NULL
-
-   Example:
-
-      The following shows a sample object defined in Javascript:
-
-         var x = { 
-            id: 1, 
-            name: 'John Smith', 
-            uri: 'http://sample/addressBook/person/1', 
-            addressBookUri: 'http://sample/addressBook', 
-            birthDate: '1946-08-12T00:00:00Z', 
-            otherIds: null,
-            addresses: [ 
-               { 
-                  uri: 'http://sample/addressBook/address/1', 
-                  personUri: 'http://sample/addressBook/person/1', 
-                  id: 1, 
-                  street: '100 Main Street', 
-                  city: 'Anywhereville', 
-                  state: 'NY', 
-                  zip: 12345, 
-                  isCurrent: true,
-               } 
-            ] 
-         } 
-
-      Using the "strict" syntax defined in this document, the equivalent 
-      UON notation would be as follows:
-
-         x=$o(id=$n(1),name=John+Smith,uri=http://sample/
-         addressBook/person/1,addressBookUri=http://sample/
-         addressBook,birthDate=1946-08-12T00:00:00Z,otherIds=%00,
-         addresses=$a($o(uri=http://sample/addressBook/
-         address/1,personUri=http://sample/addressBook/
-         person/1,id=$n(1),street=100+Main+Street,city=
-         Anywhereville,state=NY,zip=$n(12345),isCurrent=$b(true)))) 
-
-      A secondary "lax" syntax is available when the data type of the
-      values are already known on the receiving end of the transmission:
-
-         x=(id=1,name=John+Smith,uri=http://sample/
-         addressBook/person/1,addressBookUri=http://sample/
-         addressBook,birthDate=1946-08-12T00:00:00Z,otherIds=%00,
-         addresses=((uri=http://sample/addressBook/
-         address/1,personUri=http://sample/addressBook/
-         person/1,id=1,street=100+Main+Street,city=
-         Anywhereville,state=NY,zip=12345,isCurrent=true))) 
-
-      Values represented in strict mode can be losslessly converted
-      back and forth into a JSON model without any additional
-      information.  Values represented in lax mode cannot.
-
-1. Language constraints
-
-   The grammar syntax is constrained to usage of characters allowed by 
-      URI notation:
-
-      uric       = reserved | unreserved | escaped
-      reserved   = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
-                   "$" | ","
-      unreserved = alphanum | mark
-      mark       = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
-
-   In particular, the URI specification disallows the following 
-   characters in unencoded form:
-
-      unwise     = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
-      delims     = "<" | ">" | "#" | "%" | <">
-
-   The exclusion of {} and [] characters eliminates the possibility of 
-   using JSON as parameter values.
-
-
-2. Grammar constructs
-
-   The grammar consists of the following language constructs:
-   
-      Objects - Values consisting of one or more child name/value pairs.
-      Arrays - Values consisting of zero or more child values.
-      Booleans - Values consisting of true/false values.
-      Numbers - Decimal and floating point values.
-      Strings - Everything else.
-
-2.1. Objects 
-
-   Objects are values consisting of one or more child name/value pairs.
-   The $o() construct is used to define an object.
-
-   Example:  A simple map with two key/value pairs:
-
-      a1=$o(b1=x1,b2=x2)
-
-   Example:  A nested map:
-   
-      a1=$o(b1=$o(c1=x1,c2=x2))
-
-   When the data type is already known to be an object on the receiving 
-   end, then the type flag can be removed from the construct to produce
-   a simplified value. 
-
-   Example:  A nested map using "lax" syntax:
-
-     a1=(b1=(c1=x1,c2=x2))
-
-2.2. Arrays
-
-   Arrays are values consisting of zero or more child values.
-   The $a() construct is used to define an array.
-
-   Example:  An array of two string values:
-
-      a1=$a(x1,x2)
-
-   Example:  A 2-dimensional array:
-
-      a1=$a($a(x1,x2),$a(x3,x4))
-
-   Example:  An array of objects:
-
-      a1=$a($o(b1=x1,b2=x2),$o(c1=x1,c2=x2))
-
-   When the data type is already known to be an array on the receiving 
-   end, then the type flag can be removed from the construct to produce
-   a simplified value. 
-   
-   Example:  An array of objects using "lax" syntax:
-
-      a1=((b1=x1,b2=x2),(c1=x1,c2=x2))
-
-2.3. Booleans
-
-   Booleans are values that can only take on values "true" or "false".  
-   The $b() construct is used to define a boolean.
-   
-   Example:  Two boolean values:
-
-      a1=$b(true)&a2=$b(false)
-   
-   When the data type is already known to be a boolean on the receiving 
-   end, then the type flag and parentheses can be removed from the 
-   construct to produce a simplified value. 
-
-   Example:  Two boolean values using "lax" syntax:
-
-      a1=true&a2=false
-
-2.4. Numbers
-
-   The $n() construct is used to define a number.
-   Both decimal and float numbers are supported.
-   
-   Example:  Two numerical values, one decimal and one float:
-
-      a1=$n(123)&a2=$n(1.23e1)
-
-   When the data type is already known to be a number on the receiving 
-   end, then the type flag and parentheses can be removed from the 
-   construct to produce a simplified value. 
-   
-   Example:  Two numerical values using "lax" syntax:
-
-      a1=123&a2=1.23e1
-
-2.5. Strings
-
-   Anything not conforming to one of the constructs described above 
-   are treated as simple strings.  
-   
-   Example:  A simple string value:
-
-      a1=foobar
-   
-   The tilde character (~) is used for escaping characters to prevent 
-   them from being confused with syntax characters.  
-
-   The following characters must be escaped in string literals:  
-
-      $ , ( ) ~ =
-   
-   For example, the string literal "$o(b1=x)" should be 
-   represented as follows:
-
-      a1=~$o~(b1~=x~)
-   
-   In addition, strings can optionally be enclosed in parentheses
-   when needed to handle ambiguous cases.
-   
-   The following two values are equivalent:
-   
-      a1=foobar
-      a1=(foobar)
-      
-   Using parentheses, the following construct can be used to represent
-   an empty string:
-   
-      a1=()
-   
-   The purpose for this is to handle a potential ambiguity in the 
-   representation of an empty array ([]) vs. an array containing one
-   empty string ([""]).  An array containing one empty string is 
-   represented as follows:
-
-      a1=$a(())
-
-   Without this construct, there would not be a way to tell the 
-   difference between an empty array and an array containing an empty    
-   string:
-
-      a1=$a()
-
-   Note that an array consisting of two empty strings does not suffer 
-   from this ambiguity, and the use of parenthesis is optional in 
-   this case: 
-
-      a1=$a(,)
-
-2.7. Null values
-
-   Nulls are represented by ASCII '0' as an escaped hex sequence:
-
-      a1=%00
-
-   Note that a string consisting of a single null character can be 
-   represented with the following construct:
-
-      a1=(%00)
-
-2.8. Top-level attribute names
-
-   Top-level attribute names (e.g. "a1" in "&a1=foobar") are treated
-   as strings but for one exception.  The '=' character must be
-   encoded so as not to be confused as a key/value separator.
-   Note that the '=' character must also be escaped per the UON
-   notation.
-   
-   For example, the UON equivalent of {"a=b":"a=b"} constructed as
-   a top-level query parameter string would be as follows:
-   
-      a~%3Db=a~=b
-      
-   Note that the '=' character is encoded in the attribute name,
-   but it is not necessary to have it encoded in the attribute value.
-
-2.9. URL-encoded characters
-
-   UON notation allows for any character, even UON grammar
-   characters, to be URL-encoded.
-   
-   The following query strings are fully equivalent in structure:
-   
-     a1=$o(b1=x1,b2=x2)
-     %61%31=%24%6F%28%62%31%3D%78%31%2C%62%32%3D%78%32%29
-
-
-3. BNF
-
-   The following BNF describes the syntax for top-level URI query 
-   parameter values (e.g. ?<attrname>=<value>).
-
-   attrname    = (string | null)
-   value       = (var | string | null)
-
-   string      = ("(" litchar* ")") | litchar*
-   null        = "%00"
-   
-   var         = ovar | avar | nvar | bvar
-   ovar        = ovar_strict | ovar_lax
-   avar        = avar_strict | avar_lax
-   nvar        = nvar_strict | nvar_lax
-   bvar        = bvar_strict | bvar_lax
-   ovar_strict = "$o(" [pairs] ")"
-   ovar_lax    =   "(" [pairs] ")"
-   avar_strict = "$a(" [values] ")"
-   avar_lax    =   "(" [values] ")"
-   nvar_strict = "$n(" number ")"
-   nvar_lax    =       number
-   bvar_strict = "$b(" boolean ")" 
-   bvar_lax    =       boolean
-
-   pairs       = pair ["," pairs]
-   pair        = key "=" value	
-   values      = value ["," values]
-   key         = (string | null)
-   boolean     = "true" | "false"
-
-   escape_seq  = "~" escaped
-   encode_seq  = "%" digithex digithex
-
-   number      = [-] (decimal | float) [exp]
-   decimal     = "0" | (digit19 digit*)
-   float       = decimal "." digit+
-   exp         = "e" [("+" | "-")] digit+
-
-   litchar     = unencoded | encode_seq | escape_seq
-   escaped     = "$" | "," | "(" | ")" | "~" | "=" 
-   unencoded   = alpha | digit | 
-                 ";" | "/" | "?" | ":" | "@" |
-                 "-" | "_" | "." | "!" | "*" | "'" 
-   alpha       = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" |
-                 "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" |
-                 "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" |
-                 "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" |             
-                 "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" |
-                 "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
-   digit       = "0" | digit19
-   digit19     = "1" | "2" | "3" | "4" | "5" | "6" | "7" |
-                 "8" | "9"
-   digithex    = digit | 
-                 "A" | "B" | "C" | "D" | "E" | "F" |
-                 "a" | "b" | "c" | "d" | "e" | "f"
-
-
-
-


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

Posted by ja...@apache.org.
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.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserReader.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserReader.java
deleted file mode 100755
index 621164e..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserReader.java
+++ /dev/null
@@ -1,195 +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 java.io.*;
-
-import com.ibm.juno.core.parser.*;
-
-/**
- * Same functionality as {@link ParserReader} except automatically decoded <code>%xx</code> escape sequences.
- * <p>
- * Escape sequences are assumed to be encoded UTF-8.  Extended Unicode (&gt;\u10000) is supported.
- * <p>
- * If decoding is enabled, the following character replacements occur so that boundaries are not lost:
- * <ul>
- * 	<li><js>'&'</js> -&gt; <js>'\u0001'</js>
- * 	<li><js>'='</js> -&gt; <js>'\u0002'</js>
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class UonParserReader extends ParserReader {
-
-	private final boolean decodeChars;
-	private final char[] buff;
-	private int iCurrent, iEnd;
-
-	/**
-	 * Constructor for input from a {@link CharSequence}.
-	 *
-	 * @param in The character sequence being read from.
-	 * @param decodeChars If <jk>true</jk>, decode <code>%xx</code> escape sequences.
-	 */
-	public UonParserReader(CharSequence in, boolean decodeChars) {
-		super(in);
-		this.decodeChars = decodeChars;
-		if (in == null || ! decodeChars)
-			this.buff = new char[0];
-		else
-			this.buff = new char[in.length() < 1024 ? in.length() : 1024];
-	}
-
-	/**
-	 * Constructor for input from a {@link Reader}).
-	 *
-	 * @param r The Reader being wrapped.
-	 * @param buffSize Buffer size.
-	 * @param decodeChars If <jk>true</jk>, decode <code>%xx</code> escape sequences.
-	 */
-	public UonParserReader(Reader r, int buffSize, boolean decodeChars) {
-		super(r, buffSize);
-		this.decodeChars = decodeChars;
-		buffSize = decodeChars ? (buffSize <= 0 ? 1024 : Math.max(buffSize, 20)) : 0;
-		this.buff = new char[buffSize];
-	}
-
-	@Override /* Reader */
-	public final int read(char[] cbuf, int off, int len) throws IOException {
-
-		if (! decodeChars)
-			return super.read(cbuf, off, len);
-
-		// Copy any remainder to the beginning of the buffer.
-		int remainder = iEnd - iCurrent;
-		if (remainder > 0)
-			System.arraycopy(buff, iCurrent, buff, 0, remainder);
-		iCurrent = 0;
-
-		int expected = buff.length - remainder;
-
-		int x = super.read(buff, remainder, expected);
-		if (x == -1 && remainder == 0)
-			return -1;
-
-		iEnd = remainder + (x == -1 ? 0 : x);
-
-		int i = 0;
-		while (i < len) {
-			if (iCurrent >= iEnd)
-				return i;
-			char c = buff[iCurrent++];
-			if (c == '+') {
-				cbuf[off + i++] = ' ';
-			} else if (c == '&') {
-				cbuf[off + i++] = '\u0001';
-			} else if (c == '=') {
-				cbuf[off + i++] = '\u0002';
-			} else if (c != '%') {
-				cbuf[off + i++] = c;
-			} else {
-				int iMark = iCurrent-1;  // Keep track of current position.
-
-				// Stop if there aren't at least two more characters following '%' in the buffer,
-				// or there aren't at least two more positions open in cbuf to handle double-char chars.
-				if (iMark+2 >= iEnd || i+2 > len) {
-					iCurrent--;
-					return i;
-				}
-
-				int b0 = readEncodedByte();
-				int cx;
-
-				// 0xxxxxxx
-				if (b0 < 128) {
-					cx = b0;
-
-				// 10xxxxxx
-				} else if (b0 < 192) {
-					throw new IOException("Invalid hex value for first escape pattern in UTF-8 sequence:  " + b0);
-
-				// 110xxxxx	10xxxxxx
-				// 11000000(192) - 11011111(223)
-				} else if (b0 < 224) {
-					cx = readUTF8(b0-192, 1);
-					if (cx == -1) {
-						iCurrent = iMark;
-						return i;
-					}
-
-				// 1110xxxx	10xxxxxx	10xxxxxx
-				// 11100000(224) - 11101111(239)
-				} else if (b0 < 240) {
-					cx = readUTF8(b0-224, 2);
-					if (cx == -1) {
-						iCurrent = iMark;
-						return i;
-					}
-
-				// 11110xxx	10xxxxxx	10xxxxxx	10xxxxxx
-				// 11110000(240) - 11110111(247)
-				} else if (b0 < 248) {
-					cx = readUTF8(b0-240, 3);
-					if (cx == -1) {
-						iCurrent = iMark;
-						return i;
-					}
-
-				} else
-					throw new IOException("Invalid hex value for first escape pattern in UTF-8 sequence:  " + b0);
-
-				if (cx < 0x10000)
-					cbuf[off + i++] = (char)cx;
-				else {
-					cx -= 0x10000;
-					cbuf[off + i++] = (char)(0xd800 + (cx >> 10));
-					cbuf[off + i++] = (char)(0xdc00 + (cx & 0x3ff));
-				}
-			}
-		}
-		return i;
-	}
-
-	private final int readUTF8(int n, final int numBytes) throws IOException {
-		if (iCurrent + numBytes*3 > iEnd)
-			return -1;
-		for (int i = 0; i < numBytes; i++) {
-			n <<= 6;
-			n += readHex()-128;
-		}
-		return n;
-	}
-
-	private final int readHex() throws IOException {
-		int c = buff[iCurrent++];
-		if (c != '%')
-			throw new IOException("Did not find expected '%' character in UTF-8 sequence.");
-		return readEncodedByte();
-	}
-
-	private final int readEncodedByte() throws IOException {
-		if (iEnd <= iCurrent + 1)
-			throw new IOException("Incomplete trailing escape pattern");
-		int h = buff[iCurrent++];
-		int l = buff[iCurrent++];
-		h = fromHexChar(h);
-		l = fromHexChar(l);
-		return (h << 4) + l;
-	}
-
-	private final int fromHexChar(int c) throws IOException {
-		if (c >= '0' && c <= '9')
-			return c - '0';
-		if (c >= 'a' && c <= 'f')
-			return 10 + c - 'a';
-		if (c >= 'A' && c <= 'F')
-			return 10 + c - 'A';
-		throw new IOException("Invalid hex character '"+c+"' found in escape pattern.");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Encoding.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Encoding.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Encoding.class
deleted file mode 100755
index 5fca57c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Encoding.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/UonSerializer$Readable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Readable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Readable.class
deleted file mode 100755
index c4e6b57..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Readable.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/UonSerializer$Simple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Simple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Simple.class
deleted file mode 100755
index 1ecf09c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$Simple.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/UonSerializer$SimpleEncoding.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$SimpleEncoding.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$SimpleEncoding.class
deleted file mode 100755
index 2d0a383..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer$SimpleEncoding.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/UonSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer.class
deleted file mode 100755
index 4ca7cf1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer.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/UonSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer.java
deleted file mode 100755
index cb16038..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializer.java
+++ /dev/null
@@ -1,532 +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.urlencoding;
-
-import static com.ibm.juno.core.serializer.SerializerProperties.*;
-import static com.ibm.juno.core.urlencoding.UonSerializerProperties.*;
-
-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.serializer.*;
-
-/**
- * Serializes POJO models to UON (a notation for URL-encoded query parameter values).
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>text/uon</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>text/uon</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	This serializer provides several serialization options.  Typically, one of the predefined DEFAULT serializers will be sufficient.
- * 	However, custom serializers can be constructed to fine-tune behavior.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link UonSerializerProperties}
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- * <p>
- * 	The following shows a sample object defined in Javascript:
- * </p>
- * <p class='bcode'>
- * 	{
- * 		id: 1,
- * 		name: <js>'John Smith'</js>,
- * 		uri: <js>'http://sample/addressBook/person/1'</js>,
- * 		addressBookUri: <js>'http://sample/addressBook'</js>,
- * 		birthDate: <js>'1946-08-12T00:00:00Z'</js>,
- * 		otherIds: <jk>null</jk>,
- * 		addresses: [
- * 			{
- * 				uri: <js>'http://sample/addressBook/address/1'</js>,
- * 				personUri: <js>'http://sample/addressBook/person/1'</js>,
- * 				id: 1,
- * 				street: <js>'100 Main Street'</js>,
- * 				city: <js>'Anywhereville'</js>,
- * 				state: <js>'NY'</js>,
- * 				zip: 12345,
- * 				isCurrent: <jk>true</jk>,
- * 			}
- * 		]
- * 	}
- * </p>
- * <p>
- * 	Using the "strict" syntax defined in this document, the equivalent
- * 		UON notation would be as follows:
- * </p>
- * <p class='bcode'>
- * 	$o(
- * 		<xa>id</xa>=$n(<xs>1</xs>),
- * 		<xa>name</xa>=<xs>John+Smith</xs>,
- * 		<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>,
- * 		<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,
- * 		<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>,
- * 		<xa>otherIds</xa>=<xs>%00</xs>,
- * 		<xa>addresses</xa>=$a(
- * 			$o(
- * 				<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>,
- * 				<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>,
- * 				<xa>id</xa>=$n(<xs>1</xs>),
- * 				<xa>street</xa>=<xs>100+Main+Street</xs>,
- * 				<xa>city</xa>=<xs>Anywhereville</xs>,
- * 				<xa>state</xa>=<xs>NY</xs>,
- * 				<xa>zip</xa>=$n(<xs>12345</xs>),
- * 				<xa>isCurrent</xa>=$b(<xs>true</xs>)
- * 			)
- * 		)
- * 	)
- * </p>
- * <p>
- * 	A secondary "lax" syntax is available when the data type of the
- * 		values are already known on the receiving end of the transmission:
- * </p>
- * <p class='bcode'>
- * 	(
- * 		<xa>id</xa>=<xs>1</xs>,
- * 		<xa>name</xa>=<xs>John+Smith</xs>,
- * 		<xa>uri</xa>=<xs>http://sample/addressBook/person/1</xs>,
- * 		<xa>addressBookUri</xa>=<xs>http://sample/addressBook</xs>,
- * 		<xa>birthDate</xa>=<xs>1946-08-12T00:00:00Z</xs>,
- * 		<xa>otherIds</xa>=<xs>%00</xs>,
- * 		<xa>addresses</xa>=(
- * 			(
- * 				<xa>uri</xa>=<xs>http://sample/addressBook/address/1</xs>,
- * 				<xa>personUri</xa>=<xs>http://sample/addressBook/person/1</xs>,
- * 				<xa>id</xa>=<xs>1</xs>,
- * 				<xa>street</xa>=<xs>100+Main+Street</xs>,
- * 				<xa>city</xa>=<xs>Anywhereville</xs>,
- * 				<xa>state</xa>=<xs>NY</xs>,
- * 				<xa>zip</xa>=<xs>12345</xs>,
- * 				<xa>isCurrent</xa>=<xs>true</xs>
- * 			)
- * 		)
- * 	)
- * </p>
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Serialize a Map</jc>
- * 	Map m = <jk>new</jk> ObjectMap(<js>"{a:'b',c:1,d:false,e:['f',1,false],g:{h:'i'}}"</js>);
- *
- * 	<jc>// Serialize to value equivalent to JSON.</jc>
- * 	<jc>// Produces "$o(a=b,c=$n(1),d=$b(false),e=$a(f,$n(1),$b(false)),g=$o(h=i))"</jc>
- * 	String s = UonSerializer.<jsf>DEFAULT</jsf>.serialize(s);
- *
- * 	<jc>// Serialize to simplified value (for when data type is already known by receiver).</jc>
- * 	<jc>// Produces "(a=b,c=1,d=false,e=(f,1,false),g=(h=i))"</jc>
- * 	String s = UonSerializer.<jsf>DEFAULT_SIMPLE</jsf>.serialize(s);
- *
- * 	<jc>// Serialize a bean</jc>
- * 	<jk>public class</jk> Person {
- * 		<jk>public</jk> Person(String s);
- * 		<jk>public</jk> String getName();
- * 		<jk>public int</jk> getAge();
- * 		<jk>public</jk> Address getAddress();
- * 		<jk>public boolean</jk> deceased;
- * 	}
- *
- * 	<jk>public class</jk> Address {
- * 		<jk>public</jk> String getStreet();
- * 		<jk>public</jk> String getCity();
- * 		<jk>public</jk> String getState();
- * 		<jk>public int</jk> getZip();
- * 	}
- *
- * 	Person p = <jk>new</jk> Person(<js>"John Doe"</js>, 23, <js>"123 Main St"</js>, <js>"Anywhere"</js>, <js>"NY"</js>, 12345, <jk>false</jk>);
- *
- * 	<jc>// Produces "$o(name=John Doe,age=23,address=$o(street=123 Main St,city=Anywhere,state=NY,zip=$n(12345)),deceased=$b(false))"</jc>
- * 	String s = UonSerializer.<jsf>DEFAULT</jsf>.serialize(s);
- *
- * 	<jc>// Produces "(name=John Doe,age=23,address=(street=123 Main St,city=Anywhere,state=NY,zip=12345),deceased=false)"</jc>
- * 	String s = UonSerializer.<jsf>DEFAULT_SIMPLE</jsf>.serialize(s);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces("text/uon")
-public class UonSerializer extends WriterSerializer {
-
-	/** Reusable instance of {@link UonSerializer}, all default settings. */
-	public static final UonSerializer DEFAULT = new UonSerializer().lock();
-
-	/** Reusable instance of {@link UonSerializer.Simple}. */
-	public static final UonSerializer DEFAULT_SIMPLE = new Simple().lock();
-
-	/** Reusable instance of {@link UonSerializer.Readable}. */
-	public static final UonSerializer DEFAULT_READABLE = new Readable().lock();
-
-	/** Reusable instance of {@link UonSerializer.Encoding}. */
-	public static final UonSerializer DEFAULT_ENCODING = new Encoding().lock();
-
-	/** Reusable instance of {@link UonSerializer.SimpleEncoding}. */
-	public static final UonSerializer DEFAULT_SIMPLE_ENCODING = new SimpleEncoding().lock();
-
-	/**
-	 * Equivalent to <code><jk>new</jk> UonSerializer().setProperty(UonSerializerProperties.<jsf>UON_simpleMode</jsf>,<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);
-		}
-	}
-
-	/**
-	 * Equivalent to <code><jk>new</jk> UonSerializer().setProperty(UonSerializerProperties.<jsf>UON_useWhitespace</jsf>,<jk>true</jk>);</code>.
-	 */
-	public static class Readable extends UonSerializer {
-		/** Constructor */
-		public Readable() {
-			setProperty(UON_useWhitespace, true);
-			setProperty(SERIALIZER_useIndentation, true);
-		}
-	}
-
-	/**
-	 * Equivalent to <code><jk>new</jk> UonSerializer().setProperty(UonSerializerProperties.<jsf>UON_encodeChars</jsf>,<jk>true</jk>);</code>.
-	 */
-	public static class Encoding extends UonSerializer {
-		/** Constructor */
-		public Encoding() {
-			setProperty(UON_encodeChars, true);
-		}
-	}
-
-	/**
-	 * Equivalent to <code><jk>new</jk> UonSerializer().setProperty(UonSerializerProperties.<jsf>UON_simpleMode</jsf>,<jk>true</jk>).setProperty(UonSerializerProperties.<jsf>UON_encodeChars</jsf>,<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);
-		}
-	}
-
-	/** UON serializer properties currently set on this serializer. */
-	protected transient UonSerializerProperties usp = new UonSerializerProperties();
-
-	/** URL-Encoding properties currently set on this serializer. */
-	protected transient UrlEncodingProperties uep = new UrlEncodingProperties();
-
-
-	/**
-	 * Workhorse method. Determines the type of object, and then calls the
-	 * appropriate type-specific serialization method.
-	 *
-	 * @param out The writer to serialize to.
-	 * @param o The object being serialized.
-	 * @param eType The expected type of the object if this is a bean property.
-	 * @param ctx The context that exist for the duration of a serialize.
-	 * @param attrName The bean property name if this is a bean property.  <jk>null</jk> if this isn't a bean property being serialized.
-	 * @param pMeta The bean property metadata.
-	 * @param quoteEmptyStrings <jk>true</jk> if this is the first entry in an array.
-	 * @param isTop If we haven't recursively called this method.
-	 * @return The same writer passed in.
-	 * @throws SerializeException
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	protected SerializerWriter serializeAnything(UonSerializerWriter out, Object o, ClassMeta<?> eType, UonSerializerContext ctx,
-			String attrName, BeanPropertyMeta pMeta, boolean quoteEmptyStrings, boolean isTop) throws SerializeException {
-		try {
-
-			BeanContext bc = ctx.getBeanContext();
-
-			if (o == null) {
-				out.appendObject(null, false, false, isTop);
-				return out;
-			}
-
-			if (eType == null)
-				eType = object();
-
-			boolean addClassAttr;		// Add "_class" attribute to element?
-			ClassMeta<?> aType;			// The actual type
-			ClassMeta<?> gType;			// The generic type
-
-			aType = ctx.push(attrName, o, eType);
-			boolean isRecursion = aType == null;
-
-			// Handle recursion
-			if (aType == null) {
-				o = null;
-				aType = object();
-			}
-
-			gType = aType.getFilteredClassMeta();
-			addClassAttr = (ctx.isAddClassAttrs() && ! eType.equals(aType));
-
-			// Filter if necessary
-			PojoFilter filter = aType.getPojoFilter();				// The filter
-			if (filter != null) {
-				o = filter.filter(o);
-
-				// If the filter's getFilteredClass() method returns Object, we need to figure out
-				// the actual type now.
-				if (gType.isObject())
-					gType = bc.getClassMetaForObject(o);
-			}
-
-			// '\0' characters are considered null.
-			if (o == null || (gType.isChar() && ((Character)o).charValue() == 0))
-				out.appendObject(null, false, false, isTop);
-			else if (gType.hasToObjectMapMethod())
-				serializeMap(out, gType.toObjectMap(o), eType, ctx);
-			else if (gType.isBean())
-				serializeBeanMap(out, bc.forBean(o), addClassAttr, ctx);
-			else if (gType.isUri() || (pMeta != null && (pMeta.isUri() || pMeta.isBeanUri())))
-				out.appendUri(o, isTop);
-			else if (gType.isMap()) {
-				if (o instanceof BeanMap)
-					serializeBeanMap(out, (BeanMap)o, addClassAttr, ctx);
-				else
-					serializeMap(out, (Map)o, eType, ctx);
-			}
-			else if (gType.isCollection()) {
-				if (addClassAttr)
-					serializeCollectionMap(out, (Collection)o, gType, ctx);
-				else
-					serializeCollection(out, (Collection) o, eType, ctx);
-			}
-			else if (gType.isArray()) {
-				if (addClassAttr)
-					serializeCollectionMap(out, toList(gType.getInnerClass(), o), gType, ctx);
-				else
-					serializeCollection(out, toList(gType.getInnerClass(), o), eType, ctx);
-			}
-			else {
-				out.appendObject(o, quoteEmptyStrings, false, isTop);
-			}
-
-			if (! isRecursion)
-				ctx.pop();
-			return out;
-		} catch (SerializeException e) {
-			throw e;
-		} catch (StackOverflowError e) {
-			throw e;
-		} catch (Throwable e) {
-			throw new SerializeException("Exception occured trying to process object of type ''{0}''", (o == null ? null : o.getClass().getName())).initCause(e);
-		}
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private SerializerWriter serializeMap(UonSerializerWriter out, Map m, ClassMeta<?> type, UonSerializerContext ctx) throws IOException, SerializeException {
-
-		m = sort(ctx, m);
-
-		ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
-
-		int depth = ctx.getIndent();
-		out.startFlag('o');
-
-		Iterator mapEntries = m.entrySet().iterator();
-
-		while (mapEntries.hasNext()) {
-			Map.Entry e = (Map.Entry) mapEntries.next();
-			Object value = e.getValue();
-			Object key = generalize(ctx, e.getKey(), keyType);
-			out.cr(depth).appendObject(key, ctx.useWhitespace, false, false).append('=');
-			serializeAnything(out, value, valueType, ctx, (key == null ? null : key.toString()), null, ctx.useWhitespace, false);
-			if (mapEntries.hasNext())
-				out.append(',');
-		}
-
-		if (m.size() > 0)
-			out.cr(depth-1);
-		out.append(')');
-
-		return out;
-	}
-
-	@SuppressWarnings({ "rawtypes" })
-	private SerializerWriter serializeCollectionMap(UonSerializerWriter out, Collection o, ClassMeta<?> type, UonSerializerContext ctx) throws IOException, SerializeException {
-		int i = ctx.getIndent();
-		out.startFlag('o').nl();
-		out.append(i, "_class=").appendObject(type, false, false, false).append(',').nl();
-		out.append(i, "items=");
-		ctx.indent++;
-		serializeCollection(out, o, type, ctx);
-		ctx.indent--;
-
-		if (o.size() > 0)
-			out.cr(i-1);
-		out.append(')');
-
-		return out;
-	}
-
-	@SuppressWarnings({ "rawtypes" })
-	private SerializerWriter serializeBeanMap(UonSerializerWriter out, BeanMap m, boolean addClassAttr, UonSerializerContext ctx) throws IOException, SerializeException {
-		int depth = ctx.getIndent();
-
-		out.startFlag('o');
-
-		Iterator mapEntries = m.entrySet().iterator();
-
-		// Print out "_class" attribute on this bean if required.
-		if (addClassAttr) {
-			String attr = "_class";
-			out.cr(depth).appendObject(attr, false, false, false).append('=').append(m.getClassMeta().getInnerClass().getName());
-			if (mapEntries.hasNext())
-				out.append(',');
-		}
-
-		boolean addComma = false;
-
-		while (mapEntries.hasNext()) {
-			BeanMapEntry p = (BeanMapEntry)mapEntries.next();
-			BeanPropertyMeta pMeta = p.getMeta();
-
-			String key = p.getKey();
-			Object value = null;
-			try {
-				value = p.getValue();
-			} catch (StackOverflowError e) {
-				throw e;
-			} catch (Throwable t) {
-				ctx.addBeanGetterWarning(pMeta, t);
-			}
-
-			if (canIgnoreValue(ctx, pMeta.getClassMeta(), key, value))
-				continue;
-
-			if (addComma)
-				out.append(',');
-
-			out.cr(depth).appendObject(key, false, false, false).append('=');
-
-			serializeAnything(out, value, pMeta.getClassMeta(), ctx, key, pMeta, false, false);
-
-			addComma = true;
-		}
-
-		if (m.size() > 0)
-			out.cr(depth-1);
-		out.append(')');
-
-		return out;
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private SerializerWriter serializeCollection(UonSerializerWriter out, Collection c, ClassMeta<?> type, UonSerializerContext ctx) throws IOException, SerializeException {
-
-		ClassMeta<?> elementType = type.getElementType();
-
-		c = sort(ctx, c);
-
-		out.startFlag('a');
-
-		int depth = ctx.getIndent();
-		boolean quoteEmptyString = (c.size() == 1 || ctx.useWhitespace);
-
-		for (Iterator i = c.iterator(); i.hasNext();) {
-			out.cr(depth);
-			serializeAnything(out, i.next(), elementType, ctx, "<iterator>", null, quoteEmptyString, false);
-			if (i.hasNext())
-				out.append(',');
-		}
-
-		if (c.size() > 0)
-			out.cr(depth-1);
-		out.append(')');
-
-		return out;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	public UonSerializerContext createContext(ObjectMap properties, Method javaMethod) {
-		return new UonSerializerContext(getBeanContext(), sp, usp, uep, properties, javaMethod);
-	}
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		UonSerializerContext uctx = (UonSerializerContext)ctx;
-		serializeAnything(uctx.getWriter(out), o, null, uctx, "root", null, false, true);
-	}
-
-	@Override /* CoreApi */
-	public UonSerializer setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! usp.setProperty(property, value))
-			if (! uep.setProperty(property, value))
-				super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UonSerializer setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UonSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UonSerializer addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> UonSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UonSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public UonSerializer lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public UonSerializer clone() {
-		try {
-			UonSerializer c = (UonSerializer)super.clone();
-			c.usp = usp.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/UonSerializerContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerContext.class
deleted file mode 100755
index d1e9fd4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerContext.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/UonSerializerContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerContext.java
deleted file mode 100755
index 849afef..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerContext.java
+++ /dev/null
@@ -1,97 +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.UonSerializerProperties.*;
-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.serializer.*;
-
-/**
- * Context object that lives for the duration of a single serialization of {@link UonSerializer} and {@link UrlEncodingSerializer}.
- * <p>
- * 	See {@link SerializerContext} for details.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class UonSerializerContext extends SerializerContext {
-
-	boolean simpleMode, useWhitespace, encodeChars, expandedParams;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param beanContext The bean context being used by the serializer.
-	 * @param sp Default general serializer properties.
-	 * @param usp Default UON serializer properties.
-	 * @param uep Default URL-Encoding properties.
-	 * @param op Override properties.
-	 * @param javaMethod Java method that invoked this serializer.
-	 * 	When using the REST API, this is the Java method invoked by the REST call.
-	 * 	Can be used to access annotations defined on the method or class.
-	 */
-	protected UonSerializerContext(BeanContext beanContext, SerializerProperties sp, UonSerializerProperties usp, UrlEncodingProperties uep, ObjectMap op, Method javaMethod) {
-		super(beanContext, sp, op, javaMethod);
-		if (op == null || op.isEmpty()) {
-			simpleMode = usp.simpleMode;
-			useWhitespace = usp.useWhitespace;
-			encodeChars = usp.encodeChars;
-			expandedParams = uep.expandedParams;
-		} else {
-			simpleMode = op.getBoolean(UON_simpleMode, usp.simpleMode);
-			useWhitespace = op.getBoolean(UON_useWhitespace, usp.useWhitespace);
-			encodeChars = op.getBoolean(UON_encodeChars, usp.encodeChars);
-			expandedParams = op.getBoolean(URLENC_expandedParams, uep.expandedParams);
-
-		}
-	}
-
-	/**
-	 * Returns the {@link UonSerializerProperties#UON_simpleMode} setting value in this context.
-	 *
-	 * @return The {@link UonSerializerProperties#UON_simpleMode} setting value in this context.
-	 */
-	public final boolean isSimpleMode() {
-		return simpleMode;
-	}
-
-	/**
-	 * Returns the {@link UonSerializerProperties#UON_encodeChars} setting value in this context.
-	 *
-	 * @return The {@link UonSerializerProperties#UON_encodeChars} setting value in this context.
-	 */
-	public final boolean isEncodeChars() {
-		return encodeChars;
-	}
-
-	/**
-	 * 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 writer in a {@link UonSerializerWriter}.
-	 *
-	 * @param out The writer to wrap.
-	 * @return The wrapped writer.
-	 */
-	protected UonSerializerWriter getWriter(Writer out) {
-		if (out instanceof UonSerializerWriter)
-			return (UonSerializerWriter)out;
-		return new UonSerializerWriter(out, useWhitespace, isSimpleMode(), isEncodeChars(), getRelativeUriBase(), getAbsolutePathUriBase());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerProperties.class
deleted file mode 100755
index d8f0914..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerProperties.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/UonSerializerProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerProperties.java
deleted file mode 100755
index e6912fb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerProperties.java
+++ /dev/null
@@ -1,135 +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.serializer.*;
-
-/**
- * Configurable properties on the {@link UonSerializer} and {@link UrlEncodingSerializer} classes.
- * <p>
- * 	Use the {@link UonSerializer#setProperty(String, Object)} method to set property values.
- * <p>
- * 	In addition to these properties, the following properties are also applicable for {@link UonSerializer}.
- * <ul>
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class UonSerializerProperties implements Cloneable {
-
-	/**
-	 * Use simplified output ({@link Boolean}, default=<jk>false</jk>).
-	 * <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>
-	 */
-	public static final String UON_simpleMode = "UonSerializer.simpleMode";
-
-	/**
-	 * Use whitespace in output ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, whitespace is added to the output to improve readability.
-	 */
-	public static final String UON_useWhitespace = "UonSerializer.useWhitespace";
-
-	/**
-	 * Encode non-valid URI characters to <js>"%xx"</js> constructs. ({@link Boolean}, default=<jk>false</jk> for {@link UonSerializer}, <jk>true</jk> for {@link UrlEncodingSerializer}).
-	 * <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.
-	 */
-	public static final String UON_encodeChars = "UonSerializer.encodeChars";
-
-	boolean
-		simpleMode = false,
-		useWhitespace = false,
-		encodeChars = 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_simpleMode))
-			simpleMode = bc.convertToType(value, Boolean.class);
-		else if (property.equals(UON_useWhitespace))
-			useWhitespace = bc.convertToType(value, Boolean.class);
-		else if (property.equals(UON_encodeChars))
-			encodeChars = bc.convertToType(value, Boolean.class);
-		else
-			return false;
-		return true;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Cloneable */
-	public UonSerializerProperties clone() {
-		try {
-			return (UonSerializerProperties)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/UonSerializerWriter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerWriter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerWriter.class
deleted file mode 100755
index 4fc3d48..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerWriter.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/UonSerializerWriter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerWriter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerWriter.java
deleted file mode 100755
index 3205234..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonSerializerWriter.java
+++ /dev/null
@@ -1,265 +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 java.io.*;
-
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Specialized writer for serializing UON-encoded text.
- * <p>
- * 	<b>Note:  This class is not intended for external use.</b>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class UonSerializerWriter extends SerializerWriter {
-
-	private final boolean simpleMode, encodeChars;
-
-	// Characters that do not need to be URL-encoded in strings.
-	private static final AsciiSet unencodedChars = new AsciiSet("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789;/?:@-_.!*'$(),~=");
-
-	// Characters that do not need to be URL-encoded in attribute names.
-	// Identical to unencodedChars, but excludes '='.
-	private static final AsciiSet unencodedCharsAttrName = new AsciiSet("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789;/?:@-_.!*'$(),~");
-
-	// Characters that need to be preceeded with an escape character.
-	private static final AsciiSet escapedChars = new AsciiSet(",()~=");
-
-	// AsciiSet that maps no characters.
-	private static final AsciiSet emptyCharSet = new AsciiSet("");
-
-	private static char[] hexArray = "0123456789ABCDEF".toCharArray();
-
-	/**
-	 * Constructor.
-	 *
-	 * @param out The writer being wrapped.
-	 * @param useIndentation If <jk>true</jk>, tabs will be used in output.
-	 * @param simpleMode If <jk>true</jk>, type flags will not be generated in output.
-	 * @param encodeChars If <jk>true</jk>, special characters should be encoded.
-	 * @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>).
-	 */
-	protected UonSerializerWriter(Writer out, boolean useIndentation, boolean simpleMode, boolean encodeChars, String relativeUriBase, String absolutePathUriBase) {
-		super(out, useIndentation, false, '\'', relativeUriBase, absolutePathUriBase);
-		this.simpleMode = simpleMode;
-		this.encodeChars = encodeChars;
-	}
-
-	/**
-	 * Serializes the specified simple object as a UON string value.
-	 *
-	 * @param o The object being serialized.
-	 * @param quoteEmptyStrings Special case where we're serializing an array containing an empty string.
-	 * @param isTopAttrName If this is a top-level attribute name we're serializing.
-	 * @param isTop If this is a top-level value we're serializing.
-	 * @return This object (for method chaining).
-	 * @throws IOException Should never happen.
-	 */
-	protected UonSerializerWriter appendObject(Object o, boolean quoteEmptyStrings, boolean isTopAttrName, boolean isTop) throws IOException {
-
-		char typeFlag = 0;
-
-		if (o == null)
-			o = "\u0000";
-		else if (o.equals("\u0000"))
-			typeFlag = 's';
-
-		String s = o.toString();
-		if (s.isEmpty()) {
-			if (quoteEmptyStrings)
-				typeFlag = 's';
-		} else if (s.charAt(0) == '(' || s.charAt(0) == '$') {
-			typeFlag = 's';
-		} else if (useIndentation && (s.indexOf('\n') != -1 || (s.charAt(0) <= ' ' && s.charAt(0) != 0))) {
-			// Strings containing newline characters must always be quoted so that they're not confused with whitespace.
-			// Also, strings starting with whitespace must be quoted so that the contents are not ignored when whitespace is ignored.
-			typeFlag = 's';
-		} else if (! simpleMode) {
-			if (o instanceof Boolean)
-				typeFlag = 'b';
-			else if (o instanceof Number)
-				typeFlag = 'n';
-		}
-
-		if (typeFlag != 0)
-			startFlag(typeFlag);
-
-		AsciiSet unenc = (isTopAttrName ? unencodedCharsAttrName : unencodedChars);
-		AsciiSet esc = (isTop && typeFlag == 0 ? emptyCharSet : escapedChars);
-
-		for (int i = 0; i < s.length(); i++) {
-			char c = s.charAt(i);
-			if (esc.contains(c))
-				append('~');
-			if ((!encodeChars) || unenc.contains(c))
-				append(c);
-			else {
-				if (c == ' ')
-					append('+');
-				else {
-					int p = s.codePointAt(i);
-					if (p < 0x0080)
-						appendHex(p);
-					else if (p < 0x0800) {
-						int p1=p>>>6;
-						appendHex(p1+192).appendHex((p&63)+128);
-					} else if (p < 0x10000) {
-						int p1=p>>>6, p2=p1>>>6;
-						appendHex(p2+224).appendHex((p1&63)+128).appendHex((p&63)+128);
-					} else {
-						i++;  // Two-byte codepoint...skip past surrogate pair lower byte.
-						int p1=p>>>6, p2=p1>>>6, p3=p2>>>6;
-						appendHex(p3+240).appendHex((p2&63)+128).appendHex((p1&63)+128).appendHex((p&63)+128);
-					}
-				}
-			}
-		}
-
-		if (typeFlag != 0)
-			append(')');
-
-		return this;
-	}
-
-	/**
-	 * Prints <code>$f(</code> in normal mode, and <code>(</code> in simple mode.
-	 *
-	 * @param f The flag character.
-	 * @return This object (for method chaining).
-	 * @throws IOException
-	 */
-	protected UonSerializerWriter startFlag(char f) throws IOException {
-		if (f != 's' && ! simpleMode)
-			append('$').append(f);
-		append('(');
-		return this;
-	}
-
-	/**
-	 * Prints out a two-byte %xx sequence for the given byte value.
-	 */
-	private UonSerializerWriter appendHex(int b) throws IOException {
-		if (b > 255)
-			throw new IOException("Invalid value passed to appendHex.  Must be in the range 0-255.  Value=" + b);
-		append('%').append(hexArray[b>>>4]).append(hexArray[b&0x0F]);
-		return this;
-	}
-
-	/**
-	 * Appends a URI to the output.
-	 *
-	 * @param uri The URI to append to the output.
-	 * @param isTop If this is a top-level value we're serializing.
-	 * @return This object (for method chaining).
-	 * @throws IOException
-	 */
-	public SerializerWriter appendUri(Object uri, boolean isTop) 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 appendObject(s, false, false, isTop);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter cr(int depth) throws IOException {
-		super.cr(depth);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter appendln(int indent, String text) throws IOException {
-		super.appendln(indent, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter appendln(String text) throws IOException {
-		super.appendln(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter append(int indent, String text) throws IOException {
-		super.append(indent, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter append(int indent, char c) throws IOException {
-		super.append(indent, c);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter q() throws IOException {
-		super.q();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter i(int indent) throws IOException {
-		super.i(indent);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter nl() throws IOException {
-		super.nl();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter append(Object text) throws IOException {
-		super.append(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter append(String text) throws IOException {
-		super.append(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter appendIf(boolean b, String text) throws IOException {
-		super.appendIf(b, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter appendIf(boolean b, char c) throws IOException {
-		super.appendIf(b, c);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public UonSerializerWriter append(char c) throws IOException {
-		super.append(c);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingClassMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingClassMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingClassMeta.class
deleted file mode 100755
index 307849c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingClassMeta.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/UrlEncodingClassMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingClassMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingClassMeta.java
deleted file mode 100755
index 884dd1c..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingClassMeta.java
+++ /dev/null
@@ -1,55 +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.urlencoding;
-
-import com.ibm.juno.core.urlencoding.annotation.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Metadata on classes specific to the URL-Encoding serializers and parsers pulled from the {@link UrlEncoding @UrlEncoding} annotation on the class.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class UrlEncodingClassMeta {
-
-	private final UrlEncoding urlEncoding;
-	private final boolean expandedParams;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param c The class that this annotation is defined on.
-	 */
-	public UrlEncodingClassMeta(Class<?> c) {
-		this.urlEncoding = ReflectionUtils.getAnnotation(UrlEncoding.class, c);
-		if (urlEncoding != null) {
-			expandedParams = urlEncoding.expandedParams();
-		} else {
-			expandedParams = false;
-		}
-	}
-
-	/**
-	 * Returns the {@link UrlEncoding} annotation defined on the class.
-	 *
-	 * @return The value of the {@link UrlEncoding} annotation, or <jk>null</jk> if annotation is not specified.
-	 */
-	protected UrlEncoding getAnnotation() {
-		return urlEncoding;
-	}
-
-	/**
-	 * Returns the {@link UrlEncoding#expandedParams()} annotation defined on the class.
-	 *
-	 * @return The value of the {@link UrlEncoding#expandedParams()} annotation.
-	 */
-	protected boolean isExpandedParams() {
-		return expandedParams;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingParser.class
deleted file mode 100755
index 9b91ca9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingParser.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/UrlEncodingParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingParser.java
deleted file mode 100755
index feb4548..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingParser.java
+++ /dev/null
@@ -1,568 +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 URL-encoded text into POJO models.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Content-Type</code> types: <code>application/x-www-form-urlencoded</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Parses URL-Encoded text (e.g. <js>"foo=bar&baz=bing"</js>) into POJOs.
- * <p>
- * 	Expects parameter values to be in UON notation.
- * <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", "hiding" })
-@Consumes("application/x-www-form-urlencoded")
-public class UrlEncodingParser extends UonParser {
-
-	/** Reusable instance of {@link UrlEncodingParser}. */
-	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();
-
-	/**
-	 * Constructor.
-	 */
-	public UrlEncodingParser() {
-		setProperty(UON_decodeChars, true);
-	}
-
-	private <T> T parseAnything(ClassMeta<T> nt, UonParserContext ctx, ParserReader r, Object outer, 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();
-
-		try {
-			int c = r.peek();
-			if (c == '?')
-				r.read();
-
-			Object o;
-
-			if (ft.isObject()) {
-				ObjectMap m = new ObjectMap(bc);
-				parseIntoMap(ctx, r, m, bc.string(), bc.object());
-				o = m.cast();
-			} else if (ft.isMap()) {
-				Map m = (ft.canCreateNewInstance() ? (Map)ft.newInstance() : new ObjectMap(bc));
-				o = parseIntoMap(ctx, r, m, ft.getKeyType(), ft.getValueType());
-			} 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 {
-				// It could be a non-bean with _class attribute.
-				ObjectMap m = new ObjectMap(bc);
-				ClassMeta<Object> valueType = object();
-				parseIntoMap(ctx, r, m, string(), valueType);
-				if (m.containsKey("_class"))
-					o = m.cast();
-				else if (m.containsKey("_value"))
-					o = ctx.getBeanContext().convertToType(m.get("_value"), ft);
-				else if (ft.isCollection()) {
-					// ?1=foo&2=bar...
-					Collection c2 = ft.canCreateNewInstance() ? (Collection)ft.newInstance() : new ObjectList(bc);
-					Map<Integer,Object> t = new TreeMap<Integer,Object>();
-					for (Map.Entry<String,Object> e : m.entrySet()) {
-						String k = e.getKey();
-						if (StringUtils.isNumeric(k))
-							t.put(Integer.valueOf(k), bc.convertToType(e.getValue(), ft.getElementType()));
-					}
-					c2.addAll(t.values());
-					o = c2;
-				} else {
-					if (ft.getNotABeanReason() != null)
-						throw new ParseException("Class ''{0}'' could not be instantiated as application/x-www-form-urlencoded.  Reason: ''{1}''", ft, ft.getNotABeanReason());
-					throw new ParseException("Malformed application/x-www-form-urlencoded input for class ''{0}''.", ft);
-				}
-			}
-
-			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) {
-			throw new ParseException("Error occurred trying to parse into class ''{0}''", ft).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 {
-
-		if (keyType == null)
-			keyType = (ClassMeta<K>)string();
-
-		int c = r.peek();
-		if (c == -1)
-			return m;
-
-		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 end.
-		boolean isInEscape = false;
-
-		int state = S1;
-		K currAttr = null;
-		while (c != -1) {
-			c = r.read();
-			if (! isInEscape) {
-				if (state == S1) {
-					if (c == -1)
-						return m;
-					r.unread();
-					Object attr = parseAttr(r, true, ctx);
-					currAttr = ctx.getBeanContext().convertToType(attr, keyType);
-					state = S2;
-					c = 0; // Avoid isInEscape if c was '\'
-				} else if (state == S2) {
-					if (c == '\u0002')
-						state = S3;
-					else if (c == -1 || c == '\u0001') {
-						m.put(currAttr, null);
-						if (c == -1)
-							return m;
-						state = S1;
-					}
-				} else if (state == S3) {
-					if (c == -1 || c == '\u0001') {
-						V value = convertAttrToType(m, "", valueType);
-						m.put(currAttr, value);
-						if (c == -1)
-							return m;
-						state = S1;
-					} else  {
-						// For performance, we bypass parseAnything for string values.
-						V value = (V)(valueType.isString() ? super.parseString(r.unread(), true, ctx) : super.parseAnything(valueType, ctx, r.unread(), null, m, true, null));
-
-						// If we already encountered this parameter, turn it into a list.
-						if (m.containsKey(currAttr) && valueType.isObject()) {
-							Object v2 = m.get(currAttr);
-							if (! (v2 instanceof ObjectList)) {
-								v2 = new ObjectList(v2);
-								m.put(currAttr, (V)v2);
-							}
-							((ObjectList)v2).add(value);
-						} else {
-						m.put(currAttr, value);
-						}
-						state = S4;
-						c = 0; // Avoid isInEscape if c was '\'
-					}
-				} else if (state == S4) {
-					if (c == '\u0001')
-						state = S1;
-					else if (c == -1) {
-						return m;
-					}
-				}
-			}
-			isInEscape = (c == '\\' && ! isInEscape);
-		}
-		if (state == S1)
-			throw new ParseException("Could not find attribute name on object.");
-		if (state == S2)
-			throw new ParseException("Could not find '=' following attribute name on object.");
-		if (state == S3)
-			throw new ParseException("Dangling '=' found in object entry");
-		if (state == S4)
-			throw new ParseException("Could not find end of object.");
-
-		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.peek();
-		if (c == -1)
-			return m;
-
-		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 = r.read();
-			if (! isInEscape) {
-				if (state == S1) {
-					if (c == -1) {
-						return m;
-					}
-					r.unread();
-					currAttrLine= r.getLine();
-					currAttrCol = r.getColumn();
-					currAttr = parseAttrName(r, true);
-					if (currAttr == null)  // Value was '%00'
-						return null;
-					state = S2;
-				} else if (state == S2) {
-					if (c == '\u0002')
-						state = S3;
-					else if (c == -1 || c == '\u0001') {
-						m.put(currAttr, null);
-						if (c == -1)
-							return m;
-						state = S1;
-					}
-				} else if (state == S3) {
-					if (c == -1 || c == '\u0001') {
-						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 {
-								try {
-									// In cases of "&foo=", create an empty instance of the value if createable.
-									// Otherwise, leave it null.
-									ClassMeta<?> cm = pMeta.getClassMeta();
-									if (cm.canCreateNewInstance())
-										pMeta.set(m, cm.newInstance());
-								} catch (Exception e) {
-									throw new ParseException(e);
-								}
-							}
-						}
-						if (c == -1)
-							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), true, currAttr));
-								} else {
-									onUnknownProperty(ctx, currAttr, m, currAttrLine, currAttrCol);
-									parseAnything(object(), ctx, r.unread(), null, m.getBean(false), true, null); // Read content anyway to ignore it
-								}
-							} else {
-								if (shouldUseExpandedParams(pMeta, ctx)) {
-									ClassMeta cm = pMeta.getClassMeta();
-									Object value = parseAnything(cm.getElementType(), ctx, r.unread(), pMeta, m.getBean(false), true, currAttr);
-									pMeta.add(m, value);
-								} else {
-									Object value = parseAnything(pMeta.getClassMeta(), ctx, r.unread(), pMeta, m.getBean(false), true, currAttr);
-									pMeta.set(m, value);
-								}
-							}
-						}
-						state = S4;
-					}
-				} else if (state == S4) {
-					if (c == '\u0001')
-						state = S1;
-					else if (c == -1) {
-						return m;
-					}
-				}
-			}
-			isInEscape = (c == '\\' && ! 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 end of object.");
-
-		return null; // Unreachable.
-	}
-
-	/**
-	 * Returns true if the specified bean property should be expanded as multiple key-value pairs.
-	 */
-	private final boolean shouldUseExpandedParams(BeanPropertyMeta<?> pMeta, UonParserContext ctx) {
-		ClassMeta cm = pMeta.getClassMeta();
-		if (cm.isArray() || cm.isCollection()) {
-			if (ctx.isExpandedParams())
-				return true;
-			if (pMeta.getBeanMeta().getClassMeta().getUrlEncodingMeta().isExpandedParams())
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Parse a URL query string into a simple map of key/value pairs.
-	 *
-	 * @param qs The query string to parse.
-	 * @return A sorted {@link TreeMap} of query string entries.
-	 * @throws IOException
-	 */
-	public Map<String,String[]> parseIntoSimpleMap(String qs) throws IOException {
-
-		Map<String,String[]> m = new TreeMap<String,String[]>();
-
-		if (StringUtils.isEmpty(qs))
-			return m;
-
-		UonParserReader r = new UonParserReader(qs, true);
-
-		final int S1=1; // Looking for attrName start.
-		final int S2=2; // Found attrName start, looking for = or & or end.
-		final int S3=3; // Found =, looking for valStart.
-		final int S4=4; // Found valStart, looking for & or end.
-
-		try {
-			int c = r.peek();
-			if (c == '?')
-				r.read();
-
-			int state = S1;
-			String currAttr = null;
-			while (c != -1) {
-				c = r.read();
-				if (state == S1) {
-					if (c != -1) {
-						r.unread();
-						r.mark();
-						state = S2;
-					}
-				} else if (state == S2) {
-					if (c == -1) {
-						add(m, r.getMarked(), null);
-					} else if (c == '\u0001') {
-						m.put(r.getMarked(0,-1), null);
-						state = S1;
-					} else if (c == '\u0002') {
-						currAttr = r.getMarked(0,-1);
-						state = S3;
-					}
-				} else if (state == S3) {
-					if (c == -1 || c == '\u0001') {
-						add(m, currAttr, "");
-					} else {
-						if (c == '\u0002')
-							r.replace('=');
-						r.unread();
-						r.mark();
-						state = S4;
-					}
-				} else if (state == S4) {
-					if (c == -1) {
-						add(m, currAttr, r.getMarked());
-					} else if (c == '\u0001') {
-						add(m, currAttr, r.getMarked(0,-1));
-						state = S1;
-					} else if (c == '\u0002') {
-						r.replace('=');
-					}
-				}
-			}
-		} finally {
-			r.close();
-		}
-
-		return m;
-	}
-
-	private static void add(Map<String,String[]> m, String key, String val) {
-		boolean b = m.containsKey(key);
-		if (val == null) {
-			if (! b)
-				m.put(key, null);
-		} else if (b && m.get(key) != null) {
-			m.put(key, ArrayUtils.append(m.get(key), val));
-		} else {
-			m.put(key, new String[]{val});
-		}
-	}
-
-	private Object[] parseArgs(UonParserContext ctx, ParserReader r, ClassMeta<?>[] argTypes) throws ParseException {
-		// TODO - This can be made more efficient.
-		BeanContext bc = ctx.getBeanContext();
-		ClassMeta<TreeMap<Integer,String>> cm = bc.getMapClassMeta(TreeMap.class, Integer.class, String.class);
-		TreeMap<Integer,String> m = parseAnything(cm, ctx, r, ctx.getOuter(), null);
-		Object[] vals = m.values().toArray(new Object[m.size()]);
-		if (vals.length != argTypes.length)
-			throw new ParseException("Argument lengths don't match.  vals={0}, argTypes={1}", vals.length, argTypes.length);
-		for (int i = 0; i < vals.length; i++) {
-			String s = String.valueOf(vals[i]);
-			vals[i] = super.parseAnything(argTypes[i], ctx, ctx.getUrlEncodingParserReader(new StringReader(s), s.length()), null, ctx.getOuter(), true, null);
-		}
-
-		return vals;
-	}
-
-	/**
-	 * Parses a single query parameter value into the specified class type.
-	 *
-	 * @param in The input query string value.
-	 * @param type The class type of the object to create.
-	 * @return A new instance of the specified type.
-	 * @throws ParseException
-	 */
-	public <T> T parseParameter(CharSequence in, ClassMeta<T> type) throws ParseException {
-		if (in == null)
-			return null;
-		UonParserContext uctx = (UonParserContext)createContext();
-		uctx.decodeChars = false;
-		UonParserReader r = uctx.getUrlEncodingParserReader(wrapReader(in), in.length());
-		return super.parseAnything(type, uctx, r, null, null, true, null);
-	}
-
-	/**
-	 * Parses a single query parameter value into the specified class type.
-	 *
-	 * @param in The input query string value.
-	 * @param type The class type of the object to create.
-	 * @return A new instance of the specified type.
-	 * @throws ParseException
-	 */
-	public <T> T parseParameter(CharSequence in, Class<T> type) throws ParseException {
-		return parseParameter(in, getBeanContext().getClassMeta(type));
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@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, ctx.getOuter(), null);
-		return o;
-	}
-
-	@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);
-		Object[] a = parseArgs(uctx, r, argTypes);
-		return a;
-	}
-
-	@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);
-		if (r.peek() == '?')
-			r.read();
-		m = parseIntoMap(uctx, r, m, ctx.getBeanContext().getClassMeta(keyType), ctx.getBeanContext().getClassMeta(valueType));
-		return m;
-	}
-
-	@Override /* Parser */
-	public UrlEncodingParser 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 UrlEncodingParser setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UrlEncodingParser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UrlEncodingParser addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> UrlEncodingParser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UrlEncodingParser setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public UrlEncodingParser lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public UrlEncodingParser clone() {
-		UrlEncodingParser c = (UrlEncodingParser)super.clone();
-		c.upp = upp.clone();
-		c.uep = uep.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/urlencoding/UrlEncodingProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingProperties.class
deleted file mode 100755
index 2e6d92e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingProperties.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/UrlEncodingProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingProperties.java
deleted file mode 100755
index 4c65132..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingProperties.java
+++ /dev/null
@@ -1,82 +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.*;
-
-/**
- * Configurable properties on the {@link UrlEncodingSerializer} and {@link UrlEncodingParser} classes.
- * <p>
- * 	Use the {@link UrlEncodingSerializer#setProperty(String, Object)} and
- * 	{@link UrlEncodingParser#setProperty(String, Object)} methods to set property values.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class UrlEncodingProperties implements Cloneable {
-
-	/**
-	 * Serialize bean property collections/arrays as separate key/value pairs ({@link Boolean}, default=<jk>false</jk>).
-	 * <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&key=2&key=3</code>.
-	 * <p>
-	 * 	Example:
-	 * <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().setProperty(UrlEncodingProperties.<jsf>URLENC_expandedParams</jsf>, <jk>true</jk>);
-	 *
-	 * 	String s1 = p1.serialize(<jk>new</jk> A()); <jc>// Produces "f1=(a,b)&f2=(c,d)"</jc>
-	 * 	String s2 = p2.serialize(<jk>new</jk> A()); <jc>// Produces "f1=a&f1=b&f2=c&f2=d"</jc>
-	 * </p>
-	 * <p>
-	 * 	<b>Important note:</b>  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.
-	 * <p>
-	 * 	This option only applies to beans.
-	 */
-	public static final String URLENC_expandedParams = "UrlEncoding.expandedParams";
-
-	boolean
-		expandedParams = 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(URLENC_expandedParams))
-			expandedParams = bc.convertToType(value, Boolean.class);
-		else
-			return false;
-		return true;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Cloneable */
-	public UrlEncodingProperties clone() {
-		try {
-			return (UrlEncodingProperties)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/UrlEncodingSerializer$Readable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$Readable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$Readable.class
deleted file mode 100755
index 37a40a0..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$Readable.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/UrlEncodingSerializer$Simple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$Simple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$Simple.class
deleted file mode 100755
index 51f3f69..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$Simple.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/UrlEncodingSerializer$SimpleExpanded.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$SimpleExpanded.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$SimpleExpanded.class
deleted file mode 100755
index e11f2ac..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer$SimpleExpanded.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/UrlEncodingSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer.class
deleted file mode 100755
index 83bb958..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UrlEncodingSerializer.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/RestClient.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestClient.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/RestClient.java
deleted file mode 100755
index ffcecbd..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestClient.java
+++ /dev/null
@@ -1,1411 +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.client;
-
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.lang.reflect.Proxy;
-import java.net.*;
-import java.security.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.logging.*;
-import java.util.regex.*;
-
-import javax.net.ssl.*;
-
-import org.apache.http.*;
-import org.apache.http.auth.*;
-import org.apache.http.client.*;
-import org.apache.http.client.CookieStore;
-import org.apache.http.client.config.*;
-import org.apache.http.client.entity.*;
-import org.apache.http.client.methods.*;
-import org.apache.http.config.*;
-import org.apache.http.conn.*;
-import org.apache.http.conn.routing.*;
-import org.apache.http.conn.socket.*;
-import org.apache.http.conn.ssl.*;
-import org.apache.http.conn.util.*;
-import org.apache.http.cookie.*;
-import org.apache.http.entity.*;
-import org.apache.http.impl.client.*;
-import org.apache.http.impl.conn.*;
-import org.apache.http.protocol.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.urlencoding.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Utility class for interfacing with remote REST interfaces.
- *
- *
- * <h6 class='topic'>Features</h6>
- * <ul>
- * 	<li>Convert POJOs directly to HTTP request message bodies using {@link Serializer} class.
- * 	<li>Convert HTTP response message bodies directly to POJOs using {@link Parser} class.
- * 	<li>Fluent interface.
- * 	<li>Thread safe.
- * 	<li>API for interacting with remoteable services.
- * </ul>
- *
- *
- * <h6 class='topic'>Additional Information</h6>
- * <ul>
- * 	<li><a class='doclink' href='package-summary.html#RestClient'>com.ibm.juno.client &gt; REST client API</a> for more information and code examples.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class RestClient extends CoreApi {
-
-	Map<String,Object> headers = new TreeMap<String,Object>(String.CASE_INSENSITIVE_ORDER);
-	volatile CloseableHttpClient httpClient;
-	HttpClientConnectionManager httpClientConnectionManager;
-	Serializer<?> serializer;
-	UrlEncodingSerializer urlEncodingSerializer = new UrlEncodingSerializer();  // Used for form posts only.
-	Parser<?> parser;
-	String accept, contentType;
-	List<RestCallInterceptor> interceptors = new ArrayList<RestCallInterceptor>();
-	String remoteableServletUri;
-	private Map<Method,String> remoteableServiceUriMap = new ConcurrentHashMap<Method,String>();
-	private String rootUrl;
-	private SSLOpts sslOpts;
-	private boolean pooled;
-	private volatile boolean isClosed = false;
-	private StackTraceElement[] creationStack;
-
-	/**
-	 * The {@link HttpClientBuilder} returned by {@link #createHttpClientBuilder()}.
-	 */
-	protected HttpClientBuilder httpClientBuilder;
-
-	/**
-	 * Create a new client with no serializer, parser, or HTTP client.
-	 * <p>
-	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
-	 * 	will be created using the {@link #createHttpClient()} method.
-	 */
-	public RestClient() {
-		httpClientBuilder = createHttpClientBuilder();
-		if (Boolean.getBoolean("com.ibm.juno.client.RestClient.trackCreation"))
-			creationStack = Thread.currentThread().getStackTrace();
-	}
-
-	/**
-	 * Create a new client with the specified HTTP client.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient);
-	 * </p>
-	 *
-	 * @param httpClient The HTTP client to use for communicating with remote server.
-	 */
-	public RestClient(CloseableHttpClient httpClient) {
-		this();
-		setHttpClient(httpClient);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser instances.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setSerializer(s).setParser(p);
-	 * </p>
-	 * <p>
-	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
-	 * 	will be created using the {@link #createHttpClient()} method.
-	 *
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 */
-	public RestClient(Serializer<?> s, Parser<?> p) {
-		this();
-		setSerializer(s);
-		setParser(p);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser instances.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient).setSerializer(s).setParser(p);
-	 * </p>
-	 *
-	 * @param httpClient The HTTP client to use for communicating with remote server.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 */
-	public RestClient(CloseableHttpClient httpClient, Serializer<?> s, Parser<?> p) {
-		this();
-		setHttpClient(httpClient);
-		setSerializer(s);
-		setParser(p);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser classes.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setSerializer(s).setParser(p);
-	 * </p>
-	 * <p>
-	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
-	 * 	will be created using the {@link #createHttpClient()} method.
-	 *
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws InstantiationException If serializer or parser could not be instantiated.
-	 */
-	public RestClient(Class<? extends Serializer<?>> s, Class<? extends Parser<?>> p) throws InstantiationException {
-		this();
-		setSerializer(s);
-		setParser(p);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser classes.
-	 * <p>
-	 * Equivalent to calling the following:
-	 * <p class='bcode'>
-	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient).setSerializer(s).setParser(p);
-	 * </p>
-	 *
-	 * @param httpClient The HTTP client to use for communicating with remote server.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws InstantiationException If serializer or parser could not be instantiated.
-	 */
-	public RestClient(CloseableHttpClient httpClient, Class<? extends Serializer<?>> s, Class<? extends Parser<?>> p) throws InstantiationException {
-		this();
-		setHttpClient(httpClient);
-		setSerializer(s);
-		setParser(p);
-	}
-
-	/**
-	 * Creates an instance of an {@link HttpClient} to be used to handle all HTTP communications with the target server.
-	 * <p>
-	 * This HTTP client is used when the HTTP client is not specified through one of the constructors or the
-	 * 	{@link #setHttpClient(CloseableHttpClient)} method.
-	 * <p>
-	 * Subclasses can override this method to provide specially-configured HTTP clients to handle
-	 * 	stuff such as SSL/TLS certificate handling, authentication, etc.
-	 * <p>
-	 * The default implementation returns an instance of {@link HttpClient} using the client builder
-	 * 	returned by {@link #createHttpClientBuilder()}.
-	 *
-	 * @return The HTTP client to use.
-	 * @throws Exception
-	 */
-	protected CloseableHttpClient createHttpClient() throws Exception {
-		// Don't call createConnectionManager() if RestClient.setConnectionManager() was called.
-		if (httpClientConnectionManager == null)
-			httpClientBuilder.setConnectionManager(createConnectionManager());
-		return httpClientBuilder.build();
-	}
-
-	/**
-	 * Creates an instance of an {@link HttpClientBuilder} to be used to create
-	 * 	the {@link HttpClient}.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own client builder.
-	 * </p>
-	 * <p>
-	 * 	The predefined method returns an {@link HttpClientBuilder} with the following settings:
-	 * </p>
-	 * <ul>
-	 * 	<li>Lax redirect strategy.
-	 * 	<li>The connection manager returned by {@link #createConnectionManager()}.
-	 * </ul>
-	 *
-	 * @return The HTTP client builder to use to create the HTTP client.
-	 */
-	protected HttpClientBuilder createHttpClientBuilder() {
-		HttpClientBuilder b = HttpClientBuilder.create();
-		b.setRedirectStrategy(new AllowAllRedirects());
-		return b;
-	}
-
-	/**
-	 * Creates the {@link HttpClientConnectionManager} returned by {@link #createConnectionManager()}.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own connection manager.
-	 * </p>
-	 * <p>
-	 * 	The default implementation returns an instance of a {@link PoolingHttpClientConnectionManager}.
-	 * </p>
-	 *
-	 * @return The HTTP client builder to use to create the HTTP client.
-	 */
-	@SuppressWarnings("resource")
-	protected HttpClientConnectionManager createConnectionManager() {
-		if (sslOpts != null) {
-			HostnameVerifier hv = null;
-			switch (sslOpts.getHostVerify()) {
-				case LAX: hv = new NoopHostnameVerifier(); break;
-				case DEFAULT: hv = new DefaultHostnameVerifier(); break;
-			}
-
-			for (String p : StringUtils.split(sslOpts.getProtocols(), ',')) {
-				try {
-					TrustManager tm = new SimpleX509TrustManager(sslOpts.getCertValidate() == SSLOpts.CertValidate.LAX);
-
-					SSLContext ctx = SSLContext.getInstance(p);
-					ctx.init(null, new TrustManager[] { tm }, null);
-
-					// Create a socket to ensure this algorithm is acceptable.
-					// This will correctly disallow certain configurations (such as SSL_TLS under FIPS)
-					ctx.getSocketFactory().createSocket().close();
-					SSLConnectionSocketFactory sf = new SSLConnectionSocketFactory(ctx, hv);
-					setSSLSocketFactory(sf);
-
-					Registry<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory> create().register("https", sf).build();
-
-					return (pooled ? new PoolingHttpClientConnectionManager(r) : new BasicHttpClientConnectionManager(r));
-				} catch (Throwable t) {}
-			}
-		}
-
-			// Using pooling connection so that this client is threadsafe.
-		return (pooled ? new PoolingHttpClientConnectionManager() : new BasicHttpClientConnectionManager());
-	}
-
-	/**
-	 * Set up this client to use BASIC auth.
-	 *
-	 * @param host The auth scope hostname.
-	 * @param port The auth scope port.
-	 * @param user The username.
-	 * @param pw The password.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setBasicAuth(String host, int port, String user, String pw) {
-		AuthScope scope = new AuthScope(host, port);
-		Credentials up = new UsernamePasswordCredentials(user, pw);
-		CredentialsProvider p = new BasicCredentialsProvider();
-		p.setCredentials(scope, up);
-		setDefaultCredentialsProvider(p);
-		return this;
-	}
-
-	/**
-	 * When called, the {@link #createConnectionManager()} method will return a {@link PoolingHttpClientConnectionManager}
-	 * 	instead of a {@link BasicHttpClientConnectionManager}.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setPooled() {
-		this.pooled = true;
-		return this;
-	}
-
-	/**
-	 * Calls {@link CloseableHttpClient#close()} on the underlying {@link CloseableHttpClient}.
-	 * It's good practice to call this method after the client is no longer used.
-	 *
-	 * @throws IOException
-	 */
-	public void close() throws IOException {
-		isClosed = true;
-		if (httpClient != null)
-			httpClient.close();
-	}
-
-	/**
-	 * Same as {@link #close()}, but ignores any exceptions.
-	 */
-	public void closeQuietly() {
-		isClosed = true;
-		try {
-			if (httpClient != null)
-				httpClient.close();
-		} catch (Throwable t) {}
-	}
-
-	/**
-	 * Specifies a request header property to add to all requests created by this client.
-	 *
-	 * @param name The HTTP header name.
-	 * @param value The HTTP header value.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setHeader(String name, Object value) {
-		this.headers.put(name, value);
-		return this;
-	}
-
-	/**
-	 * Sets the serializer used for serializing POJOs to the HTTP request message body.
-	 *
-	 * @param serializer The serializer.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setSerializer(Serializer<?> serializer) {
-		this.serializer = serializer;
-		return this;
-	}
-
-	/**
-	 * Same as {@link #setSerializer(Serializer)}, except takes in a serializer class that
-	 * 	will be instantiated through a no-arg constructor.
-	 *
-	 * @param c The serializer class.
-	 * @return This object (for method chaining).
-	 * @throws InstantiationException If serializer could not be instantiated.
-	 */
-	public RestClient setSerializer(Class<? extends Serializer<?>> c) throws InstantiationException {
-		try {
-			return setSerializer(c.newInstance());
-		} catch (IllegalAccessException e) {
-			throw new InstantiationException(e.getLocalizedMessage());
-		}
-	}
-
-	/**
-	 * Sets the parser used for parsing POJOs from the HTTP response message body.
-	 *
-	 * @param parser The parser.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setParser(Parser<?> parser) {
-		this.parser = parser;
-		this.accept = parser.getMediaTypes()[0];
-		return this;
-	}
-
-	/**
-	 * Same as {@link #setParser(Parser)}, except takes in a parser class that
-	 * 	will be instantiated through a no-arg constructor.
-	 *
-	 * @param c The parser class.
-	 * @return This object (for method chaining).
-	 * @throws InstantiationException If parser could not be instantiated.
-	 */
-	public RestClient setParser(Class<? extends Parser<?>> c) throws InstantiationException {
-		try {
-			return setParser(c.newInstance());
-		} catch (IllegalAccessException e) {
-			throw new InstantiationException(e.getLocalizedMessage());
-		}
-	}
-
-	/**
-	 * Sets the internal {@link HttpClient} to use for handling HTTP communications.
-	 *
-	 * @param httpClient The HTTP client.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setHttpClient(CloseableHttpClient httpClient) {
-		this.httpClient = httpClient;
-		return this;
-	}
-
-	/**
-	 * Adds an interceptor that gets called immediately after a connection is made.
-	 *
-	 * @param interceptor The interceptor.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient addInterceptor(RestCallInterceptor interceptor) {
-		interceptors.add(interceptor);
-		return this;
-	}
-
-	/**
-	 * Adds a {@link RestCallLogger} to the list of interceptors on this class.
-	 *
-	 * @param level The log level to log messsages at.
-	 * @param log The logger to log messages to.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient logTo(Level level, Logger log) {
-		addInterceptor(new RestCallLogger(level, log));
-		return this;
-	}
-
-	/**
-	 * Returns the serializer currently associated with this client.
-	 *
-	 * @return The serializer currently associated with this client, or <jk>null</jk> if no serializer is currently associated.
-	 */
-	public Serializer<?> getSerializer() {
-		return serializer;
-	}
-
-	/**
-	 * Returns the parser currently associated with this client.
-	 *
-	 * @return The parser currently associated with this client, or <jk>null</jk> if no parser is currently associated.
-	 */
-	public Parser<?> getParser() {
-		return parser;
-	}
-
-	/**
-	 * Returns the {@link HttpClient} currently associated with this client.
-	 *
-	 * @return The HTTP client currently associated with this client.
-	 * @throws Exception
-	 */
-	public HttpClient getHttpClient() throws Exception {
-		if (httpClient == null)
-			httpClient = createHttpClient();
-		return httpClient;
-	}
-
-	/**
-	 * Execute the specified request.
-	 * Subclasses can override this method to provide specialized handling.
-	 *
-	 * @param req The HTTP request.
-	 * @return The HTTP response.
-	 * @throws Exception
-	 */
-	protected HttpResponse execute(HttpUriRequest req) throws Exception {
-		return getHttpClient().execute(req);
-	}
-
-	/**
-	 * Sets the value for the <code>Accept</code> request header.
-	 * <p>
-	 * 	This overrides the media type specified on the parser, but is overridden by calling <code>setHeader(<js>"Accept"</js>, newvalue);</code>
-	 *
-	 * @param accept The new header value.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setAccept(String accept) {
-		this.accept = accept;
-		return this;
-	}
-
-	/**
-	 * Sets the value for the <code>Content-Type</code> request header.
-	 * <p>
-	 * 	This overrides the media type specified on the serializer, but is overridden by calling <code>setHeader(<js>"Content-Type"</js>, newvalue);</code>
-	 *
-	 * @param contentType The new header value.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setContentType(String contentType) {
-		this.contentType = contentType;
-		return this;
-	}
-
-	/**
-	 * Sets the URI of the remoteable services REST servlet for invoking remoteable services.
-	 *
-	 * @param remoteableServletUri The URI of the REST resource implementing a remoteable services servlet.
-	 *		(typically an instance of <code>RemoteableServlet</code>).
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setRemoteableServletUri(String remoteableServletUri) {
-		this.remoteableServletUri = remoteableServletUri;
-		return this;
-	}
-
-	/**
-	 * Set a root URL for this client.
-	 * <p>
-	 * When set, URL strings passed in through the various rest call methods (e.g. {@link #doGet(Object)}
-	 * 	will be prefixed with the specified root.
-	 * This root URL is ignored on those methods if you pass in a {@link URL}, {@link URI}, or an absolute URL string.
-	 *
-	 * @param rootUrl The root URL to prefix to relative URL strings.  Trailing slashes are trimmed.
-	 * @return This object (for method chaining).
-	 */
-	public RestClient setRootUrl(String rootUrl) {
-		if (rootUrl.endsWith("/"))
-			rootUrl = rootUrl.replaceAll("\\/$", "");
-		this.rootUrl = rootUrl;
-		return this;
-	}
-
-	/**
-	 * Enable SSL support on this client.
-	 *
-	 * @param opts The SSL configuration options.  See {@link SSLOpts} for details.
-	 * 	This method is a no-op if <code>sslConfig</code> is <jk>null</jk>.
-	 * @return This object (for method chaining).
-	 * @throws KeyStoreException
-	 * @throws NoSuchAlgorithmException
-	 */
-	public RestClient enableSSL(SSLOpts opts) throws KeyStoreException, NoSuchAlgorithmException {
-		this.sslOpts = opts;
-		return this;
-	}
-
-	/**
-	 * Enable LAX SSL support.
-	 * <p>
-	 * Certificate chain validation and hostname verification is disabled.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws KeyStoreException
-	 * @throws NoSuchAlgorithmException
-	 */
-	public RestClient enableLaxSSL() throws KeyStoreException, NoSuchAlgorithmException {
-		return enableSSL(SSLOpts.LAX);
-	}
-
-	/**
-	 * Perform a <code>GET</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doGet(Object url) throws RestCallException {
-		return doCall("GET", url, false);
-	}
-
-	/**
-	 * Perform a <code>PUT</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param o The object to serialize and transmit to the URL as the body of the request.
-	 * 	Can be of the following types:
-	 * 	<ul>
-	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
-	 * 		<li>{@link HttpEntity} - Bypass Juno serialization and pass HttpEntity directly to HttpClient.
-	 * 	</ul>
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doPut(Object url, Object o) throws RestCallException {
-		return doCall("PUT", url, true).setInput(o);
-	}
-
-	/**
-	 * Perform a <code>POST</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param o The object to serialize and transmit to the URL as the body of the request.
-	 * 	Can be of the following types:
-	 * 	<ul>
-	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
-	 * 		<li>{@link HttpEntity} - Bypass Juno serialization and pass HttpEntity directly to HttpClient.
-	 * 	</ul>
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doPost(Object url, Object o) throws RestCallException {
-		return doCall("POST", url, true).setInput(o);
-	}
-
-	/**
-	 * Perform a <code>DELETE</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doDelete(Object url) throws RestCallException {
-		return doCall("DELETE", url, false);
-	}
-
-	/**
-	 * Perform an <code>OPTIONS</code> request against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doOptions(Object url) throws RestCallException {
-		return doCall("OPTIONS", url, true);
-	}
-
-	/**
-	 * Perform a <code>POST</code> request with a content type of <code>application/x-www-form-urlencoded</code> against the specified URL.
-	 *
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param o The object to serialize and transmit to the URL as the body of the request, serialized as a form post
-	 * 	using the {@link UrlEncodingSerializer#DEFAULT} serializer.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doFormPost(Object url, Object o) throws RestCallException {
-		return doCall("POST", url, true)
-			.setInput(new RestRequestEntity(o, urlEncodingSerializer));
-	}
-
-	/**
-	 * Performs a REST call where the entire call is specified in a simple string.
-	 * <p>
-	 * This method is useful for performing callbacks when the target of a callback is passed in
-	 * on an initial request, for example to signal when a long-running process has completed.
-	 * <p>
-	 * The call string can be any of the following formats:
-	 * <ul>
-	 * 	<li><js>"[method] [url]"</js> - e.g. <js>"GET http://localhost/callback"</js>
-	 * 	<li><js>"[method] [url] [payload]"</js> - e.g. <js>"POST http://localhost/callback some text payload"</js>
-	 * 	<li><js>"[method] [headers] [url] [payload]"</js> - e.g. <js>"POST {'Content-Type':'text/json'} http://localhost/callback {'some':'json'}"</js>
-	 * </ul>
-	 * <p>
-	 * The payload will always be sent using a simple {@link StringEntity}.
-	 *
-	 * @param callString The call string.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException
-	 */
-	public RestCall doCallback(String callString) throws RestCallException {
-		String s = callString;
-		try {
-			RestCall rc = null;
-			String method = null, uri = null, content = null;
-			ObjectMap h = null;
-			int i = s.indexOf(' ');
-			if (i != -1) {
-				method = s.substring(0, i).trim();
-				s = s.substring(i).trim();
-				if (s.length() > 0) {
-					if (s.charAt(0) == '{') {
-						i = s.indexOf('}');
-						if (i != -1) {
-							String json = s.substring(0, i+1);
-							h = JsonParser.DEFAULT.parse(json, ObjectMap.class);
-							s = s.substring(i+1).trim();
-						}
-					}
-					if (s.length() > 0) {
-						i = s.indexOf(' ');
-						if (i == -1)
-							uri = s;
-						else {
-							uri = s.substring(0, i).trim();
-							s = s.substring(i).trim();
-							if (s.length() > 0)
-								content = s;
-						}
-					}
-				}
-			}
-			if (method != null && uri != null) {
-				rc = doCall(method, uri, content != null);
-				if (content != null)
-					rc.setInput(new StringEntity(content));
-				if (h != null)
-					for (Map.Entry<String,Object> e : h.entrySet())
-						rc.setHeader(e.getKey(), e.getValue());
-				return rc;
-			}
-		} catch (Exception e) {
-			throw new RestCallException(e);
-		}
-		throw new RestCallException("Invalid format for call string.");
-	}
-
-	/**
-	 * Perform a generic REST call.
-	 *
-	 * @param method The HTTP method.
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param content The HTTP body content.
-	 * 	Can be of the following types:
-	 * 	<ul>
-	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
-	 * 		<li>{@link HttpEntity} - Bypass Juno serialization and pass HttpEntity directly to HttpClient.
-	 * 	</ul>
-	 * 	This parameter is IGNORED if {@link HttpMethod#hasContent()} is <jk>false</jk>.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doCall(HttpMethod method, Object url, Object content) throws RestCallException {
-		RestCall rc = doCall(method.name(), url, method.hasContent());
-		if (method.hasContent())
-			rc.setInput(content);
-		return rc;
-	}
-
-	/**
-	 * Perform a generic REST call.
-	 *
-	 * @param method The method name (e.g. <js>"GET"</js>, <js>"OPTIONS"</js>).
-	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
-	 * @param hasContent Boolean flag indicating if the specified request has content associated with it.
-	 * @return A {@link RestCall} object that can be further tailored before executing the request
-	 * 	and getting the response as a parsed object.
-	 * @throws RestCallException If any authentication errors occurred.
-	 */
-	public RestCall doCall(String method, Object url, boolean hasContent) throws RestCallException {
-		HttpRequestBase req = null;
-		RestCall restCall = null;
-		final String methodUC = method.toUpperCase(Locale.ENGLISH);
-		if (hasContent) {
-			req = new HttpEntityEnclosingRequestBase() {
-				@Override /* HttpRequest */
-				public String getMethod() {
-					return methodUC;
-				}
-			};
-			restCall = new RestCall(this, req);
-			if (contentType != null)
-				restCall.setHeader("Content-Type", contentType);
-		} else {
-			req = new HttpRequestBase() {
-				@Override /* HttpRequest */
-				public String getMethod() {
-					return methodUC;
-				}
-			};
-			restCall = new RestCall(this, req);
-		}
-		try {
-			req.setURI(toURI(url));
-		} catch (URISyntaxException e) {
-			throw new RestCallException(e);
-		}
-		if (accept != null)
-			restCall.setHeader("Accept", accept);
-		for (Map.Entry<String,? extends Object> e : headers.entrySet())
-			restCall.setHeader(e.getKey(), e.getValue());
-		return restCall;
-	}
-
-	/**
-	 * Create a new proxy interface for the specified remoteable service interface.
-	 *
-	 * @param interfaceClass The interface to create a proxy for.
-	 * @return The new proxy interface.
-	 * @throws RuntimeException If the Remotable service URI has not been specified on this
-	 * 	client by calling {@link #setRemoteableServletUri(String)}.
-	 */
-	@SuppressWarnings("unchecked")
-	public <T> T getRemoteableProxy(final Class<T> interfaceClass) {
-		if (remoteableServletUri == null)
-			throw new RuntimeException("Remoteable service URI has not been specified.");
-		return (T)Proxy.newProxyInstance(
-			interfaceClass.getClassLoader(),
-			new Class[] { interfaceClass },
-			new InvocationHandler() {
-				@Override /* InvocationHandler */
-				public Object invoke(Object proxy, Method method, Object[] args) {
-					try {
-						String uri = remoteableServiceUriMap.get(method);
-						if (uri == null) {
-							// Constructing this string each time can be time consuming, so cache it.
-							uri = remoteableServletUri + '/' + interfaceClass.getName() + '/' + ClassUtils.getMethodSignature(method);
-							remoteableServiceUriMap.put(method, uri);
-						}
-						return doPost(uri, args).getResponse(method.getReturnType());
-					} catch (Exception e) {
-						throw new RuntimeException(e);
-					}
-				}
-		});
-	}
-
-	private Pattern absUrlPattern = Pattern.compile("^\\w+\\:\\/\\/.*");
-
-	private URI toURI(Object url) throws URISyntaxException {
-		assertFieldNotNull(url, "url");
-		if (url instanceof URI)
-			return (URI)url;
-		if (url instanceof URL)
-			((URL)url).toURI();
-		String s = url.toString();
-		if (rootUrl != null && ! absUrlPattern.matcher(s).matches()) {
-			if (s.isEmpty())
-				s = rootUrl;
-			else {
-				StringBuilder sb = new StringBuilder(rootUrl);
-				if (! s.startsWith("/"))
-					sb.append('/');
-				sb.append(s);
-				s = sb.toString();
-			}
-		}
-		return new URI(s);
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* CoreAPI */
-	public RestClient setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
-		if (serializer != null)
-			serializer.setProperty(property, value);
-		if (parser != null)
-			parser.setProperty(property, value);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public RestClient setProperties(ObjectMap properties) throws LockedException {
-		super.setProperties(properties);
-		if (serializer != null)
-			serializer.setProperties(properties);
-		if (parser != null)
-			parser.setProperties(properties);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.setProperties(properties);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public RestClient addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		if (serializer != null)
-			serializer.addNotBeanClasses(classes);
-		if (parser != null)
-			parser.addNotBeanClasses(classes);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public RestClient addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		if (serializer != null)
-			serializer.addFilters(classes);
-		if (parser != null)
-			parser.addFilters(classes);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public <T> RestClient addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		if (serializer != null)
-			serializer.addImplClass(interfaceClass, implClass);
-		if (parser != null)
-			parser.addImplClass(interfaceClass, implClass);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreAPI */
-	public RestClient setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		if (serializer != null)
-			serializer.setClassLoader(classLoader);
-		if (parser != null)
-			parser.setClassLoader(classLoader);
-		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.setClassLoader(classLoader);
-		return this;
-	}
-
-
-	//------------------------------------------------------------------------------------------------
-	// Passthrough methods for HttpClientBuilder.
-	//------------------------------------------------------------------------------------------------
-
-	/**
-	 * @param redirectStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setRedirectStrategy(RedirectStrategy)
-	 */
-	public RestClient setRedirectStrategy(RedirectStrategy redirectStrategy) {
-		httpClientBuilder.setRedirectStrategy(redirectStrategy);
-		return this;
-	}
-
-	/**
-	 * @param cookieSpecRegistry
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultCookieSpecRegistry(Lookup)
-	 */
-	public RestClient setDefaultCookieSpecRegistry(Lookup<CookieSpecProvider> cookieSpecRegistry) {
-		httpClientBuilder.setDefaultCookieSpecRegistry(cookieSpecRegistry);
-		return this;
-	}
-
-	/**
-	 * @param requestExec
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setRequestExecutor(HttpRequestExecutor)
-	 */
-	public RestClient setRequestExecutor(HttpRequestExecutor requestExec) {
-		httpClientBuilder.setRequestExecutor(requestExec);
-		return this;
-	}
-
-	/**
-	 * @param hostnameVerifier
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setSSLHostnameVerifier(HostnameVerifier)
-	 */
-	public RestClient setSSLHostnameVerifier(HostnameVerifier hostnameVerifier) {
-		httpClientBuilder.setSSLHostnameVerifier(hostnameVerifier);
-		return this;
-	}
-
-	/**
-	 * @param publicSuffixMatcher
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setPublicSuffixMatcher(PublicSuffixMatcher)
-	 */
-	public RestClient setPublicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher) {
-		httpClientBuilder.setPublicSuffixMatcher(publicSuffixMatcher);
-		return this;
-	}
-
-	/**
-	 * @param sslContext
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setSSLContext(SSLContext)
-	 */
-	public RestClient setSSLContext(SSLContext sslContext) {
-		httpClientBuilder.setSSLContext(sslContext);
-		return this;
-	}
-
-	/**
-	 * @param sslSocketFactory
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setSSLSocketFactory(LayeredConnectionSocketFactory)
-	 */
-	public RestClient setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory) {
-		httpClientBuilder.setSSLSocketFactory(sslSocketFactory);
-		return this;
-	}
-
-	/**
-	 * @param maxConnTotal
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setMaxConnTotal(int)
-	 */
-	public RestClient setMaxConnTotal(int maxConnTotal) {
-		httpClientBuilder.setMaxConnTotal(maxConnTotal);
-		return this;
-	}
-
-	/**
-	 * @param maxConnPerRoute
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setMaxConnPerRoute(int)
-	 */
-	public RestClient setMaxConnPerRoute(int maxConnPerRoute) {
-		httpClientBuilder.setMaxConnPerRoute(maxConnPerRoute);
-		return this;
-	}
-
-	/**
-	 * @param config
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultSocketConfig(SocketConfig)
-	 */
-	public RestClient setDefaultSocketConfig(SocketConfig config) {
-		httpClientBuilder.setDefaultSocketConfig(config);
-		return this;
-	}
-
-	/**
-	 * @param config
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultConnectionConfig(ConnectionConfig)
-	 */
-	public RestClient setDefaultConnectionConfig(ConnectionConfig config) {
-		httpClientBuilder.setDefaultConnectionConfig(config);
-		return this;
-	}
-
-	/**
-	 * @param connTimeToLive
-	 * @param connTimeToLiveTimeUnit
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionTimeToLive(long,TimeUnit)
-	 */
-	public RestClient setConnectionTimeToLive(long connTimeToLive, TimeUnit connTimeToLiveTimeUnit) {
-		httpClientBuilder.setConnectionTimeToLive(connTimeToLive, connTimeToLiveTimeUnit);
-		return this;
-	}
-
-	/**
-	 * @param connManager
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)
-	 */
-	public RestClient setConnectionManager(HttpClientConnectionManager connManager) {
-		this.httpClientConnectionManager = connManager;
-		httpClientBuilder.setConnectionManager(connManager);
-		return this;
-	}
-
-	/**
-	 * @param shared
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionManagerShared(boolean)
-	 */
-	public RestClient setConnectionManagerShared(boolean shared) {
-		httpClientBuilder.setConnectionManagerShared(shared);
-		return this;
-	}
-
-	/**
-	 * @param reuseStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionReuseStrategy(ConnectionReuseStrategy)
-	 */
-	public RestClient setConnectionReuseStrategy(ConnectionReuseStrategy reuseStrategy) {
-		httpClientBuilder.setConnectionReuseStrategy(reuseStrategy);
-		return this;
-	}
-
-	/**
-	 * @param keepAliveStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setKeepAliveStrategy(ConnectionKeepAliveStrategy)
-	 */
-	public RestClient setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy) {
-		httpClientBuilder.setKeepAliveStrategy(keepAliveStrategy);
-		return this;
-	}
-
-	/**
-	 * @param targetAuthStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setTargetAuthenticationStrategy(AuthenticationStrategy)
-	 */
-	public RestClient setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy) {
-		httpClientBuilder.setTargetAuthenticationStrategy(targetAuthStrategy);
-		return this;
-	}
-
-	/**
-	 * @param proxyAuthStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setProxyAuthenticationStrategy(AuthenticationStrategy)
-	 */
-	public RestClient setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy) {
-		httpClientBuilder.setProxyAuthenticationStrategy(proxyAuthStrategy);
-		return this;
-	}
-
-	/**
-	 * @param userTokenHandler
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setUserTokenHandler(UserTokenHandler)
-	 */
-	public RestClient setUserTokenHandler(UserTokenHandler userTokenHandler) {
-		httpClientBuilder.setUserTokenHandler(userTokenHandler);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableConnectionState()
-	 */
-	public RestClient disableConnectionState() {
-		httpClientBuilder.disableConnectionState();
-		return this;
-	}
-
-	/**
-	 * @param schemePortResolver
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setSchemePortResolver(SchemePortResolver)
-	 */
-	public RestClient setSchemePortResolver(SchemePortResolver schemePortResolver) {
-		httpClientBuilder.setSchemePortResolver(schemePortResolver);
-		return this;
-	}
-
-	/**
-	 * @param userAgent
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setUserAgent(String)
-	 */
-	public RestClient setUserAgent(String userAgent) {
-		httpClientBuilder.setUserAgent(userAgent);
-		return this;
-	}
-
-	/**
-	 * @param defaultHeaders
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultHeaders(Collection)
-	 */
-	public RestClient setDefaultHeaders(Collection<? extends Header> defaultHeaders) {
-		httpClientBuilder.setDefaultHeaders(defaultHeaders);
-		return this;
-	}
-
-	/**
-	 * @param itcp
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#addInterceptorFirst(HttpResponseInterceptor)
-	 */
-	public RestClient addInterceptorFirst(HttpResponseInterceptor itcp) {
-		httpClientBuilder.addInterceptorFirst(itcp);
-		return this;
-	}
-
-	/**
-	 * @param itcp
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#addInterceptorLast(HttpResponseInterceptor)
-	 */
-	public RestClient addInterceptorLast(HttpResponseInterceptor itcp) {
-		httpClientBuilder.addInterceptorLast(itcp);
-		return this;
-	}
-
-	/**
-	 * @param itcp
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#addInterceptorFirst(HttpRequestInterceptor)
-	 */
-	public RestClient addInterceptorFirst(HttpRequestInterceptor itcp) {
-		httpClientBuilder.addInterceptorFirst(itcp);
-		return this;
-	}
-
-	/**
-	 * @param itcp
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#addInterceptorLast(HttpRequestInterceptor)
-	 */
-	public RestClient addInterceptorLast(HttpRequestInterceptor itcp) {
-		httpClientBuilder.addInterceptorLast(itcp);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableCookieManagement()
-	 */
-	public RestClient disableCookieManagement() {
-		httpClientBuilder.disableCookieManagement();
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableContentCompression()
-	 */
-	public RestClient disableContentCompression() {
-		httpClientBuilder.disableContentCompression();
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableAuthCaching()
-	 */
-	public RestClient disableAuthCaching() {
-		httpClientBuilder.disableAuthCaching();
-		return this;
-	}
-
-	/**
-	 * @param httpprocessor
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setHttpProcessor(HttpProcessor)
-	 */
-	public RestClient setHttpProcessor(HttpProcessor httpprocessor) {
-		httpClientBuilder.setHttpProcessor(httpprocessor);
-		return this;
-	}
-
-	/**
-	 * @param retryHandler
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setRetryHandler(HttpRequestRetryHandler)
-	 */
-	public RestClient setRetryHandler(HttpRequestRetryHandler retryHandler) {
-		httpClientBuilder.setRetryHandler(retryHandler);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableAutomaticRetries()
-	 */
-	public RestClient disableAutomaticRetries() {
-		httpClientBuilder.disableAutomaticRetries();
-		return this;
-	}
-
-	/**
-	 * @param proxy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setProxy(HttpHost)
-	 */
-	public RestClient setProxy(HttpHost proxy) {
-		httpClientBuilder.setProxy(proxy);
-		return this;
-	}
-
-	/**
-	 * @param routePlanner
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setRoutePlanner(HttpRoutePlanner)
-	 */
-	public RestClient setRoutePlanner(HttpRoutePlanner routePlanner) {
-		httpClientBuilder.setRoutePlanner(routePlanner);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#disableRedirectHandling()
-	 */
-	public RestClient disableRedirectHandling() {
-		httpClientBuilder.disableRedirectHandling();
-		return this;
-	}
-
-	/**
-	 * @param connectionBackoffStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setConnectionBackoffStrategy(ConnectionBackoffStrategy)
-	 */
-	public RestClient setConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy) {
-		httpClientBuilder.setConnectionBackoffStrategy(connectionBackoffStrategy);
-		return this;
-	}
-
-	/**
-	 * @param backoffManager
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setBackoffManager(BackoffManager)
-	 */
-	public RestClient setBackoffManager(BackoffManager backoffManager) {
-		httpClientBuilder.setBackoffManager(backoffManager);
-		return this;
-	}
-
-	/**
-	 * @param serviceUnavailStrategy
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy)
-	 */
-	public RestClient setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy) {
-		httpClientBuilder.setServiceUnavailableRetryStrategy(serviceUnavailStrategy);
-		return this;
-	}
-
-	/**
-	 * @param cookieStore
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultCookieStore(CookieStore)
-	 */
-	public RestClient setDefaultCookieStore(CookieStore cookieStore) {
-		httpClientBuilder.setDefaultCookieStore(cookieStore);
-		return this;
-	}
-
-	/**
-	 * @param credentialsProvider
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultCredentialsProvider(CredentialsProvider)
-	 */
-	public RestClient setDefaultCredentialsProvider(CredentialsProvider credentialsProvider) {
-		httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
-		return this;
-	}
-
-	/**
-	 * @param authSchemeRegistry
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultAuthSchemeRegistry(Lookup)
-	 */
-	public RestClient setDefaultAuthSchemeRegistry(Lookup<AuthSchemeProvider> authSchemeRegistry) {
-		httpClientBuilder.setDefaultAuthSchemeRegistry(authSchemeRegistry);
-		return this;
-	}
-
-	/**
-	 * @param contentDecoderMap
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setContentDecoderRegistry(Map)
-	 */
-	public RestClient setContentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap) {
-		httpClientBuilder.setContentDecoderRegistry(contentDecoderMap);
-		return this;
-	}
-
-	/**
-	 * @param config
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#setDefaultRequestConfig(RequestConfig)
-	 */
-	public RestClient setDefaultRequestConfig(RequestConfig config) {
-		httpClientBuilder.setDefaultRequestConfig(config);
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#useSystemProperties()
-	 */
-	public RestClient useSystemProperties() {
-		httpClientBuilder.useSystemProperties();
-		return this;
-	}
-
-	/**
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#evictExpiredConnections()
-	 */
-	public RestClient evictExpiredConnections() {
-		httpClientBuilder.evictExpiredConnections();
-		return this;
-	}
-
-	/**
-	 * @param maxIdleTime
-	 * @param maxIdleTimeUnit
-	 * @return This object (for method chaining).
-	 * @see HttpClientBuilder#evictIdleConnections(long,TimeUnit)
-	 */
-	public RestClient evictIdleConnections(long maxIdleTime, TimeUnit maxIdleTimeUnit) {
-		httpClientBuilder.evictIdleConnections(maxIdleTime, maxIdleTimeUnit);
-		return this;
-	}
-
-	@Override
-	protected void finalize() throws Throwable {
-		if (! isClosed) {
-			System.err.println("WARNING:  RestClient garbage collected before it was finalized.");
-			if (creationStack != null) {
-				System.err.println("Creation Stack:");
-				for (StackTraceElement e : creationStack)
-					System.err.println(e);
-			} else {
-				System.err.println("Creation stack traces can be displayed by setting the system property 'com.ibm.juno.client.RestClient.trackCreation' to true.");
-			}
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/RestRequestEntity.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestRequestEntity.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/RestRequestEntity.java
deleted file mode 100755
index 9336c23..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestRequestEntity.java
+++ /dev/null
@@ -1,86 +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.client;
-
-import java.io.*;
-
-import org.apache.http.entity.*;
-import org.apache.http.message.*;
-
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * HttpEntity for serializing POJOs as the body of HTTP requests.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RestRequestEntity extends BasicHttpEntity {
-	final Object output;
-	final Serializer<?> serializer;
-	byte[] outputBytes;
-
-	/**
-	 * Constructor.
-	 * @param input The POJO to serialize.  Can also be a {@link Reader} or {@link InputStream}.
-	 * @param serializer The serializer to use to serialize this response.
-	 */
-	public RestRequestEntity(Object input, Serializer<?> serializer) {
-		this.output = input;
-		this.serializer = serializer;
-		if (serializer != null)
-			setContentType(new BasicHeader("Content-Type", serializer.getResponseContentType()));
-	}
-
-	@Override /* BasicHttpEntity */
-	public void writeTo(OutputStream os) throws IOException {
-		if (output instanceof InputStream) {
-			IOPipe.create(output, os).closeOut().run();
-		} else if (output instanceof Reader) {
-			IOPipe.create(output, new OutputStreamWriter(os, IOUtils.UTF8)).closeOut().run();
-		} else {
-			try {
-				if (serializer == null) {
-					// If no serializer specified, just close the stream.
-					os.close();
-				} else if (! serializer.isWriterSerializer()) {
-					OutputStreamSerializer s2 = (OutputStreamSerializer)serializer;
-					s2.serialize(output, os);
-					os.close();
-				} else {
-					Writer w = new OutputStreamWriter(os, IOUtils.UTF8);
-					WriterSerializer s2 = (WriterSerializer)serializer;
-					s2.serialize(output, w);
-					w.close();
-				}
-			} catch (SerializeException e) {
-				throw new com.ibm.juno.client.RestCallException(e);
-			}
-		}
-	}
-
-	@Override /* BasicHttpEntity */
-	public boolean isRepeatable() {
-		return true;
-	}
-
-	@Override /* BasicHttpEntity */
-	public InputStream getContent() {
-		if (outputBytes == null) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			try {
-				writeTo(baos);
-				outputBytes = baos.toByteArray();
-			} catch (IOException e) {
-				throw new RuntimeException(e);
-			}
-		}
-		return new ByteArrayInputStream(outputBytes);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/RetryOn.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/RetryOn.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/RetryOn.java
deleted file mode 100755
index 6b9bf75..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/RetryOn.java
+++ /dev/null
@@ -1,35 +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.client;
-
-/**
- * Used to determine whether a request should be retried based on the HTTP response code.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public interface RetryOn {
-
-	/**
-	 * Default RetryOn that returns <jk>true</jk> of any HTTP response &gt;= 400 is received.
-	 */
-	public static final RetryOn DEFAULT = new RetryOn() {
-		@Override /* RetryOn */
-		public boolean onCode(int httpResponseCode) {
-			return httpResponseCode <= 0 || httpResponseCode >= 400;
-		}
-	};
-
-	/**
-	 * Subclasses should override this method to determine whether the HTTP response is retryable.
-	 *
-	 * @param httpResponseCode The HTTP response code.
-	 * @return <jk>true</jk> if the specified response code is retryable.
-	 */
-	boolean onCode(int httpResponseCode);
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/SSLOpts.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/SSLOpts.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/SSLOpts.java
deleted file mode 100755
index 2a7ed82..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/SSLOpts.java
+++ /dev/null
@@ -1,185 +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.client;
-
-import com.ibm.juno.core.utils.*;
-
-/**
- * SSL configuration options that get passed to {@link RestClient#enableSSL(SSLOpts)}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SSLOpts {
-
-	private String protocols = getDefaultProtocols();
-	private CertValidate certValidate = CertValidate.DEFAULT;
-	private HostVerify hostVerify = HostVerify.DEFAULT;
-
-	/**
-	 * Reusable SSL options for lenient SSL (no cert validation or hostname verification).
-	 */
-	public static final SSLOpts LAX = new SSLOpts(null, CertValidate.LAX, HostVerify.LAX);
-
-	/**
-	 * Reusable SSL options for normal SSL (default cert validation and hostname verification).
-	 */
-	public static final SSLOpts DEFAULT = new SSLOpts(null, CertValidate.DEFAULT, HostVerify.DEFAULT);
-
-	/**
-	 * Constructor.
-	 */
-	public SSLOpts() {}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param protocols A comma-delimited list of supported SSL protocols.
-	 * 	If <jk>null</jk>, uses the value returned by {@link #getDefaultProtocols()}.
-	 * @param certValidate Certificate validation setting.
-	 * @param hostVerify Host verification setting.
-	 */
-	public SSLOpts(String protocols, CertValidate certValidate, HostVerify hostVerify) {
-		if (protocols != null)
-			this.protocols = protocols;
-		this.certValidate = certValidate;
-		this.hostVerify = hostVerify;
-	}
-
-	/**
-	 * Returns the default list of SSL protocols to support when the <code>protocols</code>
-	 * 	parameter on the constructor is <jk>null</jk>.
-	 * <p>
-	 * The default value is <jk>"SSL_TLS,TLS,SSL"</js> unless overridden by one of the following
-	 * 	system properties:
-	 * <ul>
-	 * 	<li><js>"com.ibm.team.repository.transport.client.protocol"</js>
-	 * 	<li><js>"transport.client.protocol"</js>
-	 * </ul>
-	 * <p>
-	 * Subclasses can override this method to provide their own logic for determining default supported protocols.
-	 *
-	 * @return The comma-delimited list of supported protocols.
-	 */
-	protected String getDefaultProtocols() {
-		String sp = System.getProperty("com.ibm.team.repository.transport.client.protocol");
-		if (StringUtils.isEmpty(sp))
-			sp = System.getProperty("transport.client.protocol");
-		if (StringUtils.isEmpty(sp))
-			sp = "SSL_TLS,TLS,SSL";
-		return sp;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Bean property getter:  <property>protocols</property>.
-	 *
-	 * @return The value of the <property>protocols</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public String getProtocols() {
-		return protocols;
-	}
-
-	/**
-	 * Bean property setter:  <property>protocols</property>.
-	 *
-	 * @param protocols The new value for the <property>properties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public SSLOpts setProtocols(String protocols) {
-		this.protocols = protocols;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>certValidate</property>.
-	 *
-	 * @return The value of the <property>certValidate</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public CertValidate getCertValidate() {
-		return certValidate;
-	}
-
-	/**
-	 * Bean property setter:  <property>certValidate</property>.
-	 *
-	 * @param certValidate The new value for the <property>properties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public SSLOpts setCertValidate(CertValidate certValidate) {
-		this.certValidate = certValidate;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>hostVerify</property>.
-	 *
-	 * @return The value of the <property>hostVerify</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public HostVerify getHostVerify() {
-		return hostVerify;
-	}
-
-	/**
-	 * Bean property setter:  <property>hostVerify</property>.
-	 *
-	 * @param hostVerify The new value for the <property>properties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public SSLOpts setHostVerify(HostVerify hostVerify) {
-		this.hostVerify = hostVerify;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Enums
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Certificate validation options.
-	 * <p>
-	 * Used as enum for {@link SSLOpts#getCertValidate()} property.
-	 */
-	@SuppressWarnings("hiding")
-	public static enum CertValidate {
-
-		/**
-		 * Verify that the certificate is valid, but allow for self-signed certificates.
-		 */
-		LAX,
-
-		/**
-		 * Do normal certificate chain validation.
-		 */
-		DEFAULT
-	}
-
-	/**
-	 * Certificate host verification options.
-	 * <p>
-	 * Used as enum for {@link SSLOpts#getHostVerify()} property.
-	 */
-	@SuppressWarnings("hiding")
-	public enum HostVerify {
-
-		/**
-		 * Don't verify the hostname in the certificate.
-		 */
-		LAX,
-
-		/**
-		 * Do normal hostname verification.
-		 */
-		DEFAULT
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/SerializedNameValuePair.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/SerializedNameValuePair.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/SerializedNameValuePair.java
deleted file mode 100755
index cdb3b2e..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/SerializedNameValuePair.java
+++ /dev/null
@@ -1,79 +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.client;
-
-import static com.ibm.juno.core.urlencoding.UonSerializerProperties.*;
-
-import org.apache.http.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.urlencoding.*;
-
-/**
- * Subclass of {@link NameValuePair} for serializing POJOs as URL-encoded form post entries
- * 	using the {@link UrlEncodingSerializer class}.
- * <p>
- * Example:
- * <p class='bcode'>
- * 	NameValuePairs params = <jk>new</jk> NameValuePairs()
- * 		.append(<jk>new</jk> SerializedNameValuePair(<js>"myPojo"</js>, pojo, UrlEncodingSerializer.<jsf>DEFAULT_SIMPLE</jsf>))
- * 		.append(<jk>new</jk> BasicNameValuePair(<js>"someOtherParam"</js>, <js>"foobar"</js>));
- * 	request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class SerializedNameValuePair implements NameValuePair {
-	private String name;
-	private Object value;
-	private UrlEncodingSerializer serializer;
-
-	// We must be sure to disable character encoding since it's done in the http client layer.
-	private static final ObjectMap op = new ObjectMap().append(UON_encodeChars, false);
-
-	/**
-	 * Constructor.
-	 *
-	 * @param name The parameter name.
-	 * @param value The POJO to serialize to the parameter value.
-	 * @param serializer The serializer to use to convert the value to a string.
-	 */
-	public SerializedNameValuePair(String name, Object value, UrlEncodingSerializer serializer) {
-		this.name = name;
-		this.value = value;
-		this.serializer = serializer;
-	}
-
-	@Override /* NameValuePair */
-	public String getName() {
-		if (name != null && name.length() > 0) {
-			char c = name.charAt(0);
-			if (c == '$' || c == '(') {
-				try {
-					UonSerializerContext ctx = serializer.createContext(op, null);
-					return serializer.serialize(name, ctx);
-				} catch (SerializeException e) {
-					throw new RuntimeException(e);
-				}
-			}
-		}
-		return name;
-	}
-
-	@Override /* NameValuePair */
-	public String getValue() {
-		try {
-			UonSerializerContext ctx = serializer.createContext(op, null);
-			return serializer.serialize(value, ctx);
-		} catch (SerializeException e) {
-			throw new RuntimeException(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/SimpleX509TrustManager.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/SimpleX509TrustManager.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/SimpleX509TrustManager.java
deleted file mode 100755
index 72975cb..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/SimpleX509TrustManager.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client;
-
-import java.security.*;
-import java.security.cert.*;
-
-import javax.net.ssl.*;
-
-/**
- * A trust manager that optionally allows for self-signed certificates.
- */
-public final class SimpleX509TrustManager implements X509TrustManager {
-
-	private X509TrustManager baseTrustManager;  // The JRE-provided trust manager used to validate certificates presented by a server.
-
-	/**
-	 * Constructor.
-	 *
-	 * @param lax If <jk>true</jk>, allow self-signed and expired certificates.
-	 * @throws KeyStoreException
-	 * @throws NoSuchAlgorithmException
-	 */
-	public SimpleX509TrustManager(boolean lax) throws KeyStoreException, NoSuchAlgorithmException {
-		if (! lax) {
-			// Find the JRE-provided X509 trust manager.
-			KeyStore ks = KeyStore.getInstance("jks");
-			TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
-			factory.init(ks);
-			for (TrustManager tm : factory.getTrustManagers()) {
-				if (tm instanceof X509TrustManager) {
-					baseTrustManager = (X509TrustManager)tm; // Take the first X509TrustManager we find
-					return;
-				}
-			}
-			throw new IllegalStateException("Couldn't find JRE's X509TrustManager"); //$NON-NLS-1$
-		}
-	}
-
-	@Override /* X509TrustManager */
-	public X509Certificate[] getAcceptedIssuers() {
-		return baseTrustManager == null ? new X509Certificate[0] : baseTrustManager.getAcceptedIssuers();
-	}
-
-	@Override /* X509TrustManager */
-	public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-		if (baseTrustManager != null)
-			baseTrustManager.checkClientTrusted(chain, authType);
-	}
-
-	@Override /* X509TrustManager */
-	public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-		if (baseTrustManager != null)
-			baseTrustManager.checkServerTrusted(chain, authType);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/CertificateStore.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/CertificateStore.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/CertificateStore.java
deleted file mode 100755
index f06eaf5..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/CertificateStore.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-import java.util.*;
-
-/**
- * Specialized certificate storage based on {@link KeyStore} for managing trusted certificates.
- */
-@Deprecated // Use SimpleX509TrustManager
-public class CertificateStore {
-
-	private final KeyStore keyStore;
-
-	/**
-	 * Get the underlying KeyStore.
-	 */
-	KeyStore getKeyStore() {
-		return keyStore;
-	}
-
-	/**
-	 * Helper method that creates a {@link KeyStore} by reading it from a file.
-	 */
-	static KeyStore load(File file, String password) throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException {
-		KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
-		try {
-			InputStream input = new FileInputStream(file);
-			try {
-				ks.load(input, password == null ? null : password.toCharArray());
-			} finally {
-				input.close();
-			}
-		} catch (IOException e) {
-			// Return an empty initialized KeyStore
-			ks.load(null, null);
-		}
-		return ks;
-	}
-
-	/**
-	 * Helper method that writes a {@link KeyStore} to a file.
-	 */
-	static void store(KeyStore ks, File file, String password) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
-		OutputStream output = new FileOutputStream(file);
-		try {
-			ks.store(output, password == null ? null : password.toCharArray());
-		} finally {
-			output.close();
-		}
-	}
-
-	/**
-	 * Helper to compute a unique alias within the trust store for a specified certificate.
-	 * @param cert The certificate to compute an alias for.
-	 */
-	static String computeAlias(Certificate cert) {
-		// There appears to be no standard way to construct certificate aliases,
-		// but this class never depends on looking up a certificate by its
-		// computed alias, so just create an alias that's unique and be done.
-		return UUID.randomUUID().toString();
-	}
-
-	/**
-	 * Construct a new TrustStore initially containing no certificates.
-	 */
-	public CertificateStore() throws NoSuchAlgorithmException, CertificateException, IOException {
-		try {
-			keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
-		} catch (KeyStoreException e) {
-			// If the code above caused a KeyStoreException, then the JVM classpath is probably messed up.
-			throw new RuntimeException("KeyStoreException: ["+e.getLocalizedMessage()+"]. "
-				+ "Likely cause is that the Java Cryptography Extension libraries are missing from the JRE classpath.  "
-				+ "Make sure %JAVA_HOME%/lib/ext is specified in your JVM's java.ext.dirs system property.");
-		}
-		keyStore.load(null, null);
-	}
-
-	/**
-	 * Does the trust store contain the specified certificate?
-	 */
-	public boolean containsCertificate(Certificate cert) throws KeyStoreException {
-		return (keyStore.getCertificateAlias(cert) != null);
-	}
-
-	/**
-	 * Enter the specified certificate into the trust store.
-	 */
-	public void enterCertificate(Certificate cert) throws KeyStoreException {
-		if (! containsCertificate(cert))
-			keyStore.setCertificateEntry(computeAlias(cert), cert);
-	}
-
-	/*
-	 * Helper to copy all the certificate entries, and none of the other
-	 * entries, from a {@link KeyStore} into the trust store.
-	 */
-	private void enterCertificates(KeyStore ks) throws KeyStoreException {
-		for (Enumeration<String> e = ks.aliases(); e.hasMoreElements();) {
-			String alias = e.nextElement();
-			if (ks.isCertificateEntry(alias)) {
-				Certificate cert = ks.getCertificate(alias);
-				enterCertificate(cert);
-			}
-		}
-	}
-
-	/**
-	 * Load the specified {@link KeyStore} file and copy all of the certificates
-	 * it contains into the trust store. Only certificates, and not any other
-	 * entries, are loaded.
-	 */
-	public void loadCertificates(File file, String password) throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException {
-		KeyStore ks = load(file, password);
-		enterCertificates(ks);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ICertificateValidator.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ICertificateValidator.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ICertificateValidator.java
deleted file mode 100755
index 0ee07e8..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ICertificateValidator.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.security.cert.*;
-
-/**
- * Validator of certificates presented by a server when establishing an SSL
- * connection.
- */
-@Deprecated // Use SimpleX509TrustManager
-public interface ICertificateValidator {
-
-	/** Action to take for a server-supplied certificate. */
-	public enum Trust {
-
-		/** Do not accept the certificate. */
-		REJECT,
-
-		/** Accept the certificate temporarily for the current connection. */
-		ACCEPT_CONNECTION,
-
-		/** Accept the certificate temporarily for the current session. */
-		ACCEPT_SESSION,
-
-		/** Accept the certificate permanently, by saving it in the user's trust store.*/
-		ACCEPT_PERMANENT
-	}
-
-	/**
-	 * There is a problem accepting the server-supplied certificate. What should
-	 * be done?
-	 *
-	 * @param cert The problematic certificate presented by the server
-	 * @param problem The {@link CertificateException} that may indicate the specific
-	 * 	problem with the certificate, e.g. {@link CertificateExpiredException}.
-	 * @return The disposition on the certificate.
-	 */
-	Trust validate(X509Certificate cert, CertificateException problem);
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ITrustStoreProvider.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ITrustStoreProvider.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ITrustStoreProvider.java
deleted file mode 100755
index 47256a9..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ITrustStoreProvider.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-
-/**
- * Utility class for handling certificate stores.
- */
-@Deprecated // Use SimpleX509TrustManager
-public interface ITrustStoreProvider {
-
-	/**
-	 * Returns the store of all certificates trusted for the lifetime
-	 * of this trust provider
-	 */
-	CertificateStore getSessionTrustStore();
-
-	/**
-	 * Returns the store of all permanently trusted certificates.
-	 */
-	CertificateStore getRuntimeTrustStore();
-
-    /**
-     * Install a certificate in the user's application-specific on-disk key
-     * store, if possible.
-     */
-    public void installCertificate(Certificate cert) throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/LenientCertificateValidator.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/LenientCertificateValidator.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/LenientCertificateValidator.java
deleted file mode 100755
index a12ca43..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/LenientCertificateValidator.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.security.cert.*;
-
-/**
- * Lenient certificate validator that always accepts invalid certificates.
- */
-@Deprecated // Use SimpleX509TrustManager
-public final class LenientCertificateValidator implements ICertificateValidator {
-
-	/** Singleton */
-	public static final ICertificateValidator INSTANCE = new LenientCertificateValidator();
-
-	@Override /* ICertificateValidator */
-	public Trust validate(X509Certificate certificate, CertificateException problem) {
-		return Trust.ACCEPT_CONNECTION;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.java
deleted file mode 100755
index 149302d..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/SharedTrustStoreProvider.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-
-/**
- * Trust store provider with shared static certificate stores.
- */
-@Deprecated // Use SimpleX509TrustManager
-public final class SharedTrustStoreProvider implements ITrustStoreProvider {
-
-	// In-memory trust store of all certificates explicitly accepted by the
-	// certificate validator during this session. The validator will not be
-	// called again during this session for any of these certificates. These may
-	// include expired, not yet valid, or otherwise untrusted certificates.
-	// These are kept distinctly, rather than merged into the runtime trust
-	// store, because the base trust manager will never accept expired, etc.
-	// certificates, even if from a trusted source.
-	private static CertificateStore sessionCerts;
-
-	// In-memory trust store of all permanently trusted certificates, assembled
-	// from a number of key store files. These are provided to the base trust
-	// manager as the basis for its decision making.
-	private static CertificateStore runtimeCerts;
-
-	// Location and password of the user's private trust store for this application.
-	private static String userTrustStoreLocation;
-	private static String userTrustStorePassword;
-
-	static {
-		init();
-	}
-
-	private static final void init() {
-		try {
-			String userHome = System.getProperty("user.home");
-			String javaHome = System.getProperty("java.home");
-
-			userTrustStoreLocation = userHome + "/.jazzcerts";
-			userTrustStorePassword = "ibmrationaljazz";
-
-			sessionCerts = new CertificateStore();
-
-			runtimeCerts = new CertificateStore();
-
-			// JRE keystore override
-			String file = System.getProperty("javax.net.ssl.trustStore");
-			String password = System.getProperty("javax.net.ssl.trustStorePassword");
-			addCertificatesFromStore(runtimeCerts, file, password);
-
-			// JRE Signer CA keystore
-			file = javaHome + "/lib/security/cacerts";
-			addCertificatesFromStore(runtimeCerts, file, null);
-
-			// JRE Secure Site CA keystore
-			file =  (javaHome + "/lib/security/jssecacerts");
-			addCertificatesFromStore(runtimeCerts, file, null);
-
-			// Application-specific keystore for the current user
-			addCertificatesFromStore(runtimeCerts, userTrustStoreLocation, userTrustStorePassword);
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private static void addCertificatesFromStore(CertificateStore store, String file, String password) {
-		try {
-			File f = new File(file);
-			if (f.canRead())
-				store.loadCertificates(f, password);
-		} catch (Exception e) {
-			// Discard errors
-		}
-	}
-
-	@Override /* ITrustStoreProvider */
-	public CertificateStore getRuntimeTrustStore() {
-		return runtimeCerts;
-	}
-
-	@Override /* ITrustStoreProvider */
-	public CertificateStore getSessionTrustStore() {
-		return sessionCerts;
-	}
-
-	@Override /* ITrustStoreProvider */
-	public void installCertificate(Certificate cert) throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException {
-		File  f = new File(userTrustStoreLocation);
-		KeyStore ks = CertificateStore.load(f, userTrustStorePassword);
-		ks.setCertificateEntry(CertificateStore.computeAlias(cert), cert);
-		CertificateStore.store(ks, f, userTrustStorePassword);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.java
deleted file mode 100755
index a7539fe..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/deprecated/ValidatingX509TrustManager.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2010, 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.client.deprecated;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-
-import javax.net.ssl.*;
-
-/**
- * A trust manager that will call a registered {@link ICertificateValidator} in
- * the event that a problematic (e.g. expired, not yet valid) or untrusted
- * certificate is presented by a server, and react appropriately. This trust
- * manager will rely on multiple key stores, and manage one of its own. The
- * managed key store and the session-accepted key store are shared by all trust
- * manager instances.
- */
-@Deprecated // Use SimpleX509TrustManager
-public final class ValidatingX509TrustManager implements X509TrustManager {
-
-	// The JRE-provided trust manager used to validate certificates presented by a server.
-	private X509TrustManager baseTrustManager;
-
-	// The registered certificate validator, may be null, called when the base
-	// trust manager rejects a certificate presented by a server.
-	private ICertificateValidator validator;
-
-	private ITrustStoreProvider trustStoreProvider;
-
-	/**
-	 * Construct a new ValidatingX509TrustManager.
-	 *
-	 * @param validator Certificate validator to consult regarding problematic
-	 * 	certificates, or <code>null</code> to always reject them.
-	 */
-	public ValidatingX509TrustManager(ICertificateValidator validator) throws KeyStoreException, NoSuchAlgorithmException {
-		this.validator = validator;
-		this.trustStoreProvider = new SharedTrustStoreProvider();
-
-		// Initialize the base X509 trust manager that will be used to evaluate
-		// certificates presented by the server against the runtime trust store.
-		TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
-		factory.init(trustStoreProvider.getRuntimeTrustStore().getKeyStore());
-		TrustManager[] managers = factory.getTrustManagers();
-		for (TrustManager manager : managers) {
-			if (manager instanceof X509TrustManager) {
-				baseTrustManager = (X509TrustManager) manager; // Take the first X509TrustManager we find
-				return;
-			}
-		}
-		throw new IllegalStateException("Couldn't find JRE's X509TrustManager"); //$NON-NLS-1$
-	}
-
-	@Override /* X509TrustManager */
-	public X509Certificate[] getAcceptedIssuers() {
-		return baseTrustManager.getAcceptedIssuers();
-	}
-
-	@Override /* X509TrustManager */
-	public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-		baseTrustManager.checkClientTrusted(chain, authType);
-	}
-
-	@Override /* X509TrustManager */
-	public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-		X509Certificate cert = chain[0];
-
-		// Has the certificate been OK'd for the session?
-		try {
-			if (trustStoreProvider.getSessionTrustStore().containsCertificate(cert))
-				return;
-		} catch (KeyStoreException e) {
-			// Ignore; proceed to try base trust manager
-		}
-
-		try {
-			// Rely on the base trust manager to check the certificate against the assembled runtime key store
-			baseTrustManager.checkServerTrusted(chain, authType);
-		} catch (CertificateException certEx) {
-
-			// Done if there isn't a validator to consult
-			if (validator == null)
-				throw certEx; // Rejected!
-
-			// Ask the registered certificate validator to rule on the certificate
-			ICertificateValidator.Trust disposition = validator.validate(cert, certEx);
-			switch (disposition) {
-				case REJECT:				throw certEx;
-				case ACCEPT_CONNECTION: break;
-				case ACCEPT_SESSION:		enterCertificate(cert, false); break;
-				case ACCEPT_PERMANENT:	enterCertificate(cert, true); break;
-			}
-		}
-	}
-
-	private void enterCertificate(X509Certificate cert, boolean permanent) throws CertificateException {
-		try {
-			trustStoreProvider.getSessionTrustStore().enterCertificate(cert);
-			if (permanent)
-				trustStoreProvider.installCertificate(cert);
-		} catch (KeyStoreException e) {
-		} catch (NoSuchAlgorithmException e) {
-		} catch (IOException e) {
-		}
-	}
-}


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/package.html
deleted file mode 100755
index ac9a67e..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/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>Java-serialized-object 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/json/JsonClassMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonClassMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonClassMeta.class
deleted file mode 100755
index 035d4fa..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonClassMeta.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/json/JsonClassMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonClassMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonClassMeta.java
deleted file mode 100755
index 7beba59..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonClassMeta.java
+++ /dev/null
@@ -1,55 +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.json;
-
-import com.ibm.juno.core.json.annotation.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Metadata on classes specific to the JSON serializers and parsers pulled from the {@link Json @Json} annotation on the class.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class JsonClassMeta {
-
-	private final Json json;
-	private final String wrapperAttr;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param c The class that this annotation is defined on.
-	 */
-	public JsonClassMeta(Class<?> c) {
-		this.json = ReflectionUtils.getAnnotation(Json.class, c);
-		if (json != null) {
-			wrapperAttr = StringUtils.nullIfEmpty(json.wrapperAttr());
-		} else {
-			wrapperAttr = null;
-		}
-	}
-
-	/**
-	 * Returns the {@link Json} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Json} annotation, or <jk>null</jk> if not specified.
-	 */
-	protected Json getAnnotation() {
-		return json;
-	}
-
-	/**
-	 * Returns the {@link Json#wrapperAttr()} annotation defined on the class.
-	 *
-	 * @return The value of the {@link Json#wrapperAttr()} annotation, or <jk>null</jk> if not specified.
-	 */
-	protected String getWrapperAttr() {
-		return wrapperAttr;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParser.class
deleted file mode 100755
index fe41f60..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParser.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/json/JsonParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParser.java
deleted file mode 100755
index 42cd8b9..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParser.java
+++ /dev/null
@@ -1,852 +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.json;
-
-import static com.ibm.juno.core.json.JsonParserProperties.*;
-
-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 any valid JSON text into a POJO model.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Content-Type</code> types: <code>application/json, text/json</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	This parser uses a state machine, which makes it very fast and efficient.  It parses JSON in about 70% of the
- * 	time that it takes the built-in Java DOM parsers to parse equivalent XML.
- * <p>
- * 	This parser handles all valid JSON syntax.
- * 	In addition, when strict mode is disable, the parser also handles the following:
- * 	<ul>
- * 		<li> Javascript comments (both {@code /*} and {@code //}) are ignored.
- * 		<li> Both single and double quoted strings.
- * 		<li> Automatically joins concatenated strings (e.g. <code><js>"aaa"</js> + <js>'bbb'</js></code>).
- * 		<li> Unquoted attributes.
- * 	</ul>
- * 	Also handles negative, decimal, hexadecimal, octal, and double numbers, including exponential notation.
- * <p>
- * 	This parser handles the following input, and automatically returns the corresponding Java class.
- * 	<ul>
- * 		<li> JSON objects (<js>"{...}"</js>) are converted to {@link ObjectMap ObjectMaps}.  <br>
- * 				Note:  If a <code><xa>_class</xa>=<xs>'xxx'</xs></code> attribute is specified on the object, then an attempt is made to convert the object
- * 				to an instance of the specified Java bean class.  See the classProperty setting on the {@link BeanContextFactory} for more information
- * 				about parsing beans from JSON.
- * 		<li> JSON arrays (<js>"[...]"</js>) are converted to {@link ObjectList ObjectLists}.
- * 		<li> JSON string literals (<js>"'xyz'"</js>) are converted to {@link String Strings}.
- * 		<li> JSON numbers (<js>"123"</js>, including octal/hexadecimal/exponential notation) are converted to {@link Integer Integers},
- * 				{@link Long Longs}, {@link Float Floats}, or {@link Double Doubles} depending on whether the number is decimal, and the size of the number.
- * 		<li> JSON booleans (<js>"false"</js>) are converted to {@link Boolean Booleans}.
- * 		<li> JSON nulls (<js>"null"</js>) are converted to <jk>null</jk>.
- * 		<li> Input consisting of only whitespace or JSON comments are converted to <jk>null</jk>.
- * 	</ul>
- * <p>
- * 	Input can be any of the following:<br>
- * 	<ul>
- * 		<li> <js>"{...}"</js> - Converted to a {@link ObjectMap} or an instance of a Java bean if a <xa>_class</xa> attribute is present.
- *  		<li> <js>"[...]"</js> - Converted to a {@link ObjectList}.
- *  		<li> <js>"123..."</js> - Converted to a {@link Number} (either {@link Integer}, {@link Long}, {@link Float}, or {@link Double}).
- *  		<li> <js>"true"</js>/<js>"false"</js> - Converted to a {@link Boolean}.
- *  		<li> <js>"null"</js> - Returns <jk>null</jk>.
- *  		<li> <js>"'xxx'"</js> - Converted to a {@link String}.
- *  		<li> <js>"\"xxx\""</js> - Converted to a {@link String}.
- *  		<li> <js>"'xxx' + \"yyy\""</js> - Converted to a concatenated {@link String}.
- * 	</ul>
-  * <p>
- * 	TIP:  If you know you're parsing a JSON object or array, it can be easier to parse it using the {@link ObjectMap#ObjectMap(CharSequence) ObjectMap(CharSequence)}
- * 		or {@link ObjectList#ObjectList(CharSequence) ObjectList(CharSequence)} constructors instead of using this class.  The end result should be the same.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link ParserProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({ "rawtypes", "unchecked" })
-@Consumes({"application/json","text/json"})
-public final class JsonParser extends ReaderParser {
-
-	/** Default parser, all default settings.*/
-	public static final JsonParser DEFAULT = new JsonParser().lock();
-
-	/** Default parser, all default settings.*/
-	public static final JsonParser DEFAULT_STRICT = new JsonParser().setProperty(JSON_strictMode, true).lock();
-
-	/** JSON specific properties currently defined on this class */
-	protected transient JsonParserProperties jpp = new JsonParserProperties();
-
-	private <T> T parseAnything(JsonParserContext ctx, ClassMeta<T> nt, ParserReader r, BeanPropertyMeta p, Object outer, 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();
-		String wrapperAttr = ft.getJsonMeta().getWrapperAttr();
-
-		int line = r.getLine();
-		int column = r.getColumn();
-		Object o = null;
-		try {
-			skipCommentsAndSpace(ctx, r);
-			if (wrapperAttr != null)
-				skipWrapperAttrStart(ctx, r, wrapperAttr);
-			int c = r.peek();
-			if (c == -1) {
-				// Let o be null.
-			} else if ((c == ',' || c == '}' || c == ']')) {
-				if (ctx.isStrictMode())
-					throw new ParseException(line, column, "Missing value detected.");
-				// Handle bug in Cognos 10.2.1 that can product non-existent values.
-				// Let o be null;
-			} else if (c == 'n') {
-				parseKeyword("null", r);
-			} else if (ft.isObject()) {
-				if (c == '{') {
-					ObjectMap m2 = new ObjectMap(bc);
-					parseIntoMap2(ctx, r, m2, string(), object());
-					o = m2.cast();
-				} else if (c == '[')
-					o = parseIntoCollection2(ctx, r, new ObjectList(bc), object());
-				else if (c == '\'' || c == '"') {
-					o = parseString(ctx, r);
-					if (ft.isChar())
-						o = o.toString().charAt(0);
-				}
-				else if (c >= '0' && c <= '9' || c == '-')
-					o = parseNumber(ctx, r, null);
-				else if (c == 't') {
-					parseKeyword("true", r);
-					o = Boolean.TRUE;
-				} else {
-					parseKeyword("false", r);
-					o = Boolean.FALSE;
-				}
-			} else if (ft.isBoolean()) {
-				o = parseBoolean(ctx, r);
-			} else if (ft.isCharSequence()) {
-				o = parseString(ctx, r);
-			} else if (ft.isChar()) {
-				o = parseString(ctx, r).charAt(0);
-			} else if (ft.isNumber()) {
-				o = parseNumber(ctx, r, (Class<? extends Number>)ft.getInnerClass());
-			} else if (ft.isMap()) {
-				Map m = (ft.canCreateNewInstance(outer) ? (Map)ft.newInstance(outer) : new ObjectMap(bc));
-				o = parseIntoMap2(ctx, r, m, ft.getKeyType(), ft.getValueType());
-			} else if (ft.isCollection()) {
-				if (c == '{') {
-					ObjectMap m = new ObjectMap(bc);
-					parseIntoMap2(ctx, r, m, string(), object());
-					o = m.cast();
-				} else {
-					Collection l = (ft.canCreateNewInstance(outer) ? (Collection)ft.newInstance() : new ObjectList(bc));
-					o = parseIntoCollection2(ctx, r, l, ft.getElementType());
-				}
-			} else if (ft.canCreateNewInstanceFromObjectMap(outer)) {
-				ObjectMap m = new ObjectMap(bc);
-				parseIntoMap2(ctx, r, m, string(), object());
-				o = ft.newInstanceFromObjectMap(outer, m);
-			} else if (ft.canCreateNewBean(outer)) {
-				BeanMap m = bc.newBeanMap(outer, ft.getInnerClass());
-				o = parseIntoBeanMap2(ctx, r, m).getBean();
-			} else if (ft.canCreateNewInstanceFromString(outer) && (c == '\'' || c == '"')) {
-				o = ft.newInstanceFromString(outer, parseString(ctx, r));
-			} else if (ft.isArray()) {
-				if (c == '{') {
-					ObjectMap m = new ObjectMap(bc);
-					parseIntoMap2(ctx, r, m, string(), object());
-					o = m.cast();
-				} else {
-					ArrayList l = (ArrayList)parseIntoCollection2(ctx, r, new ArrayList(), ft.getElementType());
-					o = bc.toArray(ft, l);
-				}
-			} else if (c == '{' ){
-				Map m = new ObjectMap(bc);
-				parseIntoMap2(ctx, r, m, ft.getKeyType(), ft.getValueType());
-				if (m.containsKey("_class"))
-					o = ((ObjectMap)m).cast();
-				else
-					throw new ParseException(line, column, "Class ''{0}'' could not be instantiated.  Reason: ''{1}''", ft.getInnerClass().getName(), ft.getNotABeanReason());
-			} else if (ft.canCreateNewInstanceFromString(outer) && ! ctx.isStrictMode()) {
-				o = ft.newInstanceFromString(outer, parseString(ctx, r));
-			} else {
-				throw new ParseException(line, column, "Unrecognized syntax for class type ''{0}'', starting character ''{1}''", ft, (char)c);
-			}
-
-			if (wrapperAttr != null)
-				skipWrapperAttrEnd(ctx, r);
-
-			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 Number parseNumber(JsonParserContext ctx, ParserReader r, Class<? extends Number> type) throws IOException, ParseException {
-		int c = r.peek();
-		if (c == '\'' || c == '"')
-			return parseNumber(ctx, parseString(ctx, r), type);
-		return parseNumber(ctx, StringUtils.parseNumberString(r), type);
-	}
-
-	private Number parseNumber(JsonParserContext ctx, String s, Class<? extends Number> type) throws ParseException {
-		if (ctx.isStrictMode()) {
-			// Need to weed out octal and hexadecimal formats:  0123,-0123,0x123,-0x123.
-			// Don't weed out 0 or -0.
-			// All other number formats are supported in JSON.
-			boolean isNegative = false;
-			char c = (s.length() == 0 ? 'x' : s.charAt(0));
-			if (c == '-') {
-				isNegative = true;
-				c = (s.length() == 1 ? 'x' : s.charAt(1));
-			}
-			if (c == 'x' || (c == '0' && s.length() > (isNegative ? 2 : 1)))
-				throw new NumberFormatException("Invalid JSON number '"+s+"'");
-		}
-		return StringUtils.parseNumber(s, type);
-	}
-
-	private Boolean parseBoolean(JsonParserContext ctx, ParserReader r) throws IOException, ParseException {
-		int c = r.peek();
-		if (c == '\'' || c == '"')
-			return Boolean.valueOf(parseString(ctx, r));
-		if (c == 't') {
-			parseKeyword("true", r);
-			return Boolean.TRUE;
-		}
-		parseKeyword("false", r);
-		return Boolean.FALSE;
-	}
-
-
-	private <K,V> Map<K,V> parseIntoMap2(JsonParserContext 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 S0=0; // Looking for outer {
-		int S1=1; // Looking for attrName start.
-		int S3=3; // Found attrName end, looking for :.
-		int S4=4; // Found :, looking for valStart: { [ " ' LITERAL.
-		int S5=5; // Looking for , or }
-
-		int state = S0;
-		String currAttr = null;
-		int c = 0;
-		while (c != -1) {
-			c = r.read();
-			if (state == S0) {
-				if (c == '{')
-					state = S1;
-			} else if (state == S1) {
-				if (c == '}') {
-					return m;
-				} else if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (! Character.isWhitespace(c)) {
-					currAttr = parseFieldName(ctx, r.unread());
-					state = S3;
-				}
-			} else if (state == S3) {
-				if (c == ':')
-					state = S4;
-			} else if (state == S4) {
-				if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (! Character.isWhitespace(c)) {
-					K key = convertAttrToType(m, currAttr, keyType);
-					V value = parseAnything(ctx, valueType, r.unread(), null, m, key);
-					m.put(key, value);
-					state = S5;
-				}
-			} else if (state == S5) {
-				if (c == ',')
-					state = S1;
-				else if (c == '/')
-					skipCommentsAndSpace(ctx, r.unread());
-				else if (c == '}') {
-					return m;
-				}
-			}
-		}
-		if (state == S0)
-			throw new ParseException(line, column, "Expected '{' at beginning of JSON object.");
-		if (state == S1)
-			throw new ParseException(line, column, "Could not find attribute name on JSON object.");
-		if (state == S3)
-			throw new ParseException(line, column, "Could not find ':' following attribute name on JSON object.");
-		if (state == S4)
-			throw new ParseException(line, column, "Expected one of the following characters: {,[,',\",LITERAL.");
-		if (state == S5)
-			throw new ParseException(line, column, "Could not find '}' marking end of JSON object.");
-
-		return null; // Unreachable.
-	}
-
-	/*
-	 * Parse a JSON attribute from the character array at the specified position, then
-	 * set the position marker to the last character in the field name.
-	 */
-	private String parseFieldName(JsonParserContext ctx, ParserReader r) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-		int c = r.peek();
-		if (c == '\'' || c == '"')
-			return parseString(ctx, r);
-		if (ctx.isStrictMode())
-			throw new ParseException(line, column, "Unquoted attribute detected.");
-		r.mark();
-		// Look for whitespace.
-		while (c != -1) {
-			c = r.read();
-			if (c == ':' || Character.isWhitespace(c) || c == '/') {
-				r.unread();
-				String s = r.getMarked().intern();
-				return s.equals("null") ? null : s;
-			}
-		}
-		throw new ParseException(line, column, "Could not find the end of the field name.");
-	}
-
-	private <E> Collection<E> parseIntoCollection2(JsonParserContext ctx, ParserReader r, Collection<E> l, ClassMeta<E> elementType) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-
-		int S0=0; // Looking for outermost [
-		int S1=1; // Looking for starting [ or { or " or ' or LITERAL
-		int S2=2; // Looking for , or ]
-
-		int state = S0;
-		int c = 0;
-		while (c != -1) {
-			c = r.read();
-			if (state == S0) {
-				if (c == '[')
-					state = S1;
-			} else if (state == S1) {
-				if (c == ']') {
-					return l;
-				} else if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (! Character.isWhitespace(c)) {
-					l.add(parseAnything(ctx, elementType, r.unread(), null, l, null));
-					state = S2;
-				}
-			} else if (state == S2) {
-				if (c == ',') {
-					state = S1;
-				} else if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (c == ']') {
-					return l;
-				}
-			}
-		}
-		if (state == S0)
-			throw new ParseException(line, column, "Expected '[' at beginning of JSON array.");
-		if (state == S1)
-			throw new ParseException(line, column, "Expected one of the following characters: {,[,',\",LITERAL.");
-		if (state == S2)
-			throw new ParseException(line, column, "Expected ',' or ']'.");
-
-		return null;  // Unreachable.
-	}
-
-	private Object[] parseArgs(JsonParserContext ctx, ParserReader r, ClassMeta<?>[] argTypes) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-
-		int S0=0; // Looking for outermost [
-		int S1=1; // Looking for starting [ or { or " or ' or LITERAL
-		int S2=2; // Looking for , or ]
-
-		Object[] o = new Object[argTypes.length];
-		int i = 0;
-
-		int state = S0;
-		int c = 0;
-		while (c != -1) {
-			c = r.read();
-			if (state == S0) {
-				if (c == '[')
-					state = S1;
-			} else if (state == S1) {
-				if (c == ']') {
-					return o;
-				} else if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (! Character.isWhitespace(c)) {
-					o[i] = parseAnything(ctx, argTypes[i], r.unread(), null, ctx.getOuter(), null);
-					i++;
-					state = S2;
-				}
-			} else if (state == S2) {
-				if (c == ',') {
-					state = S1;
-				} else if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (c == ']') {
-					return o;
-				}
-			}
-		}
-		if (state == S0)
-			throw new ParseException(line, column, "Expected '[' at beginning of JSON array.");
-		if (state == S1)
-			throw new ParseException(line, column, "Expected one of the following characters: {,[,',\",LITERAL.");
-		if (state == S2)
-			throw new ParseException(line, column, "Expected ',' or ']'.");
-
-		return null;  // Unreachable.
-	}
-
-	private <T> BeanMap<T> parseIntoBeanMap2(JsonParserContext ctx, ParserReader r, BeanMap<T> m) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-
-		int S0=0; // Looking for outer {
-		int S1=1; // Looking for attrName start.
-		int S3=3; // Found attrName end, looking for :.
-		int S4=4; // Found :, looking for valStart: { [ " ' LITERAL.
-		int S5=5; // Looking for , or }
-
-		int state = S0;
-		String currAttr = "";
-		int c = 0;
-		int currAttrLine = -1, currAttrCol = -1;
-		while (c != -1) {
-			c = r.read();
-			if (state == S0) {
-				if (c == '{')
-					state = S1;
-			} else if (state == S1) {
-				if (c == '}') {
-					return m;
-				} else if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (! Character.isWhitespace(c)) {
-					r.unread();
-					currAttrLine= r.getLine();
-					currAttrCol = r.getColumn();
-					currAttr = parseFieldName(ctx, r);
-					state = S3;
-				}
-			} else if (state == S3) {
-				if (c == ':')
-					state = S4;
-			} else if (state == S4) {
-				if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (! Character.isWhitespace(c)) {
-					if (! currAttr.equals("_class")) {
-						BeanPropertyMeta pMeta = m.getPropertyMeta(currAttr);
-						if (pMeta == null) {
-							if (m.getMeta().isSubTyped()) {
-								m.put(currAttr, parseAnything(ctx, object(), r.unread(), null, m.getBean(false), currAttr));
-							} else {
-								onUnknownProperty(ctx, currAttr, m, currAttrLine, currAttrCol);
-								parseAnything(ctx, object(), r.unread(), null, m.getBean(false), null); // Read content anyway to ignore it
-							}
-						} else {
-							Object value = parseAnything(ctx, pMeta.getClassMeta(), r.unread(), pMeta, m.getBean(false), currAttr);
-							pMeta.set(m, value);
-						}
-					}
-					state = S5;
-				}
-			} else if (state == S5) {
-				if (c == ',')
-					state = S1;
-				else if (c == '/')
-					skipCommentsAndSpace(ctx, r.unread());
-				else if (c == '}') {
-					return m;
-				}
-			}
-		}
-		if (state == S0)
-			throw new ParseException(line, column, "Expected '{' at beginning of JSON object.");
-		if (state == S1)
-			throw new ParseException(line, column, "Could not find attribute name on JSON object.");
-		if (state == S3)
-			throw new ParseException(line, column, "Could not find ':' following attribute name on JSON object.");
-		if (state == S4)
-			throw new ParseException(line, column, "Expected one of the following characters: {,[,',\",LITERAL.");
-		if (state == S5)
-			throw new ParseException(line, column, "Could not find '}' marking end of JSON object.");
-
-		return null; // Unreachable.
-	}
-
-	/*
-	 * Starting from the specified position in the character array, returns the
-	 * position of the character " or '.
-	 * If the string consists of a concatenation of strings (e.g. 'AAA' + "BBB"), this method
-	 * will automatically concatenate the strings and return the result.
-	 */
-	private String parseString(JsonParserContext ctx, ParserReader r) throws ParseException, IOException  {
-		int line = r.getLine();
-		int column = r.getColumn();
-		r.mark();
-		int qc = r.read();		// The quote character being used (" or ')
-		if (qc != '"' && ctx.isStrictMode()) {
-			String msg = (qc == '\'' ? "Invalid quote character \"{0}\" being used." : "Did not find quote character marking beginning of string.  Character=\"{0}\"");
-			throw new ParseException(line, column, msg, (char)qc);
-		}
-		final boolean isQuoted = (qc == '\'' || qc == '"');
-		String s = null;
-		boolean isInEscape = false;
-		int c = 0;
-		while (c != -1) {
-			c = r.read();
-			if (isInEscape) {
-				switch (c) {
-					case 'n': r.replace('\n'); break;
-					case 'r': r.replace('\r'); break;
-					case 't': r.replace('\t'); break;
-					case 'f': r.replace('\f'); break;
-					case 'b': r.replace('\b'); break;
-					case '\\': r.replace('\\'); break;
-					case '/': r.replace('/'); break;
-					case '\'': r.replace('\''); break;
-					case '"': r.replace('"'); break;
-					case 'u': {
-						String n = r.read(4);
-						r.replace(Integer.parseInt(n, 16), 6);
-						break;
-					}
-					default:
-						throw new ParseException(line, column, "Invalid escape sequence in string.");
-				}
-				isInEscape = false;
-			} else {
-				if (c == '\\') {
-					isInEscape = true;
-					r.delete();
-				} else if (isQuoted) {
-					if (c == qc) {
-						s = r.getMarked(1, -1);
-						break;
-					}
-				} else {
-					if (c == ',' || c == '}' || Character.isWhitespace(c)) {
-						s = r.getMarked(0, -1);
-						r.unread();
-						break;
-					} else if (c == -1) {
-						s = r.getMarked(0, 0);
-						break;
-					}
-				}
-			}
-		}
-		if (s == null)
-			throw new ParseException(line, column, "Could not find expected end character ''{0}''.", (char)qc);
-
-		// Look for concatenated string (i.e. whitespace followed by +).
-		skipCommentsAndSpace(ctx, r);
-		if (r.peek() == '+') {
-			if (ctx.isStrictMode())
-				throw new ParseException(r.getLine(), r.getColumn(), "String concatenation detected.");
-			r.read();	// Skip past '+'
-			skipCommentsAndSpace(ctx, r);
-			s += parseString(ctx, r);
-		}
-		return s; // End of input reached.
-	}
-
-	/*
-	 * Looks for the keywords true, false, or null.
-	 * Throws an exception if any of these keywords are not found at the specified position.
-	 */
-	private void parseKeyword(String keyword, ParserReader r) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-		try {
-			String s = r.read(keyword.length());
-			if (s.equals(keyword))
-				return;
-			throw new ParseException(line, column, "Unrecognized syntax.");
-		} catch (IndexOutOfBoundsException e) {
-			throw new ParseException(line, column, "Unrecognized syntax.");
-		}
-	}
-
-	/*
-	 * Doesn't actually parse anything, but moves the position beyond any whitespace or comments.
-	 * If positionOnNext is 'true', then the cursor will be set to the point immediately after
-	 * the comments and whitespace.  Otherwise, the cursor will be set to the last position of
-	 * the comments and whitespace.
-	 */
-	private void skipCommentsAndSpace(JsonParserContext ctx, ParserReader r) throws ParseException, IOException {
-		int c = 0;
-		while ((c = r.read()) != -1) {
-			if (! Character.isWhitespace(c)) {
-				if (c == '/') {
-					if (ctx.isStrictMode())
-						throw new ParseException(r.getLine(), r.getColumn(), "Javascript comment detected.");
-					skipComments(r);
-				} else {
-					r.unread();
-					return;
-				}
-			}
-		}
-	}
-
-	/*
-	 * Doesn't actually parse anything, but moves the position beyond the construct "{wrapperAttr:" when
-	 * the @Json.wrapperAttr() annotation is used on a class.
-	 */
-	private void skipWrapperAttrStart(JsonParserContext ctx, ParserReader r, String wrapperAttr) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-
-		int S0=0; // Looking for outer {
-		int S1=1; // Looking for attrName start.
-		int S3=3; // Found attrName end, looking for :.
-		int S4=4; // Found :, looking for valStart: { [ " ' LITERAL.
-
-		int state = S0;
-		String currAttr = null;
-		int c = 0;
-		while (c != -1) {
-			c = r.read();
-			if (state == S0) {
-				if (c == '{')
-					state = S1;
-			} else if (state == S1) {
-				if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (! Character.isWhitespace(c)) {
-					currAttr = parseFieldName(ctx, r.unread());
-					if (! currAttr.equals(wrapperAttr))
-						throw new ParseException(line, column, "Expected to find wrapper attribute ''{0}'' but found attribute ''{1}''", wrapperAttr, currAttr);
-					state = S3;
-				}
-			} else if (state == S3) {
-				if (c == ':')
-					state = S4;
-			} else if (state == S4) {
-				if (c == '/') {
-					skipCommentsAndSpace(ctx, r.unread());
-				} else if (! Character.isWhitespace(c)) {
-					r.unread();
-					return;
-				}
-			}
-		}
-		if (state == S0)
-			throw new ParseException(line, column, "Expected '{' at beginning of JSON object.");
-		if (state == S1)
-			throw new ParseException(line, column, "Could not find attribute name on JSON object.");
-		if (state == S3)
-			throw new ParseException(line, column, "Could not find ':' following attribute name on JSON object.");
-		if (state == S4)
-			throw new ParseException(line, column, "Expected one of the following characters: {,[,',\",LITERAL.");
-	}
-
-	/*
-	 * Doesn't actually parse anything, but moves the position beyond the construct "}" when
-	 * the @Json.wrapperAttr() annotation is used on a class.
-	 */
-	private void skipWrapperAttrEnd(JsonParserContext ctx, ParserReader r) throws ParseException, IOException {
-		int c = 0;
-		int line = r.getLine();
-		int column = r.getColumn();
-		while ((c = r.read()) != -1) {
-			if (! Character.isWhitespace(c)) {
-				if (c == '/') {
-					if (ctx.isStrictMode())
-						throw new ParseException(line, column, "Javascript comment detected.");
-					skipComments(r);
-				} else if (c == '}') {
-					return;
-				} else {
-					throw new ParseException(line, column, "Could not find '}' at the end of JSON wrapper object.");
-				}
-			}
-		}
-	}
-
-	/*
-	 * Doesn't actually parse anything, but when positioned at the beginning of comment,
-	 * it will move the pointer to the last character in the comment.
-	 */
-	private void skipComments(ParserReader r) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-		int c = r.read();
-		//  "/* */" style comments
-		if (c == '*') {
-			while (c != -1)
-				if ((c = r.read()) == '*')
-					if ((c = r.read()) == '/')
-						return;
-		//  "//" style comments
-		} else if (c == '/') {
-			while (c != -1) {
-				c = r.read();
-				if (c == -1 || c == '\n')
-					return;
-			}
-		}
-		throw new ParseException(line, column, "Open ended comment.");
-	}
-
-	/*
-	 * 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(JsonParserContext ctx, ParserReader r) throws ParseException, IOException {
-		skipCommentsAndSpace(ctx, r);
-		int line = r.getLine();
-		int column = r.getColumn();
-		int c = r.read();
-		if (c != -1 && c != ';')  // var x = {...}; expressions can end with a semicolon.
-			throw new ParseException(line, column, "Remainder after parse: ''{0}''.", (char)c);
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Parser */
-	public JsonParserContext createContext(ObjectMap op, Method javaMethod, Object outer) {
-		return new JsonParserContext(getBeanContext(), jpp, pp, op, javaMethod, outer);
-	}
-
-	@Override /* Parser */
-	protected <T> T doParse(Reader in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException {
-		JsonParserContext jctx = (JsonParserContext)ctx;
-		type = ctx.getBeanContext().normalizeClassMeta(type);
-		ParserReader r = jctx.getReader(in, estimatedSize);
-		T o = parseAnything(jctx, type, r, null, ctx.getOuter(), null);
-		validateEnd(jctx, 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 {
-		JsonParserContext jctx = (JsonParserContext)ctx;
-		ParserReader r = jctx.getReader(in, estimatedSize);
-		m = parseIntoMap2(jctx, r, m, ctx.getBeanContext().getClassMeta(keyType), ctx.getBeanContext().getClassMeta(valueType));
-		validateEnd(jctx, r);
-		return m;
-	}
-
-	@Override /* ReaderParser */
-	protected <E> Collection<E> doParseIntoCollection(Reader in, int estimatedSize, Collection<E> c, Type elementType, ParserContext ctx) throws ParseException, IOException {
-		JsonParserContext jctx = (JsonParserContext)ctx;
-		ParserReader r = jctx.getReader(in, estimatedSize);
-		c = parseIntoCollection2(jctx, r, c, ctx.getBeanContext().getClassMeta(elementType));
-		validateEnd(jctx, r);
-		return c;
-	}
-
-	@Override /* ReaderParser */
-	protected Object[] doParseArgs(Reader in, int estimatedSize, ClassMeta<?>[] argTypes, ParserContext ctx) throws ParseException, IOException {
-		JsonParserContext jctx = (JsonParserContext)ctx;
-		ParserReader r = jctx.getReader(in, estimatedSize);
-		Object[] a = parseArgs(jctx, r, argTypes);
-		validateEnd(jctx, r);
-		return a;
-	}
-
-	@Override /* Parser */
-	public JsonParser setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! jpp.setProperty(property, value))
-			super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public JsonParser setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public JsonParser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public JsonParser addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> JsonParser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public JsonParser setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public JsonParser lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public JsonParser clone() {
-		try {
-			return (JsonParser)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/json/JsonParserContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserContext.class
deleted file mode 100755
index b0e2e01..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserContext.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/json/JsonParserContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserContext.java
deleted file mode 100755
index 325169d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserContext.java
+++ /dev/null
@@ -1,69 +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.json;
-
-import static com.ibm.juno.core.json.JsonParserProperties.*;
-
-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 of {@link JsonParser}.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class JsonParserContext extends ParserContext {
-
-	private final boolean strictMode;
-
-	/**
-	 * Create a new parser context with the specified options.
-	 *
-	 * @param beanContext The bean context being used.
-	 * @param jpp The JSON parser properties.
-	 * @param pp The default parser 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 JsonParserContext(BeanContext beanContext, JsonParserProperties jpp, ParserProperties pp, ObjectMap op, Method javaMethod, Object outer) {
-		super(beanContext, pp, op, javaMethod, outer);
-		if (op == null || op.isEmpty()) {
-			strictMode = jpp.isStrictMode();
-		} else {
-			strictMode = op.getBoolean(JSON_strictMode, jpp.isStrictMode());
-		}
-	}
-
-	/**
-	 * Returns the {@link JsonParserProperties#JSON_strictMode} setting in this context.
-	 *
-	 * @return The {@link JsonParserProperties#JSON_strictMode} setting in this context.
-	 */
-	public boolean isStrictMode() {
-		return strictMode;
-	}
-
-	/**
-	 * Returns the reader associated with this context wrapped in a {@link ParserReader}.
-	 *
-	 * @param in The reader being wrapped.
-	 * @param estimatedSize The estimated size of the input.
-	 * @return The reader wrapped in a specialized parser reader.
-	 */
-	public ParserReader getReader(Reader in, int estimatedSize) {
-		if (in instanceof ParserReader)
-			return (ParserReader)in;
-		return new ParserReader(in, Math.min(8096, estimatedSize));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserProperties.class
deleted file mode 100755
index 869515e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserProperties.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/json/JsonParserProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserProperties.java
deleted file mode 100755
index ac1f632..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonParserProperties.java
+++ /dev/null
@@ -1,85 +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.json;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Configurable properties on the {@link JsonParser} class.
- * <p>
- * 	Use the {@link JsonParser#setProperty(String, Object)} method to set property values.
- * <p>
- * 	In addition to these properties, the following properties are also applicable for {@link JsonParser}.
- * <ul>
- * 	<li>{@link ParserProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class JsonParserProperties implements Cloneable {
-
-	/**
-	 * Set strict mode ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * When in strict mode, parser throws exceptions on the following invalid JSON syntax:
-	 * <ul>
-	 * 	<li>Unquoted attributes.
-	 * 	<li>Missing attribute values.
-	 * 	<li>Concatenated strings.
-	 * 	<li>Javascript comments.
-	 * 	<li>Numbers and booleans when Strings are expected.
-	 * </ul>
-	 */
-	public static final String JSON_strictMode = "JsonParser.strictMode";
-
-	private boolean
-		strictMode = 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.
-	 * @throws LockedException If the bean context has been locked.
-	 */
-	protected boolean setProperty(String property, Object value) throws LockedException {
-		BeanContext bc = BeanContext.DEFAULT;
-		if (property.equals(JSON_strictMode))
-			strictMode = bc.convertToType(value, Boolean.class);
-		else
-			return false;
-		return true;
-	}
-
-	/**
-	 * Returns the current {@link #JSON_strictMode} value.
-	 *
-	 * @return The current {@link #JSON_strictMode} value.
-	 */
-	public boolean isStrictMode() {
-		return strictMode;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Object */
-	public JsonParserProperties clone() {
-		try {
-			return (JsonParserProperties)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/json/JsonSchemaSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSchemaSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSchemaSerializer.class
deleted file mode 100755
index 229102b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSchemaSerializer.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/json/JsonSchemaSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSchemaSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSchemaSerializer.java
deleted file mode 100755
index fa0dae5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSchemaSerializer.java
+++ /dev/null
@@ -1,154 +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.json;
-
-import static com.ibm.juno.core.serializer.SerializerProperties.*;
-import static com.ibm.juno.core.utils.ClassUtils.*;
-
-import java.io.*;
-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.serializer.*;
-
-/**
- * Serializes POJO metadata to HTTP responses as JSON.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>application/json+schema, text/json+schema</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>application/json</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Produces the JSON-schema for the JSON produced by the {@link JsonSerializer} class with the same properties.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces(value={"application/json+schema","text/json+schema"},contentType="application/json")
-public final class JsonSchemaSerializer extends JsonSerializer {
-
-	/**
-	 * Constructor.
-	 */
-	public JsonSchemaSerializer() {
-		setProperty(SERIALIZER_detectRecursions, true);
-		setProperty(SERIALIZER_ignoreRecursions, true);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* JsonSerializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		JsonSerializerContext jctx = (JsonSerializerContext)ctx;
-		ObjectMap schema = getSchema(ctx.getBeanContext().getClassMetaForObject(o), jctx, "root", null);
-		serializeAnything(jctx.getWriter(out), schema, null, jctx, "root", null);
-	}
-
-	/*
-	 * Creates a schema representation of the specified class type.
-	 *
-	 * @param eType The class type to get the schema of.
-	 * @param ctx Serialize context used to prevent infinite loops.
-	 * @param attrName The name of the current attribute.
-	 * @return A schema representation of the specified class.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	private ObjectMap getSchema(ClassMeta<?> eType, JsonSerializerContext ctx, String attrName, String[] pNames) throws SerializeException {
-		try {
-
-			ObjectMap out = new ObjectMap();
-
-			if (eType == null)
-				eType = object();
-
-			ClassMeta<?> aType;			// The actual type (will be null if recursion occurs)
-			ClassMeta<?> gType;			// The generic type
-
-			aType = ctx.push(attrName, eType, null);
-
-			gType = eType.getFilteredClassMeta();
-			String type = null;
-
-			if (gType.isEnum() || gType.isCharSequence() || gType.isChar())
-				type = "string";
-			else if (gType.isNumber())
-				type = "number";
-			else if (gType.isBoolean())
-				type = "boolean";
-			else if (gType.isBean() || gType.isMap())
-				type = "object";
-			else if (gType.isCollection() || gType.isArray())
-				type = "array";
-			else
-				type = "any";
-
-			out.put("type", type);
-			out.put("description", eType.toString());
-			PojoFilter f = eType.getPojoFilter();
-			if (f != null)
-				out.put("filter", f);
-
-			if (aType != null) {
-				if (gType.isEnum())
-					out.put("enum", getEnumStrings((Class<Enum<?>>)gType.getInnerClass()));
-				else if (gType.isCollection() || gType.isArray()) {
-					ClassMeta componentType = gType.getElementType();
-					if (gType.isCollection() && isParentClass(Set.class, gType.getInnerClass()))
-						out.put("uniqueItems", true);
-					out.put("items", getSchema(componentType, ctx, "items", pNames));
-				} else if (gType.isBean()) {
-					ObjectMap properties = new ObjectMap();
-					BeanMeta bm = ctx.getBeanContext().getBeanMeta(gType.getInnerClass());
-					if (pNames != null)
-						bm = new BeanMetaFiltered(bm, pNames);
-					for (Iterator<BeanPropertyMeta<?>> i = bm.getPropertyMetas().iterator(); i.hasNext();) {
-						BeanPropertyMeta p = i.next();
-						properties.put(p.getName(), getSchema(p.getClassMeta(), ctx, p.getName(), p.getProperties()));
-					}
-					out.put("properties", properties);
-				}
-			}
-			ctx.pop();
-			return out;
-		} catch (StackOverflowError e) {
-			throw e;
-		} catch (Throwable e) {
-			throw new SerializeException("Exception occured trying to process object of type ''{0}''", eType).initCause(e);
-		}
-	}
-
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	private List<String> getEnumStrings(Class<? extends Enum> c) {
-		List<String> l = new LinkedList<String>();
-		try {
-			for (Object e : EnumSet.allOf(c))
-				l.add(e.toString());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return l;
-	}
-
-
-	@Override /* Lockable */
-	public JsonSchemaSerializer lock() {
-		super.lock();
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$Readable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$Readable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$Readable.class
deleted file mode 100755
index 5f79aa1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$Readable.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/json/JsonSerializer$Simple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$Simple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$Simple.class
deleted file mode 100755
index 6ac8d7f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$Simple.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/json/JsonSerializer$SimpleReadable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$SimpleReadable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$SimpleReadable.class
deleted file mode 100755
index 32b616d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$SimpleReadable.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/json/JsonSerializer$SimpleReadableSafe.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$SimpleReadableSafe.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$SimpleReadableSafe.class
deleted file mode 100755
index 10df6c7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer$SimpleReadableSafe.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/json/JsonSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer.class
deleted file mode 100755
index c912a70..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer.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/json/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer.java
deleted file mode 100755
index 275ea72..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializer.java
+++ /dev/null
@@ -1,457 +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.json;
-
-import static com.ibm.juno.core.json.JsonSerializerProperties.*;
-import static com.ibm.juno.core.serializer.SerializerProperties.*;
-
-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.serializer.*;
-
-/**
- * Serializes POJO models to JSON.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>application/json, text/json</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>application/json</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	The conversion is as follows...
- * 	<ul>
- * 		<li>Maps (e.g. {@link HashMap HashMaps}, {@link TreeMap TreeMaps}) are converted to JSON objects.
- * 		<li>Collections (e.g. {@link HashSet HashSets}, {@link LinkedList LinkedLists}) and Java arrays are converted to JSON arrays.
- * 		<li>{@link String Strings} are converted to JSON strings.
- * 		<li>{@link Number Numbers} (e.g. {@link Integer}, {@link Long}, {@link Double}) are converted to JSON numbers.
- * 		<li>{@link Boolean Booleans} are converted to JSON booleans.
- * 		<li>{@code nulls} are converted to JSON nulls.
- * 		<li>{@code arrays} are converted to JSON arrays.
- * 		<li>{@code beans} are converted to JSON objects.
- * 	</ul>
- * <p>
- * 	The types above are considered "JSON-primitive" object types.  Any non-JSON-primitive object types are transformed
- * 		into JSON-primitive object types through {@link com.ibm.juno.core.filter.Filter Filters} associated through the {@link BeanContextFactory#addFilters(Class...)}
- * 		method.  Several default filters are provided for transforming Dates, Enums, Iterators, etc...
- * <p>
- * 	This serializer provides several serialization options.  Typically, one of the predefined DEFAULT serializers will be sufficient.
- * 	However, custom serializers can be constructed to fine-tune behavior.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link JsonSerializerProperties}
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * 	The following direct subclasses are provided for convenience:
- * <ul>
- * 	<li>{@link Simple} - Default serializer, single quotes, simple mode.
- * 	<li>{@link SimpleReadable} - Default serializer, single quotes, simple mode, with whitespace.
- * </ul>
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Use one of the default serializers to serialize a POJO</jc>
- * 	String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(someObject);
- *
- * 	<jc>// Create a custom serializer for lax syntax using single quote characters</jc>
- * 	JsonSerializer serializer = <jk>new</jk> JsonSerializer()
- * 		.setProperty(JsonSerializerProperties.<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
- * 		.setProperty(SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
- *
- * 	<jc>// Clone an existing serializer and modify it to use single-quotes</jc>
- * 	JsonSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>.clone()
- * 		.setProperty(SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
- *
- * 	<jc>// Serialize a POJO to JSON</jc>
- * 	String json = serializer.serialize(someObject);
- * </p>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces({"application/json","text/json"})
-public class JsonSerializer extends WriterSerializer {
-
-	/** Default serializer, all default settings.*/
-	public static final JsonSerializer DEFAULT = new JsonSerializer().lock();
-
-	/** Default serializer, all default settings.*/
-	public static final JsonSerializer DEFAULT_READABLE = new Readable().lock();
-
-	/** Default serializer, single quotes, simple mode. */
-	public static final JsonSerializer DEFAULT_LAX = new Simple().lock();
-
-	/** Default serializer, single quotes, simple mode, with whitespace. */
-	public static final JsonSerializer DEFAULT_LAX_READABLE = new SimpleReadable().lock();
-
-	/**
-	 * Default serializer, single quotes, simple mode, with whitespace and recursion detection.
-	 * Note that recursion detection introduces a small performance penalty.
-	 */
-	public static final JsonSerializer DEFAULT_LAX_READABLE_SAFE = new SimpleReadableSafe().lock();
-
-	/** Default serializer, with whitespace. */
-	public static class Readable extends JsonSerializer {
-		/** Constructor */
-		public Readable() {
-			setProperty(JSON_useWhitespace, true);
-			setProperty(SERIALIZER_useIndentation, true);
-		}
-	}
-
-	/** Default serializer, single quotes, simple mode. */
-	@Produces(value={"application/json+simple","text/json+simple"},contentType="application/json")
-	public static class Simple extends JsonSerializer {
-		/** Constructor */
-		public Simple() {
-			setProperty(JSON_simpleMode, true);
-			setProperty(SERIALIZER_quoteChar, '\'');
-		}
-	}
-
-	/** Default serializer, single quotes, simple mode, with whitespace. */
-	public static class SimpleReadable extends Simple {
-		/** Constructor */
-		public SimpleReadable() {
-			setProperty(JSON_useWhitespace, true);
-			setProperty(SERIALIZER_useIndentation, true);
-		}
-	}
-
-	/**
-	 * Default serializer, single quotes, simple mode, with whitespace and recursion detection.
-	 * Note that recursion detection introduces a small performance penalty.
-	 */
-	public static class SimpleReadableSafe extends SimpleReadable {
-		/** Constructor */
-		public SimpleReadableSafe() {
-			setProperty(SERIALIZER_detectRecursions, true);
-		}
-	}
-
-	/** JSON serializer properties currently set on this serializer. */
-	protected transient JsonSerializerProperties jsp = new JsonSerializerProperties();
-
-
-	/**
-	 * Workhorse method. Determines the type of object, and then calls the
-	 * appropriate type-specific serialization method.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	SerializerWriter serializeAnything(JsonSerializerWriter out, Object o, ClassMeta<?> eType, JsonSerializerContext ctx, String attrName, BeanPropertyMeta pMeta) throws SerializeException {
-		try {
-			BeanContext bc = ctx.getBeanContext();
-
-			if (o == null) {
-				out.append("null");
-				return out;
-			}
-
-			if (eType == null)
-				eType = object();
-
-			boolean addClassAttr;		// Add "_class" attribute to element?
-			ClassMeta<?> aType;			// The actual type
-			ClassMeta<?> gType;			// The generic type
-
-			aType = ctx.push(attrName, o, eType);
-			boolean isRecursion = aType == null;
-
-			// Handle recursion
-			if (aType == null) {
-				o = null;
-				aType = object();
-			}
-
-			gType = aType.getFilteredClassMeta();
-			addClassAttr = (ctx.isAddClassAttrs() && ! eType.equals(aType));
-
-			// Filter if necessary
-			PojoFilter filter = aType.getPojoFilter();				// The filter
-			if (filter != null) {
-				o = filter.filter(o);
-
-				// If the filter's getFilteredClass() method returns Object, we need to figure out
-				// the actual type now.
-				if (gType.isObject())
-					gType = bc.getClassMetaForObject(o);
-			}
-
-			String wrapperAttr = gType.getJsonMeta().getWrapperAttr();
-			if (wrapperAttr != null) {
-				out.append('{').cr(ctx.indent).attr(wrapperAttr).append(':').s();
-				ctx.indent++;
-			}
-
-			// '\0' characters are considered null.
-			if (o == null || (gType.isChar() && ((Character)o).charValue() == 0))
-				out.append("null");
-			else if (gType.isNumber() || gType.isBoolean())
-				out.append(o);
-			else if (gType.hasToObjectMapMethod())
-				serializeMap(out, gType.toObjectMap(o), gType, ctx);
-			else if (gType.isBean())
-				serializeBeanMap(out, bc.forBean(o), addClassAttr, ctx);
-			else if (gType.isUri() || (pMeta != null && (pMeta.isUri() || pMeta.isBeanUri())))
-				out.q().appendUri(o).q();
-			else if (gType.isMap()) {
-				if (o instanceof BeanMap)
-					serializeBeanMap(out, (BeanMap)o, addClassAttr, ctx);
-				else
-					serializeMap(out, (Map)o, eType, ctx);
-			}
-			else if (gType.isCollection()) {
-				if (addClassAttr)
-					serializeCollectionMap(out, (Collection)o, gType, ctx);
-				else
-					serializeCollection(out, (Collection) o, eType, ctx);
-			}
-			else if (gType.isArray()) {
-				if (addClassAttr)
-					serializeCollectionMap(out, toList(gType.getInnerClass(), o), gType, ctx);
-				else
-					serializeCollection(out, toList(gType.getInnerClass(), o), eType, ctx);
-			}
-			else
-				out.stringValue(o);
-
-			if (wrapperAttr != null) {
-				ctx.indent--;
-				out.cr(ctx.indent-1).append('}');
-			}
-
-			if (! isRecursion)
-				ctx.pop();
-			return out;
-		} catch (SerializeException e) {
-			throw e;
-		} catch (StackOverflowError e) {
-			throw e;
-		} catch (Throwable e) {
-			throw new SerializeException("Exception occured trying to process object of type ''{0}''", (o == null ? null : o.getClass().getName())).initCause(e);
-		}
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private SerializerWriter serializeMap(JsonSerializerWriter out, Map m, ClassMeta<?> type, JsonSerializerContext ctx) throws IOException, SerializeException {
-
-		ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
-
-		m = sort(ctx, m);
-
-		int depth = ctx.getIndent();
-		out.append('{');
-
-		Iterator mapEntries = m.entrySet().iterator();
-
-		while (mapEntries.hasNext()) {
-			Map.Entry e = (Map.Entry) mapEntries.next();
-			Object value = e.getValue();
-
-			Object key = generalize(ctx, e.getKey(), keyType);
-
-			out.cr(depth).attr(key).append(':').s();
-
-			serializeAnything(out, value, valueType, ctx, (key == null ? null : key.toString()), null);
-
-			if (mapEntries.hasNext())
-				out.append(',').s();
-		}
-
-		out.cr(depth-1).append('}');
-
-		return out;
-	}
-
-	@SuppressWarnings({ "rawtypes" })
-	private SerializerWriter serializeCollectionMap(JsonSerializerWriter out, Collection o, ClassMeta<?> type, JsonSerializerContext ctx) throws IOException, SerializeException {
-		int i = ctx.getIndent();
-		out.append('{');
-		out.cr(i).attr("_class").append(':').s().q().append(type.getInnerClass().getName()).q().append(',').s();
-		out.cr(i).attr("items").append(':').s();
-		ctx.indent++;
-		serializeCollection(out, o, type, ctx);
-		ctx.indent--;
-		out.cr(i-1).append('}');
-		return out;
-	}
-
-	@SuppressWarnings({ "rawtypes" })
-	private SerializerWriter serializeBeanMap(JsonSerializerWriter out, BeanMap m, boolean addClassAttr, JsonSerializerContext ctx) throws IOException, SerializeException {
-		int depth = ctx.getIndent();
-		out.append('{');
-
-		Iterator mapEntries = m.entrySet().iterator();
-
-		// Print out "_class" attribute on this bean if required.
-		if (addClassAttr) {
-			String attr = "_class";
-			out.cr(depth).attr(attr).append(':').s().q().append(m.getClassMeta().getInnerClass().getName()).q();
-			if (mapEntries.hasNext())
-				out.append(',').s();
-		}
-
-		boolean addComma = false;
-
-		while (mapEntries.hasNext()) {
-			BeanMapEntry p = (BeanMapEntry)mapEntries.next();
-			BeanPropertyMeta pMeta = p.getMeta();
-
-			String key = p.getKey();
-			Object value = null;
-			try {
-				value = p.getValue();
-			} catch (StackOverflowError e) {
-				throw e;
-			} catch (Throwable t) {
-				ctx.addBeanGetterWarning(pMeta, t);
-			}
-
-			if (canIgnoreValue(ctx, pMeta.getClassMeta(), key, value))
-				continue;
-
-			if (addComma)
-				out.append(',').s();
-
-			out.cr(depth).attr(key).append(':').s();
-
-			serializeAnything(out, value, pMeta.getClassMeta(), ctx, key, pMeta);
-
-			addComma = true;
-		}
-		out.cr(depth-1).append('}');
-		return out;
-	}
-
-	@SuppressWarnings({"rawtypes", "unchecked"})
-	private SerializerWriter serializeCollection(JsonSerializerWriter out, Collection c, ClassMeta<?> type, JsonSerializerContext ctx) throws IOException, SerializeException {
-
-		ClassMeta<?> elementType = type.getElementType();
-
-		c = sort(ctx, c);
-
-		out.append('[');
-		int depth = ctx.getIndent();
-
-		for (Iterator i = c.iterator(); i.hasNext();) {
-
-			Object value = i.next();
-
-			out.cr(depth);
-
-			serializeAnything(out, value, elementType, ctx, "<iterator>", null);
-
-			if (i.hasNext())
-				out.append(',').s();
-		}
-		out.cr(depth-1).append(']');
-		return out;
-	}
-
-	/**
-	 * Returns the schema serializer based on the settings of this serializer.
-	 * @return The schema serializer.
-	 */
-	public JsonSchemaSerializer getSchemaSerializer() {
-		JsonSchemaSerializer s = new JsonSchemaSerializer();
-		s.beanContextFactory = this.beanContextFactory;
-		s.sp = this.sp;
-		s.jsp = this.jsp;
-		return s;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	public JsonSerializerContext createContext(ObjectMap properties, Method javaMethod) {
-		return new JsonSerializerContext(getBeanContext(), sp, jsp, properties, javaMethod);
-	}
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		JsonSerializerContext jctx = (JsonSerializerContext)ctx;
-		serializeAnything(jctx.getWriter(out), o, null, jctx, "root", null);
-	}
-
-	@Override /* CoreApi */
-	public JsonSerializer setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! jsp.setProperty(property, value))
-			super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public JsonSerializer setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public JsonSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public JsonSerializer addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> JsonSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public JsonSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public JsonSerializer lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public JsonSerializer clone() {
-		try {
-			JsonSerializer c = (JsonSerializer)super.clone();
-			c.jsp = jsp.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/json/JsonSerializerContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerContext.class
deleted file mode 100755
index 27e8527..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerContext.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/json/JsonSerializerContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerContext.java
deleted file mode 100755
index 0677055..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerContext.java
+++ /dev/null
@@ -1,89 +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.json;
-
-import static com.ibm.juno.core.json.JsonSerializerProperties.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Context object that lives for the duration of a single serialization of {@link JsonSerializer} and its subclasses.
- * <p>
- * 	See {@link SerializerContext} for details.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class JsonSerializerContext extends SerializerContext {
-
-	private final boolean simpleMode, useWhitespace, escapeSolidus;
-
-	/**
-	 * Constructor.
-	 * @param beanContext The bean context being used by the serializer.
-	 * @param sp Default general serializer properties.
-	 * @param jsp Default JSON serializer properties.
-	 * @param op Override properties.
-	 * @param javaMethod Java method that invoked this serializer.
-	 * 	When using the REST API, this is the Java method invoked by the REST call.
-	 * 	Can be used to access annotations defined on the method or class.
-	 */
-	protected JsonSerializerContext(BeanContext beanContext, SerializerProperties sp, JsonSerializerProperties jsp, ObjectMap op, Method javaMethod) {
-		super(beanContext, sp, op, javaMethod);
-		if (op == null || op.isEmpty()) {
-			simpleMode = jsp.simpleMode;
-			useWhitespace = jsp.useWhitespace;
-			escapeSolidus = jsp.escapeSolidus;
-		} else {
-			simpleMode = op.getBoolean(JSON_simpleMode, jsp.simpleMode);
-			useWhitespace = op.getBoolean(JSON_useWhitespace, jsp.useWhitespace);
-			escapeSolidus = op.getBoolean(JSON_escapeSolidus, jsp.escapeSolidus);
-		}
-	}
-
-	/**
-	 * Returns the {@link JsonSerializerProperties#JSON_simpleMode} setting value in this context.
-	 * @return The {@link JsonSerializerProperties#JSON_simpleMode} setting value in this context.
-	 */
-	public final boolean isSimpleMode() {
-		return simpleMode;
-	}
-
-	/**
-	 * Returns the {@link JsonSerializerProperties#JSON_useWhitespace} setting value in this context.
-	 * @return The {@link JsonSerializerProperties#JSON_useWhitespace} setting value in this context.
-	 */
-	public final boolean isUseWhitespace() {
-		return useWhitespace;
-	}
-
-	/**
-	 * Returns the {@link JsonSerializerProperties#JSON_escapeSolidus} setting value in this context.
-	 * @return The {@link JsonSerializerProperties#JSON_escapeSolidus} setting value in this context.
-	 */
-	public final boolean isEscapeSolidus() {
-		return escapeSolidus;
-	}
-
-	/**
-	 * Wraps the specified writer inside a {@link JsonSerializerWriter}.
-	 *
-	 * @param out The writer being wrapped.
-	 * @return The wrapped writer.
-	 */
-	public JsonSerializerWriter getWriter(Writer out) {
-		if (out instanceof JsonSerializerWriter)
-			return (JsonSerializerWriter)out;
-		return new JsonSerializerWriter(out, isUseIndentation(), isUseWhitespace(), isEscapeSolidus(), getQuoteChar(), isSimpleMode(), getRelativeUriBase(), getAbsolutePathUriBase());
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerProperties.class
deleted file mode 100755
index bdc0ee0..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerProperties.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/json/JsonSerializerProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerProperties.java
deleted file mode 100755
index 8c4e8bf..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerProperties.java
+++ /dev/null
@@ -1,91 +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.json;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Configurable properties on the {@link JsonSerializer} class.
- * <p>
- * 	Use the {@link JsonSerializer#setProperty(String, Object)} method to set property values.
- * <p>
- * 	In addition to these properties, the following properties are also applicable for {@link JsonSerializer}.
- * <ul>
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class JsonSerializerProperties implements Cloneable {
-
-	/**
-	 * Simple JSON mode ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, JSON attribute names will only be quoted when necessary.
-	 * Otherwise, they are always quoted.
-	 */
-	public static final String JSON_simpleMode = "JsonSerializer.simpleMode";
-
-	/**
-	 * Use whitespace in output ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, whitespace is added to the output to improve readability.
-	 */
-	public static final String JSON_useWhitespace = "JsonSerializer.useWhitespace";
-
-	/**
-	 * Prefix solidus <js>'/'</js> characters with escapes ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, solidus (e.g. slash) characters should be escaped.
-	 * The JSON specification allows for either format.
-	 * However, if you're embedding JSON in an HTML script tag, this setting prevents
-	 * 	confusion when trying to serialize <xt>&lt;\/script&gt;</xt>.
-	 */
-	public static final String JSON_escapeSolidus = "JsonSerializer.escapeSolidus";
-
-	boolean
-		simpleMode = false,
-		useWhitespace = false,
-		escapeSolidus = 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(JSON_simpleMode))
-			simpleMode = bc.convertToType(value, Boolean.class);
-		else if (property.equals(JSON_useWhitespace))
-			useWhitespace = bc.convertToType(value, Boolean.class);
-		else if (property.equals(JSON_escapeSolidus))
-			escapeSolidus = bc.convertToType(value, Boolean.class);
-		else
-			return false;
-		return true;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Cloneable */
-	public JsonSerializerProperties clone() {
-		try {
-			return (JsonSerializerProperties)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/json/JsonSerializerWriter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerWriter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerWriter.class
deleted file mode 100755
index 828cea2..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/json/JsonSerializerWriter.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$FB2Filter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$FB2Filter.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$FB2Filter.class
deleted file mode 100755
index a6ce52e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$FB2Filter.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$G$G1$G2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$G$G1$G2.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$G$G1$G2.class
deleted file mode 100755
index bc1e097..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$G$G1$G2.class and /dev/null differ

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$H$H1$H2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$H$H1$H2.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$H$H1$H2.class
deleted file mode 100755
index 86d1394..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$H$H1$H2.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$H$H1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$H$H1.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$H$H1.class
deleted file mode 100755
index 8acbba7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$H$H1.class and /dev/null differ

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$I$I1$I2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$I$I1$I2.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$I$I1$I2.class
deleted file mode 100755
index daa2190..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripBeanMaps$I$I1$I2.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$2.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$2.class
deleted file mode 100755
index 7609a1e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$2.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$3.class
deleted file mode 100755
index 51fcddb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$3.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$4.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$4.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$4.class
deleted file mode 100755
index 2586d5f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$A$4.class and /dev/null differ

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$B$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$B$3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$B$3.class
deleted file mode 100755
index 56c5e0e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripEnum$B$3.class and /dev/null differ

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripFilterBeans$A$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripFilterBeans$A$2.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripFilterBeans$A$2.class
deleted file mode 100755
index 910b4b3..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripFilterBeans$A$2.class and /dev/null differ

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripFilterBeans$A$5.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripFilterBeans$A$5.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripFilterBeans$A$5.class
deleted file mode 100755
index 01f1333..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripFilterBeans$A$5.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripPrimitivesBeans$PrimitivesBean$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripPrimitivesBeans$PrimitivesBean$3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripPrimitivesBeans$PrimitivesBean$3.class
deleted file mode 100755
index 333c0c8..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripPrimitivesBeans$PrimitivesBean$3.class and /dev/null differ

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripPrimitivesBeans$PrimitivesBean$5.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripPrimitivesBeans$PrimitivesBean$5.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripPrimitivesBeans$PrimitivesBean$5.class
deleted file mode 100755
index 821793f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/a/rttests/CT_RoundTripPrimitivesBeans$PrimitivesBean$5.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test1.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test1.xml b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test1.xml
deleted file mode 100755
index ec36f90..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test1.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<feed>
-	<id>
-		tag:example.org,2003:3
-	</id>
-	<link href='http://example.org/' rel='alternate' type='text/html' hreflang='en'/>
-	<link href='http://example.org/feed.atom' rel='self' type='application/atom+xml'/>
-	<rights>
-		Copyright (c) 2003, Mark Pilgrim
-	</rights>
-	<title type='text'>
-		dive into mark
-	</title>
-	<updated>2005-07-31T12:29:29Z</updated>
-	<generator uri='http://www.example.com/' version='1.0'>
-		Example Toolkit
-	</generator>
-	<subtitle type='html'>
-		A &lt;em&gt;lot&lt;/em&gt; of effort went into making this effortless
-	</subtitle>
-	<entry>
-		<author>
-			<name>Mark Pilgrim</name>
-			<uri>http://example.org/</uri>
-			<email>f8dy@example.com</email>
-		</author>
-		<contributor>
-			<name>Sam Ruby</name>
-		</contributor>
-		<contributor>
-			<name>Joe Gregorio</name>
-		</contributor>
-		<id>
-			tag:example.org,2003:3.2397
-		</id>
-		<link href='http://example.org/2005/04/02/atom' rel='alternate' type='text/html'/>
-		<link href='http://example.org/audio/ph34r_my_podcast.mp3' rel='enclosure' type='audio/mpeg' length='1337'/>
-		<title>
-			Atom draft-07 snapshot
-		</title>
-		<updated>2005-07-31T12:29:29Z</updated>
-		<content base='http://diveintomark.org/' lang='en' type='xhtml'>
-			<div xmlns="http://www.w3.org/1999/xhtml"><p><i>[Update: The Atom draft is finished.]</i></p></div>
-		</content>
-		<published>2003-12-13T08:29:29-04:00</published>
-	</entry>
-</feed>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test2.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test2.xml b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test2.xml
deleted file mode 100755
index 28a6bb0..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test2.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<atom:feed xmlns='http://www.ibm.com/2013/Juno' xmlns:atom='http://www.w3.org/2005/Atom/' xmlns:xml='http://www.w3.org/XML/1998/namespace' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
-	<atom:id>
-		tag:example.org,2003:3
-	</atom:id>
-	<atom:link href='http://example.org/' rel='alternate' type='text/html' hreflang='en'/>
-	<atom:link href='http://example.org/feed.atom' rel='self' type='application/atom+xml'/>
-	<atom:rights>
-		Copyright (c) 2003, Mark Pilgrim
-	</atom:rights>
-	<atom:title type='text'>
-		dive into mark
-	</atom:title>
-	<atom:updated>2005-07-31T12:29:29Z</atom:updated>
-	<atom:generator uri='http://www.example.com/' version='1.0'>
-		Example Toolkit
-	</atom:generator>
-	<atom:subtitle type='html'>
-		A &lt;em&gt;lot&lt;/em&gt; of effort went into making this effortless
-	</atom:subtitle>
-	<atom:entry>
-		<atom:author>
-			<atom:name>Mark Pilgrim</atom:name>
-			<atom:uri>http://example.org/</atom:uri>
-			<atom:email>f8dy@example.com</atom:email>
-		</atom:author>
-		<atom:contributor>
-			<atom:name>Sam Ruby</atom:name>
-		</atom:contributor>
-		<atom:contributor>
-			<atom:name>Joe Gregorio</atom:name>
-		</atom:contributor>
-		<atom:id>
-			tag:example.org,2003:3.2397
-		</atom:id>
-		<atom:link href='http://example.org/2005/04/02/atom' rel='alternate' type='text/html'/>
-		<atom:link href='http://example.org/audio/ph34r_my_podcast.mp3' rel='enclosure' type='audio/mpeg' length='1337'/>
-		<atom:title>
-			Atom draft-07 snapshot
-		</atom:title>
-		<atom:updated>2005-07-31T12:29:29Z</atom:updated>
-		<atom:content xml:base='http://diveintomark.org/' xml:lang='en' type='xhtml'>
-			<div xmlns="http://www.w3.org/1999/xhtml"><p><i>[Update: The Atom draft is finished.]</i></p></div>
-		</atom:content>
-		<atom:published>2003-12-13T08:29:29-04:00</atom:published>
-	</atom:entry>
-</atom:feed>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test3.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test3.xml b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test3.xml
deleted file mode 100755
index ab8e957..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/atom/test3.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<feed xmlns='http://www.w3.org/2005/Atom/' xmlns:xml='http://www.w3.org/XML/1998/namespace' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
-	<id>
-		tag:example.org,2003:3
-	</id>
-	<link href='http://example.org/' rel='alternate' type='text/html' hreflang='en'/>
-	<link href='http://example.org/feed.atom' rel='self' type='application/atom+xml'/>
-	<rights>
-		Copyright (c) 2003, Mark Pilgrim
-	</rights>
-	<title type='text'>
-		dive into mark
-	</title>
-	<updated>2005-07-31T12:29:29Z</updated>
-	<generator uri='http://www.example.com/' version='1.0'>
-		Example Toolkit
-	</generator>
-	<subtitle type='html'>
-		A &lt;em&gt;lot&lt;/em&gt; of effort went into making this effortless
-	</subtitle>
-	<entry>
-		<author>
-			<name>Mark Pilgrim</name>
-			<uri>http://example.org/</uri>
-			<email>f8dy@example.com</email>
-		</author>
-		<contributor>
-			<name>Sam Ruby</name>
-		</contributor>
-		<contributor>
-			<name>Joe Gregorio</name>
-		</contributor>
-		<id>
-			tag:example.org,2003:3.2397
-		</id>
-		<link href='http://example.org/2005/04/02/atom' rel='alternate' type='text/html'/>
-		<link href='http://example.org/audio/ph34r_my_podcast.mp3' rel='enclosure' type='audio/mpeg' length='1337'/>
-		<title>
-			Atom draft-07 snapshot
-		</title>
-		<updated>2005-07-31T12:29:29Z</updated>
-		<content xml:base='http://diveintomark.org/' xml:lang='en' type='xhtml'>
-			<div xmlns="http://www.w3.org/1999/xhtml"><p><i>[Update: The Atom draft is finished.]</i></p></div>
-		</content>
-		<published>2003-12-13T08:29:29-04:00</published>
-	</entry>
-</feed>

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/jsonschema/test1.json
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/jsonschema/test1.json b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/jsonschema/test1.json
deleted file mode 100755
index 96731c3..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/jsonschema/test1.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-	id: 'http://id', 
-	'$schema': 'http://schemaVersionUri', 
-	title: 'title', 
-	description: 'description', 
-	type: 'number', 
-	definitions: {
-		definition: {
-			'$ref': 'http://definition'
-		}
-	}, 
-	properties: {
-		property: {
-			type: 'number'
-		}
-	}, 
-	patternProperties: {
-		'/pattern/': {
-			type: 'number'
-		}
-	}, 
-	dependencies: {
-		dependency: {
-			'$ref': 'http://dependency'
-		}
-	}, 
-	items: [
-		{
-			type: 'number'
-		}
-	], 
-	multipleOf: 1, 
-	maximum: 2, 
-	exclusiveMaximum: true, 
-	minimum: 3, 
-	exclusiveMinimum: true, 
-	maxLength: 4, 
-	minLength: 5, 
-	pattern: '/pattern/', 
-	additionalItems: [
-		{
-			type: 'number'
-		}
-	], 
-	maxItems: 6, 
-	minItems: 7, 
-	uniqueItems: true, 
-	maxProperties: 8, 
-	minProperties: 9, 
-	required: [
-		'required'
-	], 
-	additionalProperties: {
-		'$ref': 'http://additionalProperty'
-	}, 
-	'enum': [
-		'enum'
-	], 
-	allOf: [
-		{
-			'$ref': 'http://allOf'
-		}
-	], 
-	anyOf: [
-		{
-			'$ref': 'http://anyOf'
-		}
-	], 
-	oneOf: [
-		{
-			'$ref': 'http://oneOf'
-		}
-	], 
-	not: {
-		'$ref': 'http://not'
-	}
-}
\ 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.test/com/ibm/juno/core/test/dto/jsonschema/test2.json
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/jsonschema/test2.json b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/jsonschema/test2.json
deleted file mode 100755
index 6558630..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/dto/jsonschema/test2.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-	id: 'http://id', 
-	'$schema': 'http://schemaVersionUri', 
-	type: [
-		'string', 
-		'number'
-	], 
-	definitions: {
-		definition: {
-			id: 'http://definition'
-		}
-	}, 
-	items: [
-		{
-			'$ref': 'http://items'
-		}
-	], 
-	additionalItems: true, 
-	additionalProperties: true
-}
\ 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.test/com/ibm/juno/core/test/filters/CT_BeanFilter$A1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_BeanFilter$A1.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_BeanFilter$A1.class
deleted file mode 100755
index 9ae50f9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/core/test/filters/CT_BeanFilter$A1.class and /dev/null differ

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

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

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

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

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

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

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

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

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

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

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

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



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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Feed.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Feed.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Feed.java
deleted file mode 100755
index a52a9ca..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Feed.java
+++ /dev/null
@@ -1,284 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.URI;
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Top-level ATOM feed object.
- * <p>
- *  	Represents an <code>atomFeed</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomFeed =
- * 		element atom:feed {
- * 			atomCommonAttributes,
- * 			(atomAuthor*
- * 			 & atomCategory*
- * 			 & atomContributor*
- * 			 & atomGenerator?
- * 			 & atomIcon?
- * 			 & atomId
- * 			 & atomLink*
- * 			 & atomLogo?
- * 			 & atomRights?
- * 			 & atomSubtitle?
- * 			 & atomTitle
- * 			 & atomUpdated
- * 			 & extensionElement*),
- * 			atomEntry*
- * 		}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="feed")
-@SuppressWarnings("hiding")
-public class Feed extends CommonEntry {
-
-	private Generator generator;  // atomGenerator?
-	private Icon icon;            // atomIcon?
-	private Logo logo;            // atomLogo?
-	private Text subtitle;        // atomSubtitle?
-	private List<Entry> entries;  // atomEntry*
-
-	/**
-	 * Normal constructor.
-	 *
-	 * @param id The feed identifier.
-	 * @param title The feed title.
-	 * @param updated The feed updated timestamp.
-	 */
-	public Feed(Id id, Text title, Calendar updated) {
-		super(id, title, updated);
-	}
-
-	/** Bean constructor. */
-	public Feed() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns generator information on this feed.
-	 *
-	 * @return The generator information on this feed.
-	 */
-	public Generator getGenerator() {
-		return generator;
-	}
-
-	/**
-	 * Sets the generator information on this feed.
-	 *
-	 * @param generator The generator information on this feed.
-	 * @return This object (for method chaining).
-	 */
-	public Feed setGenerator(Generator generator) {
-		this.generator = generator;
-		return this;
-	}
-
-	/**
-	 * Returns the feed icon.
-	 *
-	 * @return The feed icon.
-	 */
-	public Icon getIcon() {
-		return icon;
-	}
-
-	/**
-	 * Sets the feed icon.
-	 *
-	 * @param icon The feed icon.
-	 * @return This object (for method chaining).
-	 */
-	public Feed setIcon(Icon icon) {
-		this.icon = icon;
-		return this;
-	}
-
-	/**
-	 * Returns the feed logo.
-	 *
-	 * @return The feed logo.
-	 */
-	public Logo getLogo() {
-		return logo;
-	}
-
-	/**
-	 * Sets the feed logo.
-	 *
-	 * @param logo The feed logo.
-	 * @return This object (for method chaining).
-	 */
-	public Feed setLogo(Logo logo) {
-		this.logo = logo;
-		return this;
-	}
-
-	/**
-	 * Returns the feed subtitle.
-	 *
-	 * @return The feed subtitle.
-	 */
-	@BeanProperty(name="subtitle")
-	public Text getSubTitle() {
-		return subtitle;
-	}
-
-	/**
-	 * Sets the feed subtitle.
-	 *
-	 * @param subtitle The feed subtitle.
-	 * @return This object (for method chaining).
-	 */
-	@BeanProperty(name="subtitle")
-	public Feed setSubTitle(Text subtitle) {
-		this.subtitle = subtitle;
-		return this;
-	}
-
-	/**
-	 * Returns the entries in the feed.
-	 *
-	 * @return The entries in the feed.
-	 */
-	@Xml(format=COLLAPSED)
-	public List<Entry> getEntries() {
-		return entries;
-	}
-
-	/**
-	 * Sets the entries in the feed.
-	 *
-	 * @param entries The entries in the feed.
-	 * @return This object (for method chaining).
-	 */
-	public Feed setEntries(List<Entry> entries) {
-		this.entries = entries;
-		return this;
-	}
-
-	/**
-	 * Adds an entry to the list of entries in the feed.
-	 *
-	 * @param entries The entries to add to the list of entries in the feed.s
-	 * @return This object (for method chaining).
-	 */
-	public Feed addEntries(Entry...entries) {
-		if (this.entries == null)
-			this.entries = new LinkedList<Entry>();
-		this.entries.addAll(Arrays.asList(entries));
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* CommonEntry */
-	public Feed setAuthors(List<Person> authors) {
-		super.setAuthors(authors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed addAuthors(Person...authors) {
-		super.addAuthors(authors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed setCategories(List<Category> categories) {
-		super.setCategories(categories);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed addCategories(Category...categories) {
-		super.addCategories(categories);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed setContributors(List<Person> contributors) {
-		super.setContributors(contributors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed addContributors(Person...contributors) {
-		super.addContributors(contributors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed setId(Id id) {
-		super.setId(id);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed setLinks(List<Link> links) {
-		super.setLinks(links);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed addLinks(Link...links) {
-		super.addLinks(links);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed setRights(Text rights) {
-		super.setRights(rights);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed setTitle(Text title) {
-		super.setTitle(title);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Feed setUpdated(Calendar updated) {
-		super.setUpdated(updated);
-		return this;
-	}
-
-	@Override /* Common */
-	public Feed setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Feed setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Generator.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Generator.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Generator.class
deleted file mode 100755
index ef7ebcd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Generator.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/dto/atom/Generator.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Generator.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Generator.java
deleted file mode 100755
index cffc6cf..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Generator.java
+++ /dev/null
@@ -1,139 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomGenerator</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomGenerator = element atom:generator {
- * 		atomCommonAttributes,
- * 		attribute uri { atomUri }?,
- * 		attribute version { text }?,
- * 		text
- * 	}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="generator")
-public class Generator extends Common {
-
-	private URI uri;
-	private String version;
-	private String text;
-
-
-	/**
-	 * Normal constructor.
-	 *
-	 * @param text The generator statement content.
-	 */
-	public Generator(String text) {
-		this.text = text;
-	}
-
-	/** Bean constructor. */
-	public Generator() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the URI of this generator statement.
-	 *
-	 * @return The URI of this generator statement.
-	 */
-	@Xml(format=ATTR)
-	public URI getUri() {
-		return uri;
-	}
-
-	/**
-	 * Sets the URI of this generator statement.
-	 *
-	 * @param uri The URI of this generator statement.
-	 * @return This object (for method chaining).
-	 */
-	public Generator setUri(URI uri) {
-		this.uri = uri;
-		return this;
-	}
-
-	/**
-	 * Returns the version of this generator statement.
-	 *
-	 * @return The version of this generator statement.
-	 */
-	@Xml(format=ATTR)
-	public String getVersion() {
-		return version;
-	}
-
-	/**
-	 * Sets the version of this generator statement.
-	 *
-	 * @param version The version of this generator statement.
-	 * @return This object (for method chaining).
-	 */
-	public Generator setVersion(String version) {
-		this.version = version;
-		return this;
-	}
-
-	/**
-	 * Returns the content of this generator statement.
-	 *
-	 * @return The content of this generator statement.
-	 */
-	@Xml(format=CONTENT)
-	public String getText() {
-		return text;
-	}
-
-	/**
-	 * Sets the content of this generator statement.
-	 *
-	 * @param text The content of this generator statement.
-	 * @return This object (for method chaining).
-	 */
-	public Generator setText(String text) {
-		this.text = text;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Common */
-	public Generator setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Generator setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Icon.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Icon.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Icon.class
deleted file mode 100755
index af14484..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Icon.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/dto/atom/Icon.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Icon.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Icon.java
deleted file mode 100755
index abca1fb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Icon.java
+++ /dev/null
@@ -1,93 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomIcon</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomIcon = element atom:icon {
- * 		atomCommonAttributes,
- * 		(atomUri)
- * 	}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="icon")
-public class Icon extends Common {
-
-	private URI uri;
-
-
-	/**
-	 * Normal constructor.
-	 *
-	 * @param uri The URI of the icon.
-	 */
-	public Icon(URI uri) {
-		this.uri = uri;
-	}
-
-	/** Bean constructor. */
-	public Icon() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the URI of this icon.
-	 *
-	 * @return The URI of this icon.
-	 */
-	@Xml(format=CONTENT)
-	public URI getUri() {
-		return uri;
-	}
-
-	/**
-	 * Sets the URI of this icon.
-	 *
-	 * @param uri The URI of this icon.
-	 * @return This object (for method chaining).
-	 */
-	public Icon setUri(URI uri) {
-		this.uri = uri;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Common */
-	public Icon setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Icon setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Id.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Id.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Id.class
deleted file mode 100755
index 5267792..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Id.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/dto/atom/Id.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Id.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Id.java
deleted file mode 100755
index fc678c8..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Id.java
+++ /dev/null
@@ -1,92 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomId</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomId = element atom:id {
- * 		atomCommonAttributes,
- * 		(atomUri)
- * 	}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="id")
-public class Id extends Common {
-
-	private String text;
-
-	/**
-	 * Normal constructor.
-	 *
-	 * @param text The id element contents.
-	 */
-	public Id(String text) {
-		this.text = text;
-	}
-
-	/** Bean constructor. */
-	public Id() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the content of this identifier.
-	 *
-	 * @return The content of this identifier.
-	 */
-	@Xml(format=CONTENT)
-	public String getText() {
-		return text;
-	}
-
-	/**
-	 * Sets the content of this identifier.
-	 *
-	 * @param text The content of this identifier.
-	 * @return This object (for method chaining).
-	 */
-	public Id setText(String text) {
-		this.text = text;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Common */
-	public Id setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Id setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Link.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Link.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Link.class
deleted file mode 100755
index 403e056..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Link.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/dto/atom/Link.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Link.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Link.java
deleted file mode 100755
index fce86f5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Link.java
+++ /dev/null
@@ -1,222 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomLink</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomLink =
- * 		element atom:link {
- * 			atomCommonAttributes,
- * 			attribute href { atomUri },
- * 			attribute rel { atomNCName | atomUri }?,
- * 			attribute type { atomMediaType }?,
- * 			attribute hreflang { atomLanguageTag }?,
- * 			attribute title { text }?,
- * 			attribute length { text }?,
- * 			undefinedContent
- * 		}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="link")
-public class Link extends Common {
-
-	private String href;
-	private String rel;
-	private String type;
-	private String hreflang;
-	private String title;
-	private Integer length;
-
-
-	/**
-	 * Normal constructor.
-	 *
-	 * @param rel The rel of the link.
-	 * @param type The type of the link.
-	 * @param href The URI of the link.
-	 */
-	public Link(String rel, String type, String href) {
-		this.rel = rel;
-		this.type = type;
-		this.href = href;
-	}
-
-	/** Bean constructor. */
-	public Link() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the href of the target of this link.
-	 *
-	 * @return The href of the target of this link.
-	 */
-	@Xml(format=ATTR)
-	public String getHref() {
-		return href;
-	}
-
-	/**
-	 * Sets the href of the target of this link.
-	 *
-	 * @param href The href of the target of this link.
-	 * @return This object (for method chaining).
-	 */
-	public Link setHref(String href) {
-		this.href = href;
-		return this;
-	}
-
-	/**
-	 * Returns the rel of this link.
-	 *
-	 * @return The rel of this link.
-	 */
-	@Xml(format=ATTR)
-	public String getRel() {
-		return rel;
-	}
-
-	/**
-	 * Sets the rel of this link.
-	 *
-	 * @param rel The rell of this link.
-	 * @return This object (for method chaining).
-	 */
-	public Link setRel(String rel) {
-		this.rel = rel;
-		return this;
-	}
-
-	/**
-	 * Returns the content type of the target of this link.
-	 *
-	 * @return The content type of the target of this link.
-	 */
-	@Xml(format=ATTR)
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Sets the content type of the target of this link.
-	 * <p>
-	 * 	Must be one of the following:
-	 * <ul>
-	 * 	<li><js>"text"</js>
-	 * 	<li><js>"html"</js>
-	 * 	<li><js>"xhtml"</js>
-	 * 	<li><jk>null</jk> (defaults to <js>"text"</js>)
-	 * </ul>
-	 *
-	 * @param type The content type of the target of this link.
-	 * @return This object (for method chaining).
-	 */
-	public Link setType(String type) {
-		this.type = type;
-		return this;
-	}
-
-	/**
-	 * Returns the language of the target of this link.
-	 *
-	 * @return The language of the target of this link.
-	 */
-	@Xml(format=ATTR)
-	public String getHreflang() {
-		return hreflang;
-	}
-
-	/**
-	 * Sets the language of the target of this link.
-	 *
-	 * @param hreflang The language of the target of this link.
-	 * @return This object (for method chaining).
-	 */
-	public Link setHreflang(String hreflang) {
-		this.hreflang = hreflang;
-		return this;
-	}
-
-	/**
-	 * Returns the title of the target of this link.
-	 *
-	 * @return The title of the target of this link.
-	 */
-	@Xml(format=ATTR)
-	public String getTitle() {
-		return title;
-	}
-
-	/**
-	 * Sets the title of the target of this link.
-	 *
-	 * @param title The title of the target of this link.
-	 * @return This object (for method chaining).
-	 */
-	public Link setTitle(String title) {
-		this.title = title;
-		return this;
-	}
-
-	/**
-	 * Returns the length of the contents of the target of this link.
-	 *
-	 * @return The length of the contents of the target of this link.
-	 */
-	@Xml(format=ATTR)
-	public Integer getLength() {
-		return length;
-	}
-
-	/**
-	 * Sets the length of the contents of the target of this link.
-	 *
-	 * @param length The length of the contents of the target of this link.
-	 * @return This object (for method chaining).
-	 */
-	public Link setLength(Integer length) {
-		this.length = length;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Common */
-	public Link setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Link setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Logo.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Logo.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Logo.class
deleted file mode 100755
index 1237f35..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Logo.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/dto/atom/Logo.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Logo.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Logo.java
deleted file mode 100755
index 8e67d16..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Logo.java
+++ /dev/null
@@ -1,93 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomLogo</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomLogo = element atom:logo {
- * 		atomCommonAttributes,
- * 		(atomUri)
- * 	}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="logo")
-public class Logo extends Common {
-
-	private URI uri;
-
-
-	/**
-	 * Normal constructor.
-	 *
-	 * @param uri The URI of the logo.
-	 */
-	public Logo(URI uri) {
-		this.uri = uri;
-	}
-
-	/** Bean constructor. */
-	public Logo() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the URI of the logo.
-	 *
-	 * @return The URI of the logo.
-	 */
-	@Xml(format=CONTENT)
-	public URI getUri() {
-		return uri;
-	}
-
-	/**
-	 * Sets the URI of the logo.
-	 *
-	 * @param uri The URI of the logo.
-	 * @return This object (for method chaining).
-	 */
-	public Logo setUri(URI uri) {
-		this.uri = uri;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Common */
-	public Logo setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Logo setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Person.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Person.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Person.class
deleted file mode 100755
index 65f7c15..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Person.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/dto/atom/Person.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Person.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Person.java
deleted file mode 100755
index e0aecaf..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Person.java
+++ /dev/null
@@ -1,131 +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.dto.atom;
-
-import java.net.*;
-
-/**
- * Represents an <code>atomPersonConstruct</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomPersonConstruct =
- * 		atomCommonAttributes,
- * 		(element atom:name { text }
- * 		& element atom:uri { atomUri }?
- * 		& element atom:email { atomEmailAddress }?
- * 		& extensionElement*)
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class Person extends Common {
-
-	private String name;
-	private URI uri;
-	private String email;
-
-
-	/**
-	 * Normal constructor.
-	 *
-	 * @param name The name of the person.
-	 */
-	public Person(String name) {
-		this.name = name;
-	}
-
-	/** Bean constructor. */
-	public Person() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the name of the person.
-	 *
-	 * @return The name of the person.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Sets the name of the person.
-	 *
-	 * @param name The name of the person.
-	 * @return This object (for method chaining).
-	 */
-	public Person setName(String name) {
-		this.name = name;
-		return this;
-	}
-
-	/**
-	 * Returns the URI of the person.
-	 *
-	 * @return The URI of the person.
-	 */
-	public URI getUri() {
-		return uri;
-	}
-
-	/**
-	 * Sets the URI of the person.
-	 *
-	 * @param uri The URI of the person.
-	 * @return This object (for method chaining).
-	 */
-	public Person setUri(URI uri) {
-		this.uri = uri;
-		return this;
-	}
-
-	/**
-	 * Returns the email address of the person.
-	 *
-	 * @return The email address of the person.
-	 */
-	public String getEmail() {
-		return email;
-	}
-
-	/**
-	 * Sets the email address of the person.
-	 *
-	 * @param email The email address of the person.
-	 * @return This object (for method chaining).
-	 */
-	public Person setEmail(String email) {
-		this.email = email;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Common */
-	public Person setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Person setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Source.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Source.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Source.class
deleted file mode 100755
index 0d8885b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Source.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/dto/atom/Source.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Source.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Source.java
deleted file mode 100755
index 973e1cb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Source.java
+++ /dev/null
@@ -1,223 +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.dto.atom;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * Represents an <code>atomSource</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomSource =
- * 		element atom:source {
- * 			atomCommonAttributes,
- * 			(atomAuthor*
- * 			& atomCategory*
- * 			& atomContributor*
- * 			& atomGenerator?
- * 			& atomIcon?
- * 			& atomId?
- * 			& atomLink*
- * 			& atomLogo?
- * 			& atomRights?
- * 			& atomSubtitle?
- * 			& atomTitle?
- * 			& atomUpdated?
- * 			& extensionElement*)
- * 		}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class Source extends CommonEntry {
-
-	private Generator generator;
-	private Icon icon;
-	private Logo logo;
-	private Text subtitle;
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the generator info of this source.
-	 *
-	 * @return The generator info of this source.
-	 */
-	public Generator getGenerator() {
-		return generator;
-	}
-
-	/**
-	 * Sets the generator info of this source.
-	 *
-	 * @param generator The generator info of this source.
-	 * @return This object (for method chaining).
-	 */
-	public Source setGenerator(Generator generator) {
-		this.generator = generator;
-		return this;
-	}
-
-	/**
-	 * Returns the icon of this source.
-	 *
-	 * @return The icon of this source.
-	 */
-	public Icon getIcon() {
-		return icon;
-	}
-
-	/**
-	 * Sets the icon of this source.
-	 *
-	 * @param icon The icon of this source.
-	 * @return This object (for method chaining).
-	 */
-	public Source setIcon(Icon icon) {
-		this.icon = icon;
-		return this;
-	}
-
-	/**
-	 * Returns the logo of this source.
-	 *
-	 * @return The logo of this source.
-	 */
-	public Logo getLogo() {
-		return logo;
-	}
-
-	/**
-	 * Sets the logo of this source.
-	 *
-	 * @param logo The logo of this source.
-	 * @return This object (for method chaining).
-	 */
-	public Source setLogo(Logo logo) {
-		this.logo = logo;
-		return this;
-	}
-
-	/**
-	 * Returns the subtitle of this source.
-	 *
-	 * @return The subtitle of this source.
-	 */
-	public Text getSubtitle() {
-		return subtitle;
-	}
-
-	/**
-	 * Sets the subtitle of this source.
-	 *
-	 * @param subtitle The subtitle of this source.
-	 * @return This object (for method chaining).
-	 */
-	public Source setSubtitle(Text subtitle) {
-		this.subtitle = subtitle;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* CommonEntry */
-	public Source setAuthors(List<Person> authors) {
-		super.setAuthors(authors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source addAuthors(Person...authors) {
-		super.addAuthors(authors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source setCategories(List<Category> categories) {
-		super.setCategories(categories);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source addCategories(Category...categories) {
-		super.addCategories(categories);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source setContributors(List<Person> contributors) {
-		super.setContributors(contributors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source addContributors(Person...contributors) {
-		super.addContributors(contributors);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source setId(Id id) {
-		super.setId(id);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source setLinks(List<Link> links) {
-		super.setLinks(links);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source addLinks(Link...links) {
-		super.addLinks(links);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source setRights(Text rights) {
-		super.setRights(rights);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source setTitle(Text title) {
-		super.setTitle(title);
-		return this;
-	}
-
-	@Override /* CommonEntry */
-	public Source setUpdated(Calendar updated) {
-		super.setUpdated(updated);
-		return this;
-	}
-
-	@Override /* Common */
-	public Source setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Source setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text$TextContentHandler.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text$TextContentHandler.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text$TextContentHandler.class
deleted file mode 100755
index 2f9f6d1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text$TextContentHandler.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/dto/atom/Text.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text.class
deleted file mode 100755
index 1b067db..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text.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/dto/atom/Text.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text.java
deleted file mode 100755
index c884890..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/Text.java
+++ /dev/null
@@ -1,179 +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.dto.atom;
-
-import static com.ibm.juno.core.xml.XmlUtils.*;
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import javax.xml.stream.*;
-
-import com.ibm.juno.core.xml.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an <code>atomTextConstruct</code> construct in the RFC4287 specification.
- * <p>
- * <h6 class='figure'>Schema</h6>
- * <p class='bcode'>
- * 	atomTextConstruct = atomPlainTextConstruct | atomXHTMLTextConstruct
- *
- * 	atomPlainTextConstruct =
- * 		atomCommonAttributes,
- * 		attribute type { "text" | "html" }?,
- * 		text
- *
- * 	atomXHTMLTextConstruct =
- * 		atomCommonAttributes,
- * 		attribute type { "xhtml" },
- * 		xhtmlDiv
- *
- * 	xhtmlDiv = element xhtml:div {
- * 		(attribute * { text }
- * 		| text
- * 		| anyXHTML)*
- * 	}
- * </p>
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class Text extends Common {
-
-	private String type;
-	String text;
-
-
-	/**
-	 * Normal content.
-	 *
-	 * @param type The content type of this content.
-	 * @param text The text of this content.
-	 */
-	public Text(String type, String text) {
-		this.type = type;
-		this.text = text;
-	}
-
-	/**
-	 * Normal content.
-	 *
-	 * @param text The text of this content.
-	 */
-	public Text(String text) {
-		this.text = text;
-	}
-
-	/** Bean constructor. */
-	public Text() {}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the content type of this content.
-	 *
-	 * @return The content type of this content.
-	 */
-	@Xml(format=ATTR)
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Sets the content type of this content.
-	 * <p>
-	 * 	Must be one of the following:
-	 * <ul>
-	 * 	<li><js>"text"</js>
-	 * 	<li><js>"html"</js>
-	 * 	<li><js>"xhtml"</js>
-	 * 	<li><jk>null</jk> (defaults to <js>"text"</js>)
-	 * </ul>
-	 *
-	 * @param type The content type of this content.
-	 * @return This object (for method chaining).
-	 */
-	public Text setType(String type) {
-		this.type = type;
-		return this;
-	}
-
-	/**
-	 * Returns the content of this content.
-	 *
-	 * @return The content of this content.
-	 */
-	@Xml(format=CONTENT, contentHandler=TextContentHandler.class)
-	public String getText() {
-		return text;
-	}
-
-	/**
-	 * Sets the content of this content.
-	 *
-	 * @param text The content of this content.
-	 * @return This object (for method chaining).
-	 */
-	public Text setText(String text) {
-		this.text = text;
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden setters (to simplify method chaining)
-	//--------------------------------------------------------------------------------
-
-	@Override /* Common */
-	public Text setBase(URI base) {
-		super.setBase(base);
-		return this;
-	}
-
-	@Override /* Common */
-	public Text setLang(String lang) {
-		super.setLang(lang);
-		return this;
-	}
-
-	/**
-	 * Specialized content handler for correctly handling XML element content based
-	 * 	on the <code>type</code> attribute of the element.
-	 * <p>
-	 * 	If the <code>type</code> attribute is <js>"xhtml"</js> the content is treated
-	 * 	as XML.  Otherwise, it's treated as plain text.
-	 */
-	public static class TextContentHandler implements XmlContentHandler<Text> {
-
-		@Override /* XmlContentHandler */
-		public void parse(XMLStreamReader r, Text text) throws Exception {
-			String type = text.type;
-			if (type != null && type.equals("xhtml"))
-				text.text = decode(readXmlContents(r).trim());
-			else
-				text.text = decode(r.getElementText().trim());
-		}
-
-		@Override /* XmlContentHandler */
-		public void serialize(XmlSerializerWriter w, Text text) throws Exception {
-			String type = text.type;
-			String content = text.text;
-			if (type != null && type.equals("xhtml"))
-				w.encodeTextInvalidChars(content);
-			else
-				w.encodeText(content);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/doc-files/Example_HTML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/doc-files/Example_HTML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/doc-files/Example_HTML.png
deleted file mode 100755
index 18b3d52..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/doc-files/Example_HTML.png 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/dto/atom/package-info.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package-info.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package-info.class
deleted file mode 100755
index 9fcd679..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package-info.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/dto/atom/package-info.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package-info.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package-info.java
deleted file mode 100755
index 6724ec3..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package-info.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/* *****************************************************************************
- * 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.
- *******************************************************************************/
-@XmlSchema(
-	prefix="atom",
-	xmlNs={
-		@XmlNs(prefix="atom", namespaceURI="http://www.w3.org/2005/Atom/"),
-		@XmlNs(prefix="xml", namespaceURI="http://www.w3.org/XML/1998/namespace")
-	}
-)
-package com.ibm.juno.core.dto.atom;
-
-import com.ibm.juno.core.xml.annotation.*;
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package.html
deleted file mode 100755
index 9d67101..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/atom/package.html
+++ /dev/null
@@ -1,578 +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>ATOM Data Transfer Objects</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='#Overview'>Overview</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#Serialize'>Serializing ATOM feeds</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#AtomJson'>ATOM/JSON</a></p>
-			<li><p><a class='doclink' href='#AtomRdfXml'>ATOM/RDF/XML</a></p>
-			<li><p><a class='doclink' href='#AtomHtml'>ATOM/HTML</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#Parse'>Parsing ATOM feeds</a></p>
-	</ol>
-</ol>
-
-
-<!-- ======================================================================================================== -->
-<a id="Overview"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Overview</h2>
-<div class='topic'>
-	<p>
-		Juno supports generation and consumption of ATOM feeds through the use of DTOs (Data Transfer Objects).<br>
-		It uses existing support for serializing and parsing POJOs to and from XML to define these ATOM objects. 
-	</p>
-	<p>
-		The examples shown here are pulled from the <code>AtomFeedResource</code> class in the <code>com.ibm.juno.sample.war</code> project.
-	</p>
-	
-	
-	<!-- ======================================================================================================== -->
-	<a id="Serialize"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - Serializing ATOM feeds</h3>
-	<div class='topic'>
-		<p>
-			The Juno ATOM feed DTOs are simply beans with fluent-style setters.<br>
-			The following code shows a feed being created programmatically: 
-		</p>
-		<p class='bcode'>
-	Feed feed = <jk>new</jk> Feed()
-		.setTitle(<jk>new</jk> Text(<js>"text"</js>, <js>"Juno ATOM specification"</js>))
-		.setSubTitle(<jk>new</jk> Text(<js>"html"</js>, <js>"A &lt;em&gt;lot&lt;/em&gt; of effort went into making this effortless"</js>))
-		.setUpdated(<jsm>parseDateTime</jsm>(<js>"2013-05-08T12:29:29Z"</js>))
-		.setId(<jk>new</jk> Id(<js>"tag:juno.sample.com,2013:1"</js>))
-		.addLinks(
-			<jk>new</jk> Link(<js>"alternate"</js>, <js>"text/html"</js>, <js>"http://www.sample.com/"</js>).setHreflang(<js>"en"</js>),
-			<jk>new</jk> Link(<js>"self"</js>, <js>"application/atom+xml"</js>, <js>"http://www.sample.com/feed.atom"</js>)
-		)
-		.setRights(<jk>new</jk> Text(<js>"Copyright (c) 2013, IBM"</js>))
-		.setGenerator(<jk>new</jk> Generator(<js>"Juno"</js>).setUri(<jk>new</jk> URI(<js>"http://juno.ibm..com/"</js>)).setVersion(<js>"1.0"</js>))
-		.addEntries(
-			<jk>new</jk> Entry()
-				.setTitle(<jk>new</jk> Text(<js>"Juno ATOM specification snapshot"</js>))
-				.addLinks(
-					<jk>new</jk> Link(<js>"alternate"</js>, <js>"text/html"</js>, <js>"http://www.sample.com/2012/05/08/juno.atom"</js>),
-					<jk>new</jk> Link(<js>"enclosure"</js>, <js>"audio/mpeg"</js>, <js>""http://www.sample.com/audio/juno_podcast.mp3"</js>).setLength(12345)
-				)
-				.setId(<jk>new</jk> Id(<js>"tag:juno.sample.com,2013:1.2345"</js>))
-				.setUpdated(<jsm>parseDateTime</jsm>(<js>"2013-05-08T12:29:29Z"</js>))
-				.setPublished(<jsm>parseDateTime</jsm>(<js>"2013-05-08T12:29:29Z"</js>))
-				.addAuthors(<jk>new</jk> Person(<js>"James Bognar"</js>).setUri(<jk>new</jk> URI(<js>"http://www.sample.com/"</js>)).setEmail(<js>"jbognar@us.ibm.com"</js>))
-				.addContributors(
-					<jk>new</jk> Person(<js>"Barry M. Caceres"</js>)
-				)
-				.setContent(
-					<jk>new</jk> Content()
-						.setLang(<js>"en"</js>)
-						.setBase(<jk>new</jk> URI(<js>"http://www.ibm.com/"</js>))
-						.setType(<js>"xhtml"</js>)
-						.setText(<js>"&lt;div xmlns=\"http://www.w3.org/1999/xhtml\"&gt;&lt;p&gt;*lt;i&gt;[Update: Juno supports ATOM.]&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;"</js>)
-				)
-		)
-	;
-		</p>
-		<p>
-			To serialize this to ATOM, use the {@link com.ibm.juno.core.xml.XmlSerializer} class:
-		</p>
-		
-		<h6 class='figure'>Example with no namespaces</h6>
-		<p class='bcode'>
-	<jc>// Create a serializer with readable output, no namespaces yet.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializer.SqReadable().setProperty(XmlSerializerProperties.<jsf>XML_enableNamespaces</jsf>, <jk>false</jk>);
-
-	<jc>// Serialize to ATOM/XML</jc>
-	String atomXml = s.serialize(feed);
-		</p>
-		
-		<h6 class='figure'>Results</h6>
-		<p class='bcode'>
-	<xt>&lt;feed&gt;</xt>
-		<xt>&lt;id&gt;</xt>
-			tag:juno.sample.com,2013:1
-		<xt>&lt;/id&gt;</xt>
-		<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://www.sample.com/'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs> <xa>hreflang</xa>=<xs>'en'</xs>/<xt>&gt;</xt>
-		<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://www.sample.com/feed.atom'</xs> <xa>rel</xa>=<xs>'self'</xs> <xa>type</xa>=<xs>'application/atom+xml'</xs>/<xt>&gt;</xt>
-		<xt>&lt;rights&gt;</xt>
-			Copyright (c) 2013, IBM
-		<xt>&lt;/rights&gt;</xt>
-		<xt>&lt;title</xt> <xa>type</xa>=<xs>'text'</xs>&gt;</xt>
-			Juno ATOM specification
-		<xt>&lt;/title&gt;</xt>
-		<xt>&lt;updated&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/updated&gt;</xt>
-		<xt>&lt;generator</xt> <xa>uri</xa>=<xs>'http://juno.ibm.com/'</xs> <xa>version</xa>=<xs>'1.0'</xs><xt>&gt;</xt>
-			Juno
-		<xt>&lt;/generator&gt;</xt>
-		<xt>&lt;subtitle</xt> <xa>type</xa>=<xs>'html'</xs><xt>&gt;</xt>
-			A &amp;lt;em&amp;gt;lot&amp;lt;/em&amp;gt; of effort went into making this effortless
-		<xt>&lt;/subtitle&gt;</xt>
-		<xt>&lt;entry&gt;</xt>
-			<xt>&lt;author&gt;</xt>
-				<xt>&lt;name&gt;</xt>James Bognar<xt>&lt;/name&gt;</xt>
-				<xt>&lt;uri&gt;</xt>http://www.sample.com/<xt>&lt;/uri&gt;</xt>
-				<xt>&lt;email&gt;</xt>jbognar@us.ibm.com<xt>&lt;/email&gt;</xt>
-			<xt>&lt;/author&gt;</xt>
-			<xt>&lt;contributor&gt;</xt>
-				<xt>&lt;name&gt;</xt>Barry M. Caceres<xt>&lt;/name&gt;</xt>
-			<xt>&lt;/contributor&gt;</xt>
-			<xt>&lt;id&gt;</xt>
-				tag:juno.sample.com,2013:1.2345
-			<xt>&lt;/id&gt;</xt>
-			<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://www.sample.com/2012/05/08/juno.atom'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs>/<xt>&gt;</xt>
-			<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://www.sample.com/audio/juno_podcast.mp3'</xs> <xa>rel</xa>=<xs>'enclosure'</xs> <xa>type</xa>=<xs>'audio/mpeg'</xs> <xa>length</xa>=<xs>'12345'</xs>/<xt>&gt;</xt>
-			<xt>&lt;title&gt;</xt>
-				Juno ATOM specification snapshot
-			<xt>&lt;/title&gt;</xt>
-			<xt>&lt;updated&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/updated&gt;</xt>
-			<xt>&lt;content</xt> <xa>base</xa>=<xs>'http://www.ibm.com/'</xs> <xa>lang</xa>=<xs>'en'</xs> <xa>type</xa>=<xs>'xhtml'</xs><xt>&gt;</xt>
-				<xt>&lt;div</xt> <xa>xmlns</xa>=<xs>"http://www.w3.org/1999/xhtml"</xs><xt>&gt;&lt;p&gt;&lt;i&gt;</xt>[Update: Juno supports ATOM.]<xt>&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;</xt>
-			<xt>&lt;/content&gt;</xt>
-			<xt>&lt;published&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/published&gt;</xt>
-		<xt>&lt;/entry&gt;</xt>
-	<xt>&lt;/feed&gt;</xt>		
-		</p>
-		
-		<p>
-			The following is the same, except with XML namespaces enabled:
-		</p>
-	
-		<h6 class='figure'>Example with namespaces</h6>
-		<p class='bcode'>
-	<jc>// Create a serializer with readable output with namespaces.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializer.SqReadable();
-
-	<jc>// Serialize to ATOM/XML</jc>
-	String atomXml = s.serialize(feed);
-		</p>
-		
-		<h6 class='figure'>Results</h6>
-		<p class='bcode'>
-	<xt>&lt;atom:feed</xt> 
-			<xa>xmlns</xa>=<xs>'http://www.ibm.com/2013/Juno'</xs> 
-			<xa>xmlns:atom</xa>=<xs>'http://www.w3.org/2005/Atom/'</xs> 
-			<xa>xmlns:xml</xa>=<xs>'http://www.w3.org/XML/1998/namespace'</xs> 
-			<xa>xmlns:xsi</xa>=<xs>'http://www.w3.org/2001/XMLSchema-instance'</xs><xt>&gt;</xt>
-		<xt>&lt;atom:id&gt;</xt>
-			tag:juno.sample.com,2013:1
-		<xt>&lt;/atom:id&gt;</xt>
-		<xt>&lt;atom:link</xt> <xa>href</xa>=<xs>'http://www.sample.com/'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs> <xa>hreflang</xa>=<xs>'en'</xs><xt>/&gt;</xt>
-		<xt>&lt;atom:link</xt> <xa>href</xa>=<xs>'http://www.sample.com/feed.atom'</xs> <xa>rel</xa>=<xs>'self'</xs> <xa>type</xa>=<xs>'application/atom+xml'</xs><xt>/&gt;</xt>
-		<xt>&lt;atom:rights&gt;</xt>
-			Copyright (c) 2013, IBM
-		<xt>&lt;/atom:rights&gt;</xt>
-		<xt>&lt;atom:title</xt> <xa>type</xa>=<xs>'text'</xs><xt>&gt;</xt>
-			Juno ATOM specification
-		<xt>&lt;/atom:title&gt;</xt>
-		<xt>&lt;atom:updated&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/atom:updated&gt;</xt>
-		<xt>&lt;atom:generator</xt> <xa>uri</xa>=<xs>'http://juno.ibm.com/'</xs> <xa>version</xa>=<xs>'1.0'</xs><xt>&gt;</xt>
-			Juno
-		<xt>&lt;/atom:generator&gt;</xt>
-		<xt>&lt;atom:subtitle</xt> <xa>type</xa>=<xs>'html'</xs><xt>&gt;</xt>
-			A &amp;lt;em&amp;gt;lot&amp;lt;/em&amp;gt; of effort went into making this effortless
-		<xt>&lt;/atom:subtitle&gt;</xt>
-		<xt>&lt;atom:entry&gt;</xt>
-			<xt>&lt;atom:author&gt;</xt>
-				<xt>&lt;atom:name&gt;</xt>James Bognar<xt>&lt;/atom:name&gt;</xt>
-				<xt>&lt;atom:uri&gt;</xt>http://www.sample.com/<xt>&lt;/atom:uri&gt;</xt>
-				<xt>&lt;atom:email&gt;</xt>jbognar@us.ibm.com<xt>&lt;/atom:email&gt;</xt>
-			<xt>&lt;/atom:author&gt;</xt>
-			<xt>&lt;atom:contributor&gt;</xt>
-				<xt>&lt;atom:name&gt;</xt>Barry M. Caceres<xt>&lt;/atom:name&gt;</xt>
-			<xt>&lt;/atom:contributor&gt;</xt>
-			<xt>&lt;atom:id&gt;</xt>
-				tag:juno.sample.com,2013:1.2345
-			<xt>&lt;/atom:id&gt;</xt>
-			<xt>&lt;atom:link</xt> <xa>href</xa>=<xs>'http://www.sample.com/2012/05/08/juno.atom'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs><xt>/&gt;</xt>
-			<xt>&lt;atom:link</xt> <xa>href</xa>=<xs>'http://www.sample.com/audio/juno_podcast.mp3'</xs> <xa>rel</xa>=<xs>'enclosure'</xs> <xa>type</xa>=<xs>'audio/mpeg'</xs> <xa>length</xa>=<xs>'12345'</xs><xt>/&gt;</xt>
-			<xt>&lt;atom:title&gt;</xt>
-				Juno ATOM specification snapshot
-			<xt>&lt;/atom:title&gt;</xt>
-			<xt>&lt;atom:updated&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/atom:updated&gt;</xt>
-			<xt>&lt;atom:content</xt> <xa>xml:base</xa>=<xs>'http://www.ibm.com/'</xs> <xa>xml:lang</xa>=<xs>'en'</xs> <xa>type</xa>=<xs>'xhtml'</xs><xt>&gt;</xt>
-				<xt>&lt;div</xt> <xa>xmlns</xa>=<xs>"http://www.w3.org/1999/xhtml"</xs><xt>&gt;</xt><xt>&lt;p&gt;</xt><xt>&lt;i&gt;</xt>[Update: Juno supports ATOM.]<xt>&lt;/i&gt;</xt><xt>&lt;/p&gt;</xt><xt>&lt;/div&gt;</xt>
-			<xt>&lt;/atom:content&gt;</xt>
-			<xt>&lt;atom:published&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/atom:published&gt;</xt>
-		<xt>&lt;/atom:entry&gt;</xt>
-	<xt>&lt;/atom:feed&gt;</xt>
-		</p>
-	
-		<p>
-			The following is the same, except with XML namespaces enabled and the ATOM namespace as the default namespace:
-		</p>
-
-		<h6 class='figure'>Example with namespaces with ATOM as the default namespace</h6>
-		<p class='bcode'>
-	<jc>// Create a serializer with readable output with namespaces.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializer.SqReadable().setProperty(XmlSerializerProperties.<jsf>XML_defaultNamespaceUri</jsf>, <js>"atom"</js>);
-
-	<jc>// Serialize to ATOM/XML</jc>
-	String atomXml = s.serialize(feed);
-		</p>
-		
-		<h6 class='figure'>Results</h6>
-		<p class='bcode'>
-	<xt>&lt;feed</xt> 
-			<xa>xmlns</xa>=<xs>'http://www.w3.org/2005/Atom/'</xs> 
-			<xa>xmlns:xml</xa>=<xs>'http://www.w3.org/XML/1998/namespace'</xs> 
-			<xa>xmlns:xsi</xa>=<xs>'http://www.w3.org/2001/XMLSchema-instance'</xs><xt>&gt;</xt>
-		<xt>&lt;id&gt;</xt>
-			tag:juno.sample.com,2013:1
-		<xt>&lt;/id&gt;</xt>
-		<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://www.sample.com/'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs> <xa>hreflang</xa>=<xs>'en'</xs><xt>/&gt;</xt>
-		<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://www.sample.com/feed.atom'</xs> <xa>rel</xa>=<xs>'self'</xs> <xa>type</xa>=<xs>'application/atom+xml'</xs><xt>/&gt;</xt>
-		<xt>&lt;rights&gt;</xt>
-			Copyright (c) 2013, IBM
-		<xt>&lt;/rights&gt;</xt>
-		<xt>&lt;title</xt> <xa>type</xa>=<xs>'text'</xs><xt>&gt;</xt>
-			Juno ATOM specification
-		<xt>&lt;/title&gt;</xt>
-		<xt>&lt;updated&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/updated&gt;</xt>
-		<xt>&lt;generator</xt> <xa>uri</xa>=<xs>'http://juno.ibm.com/'</xs> <xa>version</xa>=<xs>'1.0'</xs><xt>&gt;</xt>
-			Juno
-		<xt>&lt;/generator&gt;</xt>
-		<xt>&lt;subtitle</xt> <xa>type</xa>=<xs>'html'</xs><xt>&gt;</xt>
-			A &amp;lt;em&amp;gt;lot&amp;lt;/em&amp;gt; of effort went into making this effortless
-		<xt>&lt;/subtitle&gt;</xt>
-		<xt>&lt;entry&gt;</xt>
-			<xt>&lt;author&gt;</xt>
-				<xt>&lt;name&gt;</xt>James Bognar<xt>&lt;/name&gt;</xt>
-				<xt>&lt;uri&gt;</xt>http://www.sample.com/<xt>&lt;/uri&gt;</xt>
-				<xt>&lt;email&gt;</xt>jbognar@us.ibm.com<xt>&lt;/email&gt;</xt>
-			<xt>&lt;/author&gt;</xt>
-			<xt>&lt;contributor&gt;</xt>
-				<xt>&lt;name&gt;</xt>Barry M. Caceres<xt>&lt;/name&gt;</xt>
-			<xt>&lt;/contributor&gt;</xt>
-			<xt>&lt;id&gt;</xt>
-				tag:juno.sample.com,2013:1.2345
-			<xt>&lt;/id&gt;</xt>
-			<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://www.sample.com/2012/05/08/juno.atom'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs><xt>/&gt;</xt>
-			<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://www.sample.com/audio/juno_podcast.mp3'</xs> <xa>rel</xa>=<xs>'enclosure'</xs> <xa>type</xa>=<xs>'audio/mpeg'</xs> <xa>length</xa>=<xs>'12345'</xs><xt>/&gt;</xt>
-			<xt>&lt;title&gt;</xt>
-				Juno ATOM specification snapshot
-			<xt>&lt;/title&gt;</xt>
-			<xt>&lt;updated&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/updated&gt;</xt>
-			<xt>&lt;content</xt> <xa>xml:base</xa>=<xs>'http://www.ibm.com/'</xs> <xa>xml:lang</xa>=<xs>'en'</xs> <xa>type</xa>=<xs>'xhtml'</xs><xt>&gt;</xt>
-				<xt>&lt;div</xt> <xa>xmlns</xa>=<xs>"http://www.w3.org/1999/xhtml"</xs><xt>&gt;</xt><xt>&lt;p&gt;</xt><xt>&lt;i&gt;</xt>[Update: Juno supports ATOM.]<xt>&lt;/i&gt;</xt><xt>&lt;/p&gt;</xt><xt>&lt;/div&gt;</xt>
-			<xt>&lt;/content&gt;</xt>
-			<xt>&lt;published&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/published&gt;</xt>
-		<xt>&lt;/entry&gt;</xt>
-	<xt>&lt;/feed&gt;</xt>
-		</p>		
-	
-	
-		<!-- ======================================================================================================== -->
-		<a id="AtomJson"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.1.1 - ATOM/JSON</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.core.json.JsonSerializer} class can also be used to produce ATOM in JSON format.
-			</p>
-
-			<h6 class='figure'>ATOM/JSON example</h6>
-			<p class='bcode'>
-	<jc>// Get JSON serializer with readable output.</jc>
-	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>;
-
-	<jc>// Serialize to ATOM/JSON</jc>
-	String atomJson = s.serialize(feed);
-			</p>
-		
-			<h6 class='figure'>Results</h6>
-			<p class='bcode'>
-	{
-		id: {
-			text: <js>'tag:juno.sample.com,2013:1'</js>
-		}, 
-		links: [
-			{
-				href: <js>'http://www.sample.com/'</js>, 
-				rel: <js>'alternate'</js>, 
-				type: <js>'text/html'</js>, 
-				hreflang: <js>'en'</js>
-			}, 
-			{
-				href: <js>'http://www.sample.com/feed.atom'</js>, 
-				rel: <js>'self'</js>, 
-				type: <js>'application/atom+xml'</js>
-			}
-		], 
-		rights: {
-			text: <js>'Copyright (c) 2013, IBM'</js>
-		}, 
-		title: {
-			type: <js>'text'</js>, 
-			text: <js>'Juno ATOM specification'</js>
-		}, 
-		updated: <js>'2013-05-08T12:29:29Z'</js>, 
-		generator: {
-			uri: <js>'http://juno.ibm.com/'</js>, 
-			version: <js>'1.0'</js>, 
-			text: <js>'Juno'</js>
-		}, 
-		subtitle: {
-			type: <js>'html'</js>, 
-			text: <js>'A &lt;em&gt;lot&lt;/em&gt; of effort went into making this effortless'</js>
-		}, 
-		entries: [
-			{
-				authors: [
-					{
-						name: <js>'James Bognar'</js>, 
-						uri: <js>'http://www.sample.com/'</js>, 
-						email: <js>'jbognar@us.ibm.com'</js>
-					}
-				], 
-				contributors: [
-					{
-						name: <js>'Barry M. Caceres'</js>
-					}
-				], 
-				id: {
-					text: <js>'tag:juno.sample.com,2013:1.2345'</js>
-				}, 
-				links: [
-					{
-						href: <js>'http://www.sample.com/2012/05/08/juno.atom'</js>, 
-						rel: <js>'alternate'</js>, 
-						type: <js>'text/html'</js>
-					}, 
-					{
-						href: <js>'http://www.sample.com/audio/juno_podcast.mp3'</js>, 
-						rel: <js>'enclosure'</js>, 
-						type: <js>'audio/mpeg'</js>, 
-						length: <jk>12345</jk>
-					}
-				], 
-				title: {
-					text: <js>'Juno ATOM specification snapshot'</js>
-				}, 
-				updated: <js>'2013-05-08T12:29:29Z'</js>, 
-				content: {
-					base: <js>'http://www.ibm.com/'</js>, 
-					lang: <js>'en'</js>, 
-					type: <js>'xhtml'</js>, 
-					text: <js>'&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;&lt;i&gt;[Update: Juno supports ATOM.]&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;'</js>
-				}, 
-				published: <js>'2013-05-08T12:29:29Z'</js>
-			}
-		]
-	}
-			</p>
-		</div>	
-		
-
-		<!-- ======================================================================================================== -->
-		<a id="AtomRdfXml"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.1.2 - ATOM/RDF/XML</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.core.jena.RdfSerializer} class and subclasses can also be used to produce ATOM in various RDF formats.
-			</p>
-
-			<h6 class='figure'>ATOM/RDF/XML example</h6>
-			<p class='bcode'>
-	<jc>// Get RDF/XML serializer with readable output.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev()
-		.setProperty(SerializerProperties.<jsf>SERIALIZER_useIndentation</jsf>, <jk>true</jk>)
-		.setProperty(SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>)
-		.setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3);
-
-	<jc>// Serialize to ATOM/RDF/XML</jc>
-	String atomRdfXml = s.serialize(feed);
-			</p>
-			
-			<h6 class='figure'>Results</h6>
-			<p class='bcode'>
-	<xt>&lt;rdf:RDF</xt>
-	    <xa>xmlns:rdf</xa>=<xs>'http://www.w3.org/1999/02/22-rdf-syntax-ns#'</xs>
-	    <xa>xmlns:j</xa>=<xs>'http://www.ibm.com/juno/'</xs>
-	    <xa>xmlns:jp</xa>=<xs>'http://www.ibm.com/junobp/'</xs>
-	    <xa>xmlns:atom</xa>=<xs>'http://www.w3.org/2005/Atom/'</xs>
-	    <xa>xmlns:j.0</xa>=<xs>'http://www.w3.org/XML/1998/'</xs><xt>&gt;</xt>
-	   <xt>&lt;rdf:Description&gt;</xt>
-	      <xt>&lt;atom:id</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	         <xt>&lt;atom:text&gt;</xt>tag:juno.sample.com,2013:1<xt>&lt;/atom:text&gt;</xt>
-	      <xt>&lt;/atom:id&gt;</xt>
-	      <xt>&lt;atom:links&gt;</xt>
-	         <xt>&lt;rdf:Seq&gt;</xt>
-	            <xt>&lt;rdf:li</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	               <xt>&lt;atom:href&gt;</xt>http://www.sample.com/<xt>&lt;/atom:href&gt;</xt>
-	               <xt>&lt;atom:rel&gt;</xt>alternate<xt>&lt;/atom:rel&gt;</xt>
-	               <xt>&lt;atom:type&gt;</xt>text/html<xt>&lt;/atom:type&gt;</xt>
-	               <xt>&lt;atom:hreflang&gt;</xt>en<xt>&lt;/atom:hreflang&gt;</xt>
-	            <xt>&lt;/rdf:li&gt;</xt>
-	            <xt>&lt;rdf:li</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	               <xt>&lt;atom:href&gt;</xt>http://www.sample.com/feed.atom<xt>&lt;/atom:href&gt;</xt>
-	               <xt>&lt;atom:rel&gt;</xt>self<xt>&lt;/atom:rel&gt;</xt>
-	               <xt>&lt;atom:type&gt;</xt>application/atom+xml<xt>&lt;/atom:type&gt;</xt>
-	            <xt>&lt;/rdf:li&gt;</xt>
-	         <xt>&lt;/rdf:Seq&gt;</xt>
-	      <xt>&lt;/atom:links&gt;</xt>
-	      <xt>&lt;atom:rights</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	         <xt>&lt;atom:text&gt;</xt>Copyright (c) 2013, IBM<xt>&lt;/atom:text&gt;</xt>
-	      <xt>&lt;/atom:rights&gt;</xt>
-	      <xt>&lt;atom:title</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	         <xt>&lt;atom:type&gt;</xt>text<xt>&lt;/atom:type&gt;</xt>
-	         <xt>&lt;atom:text&gt;</xt>Juno ATOM specification<xt>&lt;/atom:text&gt;</xt>
-	      <xt>&lt;/atom:title&gt;</xt>
-	      <xt>&lt;atom:updated&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/atom:updated&gt;</xt>
-	      <xt>&lt;atom:generator</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	         <xt>&lt;atom:uri</xt> <xa>rdf:resource</xa>=<xs>'http://juno.ibm.com/'</xs><xt>/&gt;</xt>
-	         <xt>&lt;atom:version&gt;</xt>1.0<xt>&lt;/atom:version&gt;</xt>
-	         <xt>&lt;atom:text&gt;</xt>Juno<xt>&lt;/atom:text&gt;</xt>
-	      <xt>&lt;/atom:generator&gt;</xt>
-	      <xt>&lt;atom:subtitle</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	         <xt>&lt;atom:type&gt;</xt>html<xt>&lt;/atom:type&gt;</xt>
-	         <xt>&lt;atom:text&gt;</xt>A &amp;lt;em&amp;gt;lot&amp;lt;/em&amp;gt; of effort went into making this effortless<xt>&lt;/atom:text&gt;</xt>
-	      <xt>&lt;/atom:subtitle&gt;</xt>
-	      <xt>&lt;atom:entries&gt;</xt>
-	         <xt>&lt;rdf:Seq&gt;</xt>
-	            <xt>&lt;rdf:li</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	               <xt>&lt;atom:authors&gt;</xt>
-	                  <xt>&lt;rdf:Seq&gt;</xt>
-	                     <xt>&lt;rdf:li</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	                        <xt>&lt;atom:name&gt;</xt>James Bognar<xt>&lt;/atom:name&gt;</xt>
-	                        <xt>&lt;atom:uri</xt> <xa>rdf:resource</xa>=<xs>'http://www.sample.com/'</xs><xt>/&gt;</xt>
-	                        <xt>&lt;atom:email&gt;</xt>jbognar@us.ibm.com<xt>&lt;/atom:email&gt;</xt>
-	                     <xt>&lt;/rdf:li&gt;</xt>
-	                  <xt>&lt;/rdf:Seq&gt;</xt>
-	               <xt>&lt;/atom:authors&gt;</xt>
-	               <xt>&lt;atom:contributors&gt;</xt>
-	                  <xt>&lt;rdf:Seq&gt;</xt>
-	                     <xt>&lt;rdf:li</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	                        <xt>&lt;atom:name&gt;</xt>Barry M. Caceres<xt>&lt;/atom:name&gt;</xt>
-	                     <xt>&lt;/rdf:li&gt;</xt>
-	                  <xt>&lt;/rdf:Seq&gt;</xt>
-	               <xt>&lt;/atom:contributors&gt;</xt>
-	               <xt>&lt;atom:id</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	                  <xt>&lt;atom:text&gt;</xt>tag:juno.sample.com,2013:1.2345<xt>&lt;/atom:text&gt;</xt>
-	               <xt>&lt;/atom:id&gt;</xt>
-	               <xt>&lt;atom:links&gt;</xt>
-	                  <xt>&lt;rdf:Seq&gt;</xt>
-	                     <xt>&lt;rdf:li</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	                        <xt>&lt;atom:href&gt;</xt>http://www.sample.com/2012/05/08/juno.atom<xt>&lt;/atom:href&gt;</xt>
-	                        <xt>&lt;atom:rel&gt;</xt>alternate<xt>&lt;/atom:rel&gt;</xt>
-	                        <xt>&lt;atom:type&gt;</xt>text/html<xt>&lt;/atom:type&gt;</xt>
-	                     <xt>&lt;/rdf:li&gt;</xt>
-	                     <xt>&lt;rdf:li</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	                        <xt>&lt;atom:href&gt;</xt>http://www.sample.com/audio/juno_podcast.mp3<xt>&lt;/atom:href&gt;</xt>
-	                        <xt>&lt;atom:rel&gt;</xt>enclosure<xt>&lt;/atom:rel&gt;</xt>
-	                        <xt>&lt;atom:type&gt;</xt>audio/mpeg<xt>&lt;/atom:type&gt;</xt>
-	                        <xt>&lt;atom:length&gt;</xt>12345<xt>&lt;/atom:length&gt;</xt>
-	                     <xt>&lt;/rdf:li&gt;</xt>
-	                  <xt>&lt;/rdf:Seq&gt;</xt>
-	               <xt>&lt;/atom:links&gt;</xt>
-	               <xt>&lt;atom:title</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	                  <xt>&lt;atom:text&gt;</xt>Juno ATOM specification snapshot<xt>&lt;/atom:text&gt;</xt>
-	               <xt>&lt;/atom:title&gt;</xt>
-	               <xt>&lt;atom:updated&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/atom:updated&gt;</xt>
-	               <xt>&lt;atom:content</xt> <xa>rdf:parseType</xa>=<xs>'Resource'</xs><xt>&gt;</xt>
-	                  <xt>&lt;j.0:namespacebase</xt> <xa>rdf:resource</xa>=<xs>'http://www.ibm.com/'</xs><xt>/&gt;</xt>
-	                  <xt>&lt;j.0:namespacelang&gt;</xt>en<xt>&lt;/j.0:namespacelang&gt;</xt>
-	                  <xt>&lt;atom:type&gt;</xt>xhtml<xt>&lt;/atom:type&gt;</xt>
-	                  <xt>&lt;atom:text&gt;</xt>&amp;lt;div xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;p&amp;gt;&amp;lt;i&amp;gt;[Update: Juno supports ATOM.]&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;<xt>&lt;/atom:text&gt;</xt>
-	               <xt>&lt;/atom:content&gt;</xt>
-	               <xt>&lt;atom:published&gt;</xt>2013-05-08T12:29:29Z<xt>&lt;/atom:published&gt;</xt>
-	            <xt>&lt;/rdf:li&gt;</xt>
-	         <xt>&lt;/rdf:Seq&gt;</xt>
-	      <xt>&lt;/atom:entries&gt;</xt>
-	   <xt>&lt;/rdf:Description&gt;</xt>
-	<xt>&lt;/rdf:RDF&gt;</xt>
-			</p>
-		</div>
-		
-		
-		<!-- ======================================================================================================== -->
-		<a id="AtomHtml"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.1.3 - ATOM/HTML</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.core.html.HtmlSerializer} class can be used to produce ATOM in HTML format.
-			</p>
-			<p>
-				The following is the output produced by the <code>AtomFeedResource</code> in the <code>com.ibm.juno.sample.war</code> project:
-			</p>
-			
-			<h6 class='figure'>Example ATOM/HTML results</h6>
-			<img class='bordered' src='doc-files/Example_HTML.png'>	
-		</div>
-	</div>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="Parse"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.2 - Parsing ATOM feeds</h3>
-	<div class='topic'>
-		<p>
-			Use the {@link com.ibm.juno.core.xml.XmlParser} to convert ATOM/XML feeds back into their original POJOs:
-		</p>
-		<p class='bcode'>
-			<jc>// Create a serializer with readable output with namespaces</jc>
-			XmlSerializer s = XmlSerializer.<jsf>DEFAULT_SQ_READABLE</jsf>;
-
-			<jc>// Serialize to ATOM/XML</jc>
-			String atomXml = s.serialize(feed);
-
-			<jc>// Get an XML parser to convert it back into a POJO</jc>
-			XmlParser p = XmlParser.<jsf>DEFAULT</jsf>;
-			
-			<jc>// Convert the XML back into a POJO</jc>
-			Feed feed2 = p.parse(atomXml, Feed.<jk>class</jk>);
-		</p>
-		<p>
-			ATOM Feed objects can also be constructed from the other media types using the appropriate parsers.
-		</p>
-	</div>
-
-</div>
-<p align="center"><i><b>*** f�n ***</b></i></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/dto/cognos/Column.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/Column.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/Column.class
deleted file mode 100755
index a9f814f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/Column.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/dto/cognos/Column.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/Column.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/Column.java
deleted file mode 100755
index aca9e6a..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/Column.java
+++ /dev/null
@@ -1,154 +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.dto.cognos;
-
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents a meta-data column in a Cognos dataset.
- * <p>
- * 	When serialized to XML, creates the following construct:
- * <p class='bcode'>
- * 	<xt>&lt;item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs> <xa>length</xa>=<xs>'255'</xs>/&gt;
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="item")
-@SuppressWarnings({"rawtypes","hiding"})
-public class Column {
-
-	private String name, type;
-	private Integer length;
-	PojoFilter filter;
-
-	/** Bean constructor. */
-	public Column() {}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param name The column name.
-	 * @param type The column type (e.g. <js>"xs:String"</js>).
-	 */
-	public Column(String name, String type) {
-		this(name, type, null);
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param name The column name.
-	 * @param type The column type (e.g. <js>"xs:String"</js>).
-	 * @param length The column length (e.g. <code>255</code>).
-	 */
-	public Column(String name, String type, Integer length) {
-		this.name = name;
-		this.type = type;
-		this.length = length;
-	}
-
-	/**
-	 * Associates a POJO filter with this column.
-	 * <p>
-	 * 	Typically used to define columns that don't exist on the underlying beans being serialized.
-	 * <p>
-	 * 	For example, the <code>AddressBookResource</code> sample defined the following filter
-	 * 		to define an additional <js>"numAddresses"</js> column even though no such property exists
-	 * 		on the serialized beans.
-	 * <p class='bcode'>
-	 * 	Column c = <jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
-	 * 		.addFilter(
-	 * 			<jk>new</jk> PojoFilter<Person,Integer>() {
-	 * 				<ja>@Override</ja>
-	 * 				<jk>public</jk> Integer filter(Person p) {
-	 * 					<jk>return</jk> p.<jf>addresses</jf>.size();
-	 * 				}
-	 * 			}
-	 * 		);
-	 * </p>
-	 *
-	 * @param filter The filter to associate with the column.
-	 * @return This object (for method chaining).
-	 */
-	public Column addFilter(PojoFilter filter) {
-		this.filter = filter;
-		return this;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Bean property getter:  <property>name</property>.
-	 *
-	 * @return The value of the <property>name</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	@Xml(format=XmlFormat.ATTR)
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Bean property setter:  <property>name</property>.
-	 *
-	 * @param name The new value for the <property>name</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Column setName(String name) {
-		this.name = name;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>type</property>.
-	 *
-	 * @return The value of the <property>type</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	@Xml(format=XmlFormat.ATTR)
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Bean property setter:  <property>type</property>.
-	 *
-	 * @param type The new value for the <property>type</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Column setType(String type) {
-		this.type = type;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>length</property>.
-	 *
-	 * @return The value of the <property>length</property> property on this bean, or <jk>null</jk> if length is not applicable for the specified type.
-	 */
-	@Xml(format=XmlFormat.ATTR)
-	public Integer getLength() {
-		return length;
-	}
-
-	/**
-	 * Bean property setter:  <property>length</property>.
-	 *
-	 * @param length The new value for the <property>length</property> property on this bean.
-	 * Can be <jk>null</jk> if length is not applicable for the specified type.
-	 * @return This object (for method chaining).
-	 */
-	public Column setLength(Integer length) {
-		this.length = length;
-		return this;
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet$Row.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet$Row.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet$Row.class
deleted file mode 100755
index e248dbe..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet$Row.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/dto/cognos/DataSet.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.class
deleted file mode 100755
index 521dc16..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/testbeans/PrimitiveObjectsBean$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/testbeans/PrimitiveObjectsBean$3.class b/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/testbeans/PrimitiveObjectsBean$3.class
deleted file mode 100755
index 83e5d83..0000000
Binary files a/com.ibm.team.juno.releng/bin/core.test/com/ibm/juno/testbeans/PrimitiveObjectsBean$3.class and /dev/null differ

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/bin/core/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 99e8745..1196f32
--- a/com.ibm.team.juno.releng/bin/core/META-INF/MANIFEST.MF
+++ b/com.ibm.team.juno.releng/bin/core/META-INF/MANIFEST.MF
@@ -1,26 +1,27 @@
 Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.8.3
-Created-By: pwa6470_27sr1-20140411_01 (SR1) (IBM Corporation)
+Ant-Version: Apache Ant 1.9.6
+Created-By: 1.8.0_77-b03 (Oracle Corporation)
 Bundle-ManifestVersion: 2
-Bundle-Name: Juno Cloud API - Core
-Bundle-SymbolicName: com.ibm.team.juno
-Bundle-Version: 5.2.0.0
+Bundle-Name: Juneau Cloud Tools - Core
+Bundle-SymbolicName: org.apache.juneau
+Bundle-Version: 6.0.0
 Bundle-Vendor: IBM
 DynamicImport-Package: com.hp.hpl.jena.rdf.model,com.hp.hpl.jena.share
  d
-Export-Package: com.ibm.juno.core,com.ibm.juno.core.annotation,com.ibm
- .juno.core.csv,com.ibm.juno.core.dto,com.ibm.juno.core.dto.atom,com.i
- bm.juno.core.dto.cognos,com.ibm.juno.core.dto.jsonschema,com.ibm.juno
- .core.encoders,com.ibm.juno.core.filter,com.ibm.juno.core.filters,com
- .ibm.juno.core.html,com.ibm.juno.core.html.annotation,com.ibm.juno.co
- re.html.dto,com.ibm.juno.core.ini,com.ibm.juno.core.jena,com.ibm.juno
- .core.jena.annotation,com.ibm.juno.core.jso,com.ibm.juno.core.json,co
- m.ibm.juno.core.json.annotation,com.ibm.juno.core.parser,com.ibm.juno
- .core.plaintext,com.ibm.juno.core.serializer,com.ibm.juno.core.soap,c
- om.ibm.juno.core.urlencoding,com.ibm.juno.core.urlencoding.annotation
- ,com.ibm.juno.core.utils,com.ibm.juno.core.xml,com.ibm.juno.core.xml.
- annotation
+Export-Package: org.apache.juneau,org.apache.juneau.annotation,org.apa
+ che.juneau.csv,org.apache.juneau.dto,org.apache.juneau.dto.atom,org.a
+ pache.juneau.dto.cognos,org.apache.juneau.dto.jsonschema,org.apache.j
+ uneau.encoders,org.apache.juneau.html,org.apache.juneau.html.annotati
+ on,org.apache.juneau.html.dto,org.apache.juneau.ini,org.apache.juneau
+ .internal,org.apache.juneau.jena,org.apache.juneau.jena.annotation,or
+ g.apache.juneau.jso,org.apache.juneau.json,org.apache.juneau.json.ann
+ otation,org.apache.juneau.msgpack,org.apache.juneau.parser,org.apache
+ .juneau.plaintext,org.apache.juneau.serializer,org.apache.juneau.soap
+ ,org.apache.juneau.svl,org.apache.juneau.svl.vars,org.apache.juneau.t
+ ransform,org.apache.juneau.transforms,org.apache.juneau.urlencoding,o
+ rg.apache.juneau.urlencoding.annotation,org.apache.juneau.utils,org.a
+ pache.juneau.xml,org.apache.juneau.xml.annotation
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Built-By: jbognar
-Build-Date: December 30 2015
+Built-By: james.bognar
+Build-Date: July 24 2016
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContext.class
deleted file mode 100755
index 813762c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContext.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/BeanContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContext.java
deleted file mode 100755
index 7030b8b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanContext.java
+++ /dev/null
@@ -1,1804 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core;
-
-import static com.ibm.juno.core.utils.ClassUtils.*;
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.lang.reflect.*;
-import java.text.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.filter.Filter;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.ClassUtils.ClassComparator;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Core class of the Juno architecture.
- * <p>
- * 	This class servers multiple purposes:
- * 	<ul>
- * 		<li>Provides the ability to wrap beans inside {@link Map} interfaces.
- * 		<li>Serves as a repository for metadata on POJOs, such as associated {@link Filter filters}, {@link PropertyNamer property namers}, etc...
- * 			which are used to tailor how POJOs are serialized and parsed.
- * 		<li>Serves as a common utility class for all {@link Serializer Serializers} and {@link Parser Parsers}
- * 				for serializing and parsing Java beans.
- * 	</ul>
- *
- *
- * <h5 class='topic'>Bean Contexts</h5>
- * <p>
- * 	Typically, it will be sufficient to use the existing {@link #DEFAULT} contexts for creating
- * 	bean maps.  However, if you want to tweak any of the settings on the context, you must
- * 	either clone the default context or create a new one from scratch (whichever is simpler for you).
- * 	You'll notice that this context class uses a fluent interface for defining settings.
- * <p>
- * 	Bean context factories can be locked using the {@link BeanContextFactory#lock()} method.  This makes the context settings
- * 	read-only.  Attempting to change a setting on a locked context will cause a {@link LockedException}
- * 	to be thrown.  The default context is locked by default.  Cloning a locked context using the
- * 	{@link #clone()} method produces a new unlocked context.  Locking a context is optional, although
- * 	it can prevent errors where bean contexts, parsers, or serializers start behaving differently
- * 	because a setting was changed.  As a general rule, if you want to change a setting on an existing
- * 	context, you should clone it, modify the setting(s), and then lock the new context.
- *
- *
- * <h5 class='topic'>BeanContext settings</h5>
- * 	<code>BeanContexts</code> have several settings that can be used to tweak behavior on how beans are handled.
- * <p>
- * 	Some settings (e.g. {@link BeanContextProperties#BEAN_beansRequireDefaultConstructor}) are used to differentiate between bean and non-bean classes.
- * 	Attempting to create a bean map around one of these objects will throw a {@link BeanRuntimeException}.
- * 	The purpose for this behavior is so that the serializers can identify these non-bean classes and convert them to plain strings using the {@link Object#toString()} method.
- * <p>
- * 	Some settings (e.g. {@link BeanContextProperties#BEAN_beanFieldVisibility}) are used to determine what kinds of properties are detected on beans.
- * <p>
- * 	Some settings (e.g. {@link BeanContextProperties#BEAN_beanMapPutReturnsOldValue}) change the runtime behavior of bean maps.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * 	This class has configurable properties that can be set through the {@link BeanContextFactory#setProperty(String, Object)} method.
- * <p>
- * 	See {@link BeanContextProperties} for settings applicable to this class.
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Construct a context from scratch.</jc>
- * 	BeanContext beanContext = <jk>new</jk> BeanContextFactory()
- * 		.setProperty(BeanContextProperties.<jsf>BEAN_beansRequireDefaultConstructor</jsf>, <jk>true</jk>)
- * 		.addNotBeanClasses(Foo.<jk>class</jk>)
- * 		.getBeanContext();
- *
- * 	<jc>// Clone an existing context factory.</jc>
- * 	BeanContext beanContext = otherBeanContextFactory.clone()
- * 		.setProperty(BeanContextProperties.<jsf>BEAN_beansRequireDefaultConstructor</jsf>, <jk>true</jk>)
- * 		.addNotBeanClasses(Foo.<jk>class</jk>)
- * 		.getBeanContext();
- * </p>
- *
- *
- * <h5 class='topic'>Bean Maps</h5>
- * <p>
- * 	{@link BeanMap BeanMaps} are wrappers around Java beans that allow properties to be retrieved and
- * 	set using the common {@link Map#put(Object,Object)} and {@link Map#get(Object)} methods.<br>
- * 	<br>
- * 	Bean maps are created in two ways...
- * 	<ol>
- * 		<li> {@link BeanContext#forBean(Object) BeanContext.forBean()} - Wraps an existing bean inside a {@code Map} wrapper.
- * 		<li> {@link BeanContext#newBeanMap(Class) BeanContext.newInstance()} - Create a new bean instance wrapped in a {@code Map} wrapper.
- * 	</ol>
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// A sample bean class</jc>
- * 	<jk>public class</jk> Person {
- * 		<jk>public</jk> String getName();
- * 		<jk>public void</jk> setName(String name);
- * 		<jk>public int</jk> getAge();
- * 		<jk>public void</jk> setAge(<jk>int</jk> age);
- * 	}
- *
- * 	<jc>// Wrap an existing bean in a new bean map</jc>
- * 	BeanMap&lt;Person&gt; m1 = BeanContext.<jsf>DEFAULT</jsf>.forBean(<jk>new</jk> Person());
- * 	m1.put(<js>"name"</js>, <js>"John Smith"</js>);
- * 	m1.put(<js>"age"</js>, 45);
- *
- * 	<jc>// Create a new bean instance wrapped in a new bean map</jc>
- * 	BeanMap&lt;Person&gt; m2 = BeanContext.<jsf>DEFAULT</jsf>.newInstance(Person.<jk>class</jk>);
- * 	m2.put(<js>"name"</js>, <js>"John Smith"</js>);
- * 	m2.put(<js>"age"</js>, 45);
- * 	Person p = m2.getBean();  <jc>// Get the bean instance that was created.</jc>
- * </p>
- *
- *
- * <h5 class='topic'>Bean Annotations</h5>
- * <p>
- * 	This package contains annotations that can be applied to
- * 	class definitions to override what properties are detected on a bean.
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Bean class definition where only property 'name' is detected.</jc>
- * 	<ja>&#64;Bean</ja>(properties={<js>"name"</js>})
- * 	<jk>public class</jk> Person {
- * 		<jk>public</jk> String getName();
- * 		<jk>public void</jk> setName(String name);
- * 		<jk>public int</jk> getAge();
- * 		<jk>public void</jk> setAge(<jk>int</jk> age);
- * 	}
- * <p>
- * 	See {@link Bean @Bean} and {@link BeanProperty @BeanProperty} for more information.
- *
- *
- * <h5 class='topic'>Beans with read-only properties</h5>
- * <p>
- * 	Bean maps can also be defined on top of beans with read-only properties by adding a
- * 	{@link BeanConstructor @BeanConstructor} annotation to one of the constructors on the
- * 	bean class.  This will allow read-only properties to be set through constructor arguments.
- * <p>
- * 	When the <code>@BeanConstructor</code> annotation is present, bean instantiation is delayed until the call to {@link BeanMap#getBean()}.
- * 	Until then, bean property values are stored in a local cache until <code>getBean()</code> is called.
- * 	Because of this additional caching step, parsing into read-only beans tends to be slower and use
- * 	more memory than parsing into beans with writable properties.
- * <p>
- * 	Attempting to call {@link BeanMap#put(String,Object)} on a read-only property after calling {@link BeanMap#getBean()}
- * 	will result in a {@link BeanRuntimeException} being thrown.
- * 	Multiple calls to {@link BeanMap#getBean()} will return the same bean instance.
- * <p>
- * 	Beans can be defined with a combination of read-only and read-write properties.
- * <p>
- * 	See {@link BeanConstructor @BeanConstructor} for more information.
- *
- *
- * <h5 class='topic'>Filters</h5>
- * <p>
- * 	{@link Filter Filters} are used to tailor how beans and non-beans are handled.<br>
- * 	There are two subclasses of filters:
- * 	<ol>
- * 		<li>{@link BeanFilter} - Allows you to tailor handling of bean classes.
- * 			This class can be considered a programmatic equivalent to the {@link Bean} annotation when
- * 			annotating classes are not possible (e.g. you don't have access to the source).
- * 		<li>{@link PojoFilter} - Allows you to convert objects to serializable forms.
- * 	</ol>
- * <p>
- * 	See {@link com.ibm.juno.core.filter} for more information.
- *
- *
- * <h5 class='topic'>ClassMetas</h5>
- * <p>
- * 	The {@link ClassMeta} class is a wrapper around {@link Class} object that provides cached information
- * 	about that class (e.g. whether it's a {@link Map} or {@link Collection} or bean).
- * <p>
- * 	As a general rule, it's best to reuse bean contexts (and therefore serializers and parsers too)
- * 	whenever possible since it takes some time to populate the internal {@code ClassMeta} object cache.
- * 	By reusing bean contexts, the class type metadata only needs to be calculated once which significantly
- * 	improves performance.
- * <p>
- * 	See {@link ClassMeta} for more information.
- *
- * @author Barry M. Caceres
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({"unchecked","rawtypes"})
-public final class BeanContext {
-
-	// Cache of all instances of classMetaCache for all bean contexts keyed by
-	// the hashcode of the bean context during creation.
-	// TODO - Convert these to soft references.
-	private static final ConcurrentHashMap<BeanContext,Map<Class,ClassMeta>> cmCacheCache = new ConcurrentHashMap<BeanContext,Map<Class,ClassMeta>>();
-
-	/** Default context.  All default settings. */
-	public static final BeanContext DEFAULT = new BeanContextFactory().getBeanContext();
-
-	final boolean
-		beansRequireDefaultConstructor,
-		beansRequireSerializable,
-		beansRequireSettersForGetters,
-		beansRequireSomeProperties,
-		beanMapPutReturnsOldValue,
-		useInterfaceProxies,
-		ignoreUnknownBeanProperties,
-		ignoreUnknownNullBeanProperties,
-		ignorePropertiesWithoutSetters,
-		ignoreInvocationExceptionsOnGetters,
-		ignoreInvocationExceptionsOnSetters,
-		useJavaBeanIntrospector;
-
-	final Visibility
-		beanConstructorVisibility,
-		beanClassVisibility,
-		beanMethodVisibility,
-		beanFieldVisibility;
-
-	final int b;
-	final BeanFilter[] beanFilters;
-	final PojoFilter[] pojoFilters;
-	final Class[] notBeanClasses;
-	final String[] notBeanPackages;
-	final Map<Class<?>,Class<?>> implClasses = new TreeMap<Class<?>, Class<?>>(new ClassComparator());
-	final Map<String,String> uriVars = new TreeMap<String,String>();
-	final Class[] implKeyClasses, implValueClasses;
-	final String[] uriKeys, uriVals;
-	final Map<Class,ClassMeta> cmCache;
-	final ClassMeta<Object> cmObject;  // Reusable ClassMeta that represents general Objects.
-	final ClassMeta<String> cmString;  // Reusable ClassMeta that represents general Strings.
-	final String[] notBeanPackageNames, notBeanPackagePrefixes;
-	final int hashCode;
-	final ClassLoader classLoader;
-
-	// Optional default parser set by setDefaultParser().
-	final ReaderParser defaultParser;
-
-	// Holds pending ClassMetas (created, but not yet initialized).
-	final Deque<ClassMeta> pendingClassMetas = new LinkedList<ClassMeta>();
-
-
-	BeanContext(BeanContextFactory bc) {
-		beansRequireDefaultConstructor = bc.beansRequireDefaultConstructor;
-		beansRequireSerializable = bc.beansRequireSerializable;
-		beansRequireSettersForGetters = bc.beansRequireSettersForGetters;
-		beansRequireSomeProperties = bc.beansRequireSomeProperties;
-		beanMapPutReturnsOldValue = bc.beanMapPutReturnsOldValue;
-		useInterfaceProxies = bc.useInterfaceProxies;
-		ignoreUnknownBeanProperties = bc.ignoreUnknownBeanProperties;
-		ignoreUnknownNullBeanProperties = bc.ignoreUnknownNullBeanProperties;
-		ignorePropertiesWithoutSetters = bc.ignorePropertiesWithoutSetters;
-		ignoreInvocationExceptionsOnGetters = bc.ignoreInvocationExceptionsOnGetters;
-		ignoreInvocationExceptionsOnSetters = bc.ignoreInvocationExceptionsOnSetters;
-		useJavaBeanIntrospector = bc.useJavaBeanIntrospector;
-		beanConstructorVisibility = bc.beanConstructorVisibility;
-		beanClassVisibility = bc.beanClassVisibility;
-		beanMethodVisibility = bc.beanMethodVisibility;
-		beanFieldVisibility = bc.beanFieldVisibility;
-
-		b =
-			(beansRequireDefaultConstructor ? 1<<1 : 0)
-				+ (beansRequireSerializable ? 1<<2 : 0)
-				+ (beansRequireSettersForGetters ? 1<<3 : 0)
-				+ (beansRequireSomeProperties ? 1<<4 : 0)
-				+ (beanMapPutReturnsOldValue ? 1<<5 : 0)
-				+ (useJavaBeanIntrospector ? 1<<6 : 0)
-				+ (useInterfaceProxies ? 1<<8 : 0)
-				+ (ignoreUnknownBeanProperties ? 1<<9 : 0)
-				+ (ignoreUnknownNullBeanProperties ? 1<<10 : 0)
-				+ (ignorePropertiesWithoutSetters ? 1<<11 : 0)
-				+ (ignoreInvocationExceptionsOnGetters ? 1<<12 : 0)
-				+ (ignoreInvocationExceptionsOnSetters ? 1<<13 : 0);
-
-		LinkedList<BeanFilter> lbf = new LinkedList<BeanFilter>();
-		LinkedList<PojoFilter> lpf = new LinkedList<PojoFilter>();
- 		for (Class<?> c : bc.filters) {
-			if (isParentClass(Filter.class, c)) {
-				try {
-					if (isParentClass(BeanFilter.class, c)) {
-						BeanFilter f = (BeanFilter)c.newInstance();
-						f.setBeanContext(this);
-						lbf.add(f);
-					} else if (isParentClass(PojoFilter.class, c)) {
-						PojoFilter f = (PojoFilter)c.newInstance();
-						f.setBeanContext(this);
-						lpf.add(f);
-					}
-				} catch (Exception e) {
-					throw new RuntimeException(e);
-				}
-			} else {
-				if (! c.getClass().isInterface()) {
-					List<SurrogateFilter<?,?>> l = SurrogateFilter.findFilters(c);
-					if (! l.isEmpty()) {
-						for (SurrogateFilter<?,?> f : l) {
-							f.setBeanContext(this);
-							lpf.add(f);
-						}
-						continue;
-					}
-				}
-				BeanFilter f = new InterfaceBeanFilter(c);
-				f.setBeanContext(this);
-				lbf.add(f);
-			}
-		}
- 		beanFilters = lbf.toArray(new BeanFilter[0]);
- 		pojoFilters = lpf.toArray(new PojoFilter[0]);
-		notBeanClasses = bc.notBeanClasses.toArray(new Class[0]);
-		notBeanPackages = bc.notBeanPackages.toArray(new String[0]);
-		implClasses.putAll(bc.implClasses);
-		uriVars.putAll(bc.uriVars);
-		implKeyClasses = implClasses.keySet().toArray(new Class[0]);
-		implValueClasses = implClasses.values().toArray(new Class[0]);
-		uriKeys = uriVars.keySet().toArray(new String[0]);
-		uriVals = uriVars.values().toArray(new String[0]);
-
-		List<String> l1 = new LinkedList<String>();
-		List<String> l2 = new LinkedList<String>();
-		for (String s : notBeanPackages) {
-			if (s.endsWith(".*"))
-				l2.add(s.substring(0, s.length()-2));
-			else
-				l1.add(s);
-		}
-		notBeanPackageNames = l1.toArray(new String[l1.size()]);
-		notBeanPackagePrefixes = l2.toArray(new String[l2.size()]);
-
-		defaultParser = bc.defaultParser;
-
-		int h = b;
-		for (BeanFilter f : beanFilters)
-			h = hash(h, f.hashCode());
-		for (PojoFilter f : pojoFilters)
-			h = hash(h, f.hashCode());
-		h = hash(h, beanConstructorVisibility.hashCode());
-		h = hash(h, beanClassVisibility.hashCode());
-		h = hash(h, beanMethodVisibility.hashCode());
-		h = hash(h, beanFieldVisibility.hashCode());
-		for (Class c : notBeanClasses)
-			h += c.hashCode();
-		for (String s : notBeanPackages)
-			h += s.hashCode();
-		for (Map.Entry<Class<?>,Class<?>> e : implClasses.entrySet()) {
-			h += e.getKey().hashCode();
-			h += e.getValue().hashCode();
-		}
-		for (Map.Entry<String,String> e : uriVars.entrySet()) {
-			h += e.getKey().hashCode();
-			h += e.getValue().hashCode();
-		}
-		hashCode = h;
-
-		Map<Class,ClassMeta> cmc = cmCacheCache.get(this);
-		if (cmc == null) {
-			cmc = new ConcurrentHashMap<Class,ClassMeta>();
-			cmc.put(Object.class, new ClassMeta(Object.class, this));
-			cmc.put(String.class, new ClassMeta(String.class, this));
-			Map<Class,ClassMeta> cmc2 = cmCacheCache.putIfAbsent(this, cmc);
-			cmc = (cmc2 == null ? cmc : cmc2);
-		}
-		cmCache = cmc;
-		cmObject = cmc.get(Object.class);
-		cmString = cmc.get(String.class);
-
-		classLoader = bc.classLoader;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified bean context shares the same cache as this bean context.
-	 * Useful for testing purposes.
-	 *
-	 * @param bc The bean context to compare to.
-	 * @return <jk>true</jk> if the bean contexts have equivalent settings and thus share caches.
-	 */
-	public boolean hasSameCache(BeanContext bc) {
-		return bc.cmCache == this.cmCache;
-	}
-
-
-	/**
-	 * Bean property getter:  <property>ignoreUnknownBeanProperties</property>.
-	 * See {@link BeanContextProperties#BEAN_ignoreUnknownBeanProperties}.
-	 *
-	 * @return The value of the <property>ignoreUnknownBeanProperties</property> property on this bean.
-	 */
-	public boolean isIgnoreUnknownBeanProperties() {
-		return ignoreUnknownBeanProperties;
-	}
-
-
-	/**
-	 * Determines whether the specified class is ignored as a bean class based on the various
-	 * 	exclusion parameters specified on this context class.
-	 *
-	 * @param c The class type being tested.
-	 * @return <jk>true</jk> if the specified class matches any of the exclusion parameters.
-	 */
-	protected boolean isNotABean(Class<?> c) {
-		if (c.isArray() || c.isPrimitive() || c.isEnum() || c.isAnnotation())
-			return true;
-		Package p = c.getPackage();
-		if (p != null) {
-			for (String p2 : notBeanPackageNames)
-				if (p.getName().equals(p2))
-					return true;
-			for (String p2 : notBeanPackagePrefixes)
-				if (p.getName().startsWith(p2))
-					return true;
-		}
-		for (Class exclude : notBeanClasses)
-			if (isParentClass(exclude, c))
-				return true;
-		return false;
-	}
-
-	/**
-	 * Prints meta cache statistics to <code>System.out</code>.
-	 */
-	protected static void dumpCacheStats() {
-		try {
-			int ctCount = 0;
-			for (Map<Class,ClassMeta> cm : cmCacheCache.values())
-				ctCount += cm.size();
-			System.out.println(MessageFormat.format("ClassMeta cache: {0} instances in {1} caches", ctCount, cmCacheCache.size()));
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * Wraps an object inside a {@link BeanMap} object (i.e. a modifiable {@link Map}).
-	 * <p>
-	 * 	If object is not a true bean, then throws a {@link BeanRuntimeException} with an explanation of why it's not a bean.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Construct a bean map around a bean instance</jc>
-	 * 	BeanMap&lt;Person&gt; bm = BeanContext.<jsf>DEFAULT</jsf>.forBean(<jk>new</jk> Person());
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param <T> The class of the object being wrapped.
-	 * @param o The object to wrap in a map interface.  Must not be null.
-	 * @return The wrapped object.
-	 */
-	public <T> BeanMap<T> forBean(T o) {
-		return this.forBean(o, (Class<T>)o.getClass());
-	}
-
-	/**
-	 * Determines whether the specified object matches the requirements on this context of being a bean.
-	 *
-	 * @param o The object being tested.
-	 * @return <jk>true</jk> if the specified object is considered a bean.
-	 */
-	public boolean isBean(Object o) {
-		if (o == null)
-			return false;
-		return isBean(o.getClass());
-	}
-
-	/**
-	 * Determines whether the specified class matches the requirements on this context of being a bean.
-	 *
-	 * @param c The class being tested.
-	 * @return <jk>true</jk> if the specified class is considered a bean.
-	 */
-	public boolean isBean(Class<?> c) {
-		return getBeanMeta(c) != null;
-	}
-
-	/**
-	 * Wraps an object inside a {@link BeanMap} object (i.e.: a modifiable {@link Map})
-	 * defined as a bean for one of its class, a super class, or an implemented interface.
-	 * <p>
-	 * 	If object is not a true bean, throws a {@link BeanRuntimeException} with an explanation of why it's not a bean.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Construct a bean map for new bean using only properties defined in a superclass</jc>
-	 * 	BeanMap&lt;MySubBean&gt; bm = BeanContext.<jsf>DEFAULT</jsf>.forBean(<jk>new</jk> MySubBean(), MySuperBean.<jk>class</jk>);
-	 *
-	 * 	<jc>// Construct a bean map for new bean using only properties defined in an interface</jc>
-	 * 	BeanMap&lt;MySubBean&gt; bm = BeanContext.<jsf>DEFAULT</jsf>.forBean(<jk>new</jk> MySubBean(), MySuperInterface.<jk>class</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param <T> The class of the object being wrapped.
-	 * @param o The object to wrap in a bean interface.  Must not be null.
-	 * @param c The superclass to narrow the bean properties to.  Must not be null.
-	 * @return The bean representation, or <jk>null</jk> if the object is not a true bean.
-	 * @throws NullPointerException If either parameter is null.
-	 * @throws IllegalArgumentException If the specified object is not an an instance of the specified class.
-	 * @throws BeanRuntimeException If specified object is not a bean according to the bean rules
-	 * 		specified in this context class.
-	 */
-	public <T> BeanMap<T> forBean(T o, Class<? super T> c) throws BeanRuntimeException {
-		assertFieldNotNull(o, "o");
-		assertFieldNotNull(c, "c");
-
-		if (! c.isInstance(o))
-			illegalArg("The specified object is not an instance of the specified class.  class=''{0}'', objectClass=''{1}'', object=''{2}''", c.getName(), o.getClass().getName(), 0);
-
-		ClassMeta cm = getClassMeta(c);
-
-		BeanMeta m = cm.getBeanMeta();
-		if (m == null)
-			throw new BeanRuntimeException(c, "Class is not a bean.  Reason=''{0}''", cm.getNotABeanReason());
-		return new BeanMap<T>(o, m);
-	}
-
-	/**
-	 * Creates a new {@link BeanMap} object (i.e. a modifiable {@link Map}) of the given class with uninitialized property values.
-	 * <p>
-	 * 	If object is not a true bean, then throws a {@link BeanRuntimeException} with an explanation of why it's not a bean.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Construct a new bean map wrapped around a new Person object</jc>
-	 * 	BeanMap&lt;Person&gt; bm = BeanContext.<jsf>DEFAULT</jsf>.newBeanMap(Person.<jk>class</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param <T> The class of the object being wrapped.
-	 * @param c The name of the class to create a new instance of.
-	 * @return A new instance of the class.
-	 */
-	public <T> BeanMap<T> newBeanMap(Class<T> c) {
-		return newBeanMap(null, c);
-	}
-
-	/**
-	 * Same as {@link #newBeanMap(Class)}, except used for instantiating inner member classes that must
-	 * 	be instantiated within another class instance.
-	 *
-	 * @param <T> The class of the object being wrapped.
-	 * @param c The name of the class to create a new instance of.
-	 * @param outer If class is a member class, this is the instance of the containing class.
-	 * 	Should be <jk>null</jk> if not a member class.
-	 * @return A new instance of the class.
-	 */
-	public <T> BeanMap<T> newBeanMap(Object outer, Class<T> c) {
-		BeanMeta m = getBeanMeta(c);
-		if (m == null)
-			return null;
-		T bean = null;
-		if (m.constructorArgs.length == 0) {
-			bean = newBean(outer, c);
-			// Beans with subtypes won't be instantiated until the sub type property is specified.
-			if (bean == null && ! m.getClassMeta().hasSubTypes())
-				return null;
-		}
-		return new BeanMap<T>(bean, m);
-	}
-
-	/**
-	 * Creates a new empty bean of the specified type, except used for instantiating inner member classes that must
-	 * 	be instantiated within another class instance.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Construct a new instance of the specified bean class</jc>
-	 * 	Person p = BeanContext.<jsf>DEFAULT</jsf>.newBean(Person.<jk>class</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param <T> The class type of the bean being created.
-	 * @param c The class type of the bean being created.
-	 * @return A new bean object.
-	 * @throws BeanRuntimeException If the specified class is not a valid bean.
-	 */
-	public <T> T newBean(Class<T> c) throws BeanRuntimeException {
-		return newBean(null, c);
-	}
-
-	/**
-	 * Same as {@link #newBean(Class)}, except used for instantiating inner member classes that must
-	 * 	be instantiated within another class instance.
-	 *
-	 * @param <T> The class type of the bean being created.
-	 * @param c The class type of the bean being created.
-	 * @param outer If class is a member class, this is the instance of the containing class.
-	 * 	Should be <jk>null</jk> if not a member class.
-	 * @return A new bean object.
-	 * @throws BeanRuntimeException If the specified class is not a valid bean.
-	 */
-	public <T> T newBean(Object outer, Class<T> c) throws BeanRuntimeException {
-		ClassMeta<T> cm = getClassMeta(c);
-		BeanMeta m = cm.getBeanMeta();
-		if (m == null)
-			return null;
-		try {
-			T o = (T)m.newBean(outer);
-			if (o == null) {
-				// Beans with subtypes won't be instantiated until the sub type property is specified.
-				if (cm.beanFilter != null && cm.beanFilter.getSubTypeProperty() != null)
-					return null;
-				throw new BeanRuntimeException(c, "Class does not have a no-arg constructor.");
-			}
-			return o;
-		} catch (BeanRuntimeException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new BeanRuntimeException(e);
-		}
-	}
-
-	/**
-	 * Returns the {@link BeanMeta} class for the specified class.
-	 *
-	 * @param <T> The class type to get the meta-data on.
-	 * @param c The class to get the meta-data on.
-	 * @return The {@link BeanMeta} for the specified class, or <jk>null</jk> if the class
-	 * 	is not a bean per the settings on this context.
-	 */
-	public <T> BeanMeta<T> getBeanMeta(Class<T> c) {
-		if (c == null)
-			return null;
-		return getClassMeta(c).getBeanMeta();
-	}
-
-	/**
-	 * Returns the class type bound to this bean context if the specified class type
-	 * 	is from another bean context.
-	 * <p>
-	 * For example, this method allows you to pass in an object from <code>BeanContext.<jsf>DEFAULT</jsf>.getMapClassMeta(...)</code>
-	 * 	to any of the <code>ReaderParser.parse(Reader, ClassMeta, ParserContext)</code> methods, and the parsers
-	 * 	will use this method to replace the class type with the one registered with the parser.
-	 * This ensures that registered filters are applied correctly.
-	 *
-	 * @param <T> The class type.
-	 * @param cm The class type.
-	 * @return The class type bound by this bean context.
-	 */
-	public <T> ClassMeta<T> normalizeClassMeta(ClassMeta<T> cm) {
-		if (cm == null)
-			return (ClassMeta<T>)object();
-		if (cm.beanContext == this || cm.beanContext.equals(this))
-			return cm;
-		if (cm.isMap()) {
-			ClassMeta<Map> cm2 = (ClassMeta<Map>)cm;
-			cm2 = getMapClassMeta(cm2.getInnerClass(), cm2.getKeyType().getClass(), cm2.getValueType().getClass());
-			return (ClassMeta<T>)cm2;
-		}
-		if (cm.isCollection()) {
-			ClassMeta<Collection> cm2 = (ClassMeta<Collection>)cm;
-			cm2 = getCollectionClassMeta(cm2.getInnerClass(), cm2.getElementType().getClass());
-		}
-		return getClassMeta(cm.getInnerClass());
-	}
-
-	/**
-	 * Construct a {@code ClassMeta} wrapper around a {@link Class} object.
-	 *
-	 * @param <T> The class type being wrapped.
-	 * @param c The class being wrapped.
-	 * 	of type {@link Class} or {@link ClassMeta}.
-	 * @return If the class is not an array, returns a cached {@link ClassMeta} object.
-	 * 	Otherwise, returns a new {@link ClassMeta} object every time.<br>
-	 */
-	public <T> ClassMeta<T> getClassMeta(Class<T> c) {
-
-		// If this is an array, then we want it wrapped in an uncached ClassMeta object.
-		// Note that if it has a pojo filter, we still want to cache it so that
-		// we can cache something like byte[] with ByteArrayBase64Filter.
-		if (c.isArray() && findPojoFilter(c) == null)
-			return new ClassMeta(c, this);
-
-		ClassMeta<T> cm = cmCache.get(c);
-		if (cm == null) {
-
-			synchronized (this) {
-
-				// Make sure someone didn't already set it while this thread was blocked.
-				cm = cmCache.get(c);
-				if (cm == null) {
-
-					// Note:  Bean properties add the possibility that class reference loops exist.
-					// To handle this possibility, we create a set of pending ClassMetas, and
-					// call init (which finds the bean properties) after it's been added to the pending set.
-					for (ClassMeta pcm : pendingClassMetas)
-						if (pcm.innerClass == c)
-							return pcm;
-
-					cm = new ClassMeta<T>(c, this, true);
-					pendingClassMetas.addLast(cm);
-					try {
-						cm.init();
-					} finally {
-						pendingClassMetas.removeLast();
-					}
-					cmCache.put(c, cm);
-				}
-			}
-		}
-		return cm;
-	}
-
-	/**
-	 * Construct a {@code ClassMeta} wrapper around a {@link Map} object.
-	 *
-	 * @param <K> The map key class type.
-	 * @param <V> The map value class type.
-	 * @param <T> The map class type.
-	 * @param c The map class type.
-	 * @param keyType The map key class type.
-	 * @param valueType The map value class type.
-	 * @return If the key and value types are OBJECT, returns a cached {@link ClassMeta} object.<br>
-	 * 	Otherwise, returns a new {@link ClassMeta} object every time.
-	 */
-	public <K,V,T extends Map<K,V>> ClassMeta<T> getMapClassMeta(Class<T> c, ClassMeta<K> keyType, ClassMeta<V> valueType) {
-		if (keyType.isObject() && valueType.isObject())
-			return getClassMeta(c);
-		return new ClassMeta(c, this).setKeyType(keyType).setValueType(valueType);
-	}
-
-	/**
-	 * Construct a {@code ClassMeta} wrapper around a {@link Map} object.
-	 *
-	 * @param <K> The map key class type.
-	 * @param <V> The map value class type.
-	 * @param <T> The map class type.
-	 * @param c The map class type.
-	 * @param keyType The map key class type.
-	 * @param valueType The map value class type.
-	 * @return If the key and value types are Object, returns a cached {@link ClassMeta} object.<br>
-	 * 	Otherwise, returns a new {@link ClassMeta} object every time.
-	 */
-	public <K,V,T extends Map<K,V>> ClassMeta<T> getMapClassMeta(Class<T> c, Class<K> keyType, Class<V> valueType) {
-		return getMapClassMeta(c, getClassMeta(keyType), getClassMeta(valueType));
-	}
-
-	/**
-	 * Construct a {@code ClassMeta} wrapper around a {@link Map} object.
-	 *
-	 * @param <T> The map class type.
-	 * @param c The map class type.
-	 * @param keyType The map key class type.
-	 * @param valueType The map value class type.
-	 * @return If the key and value types are Object, returns a cached {@link ClassMeta} object.<br>
-	 * 	Otherwise, returns a new {@link ClassMeta} object every time.
-	 */
-	public <T extends Map> ClassMeta<T> getMapClassMeta(Class<T> c, Type keyType, Type valueType) {
-		return getMapClassMeta(c, getClassMeta(keyType), getClassMeta(valueType));
-	}
-
-	/**
-	 * Construct a {@code ClassMeta} wrapper around a {@link Collection} object.
-	 *
-	 * @param <E> The collection element class type.
-	 * @param <T> The collection class type.
-	 * @param c The collection class type.
-	 * @param elementType The collection element class type.
-	 * @return If the element type is <code>OBJECT</code>, returns a cached {@link ClassMeta} object.<br>
-	 * 	Otherwise, returns a new {@link ClassMeta} object every time.
-	 */
-	public <E,T extends Collection<E>> ClassMeta<T> getCollectionClassMeta(Class<T> c, ClassMeta<E> elementType) {
-		if (elementType.isObject())
-			return getClassMeta(c);
-		return new ClassMeta(c, this).setElementType(elementType);
-	}
-
-	/**
-	 * Construct a {@code ClassMeta} wrapper around a {@link Collection} object.
-	 *
-	 * @param <E> The collection element class type.
-	 * @param <T> The collection class type.
-	 * @param c The collection class type.
-	 * @param elementType The collection element class type.
-	 * @return If the element type is <code>OBJECT</code>, returns a cached {@link ClassMeta} object.<br>
-	 * 	Otherwise, returns a new {@link ClassMeta} object every time.
-	 */
-	public <E,T extends Collection<E>> ClassMeta<T> getCollectionClassMeta(Class<T> c, Class<E> elementType) {
-		return getCollectionClassMeta(c, getClassMeta(elementType));
-	}
-
-	/**
-	 * Construct a {@code ClassMeta} wrapper around a {@link Collection} object.
-	 *
-	 * @param <T> The collection class type.
-	 * @param c The collection class type.
-	 * @param elementType The collection element class type.
-	 * @return If the element type is <code>OBJECT</code>, returns a cached {@link ClassMeta} object.<br>
-	 * 	Otherwise, returns a new {@link ClassMeta} object every time.
-	 */
-	public <T extends Collection> ClassMeta<T> getCollectionClassMeta(Class<T> c, Type elementType) {
-		return getCollectionClassMeta(c, getClassMeta(elementType));
-	}
-
-	/**
-	 * Constructs a ClassMeta object given the specified object and parameters.
-	 *
-	 * @param o The parent class type.
-	 * 	Can be any of the following types:
-	 * 	<ul>
-	 * 		<li>{@link ClassMeta} object, which just returns the same object.
-	 * 		<li>{@link Class} object (e.g. <code>String.<jk>class</jk></code>).
-	 * 		<li>{@link Type} object (e.g. {@link ParameterizedType} or {@link GenericArrayType}.
-	 * 		<li>Anything else is interpreted as {@code getClassMeta(o.getClass(), parameters);}
-	 * 	</ul>
-	 * @return A ClassMeta object, or <jk>null</jk> if the object is null.
-	 */
-	public ClassMeta getClassMeta(Type o) {
-		return getClassMeta(o, null);
-	}
-
-	ClassMeta getClassMeta(Type o, Map<Class<?>,Class<?>[]> typeVarImpls) {
-		if (o == null)
-			return null;
-
-		if (o instanceof ClassMeta)
-			return (ClassMeta)o;
-
-		Class c = null;
-		if (o instanceof Class) {
-			c = (Class)o;
-		} else if (o instanceof ParameterizedType) {
-			// A parameter (e.g. <String>.
-			c = (Class<?>)((ParameterizedType)o).getRawType();
-		} else if (o instanceof GenericArrayType) {
-			// An array parameter (e.g. <byte[]>.
-			GenericArrayType gat = (GenericArrayType)o;
-			Type gatct = gat.getGenericComponentType();
-			if (gatct instanceof Class) {
-				Class gatctc = (Class)gatct;
-				c = Array.newInstance(gatctc, 0).getClass();
-			} else if (gatct instanceof ParameterizedType) {
-				Class gatctc = (Class<?>)((ParameterizedType)gatct).getRawType();
-				c = Array.newInstance(gatctc, 0).getClass();
-			} else {
-				return null;
-			}
-		} else if (o instanceof TypeVariable) {
-			if (typeVarImpls != null) {
-				TypeVariable t = (TypeVariable) o;
-				String varName = t.getName();
-				int varIndex = -1;
-				Class gc = (Class)t.getGenericDeclaration();
-				TypeVariable[] tv = gc.getTypeParameters();
-				for (int i = 0; i < tv.length; i++) {
-					if (tv[i].getName().equals(varName)) {
-						varIndex = i;
-					}
-				}
-				if (varIndex != -1) {
-
-					// If we couldn't find a type variable implementation, that means
-					// the type was defined at runtime (e.g. Bean b = new Bean<Foo>();)
-					// in which case the type is lost through erasure.
-					// Assume java.lang.Object as the type.
-					if (! typeVarImpls.containsKey(gc))
-						return object();
-
-					return getClassMeta(typeVarImpls.get(gc)[varIndex]);
-				}
-			}
-			// We don't know the bounded type, so just resolve to Object.
-			return object();
-		} else {
-			// This can happen when trying to resolve the "E getFirst()" method on LinkedList, whose type is a TypeVariable
-			// These should just resolve to Object.
-			return object();
-		}
-
-		ClassMeta rawType = getClassMeta(c);
-
-		// If this is a Map or Collection, and the parameter types aren't part
-		// of the class definition itself (e.g. class AddressBook extends List<Person>),
-		// then we need to figure out the parameters.
-		if (rawType.isMap() || rawType.isCollection()) {
-			ClassMeta[] params = findParameters(o, c);
-			if (params == null)
-				return rawType;
-			if (rawType.isMap()) {
-				if (params.length != 2)
-					return rawType;
-				if (params[0].isObject() && params[1].isObject())
-					return rawType;
-				return new ClassMeta(rawType.innerClass, this).setKeyType(params[0]).setValueType(params[1]);
-			}
-			if (rawType.isCollection()) {
-				if (params.length != 1)
-					return rawType;
-				if (params[0].isObject())
-					return rawType;
-				return new ClassMeta(rawType.innerClass, this).setElementType(params[0]);
-			}
-		}
-
-		return rawType;
-	}
-
-	/**
-	 * Given an array of {@link Class} objects, returns an array of corresponding {@link ClassMeta} objects.
-	 * Constructs a new array on each call.
-	 *
-	 * @param classes The array of classes to get class metas for.
-	 * @return An array of {@link ClassMeta} objects corresponding to the classes.  Never <jk>null</jk>.
-	 */
-	public ClassMeta<?>[] getClassMetas(Class<?>[] classes) {
-		assertFieldNotNull(classes, "classes");
-		ClassMeta<?>[] cm = new ClassMeta<?>[classes.length];
-		for (int i = 0; i < classes.length; i++)
-			cm[i] = getClassMeta(classes[i]);
-		return cm;
-	}
-
-	ClassMeta[] findParameters(Type o, Class c) {
-		if (o == null)
-			o = c;
-
-		// Loop until we find a ParameterizedType
-		if (! (o instanceof ParameterizedType)) {
-			loop: do {
-				o = c.getGenericSuperclass();
-				if (o instanceof ParameterizedType)
-					break loop;
-				for (Type t : c.getGenericInterfaces()) {
-					o = t;
-					if (o instanceof ParameterizedType)
-						break loop;
-				}
-				c = c.getSuperclass();
-			} while (c != null);
-		}
-
-		if (o instanceof ParameterizedType) {
-			ParameterizedType pt = (ParameterizedType)o;
-			if (! pt.getRawType().equals(Enum.class)) {
-				List<ClassMeta<?>> l = new LinkedList<ClassMeta<?>>();
-				for (Type pt2 : pt.getActualTypeArguments()) {
-					if (pt2 instanceof WildcardType || pt2 instanceof TypeVariable)
-						return null;
-					l.add(getClassMeta(pt2, null));
-				}
-				if (l.isEmpty())
-					return null;
-				return l.toArray(new ClassMeta[l.size()]);
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Shortcut for calling {@code getClassMeta(o.getClass())}.
-	 *
-	 * @param <T> The class of the object being passed in.
-	 * @param o The class to find the class type for.
-	 * @return The ClassMeta object, or <jk>null</jk> if {@code o} is <jk>null</jk>.
-	 */
-	public <T> ClassMeta<T> getClassMetaForObject(T o) {
-		if (o == null)
-			return null;
-		return (ClassMeta<T>)getClassMeta(o.getClass());
-	}
-
-
-	/**
-	 * Used for determining the class type on a method or field where a {@code @BeanProperty} annotation
-	 * 	may be present.
-	 *
-	 * @param <T> The class type we're wrapping.
-	 * @param p The property annotation on the type if there is one.
-	 * @param t The type.
-	 * @param typeVarImpls Contains known resolved type parameters on the specified class so
-	 * 	that we can result {@code ParameterizedTypes} and {@code TypeVariables}.<br>
-	 * 	Can be <jk>null</jk> if the information is not known.
-	 * @return The new {@code ClassMeta} object wrapped around the {@code Type} object.
-	 */
-	protected <T> ClassMeta<T> getClassMeta(BeanProperty p, Type t, Map<Class<?>,Class<?>[]> typeVarImpls) {
-		ClassMeta<T> cm = getClassMeta(t, typeVarImpls);
-		ClassMeta<T> cm2 = cm;
-		if (p != null) {
-
-			if (p.type() != Object.class)
-				cm2 = getClassMeta(p.type(), typeVarImpls);
-
-			if (cm2.isMap()) {
-				Class<?>[] pParams = (p.params().length == 0 ? new Class[]{Object.class, Object.class} : p.params());
-				if (pParams.length != 2)
-					throw new RuntimeException("Invalid number of parameters specified for Map (must be 2): " + pParams.length);
-				ClassMeta<?> keyType = resolveType(pParams[0], cm2.getKeyType(), cm.getKeyType());
-				ClassMeta<?> valueType = resolveType(pParams[1], cm2.getValueType(), cm.getValueType());
-				if (keyType.isObject() && valueType.isObject())
-					return cm2;
-				return new ClassMeta<T>(cm2.innerClass, this).setKeyType(keyType).setValueType(valueType);
-			}
-
-			if (cm2.isCollection()) {
-				Class<?>[] pParams = (p.params().length == 0 ? new Class[]{Object.class} : p.params());
-				if (pParams.length != 1)
-					throw new RuntimeException("Invalid number of parameters specified for Collection (must be 1): " + pParams.length);
-				ClassMeta<?> elementType = resolveType(pParams[0], cm2.getElementType(), cm.getElementType());
-				if (elementType.isObject())
-					return cm2;
-				return new ClassMeta<T>(cm2.innerClass, this).setElementType(elementType);
-			}
-
-			return cm2;
-		}
-
-		return cm;
-	}
-
-	private ClassMeta<?> resolveType(Type...t) {
-		for (Type tt : t) {
-			if (tt != null) {
-				ClassMeta<?> cm = getClassMeta(tt);
-				if (tt != cmObject)
-					return cm;
-			}
-		}
-		return cmObject;
-	}
-
-	/**
-	 * Converts class name strings to ClassMeta objects.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li>{@code java.lang.String}
-	 * 	<li>{@code com.ibm.sample.MyBean[]}
-	 * 	<li>{@code java.util.HashMap<java.lang.String,java.lang.Integer>}
-	 * 	<li>{@code [Ljava.lang.String;} (i.e. the value of <code>String[].<jk>class</jk>.getName()</code>
-	 * </ul>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param s The class name.
-	 * @return The ClassMeta corresponding to the class name string.
-	 */
-	public ClassMeta<?> getClassMetaFromString(String s) {
-		int d = 0;
-		if (s == null || s.isEmpty())
-			return null;
-
-		// Check for Class.getName() on array class types.
-		if (s.charAt(0) == '[') {
-			try {
-				return getClassMeta(findClass(s));
-			} catch (ClassNotFoundException e) {
-				throw new RuntimeException(e);
-			}
-		}
-
-		int i1 = 0;
-		int i2 = 0;
-		int dim = 0;
-		List<ClassMeta<?>> p = null;
-		for (int i = 0; i < s.length(); i++) {
-			char c = s.charAt(i);
-			if (c == '<') {
-				if (d == 0) {
-					i1 = i;
-					i2 = i+1;
-					p = new LinkedList<ClassMeta<?>>();
-				}
-				d++;
-			} else if (c == '>') {
-				d--;
-				if (d == 0 && p != null)
-					p.add(getClassMetaFromString(s.substring(i2, i)));
-			} else if (c == ',' && d == 1) {
-				if (p != null)
-					p.add(getClassMetaFromString(s.substring(i2, i)));
-				i2 = i+1;
-			}
-			if (c == '[') {
-				if (i1 == 0)
-					i1 = i;
-				dim++;
-			}
-		}
-		if (i1 == 0)
-			i1 = s.length();
-		try {
-			String name = s.substring(0, i1).trim();
-			char x = name.charAt(0);
-			Class<?> c = null;
-			if (x >= 'b' && x <= 's') {
-				if (x == 'b' && name.equals("boolean"))
-					c = boolean.class;
-				else if (x == 'b' && name.equals("byte"))
-					c = byte.class;
-				else if (x == 'c' && name.equals("char"))
-					c = char.class;
-				else if (x == 'd' && name.equals("double"))
-					c = double.class;
-				else if (x == 'i' && name.equals("int"))
-					c = int.class;
-				else if (x == 'l' && name.equals("long"))
-					c = long.class;
-				else if (x == 's' && name.equals("short"))
-					c = short.class;
-				else
-					c = findClass(name);
-			} else {
-				c = findClass(name);
-			}
-
-			ClassMeta<?> cm = getClassMeta(c);
-
-			if (p != null) {
-				if (cm.isMap())
-					cm = new ClassMeta(c, this).setKeyType(p.get(0)).setValueType(p.get(1));
-				if (cm.isCollection())
-					cm = new ClassMeta(c, this).setElementType(p.get(0));
-			}
-
-			while (dim > 0) {
-				cm = new ClassMeta(Array.newInstance(cm.getInnerClass(), 0).getClass(), this);
-				dim--;
-			}
-
-			return cm;
-		} catch (ClassNotFoundException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	private Class<?> findClass(String name) throws ClassNotFoundException {
-		return classLoader == null ? Class.forName(name) : Class.forName(name, true, classLoader);
-	}
-
-	/**
-	 * Returns the {@link PojoFilter} associated with the specified class, or <jk>null</jk> if there is no
-	 * pojo filter associated with the class.
-	 *
-	 * @param <T> The class associated with the filter.
-	 * @param c The class associated with the filter.
-	 * @return The filter associated with the class, or null if there is no association.
-	 */
-	protected <T> PojoFilter findPojoFilter(Class<T> c) {
-		// Note:  On first
-		if (c != null)
-			for (PojoFilter f : pojoFilters)
-				if (isParentClass(f.forClass(), c))
-					return f;
-		return null;
-	}
-
-	/**
-	 * Checks whether a class has a {@link PojoFilter} associated with it in this bean context.
-	 * @param c The class to check.
-	 * @return <jk>true</jk> if the specified class or one of its subclasses has a {@link PojoFilter} associated with it.
-	 */
-	protected boolean hasChildPojoFilters(Class<?> c) {
-		if (c != null)
-			for (PojoFilter f : pojoFilters)
-				if (isParentClass(c, f.forClass()))
-					return true;
-		return false;
-	}
-
-	/**
-	 * Returns the {@link BeanFilter} associated with the specified class, or <jk>null</jk> if there is no
-	 * bean filter associated with the class.
-	 *
-	 * @param <T> The class associated with the filter.
-	 * @param c The class associated with the filter.
-	 * @return The filter associated with the class, or null if there is no association.
-	 */
-	protected <T> BeanFilter findBeanFilter(Class<T> c) {
-		if (c != null)
-			for (BeanFilter f : beanFilters)
-				if (isParentClass(f.forClass(), c))
-					return f;
-		return null;
-	}
-
-	/**
-	 * Gets the no-arg constructor for the specified class.
-	 *
-	 * @param <T> The class to check.
-	 * @param c The class to check.
-	 * @param v The minimum visibility for the constructor.
-	 * @return The no arg constructor, or <jk>null</jk> if the class has no no-arg constructor.
-	 */
-	protected <T> Constructor<? extends T> getImplClassConstructor(Class<T> c, Visibility v) {
-		if (implClasses.isEmpty())
-			return null;
-		Class cc = c;
-		while (cc != null) {
-			Class implClass = implClasses.get(cc);
-			if (implClass != null)
-				return ClassMeta.findNoArgConstructor(implClass, v);
-			for (Class ic : cc.getInterfaces()) {
-				implClass = implClasses.get(ic);
-				if (implClass != null)
-					return ClassMeta.findNoArgConstructor(implClass, v);
-			}
-			cc = cc.getSuperclass();
-		}
-		return null;
-	}
-
-	/**
-	 * Converts the specified value to the specified class type.
-	 * <p>
-	 * 	See {@link #convertToType(Object, ClassMeta)} for the list of valid conversions.
-	 *
-	 * @param <T> The class type to convert the value to.
-	 * @param value The value to convert.
-	 * @param type The class type to convert the value to.
-	 * @throws InvalidDataConversionException If the specified value cannot be converted to the specified type.
-	 * @return The converted value.
-	 */
-	public <T> T convertToType(Object value, Class<T> type) throws InvalidDataConversionException {
-		// Shortcut for most common case.
-		if (value != null && value.getClass() == type)
-			return (T)value;
-		return convertToType(null, value, getClassMeta(type));
-	}
-
-	/**
-	 * Same as {@link #convertToType(Object, Class)}, except used for instantiating inner member classes that must
-	 * 	be instantiated within another class instance.
-	 *
-	 * @param <T> The class type to convert the value to.
-	 * @param outer If class is a member class, this is the instance of the containing class.
-	 * 	Should be <jk>null</jk> if not a member class.
-	 * @param value The value to convert.
-	 * @param type The class type to convert the value to.
-	 * @throws InvalidDataConversionException If the specified value cannot be converted to the specified type.
-	 * @return The converted value.
-	 */
-	public <T> T convertToType(Object outer, Object value, Class<T> type) throws InvalidDataConversionException {
-		return convertToType(outer, value, getClassMeta(type));
-	}
-
-	/**
-	 * Returns a reusable {@link ClassMeta} representation for the class <code>Object</code>.
-	 * <p>
-	 * This <code>ClassMeta</code> is often used to represent "any object type" when an object type
-	 * 	is not known.
-	 * <p>
-	 * This method is identical to calling <code>getClassMeta(Object.<jk>class</jk>)</code> but uses
-	 * 	a cached copy to avoid a hashmap lookup.
-	 *
-	 * @return The {@link ClassMeta} object associated with the <code>Object</code> class.
-	 */
-	public ClassMeta<Object> object() {
-		return cmObject;
-	}
-
-	/**
-	 * Returns a reusable {@link ClassMeta} representation for the class <code>String</code>.
-	 * <p>
-	 * This <code>ClassMeta</code> is often used to represent key types in maps.
-	 * <p>
-	 * This method is identical to calling <code>getClassMeta(String.<jk>class</jk>)</code> but uses
-	 * 	a cached copy to avoid a hashmap lookup.
-	 *
-	 * @return The {@link ClassMeta} object associated with the <code>String</code> class.
-	 */
-	public ClassMeta<String> string() {
-		return cmString;
-	}
-
-	/**
-	 * Casts the specified value into the specified type.
-	 * <p>
-	 * 	If the value isn't an instance of the specified type, then converts
-	 * 	the value if possible.<br>
-	 * <p>
-	 * 	The following conversions are valid:
-	 * 	<table class='styled'>
-	 * 		<tr><th>Convert to type</th><th>Valid input value types</th><th>Notes</th></tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				A class that is the normal type of a registered {@link PojoFilter}.
-	 * 			</td>
-	 * 			<td>
-	 * 				A value whose class matches the filtered type of that registered {@link PojoFilter}.
-	 * 			</td>
-	 * 			<td>&nbsp;</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				A class that is the filtered type of a registered {@link PojoFilter}.
-	 * 			</td>
-	 * 			<td>
-	 * 				A value whose class matches the normal type of that registered {@link PojoFilter}.
-	 * 			</td>
-	 * 			<td>&nbsp;</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				{@code Number} (e.g. {@code Integer}, {@code Short}, {@code Float},...)<br>
-	 * 				<code>Number.<jsf>TYPE</jsf></code> (e.g. <code>Integer.<jsf>TYPE</jsf></code>, <code>Short.<jsf>TYPE</jsf></code>, <code>Float.<jsf>TYPE</jsf></code>,...)
-	 * 			</td>
-	 * 			<td>
-	 * 				{@code Number}, {@code String}, <jk>null</jk>
-	 * 			</td>
-	 * 			<td>
-	 * 				For primitive {@code TYPES}, <jk>null</jk> returns the JVM default value for that type.
-	 * 			</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				{@code Map} (e.g. {@code Map}, {@code HashMap}, {@code TreeMap}, {@code ObjectMap})
-	 * 			</td>
-	 * 			<td>
-	 * 				{@code Map}
-	 * 			</td>
-	 * 			<td>
-	 * 				If {@code Map} is not constructible, a {@code ObjectMap} is created.
-	 * 			</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 			{@code Collection} (e.g. {@code List}, {@code LinkedList}, {@code HashSet}, {@code ObjectList})
-	 * 			</td>
-	 * 			<td>
-	 * 				{@code Collection<Object>}<br>
-	 * 				{@code Object[]}
-	 * 			</td>
-	 * 			<td>
-	 * 				If {@code Collection} is not constructible, a {@code ObjectList} is created.
-	 * 			</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				{@code X[]} (array of any type X)<br>
-	 * 			</td>
-	 * 			<td>
-	 * 				{@code List<X>}<br>
-	 * 			</td>
-	 * 			<td>&nbsp;</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				{@code X[][]} (multi-dimensional arrays)<br>
-	 * 			</td>
-	 * 			<td>
-	 * 				{@code List<List<X>>}<br>
-	 * 				{@code List<X[]>}<br>
-	 * 				{@code List[]<X>}<br>
-	 * 			</td>
-	 * 			<td>&nbsp;</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				{@code Enum}<br>
-	 * 			</td>
-	 * 			<td>
-	 * 				{@code String}<br>
-	 * 			</td>
-	 * 			<td>&nbsp;</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				Bean<br>
-	 * 			</td>
-	 * 			<td>
-	 * 				{@code Map}<br>
-	 * 			</td>
-	 * 			<td>&nbsp;</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				{@code String}<br>
-	 * 			</td>
-	 * 			<td>
-	 * 				Anything<br>
-	 * 			</td>
-	 * 			<td>
-	 * 				Arrays are converted to JSON arrays<br>
-	 * 			</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				Anything with one of the following methods:<br>
-	 * 				<code><jk>public static</jk> T fromString(String)</code><br>
-	 * 				<code><jk>public static</jk> T valueOf(String)</code><br>
-	 * 				<code><jk>public<jk> T(String)</code><br>
-	 * 			</td>
-	 * 			<td>
-	 * 				<code>String</code><br>
-	 * 			</td>
-	 * 			<td>
-	 * 				<br>
-	 * 			</td>
-	 * 		</tr>
-	 * 	</table>
-	 *
-	 * @param <T> The class type to convert the value to.
-	 * @param value The value to be converted.
-	 * @param type The target object type.
-	 * @return The converted type.
-	 * @throws InvalidDataConversionException If the specified value cannot be converted to the specified type.
-	 */
-	public <T> T convertToType(Object value, ClassMeta<T> type) throws InvalidDataConversionException {
-		return convertToType(null, value, type);
-	}
-
-	/**
-	 * Same as {@link #convertToType(Object, ClassMeta)}, except used for instantiating inner member classes that must
-	 * 	be instantiated within another class instance.
-	 *
-	 * @param <T> The class type to convert the value to.
-	 * @param outer If class is a member class, this is the instance of the containing class.
-	 * 	Should be <jk>null</jk> if not a member class.
-	 * @param value The value to convert.
-	 * @param type The class type to convert the value to.
-	 * @throws InvalidDataConversionException If the specified value cannot be converted to the specified type.
-	 * @return The converted value.
-	 */
-	public <T> T convertToType(Object outer, Object value, ClassMeta<T> type) throws InvalidDataConversionException {
-		if (type == null)
-			type = (ClassMeta<T>)object();
-
-		try {
-			// Handle the case of a null value.
-			if (value == null) {
-
-				// If it's a primitive, then use the converters to get the default value for the primitive type.
-				if (type.isPrimitive())
-					return type.getPrimitiveDefault();
-
-				// Otherwise, just return null.
-				return null;
-			}
-
-			Class<T> tc = type.getInnerClass();
-
-			// If no conversion needed, then just return the value.
-			// Don't include maps or collections, because child elements may need conversion.
-			if (tc.isInstance(value))
-				if (! ((type.isMap() && type.getValueType().isNotObject()) || (type.isCollection() && type.getElementType().isNotObject())))
-					return (T)value;
-
-			if (type.getPojoFilter() != null) {
-				PojoFilter f = type.getPojoFilter();
-				Class<?> nc = f.getNormalClass(), fc = f.getFilteredClass();
-				if (isParentClass(nc, tc) && isParentClass(fc, value.getClass()))
-					return (T)f.unfilter(value, type);
-			}
-
-			ClassMeta<?> vt = getClassMetaForObject(value);
-			if (vt.getPojoFilter() != null) {
-				PojoFilter f = vt.getPojoFilter();
-				Class<?> nc = f.getNormalClass(), fc = f.getFilteredClass();
-				if (isParentClass(nc, vt.getInnerClass()) && isParentClass(fc, tc))
-					return (T)f.filter(value);
-			}
-
-			if (type.isPrimitive()) {
-				if (value.toString().isEmpty())
-					return type.getPrimitiveDefault();
-
-				if (type.isNumber()) {
-					if (value instanceof Number) {
-						Number n = (Number)value;
-						if (tc == Integer.TYPE)
-							return (T)Integer.valueOf(n.intValue());
-						if (tc == Short.TYPE)
-							return (T)Short.valueOf(n.shortValue());
-						if (tc == Long.TYPE)
-							return (T)Long.valueOf(n.longValue());
-						if (tc == Float.TYPE)
-							return (T)Float.valueOf(n.floatValue());
-						if (tc == Double.TYPE)
-							return (T)Double.valueOf(n.doubleValue());
-						if (tc == Byte.TYPE)
-							return (T)Byte.valueOf(n.byteValue());
-					} else {
-						String n = null;
-						if (value instanceof Boolean)
-							n = ((Boolean)value).booleanValue() ? "1" : "0";
-						else
-							n = value.toString();
-						if (tc == Integer.TYPE)
-							return (T)Integer.valueOf(n);
-						if (tc == Short.TYPE)
-							return (T)Short.valueOf(n);
-						if (tc == Long.TYPE)
-							return (T)Long.valueOf(n);
-						if (tc == Float.TYPE)
-							return (T)new Float(n);
-						if (tc == Double.TYPE)
-							return (T)new Double(n);
-						if (tc == Byte.TYPE)
-							return (T)Byte.valueOf(n);
-					}
-				} else if (type.isChar()) {
-					String s = value.toString();
-					return (T)Character.valueOf(s.length() == 0 ? 0 : s.charAt(0));
-				} else if (type.isBoolean()) {
-					if (value instanceof Number) {
-						int i = ((Number)value).intValue();
-						return (T)(i == 0 ? Boolean.FALSE : Boolean.TRUE);
-					}
-					return (T)Boolean.valueOf(value.toString());
-				}
-			}
-
-			if (type.isNumber()) {
-				if (value instanceof Number) {
-				Number n = (Number)value;
-				if (tc == Integer.class)
-					return (T)Integer.valueOf(n.intValue());
-				if (tc == Short.class)
-					return (T)Short.valueOf(n.shortValue());
-				if (tc == Long.class)
-					return (T)Long.valueOf(n.longValue());
-				if (tc == Float.class)
-					return (T)Float.valueOf(n.floatValue());
-				if (tc == Double.class)
-					return (T)Double.valueOf(n.doubleValue());
-				if (tc == Byte.class)
-					return (T)Byte.valueOf(n.byteValue());
-				} else {
-					if (value.toString().isEmpty())
-						return null;
-					String n = null;
-					if (value instanceof Boolean)
-						n = ((Boolean)value).booleanValue() ? "1" : "0";
-					else
-						n = value.toString();
-					if (tc == Integer.class)
-						return (T)Integer.valueOf(n);
-					if (tc == Short.class)
-						return (T)Short.valueOf(n);
-					if (tc == Long.class)
-						return (T)Long.valueOf(n);
-					if (tc == Float.class)
-						return (T)new Float(n);
-					if (tc == Double.class)
-						return (T)new Double(n);
-					if (tc == Byte.class)
-						return (T)Byte.valueOf(n);
-				}
-			}
-
-			if (type.isChar()) {
-				String s = value.toString();
-				return (T)Character.valueOf(s.length() == 0 ? 0 : s.charAt(0));
-			}
-
-			// Handle setting of array properties
-			if (type.isArray()) {
-				if (value instanceof List)
-					return (T)toArray(type, (List)value);
-				else if (value.getClass().isArray())
-					return (T)toArray(type, Arrays.asList((Object[])value));
-				else if (StringUtils.startsWith(value.toString(), '['))
-					return (T)toArray(type, new ObjectList(value.toString()).setBeanContext(this));
-			}
-
-			// Target type is some sort of Map that needs to be converted.
-			if (type.isMap()) {
-				try {
-					if (value instanceof Map) {
-						Map m = type.canCreateNewInstance(outer) ? (Map)type.newInstance(outer) : new ObjectMap(this);
-						ClassMeta keyType = type.getKeyType(), valueType = type.getValueType();
-						for (Map.Entry e : (Set<Map.Entry>)((Map)value).entrySet()) {
-							Object k = e.getKey();
-							if (keyType.isNotObject()) {
-								if (keyType.isString())
-									k = k.toString();
-								else
-									k = convertToType(m, k, keyType);
-							}
-							Object v = e.getValue();
-							if (valueType.isNotObject())
-								v = convertToType(m, v, valueType);
-							m.put(k, v);
-						}
-						return (T)m;
-					} else if (!type.canCreateNewInstanceFromString(outer)) {
-						ObjectMap m = new ObjectMap(value.toString(), defaultParser);
-						return convertToType(outer, m, type);
-					}
-				} catch (Exception e) {
-					throw new InvalidDataConversionException(value.getClass(), tc, e);
-				}
-			}
-
-			// Target type is some sort of Collection
-			if (type.isCollection()) {
-				try {
-					Collection l = type.canCreateNewInstance(outer) ? (Collection)type.newInstance(outer) : new ObjectList(this);
-					ClassMeta elementType = type.getElementType();
-
-					if (value.getClass().isArray())
-						for (Object o : (Object[])value)
-							l.add(elementType.isObject() ? o : convertToType(l, o, elementType));
-					else if (value instanceof Collection)
-						for (Object o : (Collection)value)
-							l.add(elementType.isObject() ? o : convertToType(l, o, elementType));
-					else if (value instanceof Map)
-						l.add(elementType.isObject() ? value : convertToType(l, value, elementType));
-					else if (! value.toString().isEmpty())
-						throw new InvalidDataConversionException(value.getClass(), tc, null);
-					return (T)l;
-				} catch (InvalidDataConversionException e) {
-					throw e;
-				} catch (Exception e) {
-					throw new InvalidDataConversionException(value.getClass(), tc, e);
-				}
-			}
-
-			if (type.isString()) {
-				Class<?> c = value.getClass();
-				if (c.isArray()) {
-					if (c.getComponentType().isPrimitive()) {
-						ObjectList l = new ObjectList(this);
-						int size = Array.getLength(value);
-						for (int i = 0; i < size; i++)
-							l.add(Array.get(value, i));
-						return (T)l.toString();
-					}
-					return (T)new ObjectList((Object[])value).setBeanContext(this).toString();
-				}
-				return (T)value.toString();
-			}
-
-			if (type.isCharSequence()) {
-				Class<?> c = value.getClass();
-				if (c.isArray()) {
-					if (c.getComponentType().isPrimitive()) {
-						ObjectList l = new ObjectList(this);
-						int size = Array.getLength(value);
-						for (int i = 0; i < size; i++)
-							l.add(Array.get(value, i));
-						value = l;
-					}
-					value = new ObjectList((Object[])value).setBeanContext(this);
-				}
-
-				return type.newInstanceFromString(outer, value.toString());
-			}
-
-			if (type.isBoolean()) {
-				if (value instanceof Number)
-					return (T)(Boolean.valueOf(((Number)value).intValue() != 0));
-				return (T)Boolean.valueOf(value.toString());
-			}
-
-			// It's a bean being initialized with a Map
-			if (type.isBean() && value instanceof Map)
-				return newBeanMap(tc).load((Map<?,?>) value).getBean();
-
-			if (type.canCreateNewInstanceFromObjectMap(outer) && value instanceof ObjectMap)
-				return type.newInstanceFromObjectMap(outer, (ObjectMap)value);
-
-			if (type.canCreateNewInstanceFromString(outer))
-				return type.newInstanceFromString(outer, value.toString());
-
-			if (type.isBean())
-				return newBeanMap(type.getInnerClass()).load(value.toString()).getBean();
-
-		} catch (Exception e) {
-			throw new InvalidDataConversionException(value, type.getInnerClass(), e);
-		}
-
-		throw new InvalidDataConversionException(value, type.getInnerClass(), null);
-	}
-
-	/**
-	 * Converts the contents of the specified list into an array.
-	 * <p>
-	 * 	Works on both object and primitive arrays.
-	 * <p>
-	 * 	In the case of multi-dimensional arrays, the incoming list must
-	 * 	contain elements of type n-1 dimension.  i.e. if {@code type} is <code><jk>int</jk>[][]</code>
-	 * 	then {@code list} must have entries of type <code><jk>int</jk>[]</code>.
-	 *
-	 * @param type The type to convert to.  Must be an array type.
-	 * @param list The contents to populate the array with.
-	 * @return A new object or primitive array.
-	 */
-	public Object toArray(ClassMeta<?> type, Collection<?> list) {
-		if (list == null)
-			return null;
-		ClassMeta<?> componentType = type.getElementType();
-		Object array = Array.newInstance(componentType.getInnerClass(), list.size());
-		int i = 0;
-		for (Object o : list) {
-			if (! type.getInnerClass().isInstance(o)) {
-				if (componentType.isArray() && o instanceof Collection)
-					o = toArray(componentType, (Collection<?>)o);
-				else if (o == null && componentType.isPrimitive())
-					o = componentType.getPrimitiveDefault();
-				else
-					o = convertToType(null, o, componentType);
-			}
-			try {
-				Array.set(array, i++, o);
-			} catch (IllegalArgumentException e) {
-				e.printStackTrace();
-				throw e;
-			}
-		}
-		return array;
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		return hashCode;
-	}
-
-	private int hash(int h1, int h2) {
-		return Integer.rotateLeft(h1, 1) + h2;
-	}
-
-	@Override /* Object */
-	public boolean equals(Object o) {
-		if (o instanceof BeanContext) {
-			BeanContext bcs = (BeanContext)o;
-			if (hashCode != bcs.hashCode
-					|| b != bcs.b
-					|| beanFilters.length != bcs.beanFilters.length
-					|| pojoFilters.length != bcs.pojoFilters.length
-					|| notBeanClasses.length != bcs.notBeanClasses.length
-					|| implKeyClasses.length != bcs.implKeyClasses.length
-					|| implValueClasses.length != bcs.implValueClasses.length
-					|| uriKeys.length != bcs.uriKeys.length
-					|| uriVals.length != bcs.uriVals.length
-					|| beanConstructorVisibility != bcs.beanConstructorVisibility
-					|| beanClassVisibility != bcs.beanClassVisibility
-					|| beanMethodVisibility != bcs.beanMethodVisibility
-					|| beanFieldVisibility != bcs.beanFieldVisibility)
-				return false;
-			for (int i = 0; i < beanFilters.length; i++)
-				if (! beanFilters[i].isSameAs(bcs.beanFilters[i]))
-					return false;
-			for (int i = 0; i < pojoFilters.length; i++)
-				if (! pojoFilters[i].isSameAs(bcs.pojoFilters[i]))
-					return false;
-			for (int i = 0; i < notBeanClasses.length; i++)
-				if (! notBeanClasses[i].equals(bcs.notBeanClasses[i]))
-					return false;
-			for (int i = 0; i < notBeanPackages.length; i++)
-				if (! notBeanPackages[i].equals(bcs.notBeanPackages[i]))
-					return false;
-			for (int i = 0; i < implKeyClasses.length; i++)
-				if (! implKeyClasses[i].equals(bcs.implKeyClasses[i]))
-					return false;
-			for (int i = 0; i < implValueClasses.length; i++)
-				if (! implValueClasses[i].equals(bcs.implValueClasses[i]))
-					return false;
-			for (int i = 0; i < uriKeys.length; i++)
-				if (! uriKeys[i].equals(bcs.uriKeys[i]))
-					return false;
-			for (int i = 0; i < uriVals.length; i++)
-				if (! uriVals[i].equals(bcs.uriVals[i]))
-					return false;
-			return true;
-		}
-		return false;
-	}
-
-	@Override /* Object */
-	public String toString() {
-		ObjectMap m = new ObjectMap()
-			.append("id", System.identityHashCode(this))
-			.append("beansRequireDefaultConstructor", beansRequireDefaultConstructor)
-			.append("beansRequireSerializable", beansRequireSerializable)
-			.append("beansRequireSettersForGetters", beansRequireSettersForGetters)
-			.append("beansRequireSomeProperties", beansRequireSomeProperties)
-			.append("beanMapPutReturnsOldValue", beanMapPutReturnsOldValue)
-			.append("useInterfaceProxies", useInterfaceProxies)
-			.append("ignoreUnknownBeanProperties", ignoreUnknownBeanProperties)
-			.append("ignoreUnknownNullBeanProperties", ignoreUnknownNullBeanProperties)
-			.append("ignorePropertiesWithoutSetters", ignorePropertiesWithoutSetters)
-			.append("ignoreInvocationExceptionsOnGetters", ignoreInvocationExceptionsOnGetters)
-			.append("ignoreInvocationExceptionsOnSetters", ignoreInvocationExceptionsOnSetters)
-			.append("useJavaBeanIntrospector", useJavaBeanIntrospector)
-			.append("beanFilters", beanFilters)
-			.append("pojoFilters", pojoFilters)
-			.append("notBeanPackages", notBeanPackages)
-			.append("notBeanClasses", notBeanClasses)
-			.append("implClasses", implClasses)
-			.append("uriVars", uriVars);
-		try {
-			return m.toString(JsonSerializer.DEFAULT_LAX_READABLE);
-		} catch (SerializeException e) {
-			return e.getLocalizedMessage();
-		}
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap.java
deleted file mode 100755
index 1a70876..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap.java
+++ /dev/null
@@ -1,1282 +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;
-
-import static com.ibm.juno.core.utils.ClassUtils.*;
-
-import java.io.*;
-import java.util.*;
-
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.filters.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Java implementation of a JSON object.
- * <p>
- * 	An extension of {@link LinkedHashMap}, so all methods available in that class are also available
- * 	to this class.
- * <p>
- * 	Note that the use of this class is optional.  The serializers will accept any objects that implement
- * 	the {@link java.util.Map} interface.  But this class provides some useful additional functionality
- * 	when working with JSON models constructed from Java Collections Framework objects.  For example, a
- * 	constructor is provided for converting a JSON object string directly into a {@link Map}.  It also contains
- * 	accessor methods for to avoid common typecasting when accessing elements in a list.
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Construct an empty Map</jc>
- * 	Map m = <jk>new</jk> ObjectMap();
- *
- * 	<jc>// Construct a Map from JSON</jc>
- * 	String json = <js>"{a:'A',b:{c:'C',d:123}}"</js>;
- * 	m = <jk>new</jk> ObjectMap(json);
- *
- * 	<jc>// Construct a Map using the append method</jc>
- * 	m = <jk>new</jk> ObjectMap().append(<js>"foo"</js>,<js>"x"</js>).append(<js>"bar"</js>,123).append(<js>"baz"</js>,<jk>true</jk>);
- *
- * 	<jc>// Construct a Map from XML generated by XmlSerializer</jc>
- * 	String xml = <js>"&lt;object&gt;&lt;a type='string'&gt;A&lt;/a&gt;&lt;b type='object'&gt;&lt;c type='string'&gt;C&lt;/c&gt;&lt;d type='number'&gt;123&lt;/d&gt;&lt;/b&gt;&lt;/object&gt;"</js>;
- * 	m = <jk>new</jk> ObjectMap(xml, DataFormat.<jsf>XML</jsf>);
- * 	m = (Map)XmlParser.<jsf>DEFAULT</jsf>.parse(xml); <jc>// Equivalent</jc>
- * 	m = (Map)XmlParser.<jsf>DEFAULT</jsf>.parse(Object.<jk>class</jk>, xml); <jc>// Equivalent</jc>
- * 	m = XmlParser.<jsf>DEFAULT</jsf>.parse(Map.<jk>class</jk>, xml); <jc>// Equivalent</jc>
- * 	m = XmlParser.<jsf>DEFAULT</jsf>.parse(ObjectMap.<jk>class</jk>, xml); <jc>// Equivalent</jc>
- *
- * 	<jc>// Construct a Map from a URL GET parameter string generated by UrlEncodingParser</jc>
- * 	String urlParams = <js>"?a='A'&amp;b={c:'C',d:123}"</js>;
- * 	m = <jk>new</jk> ObjectMap(urlParams, DataFormat.<jsf>URLPARAM</jsf>);
- * 	m = (Map)UrlEncodingParser.<jsf>DEFAULT</jsf>.parse(Object.<jk>class</jk>, xml); <jc>// Equivalent</jc>
- * 	m = UrlEncodingParser.<jsf>DEFAULT</jsf>.parse(Map.<jk>class</jk>, xml); <jc>// Equivalent</jc>
- * 	m = UrlEncodingParser.<jsf>DEFAULT</jsf>.parse(ObjectMap.<jk>class</jk>, xml); <jc>// Equivalent</jc>
- *
- * 	<jc>// Construct JSON from ObjectMap</jc>
- * 	m = <jk>new</jk> ObjectMap(<js>"{foo:'bar'},{baz:[123,true]}"</js>);
- * 	json = m.toString();  <jc>// Produces "{foo:'bar'},{baz:[123,true]}"</jc>
- * 	json = m.toString(JsonSerializer.<jsf>DEFAULT_CONDENSED</jsf>);  <jc>// Equivalent</jc>
- * 	json = JsonSerializer.<jsf>DEFAULT_CONDENSED</jsf>.serialize(m);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Get a map entry as an Integer</jc>
- * 	m = <jk>new</jk> ObjectMap(<js>"{foo:123}"</js>);
- * 	Integer i = m.getInt(<js>"foo"</js>);
- * 	i = m.get(Integer.<jk>class</jk>, <js>"foo"</js>);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Get a map entry as a Float</jc>
- * 	m = <jk>new</jk> ObjectMap(<js>"{foo:123}"</js>);
- * 	Float f = m.getFloat(<js>"foo"</js>);
- * 	f = m.get(Float.<jk>class</jk>, <js>"foo"</js>);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Same as above, except converted to a String</jc>
- * 	m = <jk>new</jk> ObjectMap(<js>"{foo:123}"</js>);
- * 	String s = m.getString(<js>"foo"</js>); <jc>// Returns "123"</jc>
- * 	s = m.get(String.<jk>class</jk>, <js>"foo"</js>);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Get one of the entries in the list as a bean (converted to a bean if it isn't already one)</jc>
- * 	m = <jk>new</jk> ObjectMap(<js>"{person:{name:'John Smith',age:45}}"</js>);
- * 	Person p = m.get(Person.<jk>class</jk>, <js>"person"</js>);
- *
- * 	<jc>// Add an inner map</jc>
- * 	ObjectMap m1 = <jk>new</jk> ObjectMap(<js>"{a:1}"</js>);
- * 	ObjectMap m2 = <jk>new</jk> ObjectMap(<js>"{b:2}"</js>).setInner(m1);
- * 	<jk>int</jk> a = m2.getInt(<js>"a"</js>);  <jc>// a == 1 </jc>
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ObjectMap extends LinkedHashMap<String,Object> {
-	private static final long serialVersionUID = 1L;
-
-	private transient BeanContext beanContext = BeanContext.DEFAULT;
-	private ObjectMap inner;
-
-	/**
-	 * An empty read-only ObjectMap.
-	 */
-	public static final ObjectMap EMPTY_MAP = new ObjectMap() {
-
-		private static final long serialVersionUID = 1L;
-
-		@Override /* Map */
-		@SuppressWarnings("unchecked")
-		public Set<Map.Entry<String,Object>> entrySet() {
-			return Collections.EMPTY_MAP.entrySet();
-		}
-
-		@Override /* Map */
-		@SuppressWarnings("unchecked")
-		public Set<String> keySet() {
-			return Collections.EMPTY_MAP.keySet();
-		}
-
-		@Override /* Map */
-		public Object put(String key, Object value) {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override /* Map */
-		public Object remove(Object key) {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override /* Map */
-		public Collection<Object> values() {
-			return Collections.emptyMap().values();
-		}
-	};
-
-	/**
-	 * Construct an ObjectMap directly from a string using the specified parser.
-	 *
-	 * @param s The string being parsed.
-	 * @param p The parser to use to parse the input.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 */
-	public ObjectMap(CharSequence s, ReaderParser p) throws ParseException {
-		this(p == null ? BeanContext.DEFAULT : p.getBeanContext());
-		try {
-			if (p == null)
-				p = JsonParser.DEFAULT;
-			if (s != null)
-				p.parseIntoMap(new CharSequenceReader(s), s.length(), this, beanContext.string(), beanContext.object());
-		} catch (IOException e) {
-			throw new ParseException(e);
-		}
-	}
-
-	/**
-	 * Shortcut for <code><jk>new</jk> ObjectMap(string,JsonParser.<jsf>DEFAULT</jsf>);</code>
-	 *
-	 * @param s The JSON text to parse.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 */
-	public ObjectMap(CharSequence s) throws ParseException {
-		this(s, null);
-	}
-
-	/**
-	 * Construct an ObjectMap directly from a reader using the specified parser.
-	 *
-	 * @param r The reader to read from.  The reader will be wrapped in a {@link BufferedReader} if it isn't already.
-	 * @param p The parser to use to parse the input.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public ObjectMap(Reader r, ReaderParser p) throws ParseException, IOException {
-		parseReader(r, p);
-	}
-
-	/**
-	 * Shortcut for <code><jk>new</jk> ObjectMap(reader, JsonParser.<jsf>DEFAULT</jsf>)</code>.
-	 *
-	 * @param r The reader to read from.  The reader will be wrapped in a {@link BufferedReader} if it isn't already.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public ObjectMap(Reader r) throws ParseException, IOException {
-		parseReader(r, JsonParser.DEFAULT);
-	}
-
-	private void parseReader(Reader r, ReaderParser p) throws IOException, ParseException {
-		if (p == null)
-			p = JsonParser.DEFAULT;
-		p.parseIntoMap(r, -1, this, beanContext.string(), beanContext.object());
-	}
-
-	/**
-	 * Construct an empty JSON object (i.e. an empty {@link LinkedHashMap}).
-	 */
-	public ObjectMap() {
-		this(BeanContext.DEFAULT);
-	}
-
-	/**
-	 * Construct an empty JSON object (i.e. an empty {@link LinkedHashMap}) with the specified bean context.
-	 *
-	 * @param beanContext The bean context to use for creating beans.
-	 */
-	public ObjectMap(BeanContext beanContext) {
-		super();
-		this.beanContext = beanContext;
-	}
-
-	/**
-	 * Construct a JSON object and fill it with the contents from the specified {@link Map}.
-	 *
-	 * @param m The map whose entries will be copied into this map.
-	 */
-	public ObjectMap(Map<?,?> m) {
-		super();
-		for (Map.Entry<?,?> e : m.entrySet())
-			put(e.getKey().toString(), e.getValue());
-	}
-
-	/**
-	 * Set an inner map in this map to allow for chained get calls.
-	 * <p>
-	 * If {@link #get(Object)} returns <jk>null</jk>, then {@link #get(Object)} will be called on the inner map.
-	 * <p>
-	 * In addition to providing the ability to chain maps, this method also provides the ability
-	 * to wrap an existing map inside another map so that you can add entries to the outer
-	 * map without affecting the values on the inner map.
-	 * <p class='bcode'>
-	 * 	ObjectMap m1 = <jk>new</jk> ObjectMap(<js>"{foo:1}"</js>);
-	 * 	ObjectMap m2 = <jk>new</jk> ObjectMap().setInner(m1);
-	 * 	m2.put(<js>"foo"</js>, 2);                      <jc>// Overwrite the entry</jc>
-	 * 	<jk>int</jk> foo1 = m1.getInt(<js>"foo"</js>);           <jc>// foo1 == 1 </jc>
-	 * 	<jk>int</jk> foo2 = m2.getInt(<js>"foo"</js>);           <jc>// foo2 == 2 </jc>
-	 * </p>
-	 *
-	 * @param inner The inner map.
-	 * 	Can be <jk>null</jk> to remove the inner map from an existing map.
-	 * @return This object (for method chaining).
-	 */
-	public ObjectMap setInner(ObjectMap inner) {
-		this.inner = inner;
-		return this;
-	}
-
-	/**
-	 * Searches for the specified key in this map ignoring case.
-	 *
-	 * @param key The key to search for.  For performance reasons, it's preferrable that the key be all lowercase.
-	 * @return The key, or <jk>null</jk> if map does not contain this key.
-	 */
-	public String findKeyIgnoreCase(String key) {
-		for (String k : keySet())
-			if (key.equalsIgnoreCase(k))
-				return k;
-		return null;
-	}
-
-
-	/**
-	 * Returns the inner map if one was set through {@link #setInner(ObjectMap)}.
-	 *
-	 * @return The inner map if one was set through {@link #setInner(ObjectMap)}, or <jk>null</jk> if no inner map is present.
-	 */
-	public ObjectMap getInner() {
-		return inner;
-	}
-
-	/**
-	 * Override the default bean context used for converting POJOs.
-	 * <p>
-	 * Default is {@link BeanContext#DEFAULT}, which is sufficient in most cases.
-	 * <p>
-	 * Useful if you're serializing/parsing beans with filters defined.
-	 *
-	 * @param beanContext The new bean context.
-	 * @return This object (for method chaining).
-	 */
-	public ObjectMap setBeanContext(BeanContext beanContext) {
-		this.beanContext = beanContext;
-		return this;
-	}
-
-	/**
-	 * Returns the {@link BeanContext} currently associated with this map.
-	 *
-	 * @return The {@link BeanContext} currently associated with this map.
-	 */
-	public BeanContext getBeanContext() {
-		return beanContext;
-	}
-
-	/**
-	 * Convenience method for adding multiple objects to this map.
-	 * <p>
-	 * 	Equivalent to calling {@code put(key, value)}, but returns
-	 * 	this map so that the method can be chained.
-	 *
-	 * @param key The key.
-	 * @param value The value.
-	 * @return This object (for method chaining).
-	 */
-	public ObjectMap append(String key, Object value) {
-		put(key, value);
-		return this;
-	}
-
-	@Override /* Map */
-	public Object get(Object key) {
-		Object o = super.get(key);
-		if (o == null && inner != null)
-			o = inner.get(key);
-		return o;
-	}
-
-	/**
-	 * Same as {@link Map#get(Object) get()}, but returns the default value if the key
-	 * could not be found.
-	 *
-	 * @param key The key.
-	 * @param def The default value if the entry doesn't exist.
-	 * @return The value, or the default value if the entry doesn't exist.
-	 */
-	public Object get(String key, Object def) {
-		Object o = get(key);
-		return (o == null ? def : o);
-	}
-
-	/**
-	 * Same as {@link Map#get(Object) get()}, but casts or converts the value to the specified class type.
-	 * <p>
-	 * 	See {@link BeanContext#convertToType(Object, ClassMeta)} for the list of valid data conversions.
-	 *
-	 * @param <T> The class type.
-	 * @param type The class type.
-	 * @param key The key.
-	 * @return The value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public <T> T get(Class<T> type, String key) {
-		return get(type, key, null);
-	}
-
-	/**
-	 * Same as {@link Map#get(Object) get()}, but converts the raw value to the specified class type using the specified filter.
-	 *
-	 * @param <T> The filtered class type.
-	 * @param filter The filter class used to convert the raw type to a filtered type.
-	 * @param key The key.
-	 * @return The value, or <jk>null</jk> if the entry doesn't exist.
-	 * @throws ParseException Thrown by the filter if a problem occurred trying to parse the value.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	public <T> T get(PojoFilter<T,?> filter, String key) throws ParseException {
-		Object o = super.get(key);
-		if (o == null)
-			return null;
-		PojoFilter f = filter;
-		return (T)f.unfilter(o, null);
-	}
-
-	/**
-	 * Same as {@link Map#get(Object) get()}, but casts or converts the value to the specified class type.
-	 * <p>
-	 * 	See {@link BeanContext#convertToType(Object, ClassMeta)} for the list of valid data conversions.
-	 *
-	 * @param <T> The class type.
-	 * @param type The class type.
-	 * @param key The key.
-	 * @param def The default value if the entry doesn't exist.
-	 * @return The value, or the default value if the entry doesn't exist.
-	 */
-	public <T> T get(Class<T> type, String key, T def) {
-		Object o = get(key);
-		if (o == null)
-			return def;
-		T t = beanContext.convertToType(o, type);
-		if (t == null)
-			return def;
-		return t;
-	}
-
-	/**
-	 * Same as {@link Map#get(Object) get()}, but casts or converts the value to the specified class type.
-	 * <p>
-	 * 	See {@link BeanContext#convertToType(Object, ClassMeta)} for the list of valid data conversions.
-	 *
-	 * @param <T> The class type.
-	 * @param type The class type.
-	 * @param key The key.
-	 * @return The value, or the default value if the entry doesn't exist.
-	 */
-	public <T> T get(ClassMeta<T> type, String key) {
-		return get(type, key, null);
-	}
-
-	/**
-	 * Same as {@link Map#get(Object) get()}, but casts or converts the value to the specified class type.
-	 * <p>
-	 * 	See {@link BeanContext#convertToType(Object, ClassMeta)} for the list of valid data conversions.
-	 *
-	 * @param <T> The class type.
-	 * @param type The class type.
-	 * @param key The key.
-	 * @param def The default value if the entry doesn't exist.
-	 * @return The value, or the default value if the entry doesn't exist.
-	 */
-	public <T> T get(ClassMeta<T> type, String key, T def) {
-		Object o = get(key);
-		if (o == null)
-			return def;
-		return beanContext.convertToType(o, type);
-	}
-
-	/**
-	 * Returns the value for the first key in the list that has an entry in this map.
-	 *
-	 * @param keys The keys to look up in order.
-	 * @return The value of the first entry whose key exists, or <jk>null</jk> if none of the keys exist in this map.
-	 */
-	public Object find(String...keys) {
-		for (String key : keys)
-			if (containsKey(key))
-				return get(key);
-		return null;
-	}
-
-	/**
-	 * Returns the value for the first key in the list that has an entry in this map.
-	 * <p>
-	 * 	Casts or converts the value to the specified class type.
-	 * <p>
-	 * 	See {@link BeanContext#convertToType(Object, ClassMeta)} for the list of valid data conversions.
-	 *
-	 * @param type The class type to convert the value to.
-	 * @param <T> The class type to convert the value to.
-	 * @param keys The keys to look up in order.
-	 * @return The value of the first entry whose key exists, or <jk>null</jk> if none of the keys exist in this map.
-	 */
-	public <T> T find(Class<T> type, String...keys) {
-		for (String key : keys)
-			if (containsKey(key))
-				return get(type, key);
-		return null;
-	}
-
-	/**
-	 * Convenience method for inserting JSON directly into an attribute on this object.
-	 * <p>
-	 * 	The JSON text can be an object (i.e. <js>"{...}"</js>) or an array (i.e. <js>"[...]"</js>).
-	 *
-	 * @param key The key.
-	 * @param json The JSON text that will be parsed into an Object and then inserted into this map.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 */
-	public void putJson(String key, String json) throws ParseException {
-		this.put(key, JsonParser.DEFAULT.parse(json, Object.class));
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link String}.
-	 * <p>
-	 * 	Shortcut for <code>get(String.<jk>class</jk>, key)</code>.
-	 *
-	 * @param key The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 */
-	public String getString(String key) {
-		return get(String.class, key);
-	}
-
-	/**
-	 * Specialized method that calls {@link #getString(String)} and splits the
-	 * 	results as a simple comma-delimited list.
-	 *
-	 * @param key the key.
-	 * @return A list of tokens, trimmed of whitespace.  An empty list if entry not found.  Never <jk>null</jk>.
-	 */
-	public String[] getStringArray(String key) {
-		String s = get(String.class, key);
-		return (s == null ? new String[0] : StringUtils.split(s, ','));
-	}
-
-	/**
-	 * Same as {@link #getStringArray(String)} but returns a default value if the value cannot be found.
-	 *
-	 * @param key The map key.
-	 * @param def The default value if value is not found.
-	 * @return The value converted to a string array.
-	 */
-	public String[] getStringArray(String key, String[] def) {
-		String s = get(String.class, key);
-		String[] r = (s == null ? new String[0] : StringUtils.split(s, ','));
-		return (r.length == 0 ? def : r);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link String}.
-	 * <p>
-	 * 	Shortcut for <code>get(String.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 */
-	public String getString(String key, String defVal) {
-		return get(String.class, key, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to an {@link Integer}.
-	 * <p>
-	 * 	Shortcut for <code>get(Integer.<jk>class</jk>, key)</code>.
-	 *
-	 * @param key The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Integer getInt(String key) {
-		return get(Integer.class, key);
-	}
-
-	/**
-	 * Returns the specified entry value converted to an {@link Integer}.
-	 * <p>
-	 * 	Shortcut for <code>get(Integer.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Integer getInt(String key, Integer defVal) {
-		return get(Integer.class, key, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Long}.
-	 * <p>
-	 * 	Shortcut for <code>get(Long.<jk>class</jk>, key)</code>.
-	 *
-	 * @param key The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Long getLong(String key) {
-		return get(Long.class, key);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Long}.
-	 * <p>
-	 * 	Shortcut for <code>get(Long.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Long getLong(String key, Long defVal) {
-		return get(Long.class, key, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Boolean}.
-	 * <p>
-	 * 	Shortcut for <code>get(Boolean.<jk>class</jk>, key)</code>.
-	 *
-	 * @param key The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Boolean getBoolean(String key) {
-		return get(Boolean.class, key);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Boolean}.
-	 * <p>
-	 * 	Shortcut for <code>get(Boolean.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Boolean getBoolean(String key, Boolean defVal) {
-		return get(Boolean.class, key, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Map}.
-	 * <p>
-	 * 	Shortcut for <code>get(Map.<jk>class</jk>, key)</code>.
-	 *
-	 * @param key The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Map<?,?> getMap(String key) {
-		return get(Map.class, key);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Map}.
-	 * <p>
-	 * 	Shortcut for <code>get(Map.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Map<?,?> getMap(String key, Map<?,?> defVal) {
-		return get(Map.class, key, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link List}.
-	 * <p>
-	 * 	Shortcut for <code>get(List.<jk>class</jk>, key)</code>.
-	 *
-	 * @param key The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public List<?> getList(String key) {
-		return get(List.class, key);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link List}.
-	 * <p>
-	 * 	Shortcut for <code>get(List.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public List<?> getList(String key, List<?> defVal) {
-		return get(List.class, key, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Map}.
-	 * <p>
-	 * 	Shortcut for <code>get(ObjectMap.<jk>class</jk>, key)</code>.
-	 *
-	 * @param key The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectMap getObjectMap(String key) {
-		return get(ObjectMap.class, key);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link ObjectMap}.
-	 * <p>
-	 * 	Shortcut for <code>get(ObjectMap.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectMap getObjectMap(String key, ObjectMap defVal) {
-		return get(ObjectMap.class, key, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link ObjectList}.
-	 * <p>
-	 * 	Shortcut for <code>get(ObjectList.<jk>class</jk>, key)</code>.
-	 *
-	 * @param key The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectList getObjectList(String key) {
-		return get(ObjectList.class, key);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link ObjectList}.
-	 * <p>
-	 * 	Shortcut for <code>get(ObjectList.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectList getObjectList(String key, ObjectList defVal) {
-		return get(ObjectList.class, key, defVal);
-	}
-
-	/**
-	 * Returns the first entry that exists converted to a {@link String}.
-	 * <p>
-	 * 	Shortcut for <code>find(String.<jk>class</jk>, keys)</code>.
-	 *
-	 * @param keys The list of keys to look for.
-	 * @return The converted value of the first key in the list that has an entry in this map,
-	 * 	or <jk>null</jk> if the map contains no mapping for any of the keys.
-	 */
-	public String findString(String... keys) {
-		return find(String.class, keys);
-	}
-
-	/**
-	 * Returns the first entry that exists converted to an {@link Integer}.
-	 * <p>
-	 * 	Shortcut for <code>find(Integer.<jk>class</jk>, keys)</code>.
-	 *
-	 * @param keys The list of keys to look for.
-	 * @return The converted value of the first key in the list that has an entry in this map,
-	 * 	or <jk>null</jk> if the map contains no mapping for any of the keys.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Integer findInt(String... keys) {
-		return find(Integer.class, keys);
-	}
-
-	/**
-	 * Returns the first entry that exists converted to a {@link Long}.
-	 * <p>
-	 * 	Shortcut for <code>find(Long.<jk>class</jk>, keys)</code>.
-	 *
-	 * @param keys The list of keys to look for.
-	 * @return The converted value of the first key in the list that has an entry in this map,
-	 * 	or <jk>null</jk> if the map contains no mapping for any of the keys.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Long findLong(String... keys) {
-		return find(Long.class, keys);
-	}
-
-	/**
-	 * Returns the first entry that exists converted to a {@link Boolean}.
-	 * <p>
-	 * 	Shortcut for <code>find(Boolean.<jk>class</jk>, keys)</code>.
-	 *
-	 * @param keys The list of keys to look for.
-	 * @return The converted value of the first key in the list that has an entry in this map,
-	 * 	or <jk>null</jk> if the map contains no mapping for any of the keys.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Boolean findBoolean(String... keys) {
-		return find(Boolean.class, keys);
-	}
-
-	/**
-	 * Returns the first entry that exists converted to a {@link Map}.
-	 * <p>
-	 * 	Shortcut for <code>find(Map.<jk>class</jk>, keys)</code>.
-	 *
-	 * @param keys The list of keys to look for.
-	 * @return The converted value of the first key in the list that has an entry in this map,
-	 * 	or <jk>null</jk> if the map contains no mapping for any of the keys.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Map<?,?> findMap(String... keys) {
-		return find(Map.class, keys);
-	}
-
-	/**
-	 * Returns the first entry that exists converted to a {@link List}.
-	 * <p>
-	 * 	Shortcut for <code>find(List.<jk>class</jk>, keys)</code>.
-	 *
-	 * @param keys The list of keys to look for.
-	 * @return The converted value of the first key in the list that has an entry in this map,
-	 * 	or <jk>null</jk> if the map contains no mapping for any of the keys.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public List<?> findList(String... keys) {
-		return find(List.class, keys);
-	}
-
-	/**
-	 * Returns the first entry that exists converted to a {@link ObjectMap}.
-	 * <p>
-	 * 	Shortcut for <code>find(ObjectMap.<jk>class</jk>, keys)</code>.
-	 *
-	 * @param keys The list of keys to look for.
-	 * @return The converted value of the first key in the list that has an entry in this map,
-	 * 	or <jk>null</jk> if the map contains no mapping for any of the keys.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectMap findObjectMap(String... keys) {
-		return find(ObjectMap.class, keys);
-	}
-
-	/**
-	 * Returns the first entry that exists converted to a {@link ObjectList}.
-	 * <p>
-	 * 	Shortcut for <code>find(ObjectList.<jk>class</jk>, keys)</code>.
-	 *
-	 * @param keys The list of keys to look for.
-	 * @return The converted value of the first key in the list that has an entry in this map,
-	 * 	or <jk>null</jk> if the map contains no mapping for any of the keys.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectList findObjectList(String... keys) {
-		return find(ObjectList.class, keys);
-	}
-
-	/**
-	 * Returns the first key in the map.
-	 *
-	 * @return The first key in the map, or <jk>null</jk> if the map is empty.
-	 */
-	public String getFirstKey() {
-		return isEmpty() ? null : keySet().iterator().next();
-	}
-
-	/**
-	 * Returns the class type of the object at the specified index.
-	 *
-	 * @param key The key into this map.
-	 * @return The data type of the object at the specified key, or <jk>null</jk> if the value is null or does not exist.
-	 */
-	public ClassMeta<?> getClassMeta(String key) {
-		return beanContext.getClassMetaForObject(get(key));
-	}
-
-	/**
-	 * Equivalent to calling <code>get(class,key,def)</code> followed by <code>remove(key);</code>
-	 *
-	 * @param <T> The class type.
-	 * @param type The class type.
-	 * @param key The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public <T> T remove(Class<T> type, String key, T defVal) {
-		T t = get(type, key, defVal);
-		remove(key);
-		return t;
-	}
-
-
-	/**
-	 * Convenience method for removing several keys at once.
-	 *
-	 * @param keys The list of keys to remove.
-	 */
-	public void removeAll(Collection<String> keys) {
-		for (String k : keys)
-			remove(k);
-	}
-
-	/**
-	 * Convenience method for removing several keys at once.
-	 *
-	 * @param keys The list of keys to remove.
-	 */
-	public void removeAll(String... keys) {
-		for (String k : keys)
-			remove(k);
-	}
-
-	@Override /* Map */
-	public boolean containsKey(Object key) {
-		if (super.containsKey(key))
-			return true;
-		if (inner != null)
-			return inner.containsKey(key);
-		return false;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this map contains the specified key, ignoring
-	 * 	the inner map if it exists.
-	 *
-	 * @param key The key to look up.
-	 * @return <jk>true</jk> if this map contains the specified key.
-	 */
-	public boolean containsOuterKey(Object key) {
-		return super.containsKey(key);
-	}
-
-	/**
-	 * Returns a copy of this <code>ObjectMap</code> with only the specified keys.
-	 *
-	 * @param keys The keys of the entries to copy.
-	 * @return A new map with just the keys and values from this map.
-	 */
-	public ObjectMap include(String...keys) {
-		ObjectMap m2 = new ObjectMap();
-		for (Map.Entry<String,Object> e : this.entrySet())
-			for (String k : keys)
-				if (k.equals(e.getKey()))
-					m2.put(k, e.getValue());
-		return m2;
-	}
-
-	/**
-	 * Returns a copy of this <code>ObjectMap</code> without the specified keys.
-	 *
-	 * @param keys The keys of the entries not to copy.
-	 * @return A new map without the keys and values from this map.
-	 */
-	public ObjectMap exclude(String...keys) {
-		ObjectMap m2 = new ObjectMap();
-		for (Map.Entry<String,Object> e : this.entrySet()) {
-			boolean exclude = false;
-			for (String k : keys)
-				if (k.equals(e.getKey()))
-					exclude = true;
-			if (! exclude)
-				m2.put(e.getKey(), e.getValue());
-		}
-		return m2;
-	}
-
-	/**
-	 * Sets a value in this map if the entry does not exist or the value is <jk>null</jk>.
-	 *
-	 * @param key The map key.
-	 * @param val The value to set if the current value does not exist or is <jk>null</jk>.
-	 * @return This object (for method chaining).
-	 */
-	public ObjectMap putIfNull(String key, Object val) {
-		Object o = get(key);
-		if (o == null)
-			put(key, val);
-		return this;
-	}
-
-	/**
-	 * Sets a value in this map if the entry does not exist or the value is <jk>null</jk> or an empty string.
-	 *
-	 * @param key The map key.
-	 * @param val The value to set if the current value does not exist or is <jk>null</jk> or an empty string.
-	 * @return This object (for method chaining).
-	 */
-	public ObjectMap putIfEmpty(String key, Object val) {
-		Object o = get(key);
-		if (o == null || o.toString().isEmpty())
-			put(key, val);
-		return this;
-	}
-
-	/**
-	 * Converts this map into the class type specified by the <js>"_class"</js> entry value.
-	 * <p>
-	 * 	This method can be used to convert <code>ObjectMap</code> objects to a variety of POJO types.
-	 *
-	 * <dl>
-	 * 	<dt>Example of valid class types:</dt>
-	 * 	<dd>
-	 * <p>
-	 * An object map can be converted to a bean.
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	{
-	 * 		_class: <js>'com.ibm.sample.addressBook.Person'</js>,
-	 * 		name: <js>'John Smith'</js>,
-	 * 		...
-	 * 	}
-	 * </p>
-	 * <p>
-	 * It can also be converted into another map type.
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	<jc>// Generic TreeMap (String keys, Object values)</jc>
-	 * 	{
-	 * 		_class: <js>'java.util.TreeMap'</js>,
-	 * 		name: <js>'John Smith'</js>,
-	 * 		...
-	 * 	}
-	 * 	<jc>// TreeMap where values are forced to be strings.</jc>
-	 * 	{
-	 * 		_class: <js>'java.util.TreeMap&lt;java.lang.String,java.lang.String&gt;'</js>,
-	 * 		name: <js>'John Smith'</js>,
-	 * 		...
-	 * 	}
-	 * </p>
-	 * <p>
-	 * It can also be converted to Collections objects if map defines an <code>items</code> entry of type array.
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	<jc>// LinkedList of strings</jc>
-	 * 	{
-	 * 		_class: <js>'java.util.LinkedList'</js>,
-	 * 		items: [ <js>'John Smith'</js>, ... ]
-	 * 	}
-	 * 	<jc>// LinkedList of beans</jc>
-	 * 	{
-	 * 		_class: <js>'java.util.LinkedList&lt;com.ibm.sample.addressBook.Person&gt;'</js>,
-	 * 		items: [ { name: <js>'John Smith'</js>, ... }, ... ]
-	 * 	}
-	 * </p>
-	 * <p>
-	 * It can also be converted to arrays.
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	<jc>// Array of strings</jc>
-	 * 	{
-	 * 		_class: <js>'java.lang.String[]'</js>,
-	 * 		items: [ <js>'John Smith'</js>, ... ]
-	 * 	}
-	 * 	<jc>// Array of beans</jc>
-	 * 	{
-	 * 		_class: <js>'com.ibm.sample.addressBook.Person[]'</js>,
-	 * 		items: [ { name: <js>'John Smith'</js>, ... }, ... ]
-	 * 	}
-	 * </p>
-	 * <p>
-	 * It can also be converted to any type that can be handled by the {@link BeanContext#convertToType(Object, Class)} method.
-	 * In this case, the value is specified by an <code>value</code> entry of any type.
-	 * 			For example, if the bean context has a {@link CalendarFilter} associated with it, it can convert a string value to a calendar.
-	 * <p class='bcode'>
-	 * 	{
-	 * 		_class: <js>'java.util.GregorianCalendar'</js>,
-	 * 		value: <js>'2001-07-04T15:30:45-05:00'</js>
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * 	<dt>Notes:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li>This method is recursive.  It will also recursively convert any descendant entries to POJOs.
-	 * </ul>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @return The new Java object of type specified by the <js>"_class"</js> entry value, or this
-	 * 	same object if entry does not exist.
-	 */
-	public Object cast() {
-		String c = (String)get("_class");
-		if (c == null) {
-			if (containsKey("_value"))
-				return get("_value");
-			return this;
-		}
-		return cast2(beanContext.getClassMetaFromString(c));
-	}
-
-	/**
-	 * Converts this map into an object of the specified type.
-	 * <p>
-	 * The rules are the same as those specified in {@link #cast()}.
-	 * <p>
-	 * If this map contains a <js>"_class"</js> entry, it must be the same as or a subclass
-	 * 	of the <code>type</code>.
-	 *
-	 * @param <T> The class type to convert this map object to.
-	 * @param type The class type to convert this map object to.
-	 * @return The new object.
-	 * @throws ClassCastException If the <js>"_class"</js> entry is present and not assignable
-	 * 	from <code>type</code>
-	 */
-	@SuppressWarnings("unchecked")
-	public <T> T cast(Class<T> type) {
-		ClassMeta<?> c1 = beanContext.getClassMetaFromString((String)get("_class"));
-		ClassMeta<?> c2 = beanContext.getClassMeta(type);
-		ClassMeta<?> c = narrowClassMeta(c1, c2);
-		return (T)cast2(c);
-	}
-
-	/**
-	 * Same as {@link #cast(Class)}, except allows you to specify a {@link ClassMeta} parameter.
-	 *
-	 * @param <T> The class type to convert this map object to.
-	 * @param cm The class type to convert this map object to.
-	 * @return The new object.
-	 * @throws ClassCastException If the <js>"_class"</js> entry is present and not assignable
-	 * 	from <code>type</code>
-	 */
-	@SuppressWarnings({"unchecked"})
-	public <T> T cast(ClassMeta<T> cm) {
-		ClassMeta<?> c1 = beanContext.getClassMetaFromString((String)get("_class"));
-		ClassMeta<?> c = narrowClassMeta(c1, cm);
-		return (T)cast2(c);
-	}
-
-	/*
-	 * Combines the class specified by a "_class" attribute with the ClassMeta
-	 * passed in through the cast(ClassMeta) method.
-	 * The rule is that child classes superceed parent classes, and c2 superceeds c1
-	 * if one isn't the parent of another.
-	 */
-	@SuppressWarnings("unchecked")
-	private ClassMeta<?> narrowClassMeta(ClassMeta<?> c1, ClassMeta<?> c2) {
-		if (c1 == null)
-			return c2;
-		ClassMeta<?> c = getNarrowedClassMeta(c1, c2);
-		if (c1.isMap()) {
-			ClassMeta<?> k = getNarrowedClassMeta(c1.getKeyType(), c2.getKeyType());
-			ClassMeta<?> v = getNarrowedClassMeta(c1.getValueType(), c2.getValueType());
-			return beanContext.getMapClassMeta((Class<? extends Map<?,?>>)c.getInnerClass(), k, v);
-		}
-		if (c1.isCollection()) {
-			ClassMeta<?> e = getNarrowedClassMeta(c1.getElementType(), c2.getElementType());
-			return beanContext.getCollectionClassMeta((Class<? extends Collection<?>>)c.getInnerClass(), e);
-		}
-		return c;
-	}
-
-	/*
-	 * If c1 is a child of c2 or the same as c2, returns c1.
-	 * Otherwise, returns c2.
-	 */
-	private ClassMeta<?> getNarrowedClassMeta(ClassMeta<?> c1, ClassMeta<?> c2) {
-		if (isParentClass(c2.getInnerClass(), c1.getInnerClass()))
-			return c1;
-		return c2;
-	}
-
-	/*
-	 * Converts this map to the specified class type.
-	 */
-	@SuppressWarnings({"unchecked","rawtypes"})
-	private <T> T cast2(ClassMeta<T> cm) {
-
-		try {
-			Object value = get("value");
-
-			if (cm.isMap()) {
-				Map m2 = (cm.canCreateNewInstance() ? (Map)cm.newInstance() : new ObjectMap(beanContext));
-				ClassMeta<?> kType = cm.getKeyType(), vType = cm.getValueType();
-				for (Map.Entry<String,Object> e : entrySet()) {
-					Object k = e.getKey();
-					Object v = e.getValue();
-					if (! k.equals("_class")) {
-
-						// Attempt to recursively cast child maps.
-						if (v instanceof ObjectMap)
-							v = ((ObjectMap)v).cast();
-
-						k = (kType.isString() ? k : beanContext.convertToType(k, kType));
-						v = (vType.isObject() ? v : beanContext.convertToType(v, vType));
-
-						m2.put(k, v);
-					}
-				}
-				return (T)m2;
-
-			} else if (cm.isBean()) {
-				BeanMap<? extends T> bm = beanContext.newBeanMap(cm.getInnerClass());
-
-				// Iterate through all the entries in the map and set the individual field values.
-				for (Map.Entry<String,Object> e : entrySet()) {
-					String k = e.getKey();
-					Object v = e.getValue();
-					if (! k.equals("_class")) {
-
-						// Attempt to recursively cast child maps.
-						if (v instanceof ObjectMap)
-							v = ((ObjectMap)v).cast();
-
-						bm.put(k, v);
-					}
-				}
-
-				return bm.getBean();
-
-			} else if (cm.isArray() || cm.isCollection()) {
-				List items = (List)get("items");
-				return beanContext.convertToType(items, cm);
-
-			} else if (value != null) {
-				return beanContext.convertToType(value, cm);
-			}
-
-		} catch (Exception e) {
-			throw new BeanRuntimeException(cm.innerClass, "Error occurred attempting to cast to an object of type ''{0}''", cm.innerClass.getName()).initCause(e);
-		}
-
-		throw new BeanRuntimeException(cm.innerClass, "Cannot convert to class type ''{0}''.  Only beans and maps can be converted using this method.", cm.innerClass.getName());
-	}
-
-
-	/**
-	 * Serialize this object into a string using the specified serializer.
-	 *
-	 * @param serializer The serializer to use to convert this object to a string.
-	 * @return This object serialized as a string.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public String toString(WriterSerializer serializer) throws SerializeException {
-		return serializer.serialize(this);
-	}
-
-	/**
-	 * Serialize this object into a JSON string using the {@link JsonSerializer#DEFAULT} serializer.
-	 */
-	@Override /* Object */
-	public String toString() {
-		try {
-			return this.toString(JsonSerializer.DEFAULT_LAX);
-		} catch (SerializeException e) {
-			return e.getLocalizedMessage();
-		}
-	}
-
-	/**
-	 * Convenience method for serializing this map to the specified <code>Writer</code> using
-	 * the {@link JsonSerializer#DEFAULT} serializer.
-	 *
-	 * @param w The writer to serialize this object to.
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public ObjectMap serializeTo(Writer w) throws IOException, SerializeException {
-		JsonSerializer.DEFAULT.serialize(this);
-		return this;
-	}
-
-	@Override /* Map */
-	public Set<String> keySet() {
-		if (inner == null)
-			return super.keySet();
-		LinkedHashSet<String> s = new LinkedHashSet<String>();
-		s.addAll(inner.keySet());
-		s.addAll(super.keySet());
-		return s;
-	}
-
-	@Override /* Map */
-	public Set<Map.Entry<String,Object>> entrySet() {
-		if (inner == null)
-			return super.entrySet();
-
-		final Set<String> keySet = keySet();
-		final Iterator<String> keys = keySet.iterator();
-
-		return new AbstractSet<Map.Entry<String,Object>>() {
-
-			@Override /* Iterable */
-			public Iterator<Map.Entry<String,Object>> iterator() {
-
-				return new Iterator<Map.Entry<String,Object>>() {
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return keys.hasNext();
-					}
-
-					@Override /* Iterator */
-					public Map.Entry<String,Object> next() {
-						return new Map.Entry<String,Object>() {
-							String key = keys.next();
-
-							@Override /* Map.Entry */
-							public String getKey() {
-								return key;
-							}
-
-							@Override /* Map.Entry */
-							public Object getValue() {
-								return get(key);
-							}
-
-							@Override /* Map.Entry */
-							public Object setValue(Object object) {
-								return put(key, object);
-							}
-						};
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						throw new UnsupportedOperationException();
-					}
-				};
-			}
-
-			@Override /* Set */
-			public int size() {
-				return keySet.size();
-			}
-		};
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamer.class
deleted file mode 100755
index 2154b91..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamer.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/PropertyNamer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamer.java
deleted file mode 100755
index a4c26d3..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamer.java
+++ /dev/null
@@ -1,31 +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;
-
-import com.ibm.juno.core.annotation.*;
-
-/**
- * Defines an API for converting conventional bean property names to some other form.
- * <p>
- * For example, given the bean property <js>"fooBarURL"</js>, the {@link PropertyNamerDashedLC}
- * 	property namer will convert this to <js>"foo-bar-url"</js>.
- * <p>
- * Property namers are associated with beans through the {@link Bean#propertyNamer} annotation.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public interface PropertyNamer {
-
-	/**
-	 * Convert the specified default property name to some other value.
-	 * @param name The original bean property name.
-	 * @return The converted property name.
-	 */
-	public String getPropertyName(String name);
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDashedLC.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDashedLC.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDashedLC.class
deleted file mode 100755
index 752a35e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDashedLC.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/PropertyNamerDashedLC.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDashedLC.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDashedLC.java
deleted file mode 100755
index 4d93c7e..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDashedLC.java
+++ /dev/null
@@ -1,62 +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;
-
-/**
- * Converts property names to dashed-lower-case format.
- * <p>
- * 	Examples:
- * <ul>
- * 	<li><js>"fooBar"</js> -&gt; <js>"foo-bar"</js>
- * 	<li><js>"fooBarURL"</js> -&gt; <js>"foo-bar-url"</js>
- * 	<li><js>"FooBarURL"</js> -&gt; <js>"foo-bar-url"</js>
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class PropertyNamerDashedLC implements PropertyNamer {
-
-	@Override /* PropertyNamer */
-	public String getPropertyName(String name) {
-		if (name == null || name.isEmpty())
-			return name;
-
-		int numUCs = 0;
-		boolean isPrevUC = Character.isUpperCase(name.charAt(0));
-		for (int i = 1; i < name.length(); i++) {
-			char c = name.charAt(i);
-			if (Character.isUpperCase(c)) {
-				if (! isPrevUC)
-					numUCs++;
-				isPrevUC = true;
-			} else {
-				isPrevUC = false;
-			}
-		}
-
-		char[] name2 = new char[name.length() + numUCs];
-		isPrevUC = Character.isUpperCase(name.charAt(0));
-		name2[0] = Character.toLowerCase(name.charAt(0));
-		int ni = 0;
-		for (int i = 0; i < name.length(); i++) {
-			char c = name.charAt(i);
-			if (Character.isUpperCase(c)) {
-				if (! isPrevUC)
-					name2[ni++] = '-';
-				isPrevUC = true;
-				name2[ni++] = Character.toLowerCase(c);
-			} else {
-				isPrevUC = false;
-				name2[ni++] = c;
-			}
-		}
-
-		return new String(name2);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDefault.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDefault.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDefault.class
deleted file mode 100755
index 3a6cb52..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDefault.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/PropertyNamerDefault.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDefault.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDefault.java
deleted file mode 100755
index c534d76..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/PropertyNamerDefault.java
+++ /dev/null
@@ -1,35 +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;
-
-import java.beans.*;
-
-/**
- * Default property namer.
- * <p>
- * 	Examples:
- * <ul>
- * 	<li><js>"fooBar"</js> -&gt; <js>"fooBar"</js>
- * 	<li><js>"fooBarURL"</js> -&gt; <js>"fooBarURL"</js>
- * 	<li><js>"FooBarURL"</js> -&gt; <js>"fooBarURL"</js>
- * 	<li><js>"URL"</js> -&gt; <js>"URL"</js>
- * </ul>
- * <p>
- * 	See {@link Introspector#decapitalize(String)} for exact rules.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class PropertyNamerDefault implements PropertyNamer {
-
-	@Override /* PropertyNamer */
-	public String getPropertyName(String name) {
-		return Introspector.decapitalize(name);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Streamable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Streamable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Streamable.class
deleted file mode 100755
index 7c7b7a5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Streamable.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/Streamable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Streamable.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Streamable.java
deleted file mode 100755
index 4dc8f2f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Streamable.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core;
-
-import java.io.*;
-
-/**
- * Interface that identifies that an object can be serialized directly to an output stream.
- * <p>
- * 	Instances must identify the media type of the content by implementing the
- * 	{@link #getMediaType()} method.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public interface Streamable {
-
-	/**
-	 * Serialize this object to the specified output stream.
-	 *
-	 * @param os The output stream to stream to.
-	 * @throws IOException
-	 */
-	void streamTo(OutputStream os) throws IOException;
-
-	/**
-	 * Returns the serialized media type for this resource (e.g. <js>"text/html"</js>).
-	 *
-	 * @return The media type, or <jk>null</jk> if the media type is not known.
-	 */
-	String getMediaType();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility$1.class
deleted file mode 100755
index 2fb5745..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility$1.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/Visibility.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility.class
deleted file mode 100755
index 3bd640f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility.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/Visibility.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility.java
deleted file mode 100755
index 0687d39..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Visibility.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core;
-
-import java.lang.reflect.*;
-
-/**
- * Defines class/field/method visibilities.
- * <p>
- * Used to specify minimum levels of visibility when detecting bean classes, methods, and fields.
- * Used in conjunction with the following bean context properties:
- * <ul>
- * 	<li>{@link BeanContextProperties#BEAN_beanConstructorVisibility}
- * 	<li>{@link BeanContextProperties#BEAN_beanClassVisibility}
- * 	<li>{@link BeanContextProperties#BEAN_beanFieldVisibility}
- * 	<li>{@link BeanContextProperties#BEAN_methodVisibility}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public enum Visibility {
-
-	/** Ignore all */
-	NONE,
-
-	/** Include only <jk>public</jk> classes/fields/methods. */
-	PUBLIC,
-
-	/** Include only <jk>public</jk> or <jk>protected</jk> classes/fields/methods. */
-	PROTECTED,
-
-	/** Include all but <jk>private</jk> classes/fields/methods. */
-	DEFAULT,
-
-	/** Include all classes/fields/methods. */
-	PRIVATE;
-
-	/**
-	 * Identifies if the specified mod matches this visibility.
-	 * Example:
-	 * <code>
-	 * 	<jsf>PUBLIC</jsf>.isVisible(MyPublicClass.<jk>class</jk>.getModifiers()); <jc>//true</jk>
-	 * 	<jsf>PUBLIC</jsf>.isVisible(MyPrivateClass.<jk>class</jk>.getModifiers()); <jc>//false</jk>
-	 * 	<jsf>PRIVATE</jsf>.isVisible(MyPrivateClass.<jk>class</jk>.getModifiers()); <jc>//true</jk>
-	 * 	<jsf>NONE</jsf>.isVisible(MyPublicClass.<jk>class</jk>.getModifiers()); <jc>//false</jk>
-	 * </code>
-	 *
-	 * @param mod The modifier from the object being tested (e.g. results from {@link Class#getModifiers()}.
-	 * @return <jk>true</jk> if this visibility matches the specified modifier attribute.
-	 */
-	public boolean isVisible(int mod) {
-		switch(this) {
-			case NONE: return false;
-			case PRIVATE: return true;
-			case DEFAULT: return ! Modifier.isPrivate(mod);
-			case PROTECTED: return Modifier.isProtected(mod) || Modifier.isPublic(mod);
-			default: return Modifier.isPublic(mod);
-		}
-	}
-
-	/**
-	 * Shortcut for <code>isVisible(x.getModifiers());</code>
-	 *
-	 * @param x The constructor to check.
-	 * @return <jk>true</jk> if the constructor is at least as visible as this object.
-	 */
-	public boolean isVisible(Constructor<?> x) {
-		return isVisible(x.getModifiers());
-	}
-
-	/**
-	 * Shortcut for <code>isVisible(x.getModifiers());</code>
-	 *
-	 * @param x The method to check.
-	 * @return <jk>true</jk> if the method is at least as visible as this object.
-	 */
-	public boolean isVisible(Method x) {
-		return isVisible(x.getModifiers());
-	}
-
-	/**
-	 * Shortcut for <code>isVisible(x.getModifiers());</code>
-	 *
-	 * @param x The field to check.
-	 * @return <jk>true</jk> if the field is at least as visible as this object.
-	 */
-	public boolean isVisible(Field x) {
-		return isVisible(x.getModifiers());
-	}
-
-	/**
-	 * Makes constructor accessible if it matches the visibility requirements, or returns <jk>null</jk> if it doesn't.
-	 * Security exceptions thrown on the call to {@link Constructor#setAccessible(boolean)} are quietly ignored.
-	 *
-	 * @param x The constructor.
-	 * @return The same constructor if visibility requirements met, or <jk>null</jk> if visibility requirement not
-	 * 	met or call to {@link Constructor#setAccessible(boolean)} throws a security exception.
-	 */
-	public <T> Constructor<T> filter(Constructor<T> x) {
-		if (x == null)
-			return null;
-		if (isVisible(x))
-			if (! setAccessible(x))
-				return null;
-		return x;
-	}
-
-	/**
-	 * Makes method accessible if it matches the visibility requirements, or returns <jk>null</jk> if it doesn't.
-	 * Security exceptions thrown on the call to {@link Method#setAccessible(boolean)} are quietly ignored.
-	 *
-	 * @param x The method.
-	 * @return The same method if visibility requirements met, or <jk>null</jk> if visibility requirement not
-	 * 	met or call to {@link Method#setAccessible(boolean)} throws a security exception.
-	 */
-	public <T> Method filter(Method x) {
-		if (x == null)
-			return null;
-		if (isVisible(x))
-			if (! setAccessible(x))
-				return null;
-		return x;
-	}
-
-	/**
-	 * Makes field accessible if it matches the visibility requirements, or returns <jk>null</jk> if it doesn't.
-	 * Security exceptions thrown on the call to {@link Field#setAccessible(boolean)} are quietly ignored.
-	 *
-	 * @param x The field.
-	 * @return The same field if visibility requirements met, or <jk>null</jk> if visibility requirement not
-	 * 	met or call to {@link Field#setAccessible(boolean)} throws a security exception.
-	 */
-	public Field filter(Field x) {
-		if (x == null)
-			return null;
-		if (isVisible(x))
-			if (! setAccessible(x))
-				return null;
-		return x;
-	}
-
-	/**
-	 * Attempts to call <code>x.setAccessible(<jk>true</jk>)</code> and quietly ignores security exceptions.
-	 *
-	 * @param x The constructor.
-	 * @return <jk>true</jk> if call was successful.
-	 */
-	public static boolean setAccessible(Constructor<?> x) {
-		try {
-			if (! (x == null || x.isAccessible()))
-				x.setAccessible(true);
-			return true;
-		} catch (SecurityException e) {
-			return false;
-		}
-	}
-
-	/**
-	 * Attempts to call <code>x.setAccessible(<jk>true</jk>)</code> and quietly ignores security exceptions.
-	 *
-	 * @param x The method.
-	 * @return <jk>true</jk> if call was successful.
-	 */
-	public static boolean setAccessible(Method x) {
-		try {
-			if (! (x == null || x.isAccessible()))
-				x.setAccessible(true);
-			return true;
-		} catch (SecurityException e) {
-			return false;
-		}
-	}
-
-	/**
-	 * Attempts to call <code>x.setAccessible(<jk>true</jk>)</code> and quietly ignores security exceptions.
-	 *
-	 * @param x The field.
-	 * @return <jk>true</jk> if call was successful.
-	 */
-	public static boolean setAccessible(Field x) {
-		try {
-			if (! (x == null || x.isAccessible()))
-				x.setAccessible(true);
-			return true;
-		} catch (SecurityException e) {
-			return false;
-		}
-	}
-}
\ 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/Writable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Writable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Writable.class
deleted file mode 100755
index ceb79f5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Writable.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/Writable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Writable.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Writable.java
deleted file mode 100755
index 0c7cbd2..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Writable.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core;
-
-import java.io.*;
-
-/**
- * Interface that identifies that an object can be serialized directly to a writer.
- * <p>
- * 	Instances must identify the media type of the content by implementing the
- * 	{@link #getMediaType()} method.
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public interface Writable {
-
-	/**
-	 * Serialize this object to the specified writer.
-	 *
-	 * @param w The writer to write to.
-	 * @throws IOException
-	 */
-	void writeTo(Writer w) throws IOException;
-
-	/**
-	 * Returns the serialized media type for this resource (e.g. <js>"text/html"</js>)
-	 *
-	 * @return The media type, or <jk>null</jk> if the media type is not known.
-	 */
-	String getMediaType();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Bean.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Bean.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Bean.class
deleted file mode 100755
index a9f3acd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Bean.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/annotation/Bean.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Bean.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Bean.java
deleted file mode 100755
index ccdb7f7..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/Bean.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.beans.*;
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.filter.*;
-
-/**
- * Used to tailor how beans get interpreted by the framework.
- * <p>
- * 	Can be used to do the following:
- * <ul>
- * 	<li>Explicitly specify the set and order of properties on a bean.
- * 	<li>Associate a {@link PropertyNamer} with a class.
- * 	<li>Specify subtypes of a bean differentiated by a sub type property.
- * </ul>
- * <p>
- * 	This annotation can be applied to classes and interfaces.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target(TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface Bean {
-
-	/**
-	 * The set and order of names of properties associated with a bean class.
-	 * <p>
-	 * 	The order specified is the same order that the entries will be returned by the {@link BeanMap#entrySet()} and related methods.
-	 * <p>
-	 * 	This annotation is an alternative to using the {@link BeanFilter} class with an implemented {@link BeanFilter#getProperties()} method.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Address class with only street/city/state properties (in that order).</jc>
-	 * 	<jc>// All other properties are ignored.</jc>
-	 * 	<ja>@Bean</ja>(properties={<js>"street"</js>,<js>"city"</js>,<js>"state"</js>})
-	 * 	<jk>public class</jk> Address {
-	 * 		...
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String[] properties() default {};
-
-	/**
-	 * Specifies a list of properties that should be excluded from {@link BeanMap#entrySet()}.
-	 * <p>
-	 * 	This annotation is an alternative to using the {@link BeanFilter} class with an implemented {@link BeanFilter#getExcludeProperties()} method.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Address class with only street/city/state properties (in that order).</jc>
-	 * 	<jc>// All other properties are ignored.</jc>
-	 * 	<ja>@Bean</ja>(excludeProperties={<js>"city"</js>,<js>"state"</js>})
-	 * 	<jk>public class</jk> Address {
-	 * 		...
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String[] excludeProperties() default {};
-
-	/**
-	 * Associates a {@link PropertyNamer} with this bean to tailor the names of the bean properties.
-	 * <p>
-	 * 	Property namers are used to transform bean property names from standard form to some other form.
-	 * 	For example, the {@link PropertyNamerDashedLC} will convert property names to dashed-lowercase, and
-	 * 		these will be used as attribute names in JSON, and element names in XML.
-	 * <p>
-	 * 	This annotation is an alternative to using the {@link BeanFilter} class with an implemented {@link BeanFilter#getPropertyNamer()} method.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Define a class with dashed-lowercase property names.</jc>
-	 * 	<ja>@Bean</ja>(propertyNamer=PropertyNamerDashedLC.<jk>class</jk>)
-	 * 	<jk>public class</jk> MyClass {
-	 * 		...
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	Class<? extends PropertyNamer> propertyNamer() default PropertyNamerDefault.class;
-
-	/**
-	 * Defines a virtual property on a superclass that identifies bean subtype classes.
-	 * <p>
-	 * 	In the following example, the abstract class has two subclasses that are differentiated
-	 * 		by a property called <code>subType</code>
-	 * <p class='bcode'>
-	 * 	<jc>// Abstract superclass</jc>
-	 * 	<ja>@Bean</ja>(
-	 * 		subTypeProperty=<js>"subType"</js>,
-	 * 		subTypes={
-	 * 			<ja>@BeanSubType</ja>(type=A1.<jk>class</jk>, id=<js>"A1"</js>),
-	 * 			<ja>@BeanSubType</ja>(type=A2.<jk>class</jk>, id=<js>"A2"</js>)
-	 * 		}
-	 * 	)
-	 * 	<jk>public class</jk> A {
-	 * 		<jk>public</jk> String <jf>f0</jf> = <js>"f0"</js>;
-	 * 	}
-	 *
-	 * 	<jc>// Subclass 1</jc>
-	 * 	<jk>public class</jk> A1 <jk>extends</jk> A {
-	 * 		<jk>public</jk> String <jf>f1</jf>;
-	 * 	}
-	 *
-	 * 	<jc>// Subclass 2</jc>
-	 * 	<jk>public class</jk> A2 <jk>extends</jk> A {
-	 * 		<jk>public</jk> String <jf>f2</jf>;
-	 * 	}
-	 * </p>
-	 * <p>
-	 * 	The following shows what happens when serializing a subclassed object to JSON:
-	 * <p>
-	 * <p class='bcode'>
-	 * 	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX</jsf>;
-	 * 	A1 a1 = <jk>new</jk> A1();
-	 * 	a1.<jf>f1</jf> = <js>"f1"</js>;
-	 * 	String r = s.serialize(a1);
-	 * 	<jsm>assertEquals</jsm>(<js>"{subType:'A1',f1:'f1',f0:'f0'}"</js>, r);
-	 * </p>
-	 * <p>
-	 * 	The following shows what happens when parsing back into the original object.
-	 * <p>
-	 * <p class='bcode'>
-	 * 	JsonParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	A a = p.parse(r, A.<jk>class</jk>);
-	 * 	<jsm>assertTrue</jsm>(a <jk>instanceof</jk> A1);
-	 * </p>
-	 * <p>
-	 * 	This annotation is an alternative to using the {@link BeanFilter} class with an implemented {@link BeanFilter#getSubTypeProperty()} method.
-	 */
-	String subTypeProperty() default "";
-
-	/**
-	 * Used in conjunction with {@link #subTypeProperty()} to set up bean subtypes.
-	 */
-	BeanSubType[] subTypes() default {};
-
-	/**
-	 * Identifies a class to be used as the interface class for this and all subclasses.
-	 * <p>
-	 * 	When specified, only the list of properties defined on the interface class will be used during serialization.
-	 * 	Additional properties on subclasses will be ignored.
-	 * <p class='bcode'>
-	 * 	<jc>// Parent class</jc>
-	 * 	<ja>@Bean</ja>(interfaceClass=A.<jk>class</jk>)
-	 * 	<jk>public abstract class</jk> A {
-	 * 		<jk>public</jk> String <jf>f0</jf> = <js>"f0"</js>;
-	 * 	}
-	 *
-	 * 	<jc>// Sub class</jc>
-	 * 	<jk>public class</jk> A1 <jk>extends</jk> A {
-	 * 		<jk>public</jk> String <jf>f1</jf> = <js>"f1"</js>;
-	 * 	}
-	 *
-	 * 	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX</jsf>;
-	 * 	A1 a1 = <jk>new</jk> A1();
-	 * 	String r = s.serialize(a1);
-	 * 	<jsm>assertEquals</jsm>(<js>"{f0:'f0'}"</js>, r);  // Note f1 is not serialized.
-	 * </p>
-	 * <p>
-	 * 	Note that this annotation can be used on the parent class so that it filters to all child classes,
-	 * 		or can be set individually on the child classes.
-	 * <p>
-	 * 	This annotation is an alternative to using the {@link BeanFilter} class with an implemented {@link BeanFilter#getInterfaceClass()} method.
-	 */
-	Class<?> interfaceClass() default Object.class;
-
-	/**
-	 * Identifies a stop class for the annotated class.
-	 * <p>
-	 * Identical in purpose to the stop class specified by {@link Introspector#getBeanInfo(Class, Class)}.
-	 * Any properties in the stop class or in its baseclasses will be ignored during analysis.
-	 * <p>
-	 * For example, in the following class hierarchy, instances of <code>C3</code> will include property <code>p3</code>, but
-	 * 	not <code>p1</code> or <code>p2</code>.
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> C1 {
-	 * 		<jk>public int</jk> getP1();
-	 * 	}
-	 *
-	 * 	<jk>public class</jk> C2 <jk>extends</jk> C1 {
-	 * 		<jk>public int</jk> getP2();
-	 * 	}
-	 *
-	 * 	<ja>@Bean</ja>(stopClass=C2.<jk>class</jk>)
-	 * 	<jk>public class</jk> C3 <jk>extends</jk> C2 {
-	 * 		<jk>public int</jk> getP3();
-	 * 	}
-	 * </p>
-	 */
-	Class<?> stopClass() default Object.class;
-}
\ 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/annotation/BeanConstructor.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanConstructor.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanConstructor.class
deleted file mode 100755
index 3a5d88f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanConstructor.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/annotation/BeanConstructor.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanConstructor.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanConstructor.java
deleted file mode 100755
index b9153e9..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanConstructor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Maps constructor arguments to property names on beans with read-only properties.
- * <p>
- * 	This annotation can be used in the case of beans with properties whose values can only be set by passing
- * 	them in through a constructor on the class.<br>
- * 	Since method parameter names are lost during compilation, this annotation essentially redefines them
- * 	so that they are available at runtime.
- * <p>
- * 	The definition of a read-only bean is a bean with properties with only getters, like shown below...
- * <p class='bcode'>
- * 	<jk>public class</jk> Person {
- * 		<jk>private final</jk> String <jf>name</jf>;
- * 		<jk>private final int</jk> <jf>age</jf>;
- *
- * 		<ja>@BeanConstructor</ja>(properties={<js>"name"</js>,<js>"age"</js>})
- * 		<jk>public</jk> Person(String name, <jk>int</jk> age) {
- * 			<jk>this</jk>.<jf>name</jf> = name;
- * 			<jk>this</jk>.<jf>age</jf> = age;
- * 		}
- *
- * 		<jc>// Read only properties.</jc>
- *
- * 		<jk>public</jk> String getName() {
- * 			<jk>return</jk> <jf>name</jf>;
- * 		}
- *
- * 		<jk>public int</jk> getAge() {
- * 			<jk>return</jk> <jf>age</jf>;
- * 		}
- * 	}
- *
- * 	String json = <js>"{name:'John Smith',age:45}"</js>;
- * 	Person p = JsonParser.<jsf>DEFAULT</jsf>.parse(json);
- * 	String name = p.getName();  <jc>// "John Smith"</jc>
- * 	<jk>int</jk> age = p.getAge();   <jc>// 45</jc>
- * </p>
- * <p>
- * 	This annotation can only be applied to constructors and can only be applied to one constructor per class.
- * <p>
- * 	When present, bean instantiation is delayed until the call to {@link BeanMap#getBean()}.
- * 	Until then, bean property values are stored in a local cache until <code>getBean()</code> is called.
- * 	Because of this additional caching step, parsing into read-only beans tends to be slower and use
- * 	more memory than parsing into beans with writable properties.
- * <p>
- * 	Attempting to call {@link BeanMap#put(String,Object)} on a read-only property after calling {@link BeanMap#getBean()}
- * 	will result in a {@link BeanRuntimeException} being thrown.
- * 	Multiple calls to {@link BeanMap#getBean()} will return the same bean instance.
- * <p>
- * 	Beans can be defined with a combination of read-only and read-write properties.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target(CONSTRUCTOR)
-@Retention(RUNTIME)
-@Inherited
-public @interface BeanConstructor {
-
-	/**
-	 * The names of the properties of the constructor arguments.
-	 * <p>
-	 * 	The number of properties listed must match the number of arguments in the constructor.
-	 */
-	String[] properties() default {};
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanIgnore.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanIgnore.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanIgnore.class
deleted file mode 100755
index 4e1f137..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanIgnore.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/annotation/BeanIgnore.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanIgnore.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanIgnore.java
deleted file mode 100755
index b71b3f8..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/annotation/BeanIgnore.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Ignore classes, fields, and methods from being interpreted as bean or bean components.
- * <p>
- * 	Applied to classes that may look like beans, but you want to be treated as non-beans.
- * 	For example, if you want to force a bean to be converted to a string using the <code>toString()</code>
- * 		method, use this annoation on the class.
- * <p>
- * 	Applies to fields that should not be interpreted as bean property fields.
- * <p>
- * 	Applies to getters or setters that should not be interpreted as bean property getters or setters.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({FIELD,METHOD,TYPE})
-@Retention(RUNTIME)
-@Inherited
-public @interface BeanIgnore {}
-

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/CoreApi.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/CoreApi.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/CoreApi.java
deleted file mode 100755
index 304bc25..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/CoreApi.java
+++ /dev/null
@@ -1,172 +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;
-
-/**
- * Common super class for all core-API serializers, parsers, and serializer/parser groups.
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Maintains an inner {@link BeanContextFactory} instance that can be used by serializer and parser subclasses
- * 		to work with beans in a consistent way.
- * <p>
- * 	Provides several duplicate convenience methods from the {@link BeanContextFactory} class to set properties on that class from this class.
- * <p>
- * 	Also implements the {@link Lockable} interface to allow for easy locking and cloning.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class CoreApi extends Lockable {
-
-	/** The bean context used by this object. */
-	protected transient BeanContextFactory beanContextFactory = new BeanContextFactory();
-	private BeanContext beanContext;
-
-
-	/**
-	 * Returns the current value of the {@code beanContext} setting.
-	 *
-	 * @return The current setting value.
-	 */
-	public final BeanContext getBeanContext() {
-		if (beanContext == null)
-			beanContext = beanContextFactory.getBeanContext();
-		return beanContext;
-	}
-
-	/**
-	 * Sets a property on this class.
-	 *
-	 * @param property The property name.
-	 * @param value The property value.
-	 * @return This class (for method chaining).
-	 * @throws LockedException If {@link #lock()} has been called on this object.
-	 */
-	public CoreApi setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		beanContextFactory.setProperty(property, value);
-		return this;
-	}
-
-	/**
-	 * Sets multiple properties on this class.
-	 *
-	 * @param properties The properties to set on this class.
-	 * @return This class (for method chaining).
-	 * @throws LockedException If {@link #lock()} has been called on this object.
-	 */
-	public CoreApi setProperties(ObjectMap properties) throws LockedException {
-		checkLock();
-		beanContextFactory.setProperties(properties);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getBeanContext().addNotBeanClasses(Class...)</code>.
-	 *
-	 * @see BeanContextFactory#addNotBeanClasses(Class...)
-	 * @param classes The new setting value for the bean context.
-	 * @throws LockedException If {@link BeanContextFactory#lock()} was called on this class or the bean context.
-	 * @return This object (for method chaining).
-	 */
-	public CoreApi addNotBeanClasses(Class<?>...classes) throws LockedException {
-		checkLock();
-		beanContextFactory.addNotBeanClasses(classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getBeanContext().addFilters(Class...)</code>.
-	 *
-	 * @see BeanContextFactory#addFilters(Class...)
-	 * @param classes The new setting value for the bean context.
-	 * @throws LockedException If {@link BeanContextFactory#lock()} was called on this class or the bean context.
-	 * @return This object (for method chaining).
-	 */
-	public CoreApi addFilters(Class<?>...classes) throws LockedException {
-		checkLock();
-		beanContextFactory.addFilters(classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getBeanContext().addImplClass(Class, Class)</code>.
-	 *
-	 * @see BeanContextFactory#addImplClass(Class, Class)
-	 * @param interfaceClass The interface class.
-	 * @param implClass The implementation class.
-	 * @throws LockedException If {@link BeanContextFactory#lock()} was called on this class or the bean context.
-	 * @param <T> The class type of the interface.
-	 * @return This object (for method chaining).
-	 */
-	public <T> CoreApi addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		checkLock();
-		beanContextFactory.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getBeanContext().setClassLoader(ClassLoader)</code>.
-	 *
-	 * @see BeanContextFactory#setClassLoader(ClassLoader)
-	 * @param classLoader The new classloader.
-	 * @throws LockedException If {@link BeanContextFactory#lock()} was called on this class or the bean context.
-	 * @return This object (for method chaining).
-	 */
-	public CoreApi setClassLoader(ClassLoader classLoader) throws LockedException {
-		checkLock();
-		beanContextFactory.setClassLoader(classLoader);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link BeanContext#object()}.
-	 *
-	 * @return The reusable {@link ClassMeta} for representing the {@link Object} class.
-	 */
-	public ClassMeta<Object> object() {
-		return getBeanContext().object();
-	}
-
-	/**
-	 * Shortcut for calling  {@link BeanContext#string()}.
-	 *
-	 * @return The reusable {@link ClassMeta} for representing the {@link String} class.
-	 */
-	public ClassMeta<String> string() {
-		return getBeanContext().string();
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Lockable */
-	public void checkLock() {
-		super.checkLock();
-		beanContext = null;
-	}
-
-	@Override /* Lockable */
-	public CoreApi lock() {
-		super.lock();
-		beanContextFactory.lock();
-		beanContext = beanContextFactory.getBeanContext();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public CoreApi clone() throws CloneNotSupportedException{
-		CoreApi c = (CoreApi)super.clone();
-		c.beanContextFactory = beanContextFactory.clone();
-		c.beanContext = null;
-		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/Delegate.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Delegate.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Delegate.class
deleted file mode 100755
index 1099224..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Delegate.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/Delegate.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Delegate.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Delegate.java
deleted file mode 100755
index 27e1b6d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Delegate.java
+++ /dev/null
@@ -1,29 +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;
-
-/**
- * An object that represents another object, often wrapping that object.
- * <p>
- * <b>*** Internal Interface - Not intended for external use ***</b>
- * <p>
- * 	For example, {@link BeanMap} is a map representation of a bean.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The represented class type.
- */
-public interface Delegate<T> {
-
-	/**
-	 * The {@link ClassMeta} of the class of the represented object.
-	 *
-	 * @return The class type of the represented object.
-	 */
-	public ClassMeta<T> getClassMeta();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/InvalidDataConversionException.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/InvalidDataConversionException.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/InvalidDataConversionException.class
deleted file mode 100755
index 9ad36e2..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/InvalidDataConversionException.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/InvalidDataConversionException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/InvalidDataConversionException.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/InvalidDataConversionException.java
deleted file mode 100755
index 4353979..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/InvalidDataConversionException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 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;
-
-import java.text.*;
-
-/**
- * General invalid conversion exception.
- * <p>
- * 	Exception that gets thrown if you try to perform an invalid conversion, such as when calling {@code ObjectMap.getInt(...)} on a non-numeric <code>String</code>.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class InvalidDataConversionException extends RuntimeException {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * @param toType Attempting to convert to this class type.
-	 * @param cause The cause.
-	 * @param value The value being converted.
-	 */
-	public InvalidDataConversionException(Object value, Class<?> toType, Exception cause) {
-		super(MessageFormat.format("Invalid data conversion from type ''{0}'' to type ''{1}''.  Value=''{2}''.", value == null ? null : value.getClass().getName(), toType.getName(), value), cause);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Lockable.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Lockable.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Lockable.class
deleted file mode 100755
index 0600ad8..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Lockable.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/Lockable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Lockable.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Lockable.java
deleted file mode 100755
index 0b8ecd8..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/Lockable.java
+++ /dev/null
@@ -1,84 +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;
-
-/**
- * Superclass of all classes that have a locked state.
- * <p>
- * 	Used to mark bean contexts, serializers, and parsers as read-only so that
- * 	settings can no longer be modified.
- * <p>
- * 	Also keeps track of when the object has been cloned and allows for lazy cloning through
- * 	the {@link #onUnclone()} method.  The idea behind this is that certain expensive fields don't
- * 	need to be cloned unless the object is actually being modified.
- * <p>
- * 	Calling {@link #lock()} on the object causes it to be put into a read-only state.
- * 	Once called, subsequent calls to {@link #checkLock()} will cause {@link LockedException LockedExceptions}
- * 		to be thrown.
- * <p>
- * 	As a rule, cloned objects are unlocked by default.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class Lockable implements Cloneable {
-
-	private boolean isLocked = false;
-	private boolean isCloned = false;
-
-	/**
-	 * Locks this object so that settings on it cannot be modified.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public Lockable lock() {
-		isLocked = true;
-		return this;
-	}
-
-	/**
-	 * @return <code><jk>true</jk></code> if this object has been locked.
-	 */
-	public boolean isLocked() {
-		return isLocked;
-	}
-
-	/**
-	 * Causes a {@link LockedException} to be thrown if this object has been locked.
-	 * <p>
-	 * 	Also calls {@link #onUnclone()} if this is the first time this method has been called since cloning.
-	 *
-	 * @throws LockedException If {@link #lock()} has been called on this object.
-	 */
-	public void checkLock() throws LockedException {
-		if (isLocked)
-			throw new LockedException();
-		if (isCloned)
-			onUnclone();
-		isCloned = false;
-	}
-
-	/**
-	 * Subclass can override this method to handle lazy-cloning on the first time {@link #checkLock()} is called after
-	 * the object has been cloned.
-	 */
-	public void onUnclone() {}
-
-	/**
-	 * Creates an unlocked clone of this object.
-	 *
-	 * @throws CloneNotSupportedException If class cannot be cloned.
-	 */
-	@Override /* Object */
-	public Lockable clone() throws CloneNotSupportedException {
-		Lockable c = (Lockable)super.clone();
-		c.isLocked = false;
-		c.isCloned = true;
-		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/LockedException.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/LockedException.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/LockedException.class
deleted file mode 100755
index 422d647..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/LockedException.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/LockedException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/LockedException.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/LockedException.java
deleted file mode 100755
index ce2f31e..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/LockedException.java
+++ /dev/null
@@ -1,28 +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;
-
-/**
- * Exception that gets thrown when trying to modify settings on a locked {@link Lockable} object.
- * <p>
- * A locked exception indicates a programming error.
- * Certain objects that are meant for reuse, such as serializers and parsers, provide
- * the ability to lock the current settings so that they cannot be later changed.
- * This exception indicates that a setting change was attempted on a previously locked object.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class LockedException extends RuntimeException {
-
-	private static final long serialVersionUID = 1L;
-
-	LockedException() {
-		super("Object is locked and object settings cannot be modified.");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/MediaRange.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/MediaRange.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/MediaRange.class
deleted file mode 100755
index 53d21c1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/MediaRange.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/MediaRange.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/MediaRange.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/MediaRange.java
deleted file mode 100755
index c10e07c..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/MediaRange.java
+++ /dev/null
@@ -1,312 +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;
-
-import java.util.*;
-import java.util.Map.Entry;
-
-/**
- * Describes a single type used in content negotiation between an HTTP client and server, as described in
- * Section 14.1 and 14.7 of RFC2616 (the HTTP/1.1 specification).
- */
-public final class MediaRange implements Comparable<MediaRange>  {
-
-	private final String type;								// The media type (e.g. "text" for Accept, "utf-8" for Accept-Charset)
-	private final String subType;                   // The media sub-type (e.g. "json" for Accept, not used for Accept-Charset)
-	private final Float qValue;
-	private final Map<String,Set<String>> parameters, extensions;
-
-	/**
-	 * Returns the media type enclosed by this media range.
-	 * <p>
-	 * Examples:
-	 * <ul>
-	 * 	<li><js>"text/html"</js>
-	 * 	<li><js>"text/*"</js>
-	 * 	<li><js>"*\/*"</js>
-	 * </ul>
-	 *
-	 * @return The media type of this media range, lowercased, never <jk>null</jk>.
-	 */
-	public String getMediaType() {
-		return type + "/" + subType;
-	}
-
-	/**
-	 * Return just the type portion of this media range.
-	 *
-	 * @return The type portion of this media range.
-	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Returns the <js>'q'</js> (quality) value for this type, as described in Section 3.9 of RFC2616.
-	 * <p>
-	 * The quality value is a float between <code>0.0</code> (unacceptable) and <code>1.0</code> (most acceptable).
-	 * <p>
-	 * If 'q' value doesn't make sense for the context (e.g. this range was extracted from a <js>"content-*"</js> header, as opposed to <js>"accept-*"</js>
-	 * header, its value will always be <js>"1"</js>.
-	 *
-	 * @return The 'q' value for this type, never <jk>null</jk>.
-	 */
-	public Float getQValue() {
-		return qValue;
-	}
-
-	/**
-	 * Returns the optional set of parameters associated to the type as returned by {@link #getMediaType()}.
-	 * <p>
-	 * The parameters are those values as described in standardized MIME syntax.
-	 * An example of such a parameter in string form might be <js>"level=1"</js>.
-	 * <p>
-	 * Values are lowercase and never <jk>null</jk>.
-	 *
-	 * @return The optional list of parameters, never <jk>null</jk>.
-	 */
-	public Map<String,Set<String>> getParameters() {
-		return parameters;
-	}
-
-	/**
-	 * Returns the optional set of custom extensions defined for this type.
-	 * <p>
-	 * Values are lowercase and never <jk>null</jk>.
-	 *
-	 * @return The optional list of extensions, never <jk>null</jk>.
-	 */
-	public Map<String,Set<String>> getExtensions() {
-		return extensions;
-	}
-
-	/**
-	 * Provides a string representation of this media range, suitable for use as an <code>Accept</code> header value.
-	 * <p>
-	 * The literal text generated will be all lowercase.
-	 *
-	 * @return A media range suitable for use as an Accept header value, never <code>null</code>.
-	 */
-	@Override /* Object */
-	public String toString() {
-		StringBuffer sb = new StringBuffer().append(type).append('/').append(subType);
-
-		if (! parameters.isEmpty())
-			for (Entry<String,Set<String>> e : parameters.entrySet()) {
-				String k = e.getKey();
-				for (String v : e.getValue())
-					sb.append(';').append(k).append('=').append(v);
-			}
-
-		// '1' is equivalent to specifying no qValue. If there's no extensions, then we won't include a qValue.
-		if (qValue.floatValue() == 1.0) {
-			if (! extensions.isEmpty()) {
-				sb.append(";q=").append(qValue);
-				for (Entry<String,Set<String>> e : extensions.entrySet()) {
-					String k = e.getKey();
-					for (String v : e.getValue())
-						sb.append(';').append(k).append('=').append(v);
-				}
-			}
-		} else {
-			sb.append(";q=").append(qValue);
-			for (Entry<String,Set<String>> e : extensions.entrySet()) {
-				String k = e.getKey();
-				for (String v : e.getValue())
-					sb.append(';').append(k).append('=').append(v);
-			}
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified object is also a <code>MediaType</code>, and has the same qValue, type, parameters, and extensions.
-	 *
-	 * @return <jk>true</jk> if object is equivalent.
-	 */
-	@Override /* Object */
-	public boolean equals(Object o) {
-
-		if (o == null || !(o instanceof MediaRange))
-			return false;
-
-		if (this == o)
-			return true;
-
-		MediaRange o2 = (MediaRange) o;
-		return qValue.equals(o2.qValue)
-			&& type.equals(o2.type)
-			&& subType.equals(o2.subType)
-			&& parameters.equals(o2.parameters)
-			&& extensions.equals(o2.extensions);
-	}
-
-	/**
-	 * Returns a hash based on this instance's <code>media-type</code>.
-	 *
-	 * @return A hash based on this instance's <code>media-type</code>.
-	 */
-	@Override /* Object */
-	public int hashCode() {
-		return type.hashCode() + subType.hashCode();
-	}
-
-	/**
-	 * Creates a <code>MediaRange</code> object with the referenced values.
-	 *
-	 * @param type The MIME type of this media range (e.g. <js>"application"</js> in <js>"application/json"</js>)
-	 * @param subType The MIME subtype of this media range (e.g. <js>"json"</js> in <js>"application/json"</js>).
-	 * @param parameters The optional parameters for this range.
-	 * @param qValue The quality value of this range.  Must be between <code>0</code> and <code>1.0</code>.
-	 * @param extensions The optional extensions to this quality value.
-	 */
-	private MediaRange(String type, String subType, Map<String,Set<String>> parameters, Float qValue, Map<String,Set<String>> extensions) {
-		this.type = type;
-		this.subType = subType;
-		this.parameters = (parameters == null ? new TreeMap<String,Set<String>>() : parameters);
-		this.extensions = (extensions == null ? new TreeMap<String,Set<String>>() : extensions);
-		this.qValue = qValue;
-	}
-
-	/**
-	 * Parses an <code>Accept</code> header value into an array of media ranges.
-	 * <p>
-	 * The returned media ranges are sorted such that the most acceptable media is available at ordinal position <js>'0'</js>, and the least acceptable at position n-1.
-	 * <p>
-	 * The syntax expected to be found in the referenced <code>value</code> complies with the syntax described in RFC2616, Section 14.1, as described below:
-	 * <p class='bcode'>
-	 * 	Accept         = "Accept" ":"
-	 * 	                  #( media-range [ accept-params ] )
-	 *
-	 * 	media-range    = ( "*\/*"
-	 * 	                  | ( type "/" "*" )
-	 * 	                  | ( type "/" subtype )
-	 * 	                  ) *( ";" parameter )
-	 * 	accept-params  = ";" "q" "=" qvalue *( accept-extension )
-	 * 	accept-extension = ";" token [ "=" ( token | quoted-string ) ]
-	 * </p>
-	 * This method can also be used on other headers such as <code>Accept-Charset</code> and <code>Accept-Encoding</code>...
-	 * <p class='bcode'>
-	 * 	Accept-Charset = "Accept-Charset" ":"
-	 * 	1#( ( charset | "*" )[ ";" "q" "=" qvalue ] )
-	 * </p>
-	 *
-	 * @param value The value to parse.  If <jk>null</jk> or empty, returns a single <code>MediaRange</code> is returned that represents all types.
-	 * @return The media ranges described by the string.
-	 * 	The ranges are sorted such that the most acceptable media is available at ordinal position <js>'0'</js>, and the least acceptable at position n-1.
-	 */
-	public static MediaRange[] parse(String value) {
-
-		Set<MediaRange> ranges = new TreeSet<MediaRange>();
-
-		if (value == null || value.length() == 0)
-			return new MediaRange[]{new MediaRange("*", "*", null, 1f, null)};
-
-		value = value.toLowerCase(Locale.ENGLISH);
-
-		for (String r : value.trim().split("\\s*,\\s*")) {
-			r = r.trim();
-
-			if (r.isEmpty())
-				continue;
-
-			String[] tokens = r.split("\\s*;\\s*");
-
-			tokens[0] = tokens[0].replace(' ', '+');
-
-			// There is at least a type.
-			String[] t = tokens[0].split("/");
-			String type = t[0], subType = (t.length == 1 ? "*" : t[1]);
-
-			// Only the type of the range is specified
-			if (tokens.length == 1) {
-				ranges.add(new MediaRange(type, subType, null, 1f, null));
-				continue;
-			}
-
-			Float qValue = 1f;
-			Map<String,Set<String>> params = new TreeMap<String,Set<String>>();
-			Map<String,Set<String>> exts = new TreeMap<String,Set<String>>();
-
-			boolean isInExtensions = false;
-			for (int i = 1; i < tokens.length; i++) {
-				String[] parm = tokens[i].split("\\s*=\\s*");
-				if (parm.length == 2) {
-					String k = parm[0], v = parm[1];
-					if (isInExtensions) {
-						if (! exts.containsKey(parm[0]))
-							exts.put(parm[0], new TreeSet<String>());
-						exts.get(parm[0]).add(parm[1]);
-					} else if (k.equals("q")) {
-						qValue = new Float(v);
-						isInExtensions = true;
-					} else /*(! isInExtensions)*/ {
-						if (! params.containsKey(parm[0]))
-							params.put(parm[0], new TreeSet<String>());
-						params.get(parm[0]).add(parm[1]);
-					}
-				}
-			}
-
-			ranges.add(new MediaRange(type, subType, params, qValue, exts));
-		}
-
-		return ranges.toArray(new MediaRange[ranges.size()]);
-	}
-
-	/**
-	 * Compares two MediaRanges for equality.
-	 * <p>
-	 * The values are first compared according to <code>qValue</code> values.
-	 * Should those values be equal, the <code>type</code> is then lexicographically compared (case-insensitive) in ascending order,
-	 * 	with the <js>"*"</js> type demoted last in that order.
-	 * <code>MediaRanges</code> with the same type but different sub-types are compared - a more specific subtype is
-	 * 	promoted over the 'wildcard' subtype.
-	 * <code>MediaRanges</code> with the same types but with extensions are promoted over those same types with no extensions.
-	 *
-	 * @param o The range to compare to.  Never <jk>null</jk>.
-	 */
-	@Override /* Comparable */
-	public int compareTo(MediaRange o) {
-
-		// Compare q-values.
-		int qCompare = Float.compare(o.qValue, qValue);
-		if (qCompare != 0)
-			return qCompare;
-
-		// Compare media-types.
-		// Note that '*' comes alphabetically before letters, so just do a reverse-alphabetical comparison.
-		int i = o.type.compareTo(type);
-		if (i == 0)
-			i = o.subType.compareTo(subType);
-		return i;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified <code>MediaRange</code> matches this range.
-	 * <p>
-	 * This implies the types and subtypes are the same as or encompasses the other (e.g. <js>'application/xml'</js> and <js>'application/*'</js>).
-	 *
-	 * @param o The other media rage.
-	 * @return <jk>true</jk> if the media ranges are the same or one encompasses the other.
-	 */
-	public boolean matches(MediaRange o) {
-		if (this == o)
-			return true;
-
-		if (qValue == 0 || o.qValue == 0)
-			return false;
-
-		if (type.equals(o.type) || (type.equals("*")) || (o.type.equals("*")))
-			if (subType.equals(o.subType) || subType.equals("*") || o.subType.equals("*"))
-				return true;
-
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$1.class
deleted file mode 100755
index cb9fa76..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$1.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/ObjectList$2$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$2$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$2$1.class
deleted file mode 100755
index 229273b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$2$1.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/ObjectList$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$2.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$2.class
deleted file mode 100755
index 5dba15e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList$2.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/ObjectList.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList.class
deleted file mode 100755
index 3204758..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList.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/ObjectList.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList.java
deleted file mode 100755
index 74f00b0..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectList.java
+++ /dev/null
@@ -1,447 +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;
-
-import java.io.*;
-import java.util.*;
-
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Java implementation of a JSON array.
- * <p>
- * 	An extension of {@link LinkedList}, so all methods available to in that class are also available
- * 	to this class.
- * <p>
- * 	Note that the use of this class is optional.  The serializers will accept any objects that implement
- * 	the {@link Collection} interface.  But this class provides some useful additional functionality
- * 	when working with JSON models constructed from Java Collections Framework objects.  For example, a
- * 	constructor is provided for converting a JSON array string directly into a {@link List}.  It also contains
- * 	accessor methods for to avoid common typecasting when accessing elements in a list.
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Construct an empty List</jc>
- * 	List l = <jk>new</jk> ObjectList();
- *
- * 	<jc>// Construct a list of objects using various methods</jc>
- * 	l = <jk>new</jk> ObjectList().append(<js>"foo"</js>).append(123).append(<jk>true</jk>);
- * 	l = <jk>new</jk> ObjectList().append(<js>"foo"</js>, 123, <jk>true</jk>);  <jc>// Equivalent</jc>
- * 	l = <jk>new</jk> ObjectList(<js>"foo"</js>, 123, <jk>true</jk>);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Construct a list of integers from JSON</jc>
- * 	l = <jk>new</jk> ObjectList(<js>"[1,2,3]"</js>);
- *
- * 	<jc>// Construct a list of generic ObjectMap objects from JSON</jc>
- * 	l = <jk>new</jk> ObjectList(<js>"[{foo:'bar'},{baz:'bing'}]"</js>);
- *
- * 	<jc>// Construct a list of integers from XML</jc>
- * 	String xml = <js>"&lt;array&gt;&lt;number&gt;1&lt;/number&gt;&lt;number&gt;2&lt;/number&gt;&lt;number&gt;3&lt;/number&gt;&lt;/array&gt;"</js>;
- * 	l = <jk>new</jk> ObjectList(xml, DataFormat.<jsf>XML</jsf>);
- * 	l = (List)XmlParser.<jsf>DEFAULT</jsf>.parse(xml);  <jc>// Equivalent</jc>
- * 	l = (List)XmlParser.<jsf>DEFAULT</jsf>.parse(Object.<jk>class</jk>, xml);  <jc>// Equivalent</jc>
- * 	l = XmlParser.<jsf>DEFAULT</jsf>.parse(List.<jk>class</jk>, xml);  <jc>// Equivalent</jc>
- * 	l = XmlParser.<jsf>DEFAULT</jsf>.parse(ObjectList.<jk>class</jk>, xml);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Construct JSON from ObjectList</jc>
- * 	l = <jk>new</jk> ObjectList(<js>"[{foo:'bar'},{baz:'bing'}]"</js>);
- * 	String json = l.toString();  <jc>// Produces "[{foo:'bar'},{baz:'bing'}]"</jc>
- * 	json = l.toString(JsonSerializer.<jsf>DEFAULT_CONDENSED</jsf>);  <jc>// Equivalent</jc>
- * 	json = JsonSerializer.<jsf>DEFAULT_CONDENSED</jsf>.serialize(l);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Get one of the entries in the list as an Integer</jc>
- * 	l = <jk>new</jk> ObjectList(<js>"[1,2,3]"</js>);
- * 	Integer i = l.getInt(1);
- * 	i = l.get(Integer.<jk>class</jk>, 1);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Get one of the entries in the list as an Float</jc>
- * 	l = <jk>new</jk> ObjectList(<js>"[1,2,3]"</js>);
- * 	Float f = l.getFloat(1); <jc>// Returns 2f </jc>
- * 	f = l.get(Float.<jk>class</jk>, 1);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Same as above, except converted to a String</jc>
- * 	l = <jk>new</jk> ObjectList(<js>"[1,2,3]"</js>);
- * 	String s = l.getString(1); <jc>// Returns "2" </jc>
- * 	s = l.get(String.<jk>class</jk>, 1);  <jc>// Equivalent</jc>
- *
- * 	<jc>// Get one of the entries in the list as a bean (converted to a bean if it isn't already one)</jc>
- * 	l = <jk>new</jk> ObjectList(<js>"[{name:'John Smith',age:45}]"</js>);
- * 	Person p = l.get(Person.<jk>class</jk>, 0);
- *
- * 	<jc>// Iterate over a list of beans using the elements() method</jc>
- * 	ObjectList ObjectList = <jk>new</jk> ObjectList(<js>"[{name:'John Smith',age:45}]"</js>);
- * 	<jk>for</jk> (Person p : ObjectList.elements(Person.<jk>class</jk>) {
- * 		<jc>// Do something with p</jc>
- * 	}
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ObjectList extends LinkedList<Object> {
-	private static final long serialVersionUID = 1L;
-
-	private transient BeanContext beanContext = BeanContext.DEFAULT;
-
-	/**
-	 * An empty read-only ObjectList.
-	 */
-	public static final ObjectList EMPTY_LIST = new ObjectList() {
-		private static final long serialVersionUID = 1L;
-
-		@Override /* List */
-		public void add(int location, Object object) {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override /* List */
-		public ListIterator<Object> listIterator(final int location) {
-			return Collections.emptyList().listIterator(location);
-		}
-
-		@Override /* List */
-		public Object remove(int location) {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override /* List */
-		public Object set(int location, Object object) {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override /* List */
-		public List<Object> subList(int start, int end) {
-			return Collections.emptyList().subList(start, end);
-		}
-	};
-
-	/**
-	 * Construct a JSON array directly from text using the specified parser.
-	 *
-	 * @param s The string being parsed.
-	 * @param p The parser to use to parse the input.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 */
-	public ObjectList(CharSequence s, ReaderParser p) throws ParseException {
-		this(p == null ? BeanContext.DEFAULT : p.getBeanContext());
-		try {
-			if (p == null)
-				p = JsonParser.DEFAULT;
-			if (s != null)
-				p.parseIntoCollection(new CharSequenceReader(s), s.length(), this, beanContext.object());
-		} catch (IOException e) {
-			throw new ParseException(e);
-		}
-	}
-
-	/**
-	 * Shortcut for <code><jk>new</jk> ObjectList(String,JsonParser.<jsf>DEFAULT</jsf>);</code>
-	 *
-	 * @param s The string being parsed.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 */
-	public ObjectList(CharSequence s) throws ParseException {
-		this(s, null);
-	}
-
-	/**
-	 * Construct a JSON array directly from a reader using the specified parser.
-	 *
-	 * @param r The reader to read from.  Will automatically be wrapped in a {@link BufferedReader} if it isn't already a BufferedReader.
-	 * @param p The parser to use to parse the input.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public ObjectList(Reader r, ReaderParser p) throws ParseException, IOException {
-		parseReader(r, p);
-	}
-
-	private void parseReader(Reader r, ReaderParser p) throws IOException, ParseException {
-		if (p == null)
-			p = JsonParser.DEFAULT;
-		p.parseIntoCollection(r, -1, this, beanContext.object());
-	}
-
-	/**
-	 * Construct an empty JSON array. (i.e. an empty {@link LinkedList}).
-	 */
-	public ObjectList() {
-		this(BeanContext.DEFAULT);
-	}
-
-	/**
-	 * Construct an empty JSON array with the specified bean context. (i.e. an empty {@link LinkedList}).
-	 *
-	 * @param beanContext The bean context to associate with this object list for creating beans.
-	 */
-	public ObjectList(BeanContext beanContext) {
-		super();
-		this.beanContext = beanContext;
-	}
-
-	/**
-	 * Construct a JSON array and fill it with the specified objects.
-	 *
-	 * @param o A list of objects to add to this list.
-	 */
-	public ObjectList(Object... o) {
-		super(Arrays.asList(o));
-	}
-
-	/**
-	 * Construct a JSON array and fill it with the specified collection of objects.
-	 *
-	 * @param c A list of objects to add to this list.
-	 */
-	public ObjectList(Collection<?> c) {
-		super(c);
-	}
-
-	/**
-	 * Override the default bean context used for converting POJOs.
-	 * <p>
-	 * Default is {@link BeanContext#DEFAULT}, which is sufficient in most cases.
-	 * <p>
-	 * Useful if you're serializing/parsing beans with filters defined.
-	 *
-	 * @param beanContext The new bean context.
-	 * @return This object (for method chaining).
-	 */
-	public ObjectList setBeanContext(BeanContext beanContext) {
-		this.beanContext = beanContext;
-		return this;
-	}
-
-	/**
-	 * Convenience method for adding multiple objects to this list.
-	 * @param o The objects to add to the list.
-	 * @return This object (for method chaining).
-	 */
-	public ObjectList append(Object...o) {
-		for (Object o2 : o)
-			add(o2);
-		return this;
-	}
-
-	/**
-	 * Get the entry at the specified index, converted to the specified type (if possible).
-	 * <p>
-	 * 	See {@link BeanContext#convertToType(Object, ClassMeta)} for the list of valid data conversions.
-	 *
-	 * @param type The type of object to convert the entry to.
-	 * @param index The index into this list.
-	 * @param <T> The type of object to convert the entry to.
-	 * @return The converted entry.
-	 */
-	public <T> T get(Class<T> type, int index) {
-		return beanContext.convertToType(get(index), type);
-	}
-
-	/**
-	 * Shortcut for calling <code>get(String.<jk>class</jk>, index)</code>.
-	 *
-	 * @param index The index.
-	 * @return The converted value.
-	 */
-	public String getString(int index) {
-		return get(String.class, index);
-	}
-
-	/**
-	 * Shortcut for calling <code>get(Integer.<jk>class</jk>, index)</code>.
-	 *
-	 * @param index The index.
-	 * @return The converted value.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Integer getInt(int index) {
-		return get(Integer.class, index);
-	}
-
-	/**
-	 * Shortcut for calling <code>get(Boolean.<jk>class</jk>, index)</code>.
-	 *
-	 * @param index The index.
-	 * @return The converted value.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Boolean getBoolean(int index) {
-		return get(Boolean.class, index);
-	}
-
-	/**
-	 * Shortcut for calling <code>get(Long.<jk>class</jk>, index)</code>.
-	 *
-	 * @param index The index.
-	 * @return The converted value.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Long getLong(int index) {
-		return get(Long.class, index);
-	}
-
-	/**
-	 * Shortcut for calling <code>get(Map.<jk>class</jk>, index)</code>.
-	 *
-	 * @param index The index.
-	 * @return The converted value.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Map<?,?> getMap(int index) {
-		return get(Map.class, index);
-	}
-
-	/**
-	 * Shortcut for calling <code>get(List.<jk>class</jk>, index)</code>.
-	 *
-	 * @param index The index.
-	 * @return The converted value.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public List<?> getList(int index) {
-		return get(List.class, index);
-	}
-
-	/**
-	 * Shortcut for calling <code>get(ObjectMap.<jk>class</jk>, index)</code>.
-	 *
-	 * @param index The index.
-	 * @return The converted value.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectMap getObjectMap(int index) {
-		return get(ObjectMap.class, index);
-	}
-
-	/**
-	 * Shortcut for calling <code>get(ObjectList.<jk>class</jk>, index)</code>.
-	 *
-	 * @param index The index.
-	 * @return The converted value.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectList getObjectList(int index) {
-		return get(ObjectList.class, index);
-	}
-
-	/**
-	 * Creates an {@link Iterable} with elements of the specified child type.
-	 * <p>
-	 * Attempts to convert the child objects to the correct type if they aren't already the correct type.
-	 * <p>
-	 * The <code>next()</code> method on the returned iterator may throw a {@link InvalidDataConversionException} if
-	 * 	the next element cannot be converted to the specified type.
-	 * <p>
-	 * See {@link BeanContext#convertToType(Object, ClassMeta)} for a description of valid conversions.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Iterate over a list of ObjectMaps.</jc>
-	 * 	ObjectList l = <jk>new</jk> ObjectList(<js>"[{foo:'bar'},{baz:123}]"</js>);
-	 * 	for (ObjectMap m : l.elements(ObjectMap.<jk>class</jk>)) {
-	 * 		<jc>// Do something with m.</jc>
-	 * 	}
-	 *
-	 * 	<jc>// Iterate over a list of ints.</jc>
-	 * 	ObjectList l = <jk>new</jk> ObjectList(<js>"[1,2,3]"</js>);
-	 * 	for (Integer i : l.elements(Integer.<jk>class</jk>)) {
-	 * 		<jc>// Do something with i.</jc>
-	 * 	}
-	 *
-	 * 	<jc>// Iterate over a list of beans.</jc>
-	 * 	<jc>// Automatically converts to beans.</jc>
-	 * 	ObjectList l = <jk>new</jk> ObjectList(<js>"[{name:'John Smith',age:45}]"</js>);
-	 * 	for (Person p : l.elements(Person.<jk>class</jk>)) {
-	 * 		<jc>// Do something with p.</jc>
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param <E> The child object type.
-	 * @param childType The child object type.
-	 * @return A new <code>Iterable</code> object over this list.
-	 */
-	public <E> Iterable<E> elements(final Class<E> childType) {
-		final Iterator<?> i = iterator();
-		return new Iterable<E>() {
-
-			@Override /* Iterable */
-			public Iterator<E> iterator() {
-				return new Iterator<E>() {
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return i.hasNext();
-					}
-
-					@Override /* Iterator */
-					public E next() {
-						return beanContext.convertToType(i.next(), childType);
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						i.remove();
-					}
-
-				};
-			}
-		};
-	}
-
-	/**
-	 * Returns the {@link ClassMeta} of the class of the object at the specified index.
-	 *
-	 * @param index An index into this list, zero-based.
-	 * @return The data type of the object at the specified index, or <jk>null</jk> if the value is null.
-	 */
-	public ClassMeta<?> getClassMeta(int index) {
-		return beanContext.getClassMetaForObject(get(index));
-	}
-
-	/**
-	 * Serialize this array to a string using the specified serializer.
-	 *
-	 * @param serializer The serializer to use to convert this object to a string.
-	 * @return This object as a serialized string.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public String toString(WriterSerializer serializer) throws SerializeException {
-		return serializer.serialize(this);
-	}
-
-	/**
-	 * Serialize this array to JSON using the {@link JsonSerializer#DEFAULT} serializer.
-	 */
-	@Override /* Object */
-	public String toString() {
-		try {
-			return this.toString(JsonSerializer.DEFAULT_LAX);
-		} catch (SerializeException e) {
-			return e.getLocalizedMessage();
-		}
-	}
-
-	/**
-	 * Convenience method for serializing this ObjectList to the specified Writer using
-	 * the JsonSerializer.DEFAULT serializer.
-	 *
-	 * @param w The writer to send the serialized contents of this object.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public void serializeTo(Writer w) throws IOException, SerializeException {
-		JsonSerializer.DEFAULT.serialize(this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$1.class
deleted file mode 100755
index a58f23d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$1.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/ObjectMap$2$1$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2$1$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2$1$1.class
deleted file mode 100755
index 57b81a7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2$1$1.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/ObjectMap$2$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2$1.class
deleted file mode 100755
index 0ccaec1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2$1.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/ObjectMap$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2.class
deleted file mode 100755
index 777a312..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap$2.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/ObjectMap.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap.class
deleted file mode 100755
index 5ed2e03..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ObjectMap.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanPropertyMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanPropertyMeta.java
deleted file mode 100755
index ea9fc3c..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanPropertyMeta.java
+++ /dev/null
@@ -1,803 +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;
-
-import static com.ibm.juno.core.Visibility.*;
-import static com.ibm.juno.core.utils.ClassUtils.*;
-import static com.ibm.juno.core.utils.CollectionUtils.*;
-import static com.ibm.juno.core.utils.ReflectionUtils.*;
-
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.annotation.URI;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.html.*;
-import com.ibm.juno.core.jena.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Contains metadata about a bean property.
- * <p>
- * 	Contains information such as type of property (e.g. field/getter/setter), class type of property value,
- * 	and whether any filters are associated with this property.
- * <p>
- * 	Developers will typically not need access to this class.  The information provided by it is already
- * 	exposed through several methods on the {@link BeanMap} API.
- *
- * @param <T> The class type of the bean that this metadata applies to.
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({ "rawtypes", "unchecked" })
-public class BeanPropertyMeta<T> {
-
-	private Field field;
-	private Method getter, setter;
-	private boolean isConstructorArg, isBeanUri, isUri;
-
-	private final BeanMeta<T> beanMeta;
-
-	private String name;
-	private ClassMeta<?>
-		rawTypeMeta,                           // The real class type of the bean property.
-		typeMeta;                              // The filtered class type of the bean property.
-	private String[] properties;
-	private PojoFilter filter;      // PojoFilter defined only via @BeanProperty annotation.
-
-	/** HTML related metadata on this bean property. */
-	protected HtmlBeanPropertyMeta<T> htmlMeta;
-
-	/** XML related metadata on this bean property. */
-	protected XmlBeanPropertyMeta<T> xmlMeta;
-
-	/** RDF related metadata on this bean property. */
-	protected RdfBeanPropertyMeta<T> rdfMeta;  //
-
-	BeanPropertyMeta(BeanMeta<T> beanMeta, String name) {
-		this.beanMeta = beanMeta;
-		this.name = name;
-	}
-
-	BeanPropertyMeta(BeanMeta<T> beanMeta, String name, ClassMeta<?> rawTypeMeta) {
-		this(beanMeta, name);
-		this.rawTypeMeta = rawTypeMeta;
-	}
-
-	BeanPropertyMeta(BeanMeta<T> beanMeta, String name, Method getter, Method setter) {
-		this(beanMeta, name);
-		setGetter(getter);
-		setSetter(setter);
-	}
-
-	/**
-	 * Returns the name of this bean property.
-	 *
-	 * @return The name of the bean property.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Returns the bean meta that this property belongs to.
-	 *
-	 * @return The bean meta that this property belongs to.
-	 */
-	@BeanIgnore
-	public BeanMeta<T> getBeanMeta() {
-		return beanMeta;
-	}
-
-	/**
-	 * Returns the getter method for this property.
-	 *
-	 * @return The getter method for this bean property, or <jk>null</jk> if there is no getter method.
-	 */
-	public Method getGetter() {
-		return getter;
-	}
-
-	/**
-	 * Returns the setter method for this property.
-	 *
-	 * @return The setter method for this bean property, or <jk>null</jk> if there is no setter method.
-	 */
-	public Method getSetter() {
-		return setter;
-	}
-
-	/**
-	 * Returns the field for this property.
-	 *
-	 * @return The field for this bean property, or <jk>null</jk> if there is no field associated with this bean property.
-	 */
-	public Field getField() {
-		return field;
-	}
-
-	/**
-	 * Returns the {@link ClassMeta} of the class of this property.
-	 * <p>
-	 * If this property or the property type class has a {@link PojoFilter} associated with it, this
-	 * 	method returns the filtered class meta.
-	 * This matches the class type that is used by the {@link #get(BeanMap)} and {@link #set(BeanMap, Object)} methods.
-	 *
-	 * @return The {@link ClassMeta} of the class of this property.
-	 */
-	public ClassMeta<?> getClassMeta() {
-		if (typeMeta == null)
-			typeMeta = (filter != null ? filter.getFilteredClassMeta() : rawTypeMeta.getFilteredClassMeta());
-		return typeMeta;
-	}
-
-	/**
-	 * Sets the getter method for this property.
-	 *
-	 * @param getter The getter method to associate with this property.
-	 * @return This object (for method chaining).
-	 */
-	BeanPropertyMeta<T> setGetter(Method getter) {
-		setAccessible(getter);
-		this.getter = getter;
-		return this;
-	}
-
-	/**
-	 * Sets the setter method for this property.
-	 *
-	 * @param setter The setter method to associate with this property.
-	 * @return This object (for method chaining).
-	 */
-	BeanPropertyMeta<T> setSetter(Method setter) {
-		setAccessible(setter);
-		this.setter = setter;
-		return this;
-	}
-
-	/**
-	 * Sets the field for this property.
-	 *
-	 * @param field The field to associate with this property.
-	 * @return This object (for method chaining).
-	 */
-	BeanPropertyMeta<T> setField(Field field) {
-		setAccessible(field);
-		this.field = field;
-		return this;
-	}
-
-	/**
-	 * Marks this property as only settable through a constructor arg.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	BeanPropertyMeta<T> setAsConstructorArg() {
-		this.isConstructorArg = true;
-		return this;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this bean property is marked with {@link BeanProperty#beanUri()} as <jk>true</jk>.
-	 *
-	 * @return <jk>true</jk> if this bean property is marked with {@link BeanProperty#beanUri()} as <jk>true</jk>.
-	 */
-	public boolean isBeanUri() {
-		return isBeanUri;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this bean property is a URI.
-	 * <p>
-	 * A bean property can be considered a URI if any of the following are true:
-	 * <ul>
-	 * 	<li>Property class type is {@link URL} or {@link URI}.
-	 * 	<li>Property class type is annotated with {@link com.ibm.juno.core.annotation.URI}.
-	 * 	<li>Property getter, setter, or field is annotated with {@link com.ibm.juno.core.annotation.URI}.
-	 * </ul>
-	 *
-	 * @return <jk>true</jk> if this bean property is a URI.
-	 */
-	public boolean isUri() {
-		return isUri;
-	}
-
-	/**
-	 * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation
-	 *  on this property.
-	 *
-	 * @return The list of override properties, or <jk>null</jk> if annotation not specified.
-	 */
-	public String[] getProperties() {
-		return properties;
-	}
-
-	/**
-	 * Returns the HTML-related metadata on this bean property.
-	 *
-	 * @return The HTML-related metadata on this bean property.  Never <jk>null</jk>/.
-	 */
-	public HtmlBeanPropertyMeta<T> getHtmlMeta() {
-		return htmlMeta;
-	}
-
-	/**
-	 * Returns the XML-related metadata on this bean property.
-	 *
-	 * @return The XML-related metadata on this bean property.  Never <jk>null</jk>/.
-	 */
-	public XmlBeanPropertyMeta<T> getXmlMeta() {
-		return xmlMeta;
-	}
-
-	/**
-	 * Returns the RDF-related metadata on this bean property.
-	 *
-	 * @return The RDF-related metadata on this bean property.  Never <jk>null</jk>/.
-	 */
-	public RdfBeanPropertyMeta<T> getRdfMeta() {
-		return rdfMeta;
-	}
-
-	boolean validate() throws Exception {
-
-		BeanContext f = beanMeta.ctx;
-		Map<Class<?>,Class<?>[]> typeVarImpls = beanMeta.typeVarImpls;
-
-		if (field == null && getter == null)
-			return false;
-
-		if (field == null && setter == null && f.beansRequireSettersForGetters && ! isConstructorArg)
-			return false;
-
-		if (field != null) {
-			BeanProperty p = field.getAnnotation(BeanProperty.class);
-			rawTypeMeta = f.getClassMeta(p, field.getGenericType(), typeVarImpls);
-			isUri |= (rawTypeMeta.isUri() || field.isAnnotationPresent(com.ibm.juno.core.annotation.URI.class));
-			if (p != null) {
-				filter = getPropertyPojoFilter(p);
-				if (p.properties().length != 0)
-					properties = p.properties();
-				isBeanUri |= p.beanUri();
-			}
-		}
-
-		if (getter != null) {
-			BeanProperty p = getter.getAnnotation(BeanProperty.class);
-			if (rawTypeMeta == null)
-				rawTypeMeta = f.getClassMeta(p, getter.getGenericReturnType(), typeVarImpls);
-			isUri |= (rawTypeMeta.isUri() || getter.isAnnotationPresent(com.ibm.juno.core.annotation.URI.class));
-			if (p != null) {
-				if (filter == null)
-					filter = getPropertyPojoFilter(p);
-				if (properties != null && p.properties().length != 0)
-					properties = p.properties();
-				isBeanUri |= p.beanUri();
-			}
-		}
-
-		if (setter != null) {
-			BeanProperty p = setter.getAnnotation(BeanProperty.class);
-			if (rawTypeMeta == null)
-				rawTypeMeta = f.getClassMeta(p, setter.getGenericParameterTypes()[0], typeVarImpls);
-			isUri |= (rawTypeMeta.isUri() || setter.isAnnotationPresent(com.ibm.juno.core.annotation.URI.class));
-			if (p != null) {
-			if (filter == null)
-				filter = getPropertyPojoFilter(p);
-				if (properties != null && p.properties().length != 0)
-					properties = p.properties();
-				isBeanUri |= p.beanUri();
-			}
-		}
-
-		if (rawTypeMeta == null)
-			return false;
-
-		// Do some annotation validation.
-		Class<?> c = rawTypeMeta.getInnerClass();
-		if (getter != null && ! isParentClass(getter.getReturnType(), c))
-			return false;
-		if (setter != null && ! isParentClass(setter.getParameterTypes()[0], c))
-			return false;
-		if (field != null && ! isParentClass(field.getType(), c))
-			return false;
-
-		htmlMeta = new HtmlBeanPropertyMeta(this);
-		xmlMeta = new XmlBeanPropertyMeta(this);
-		rdfMeta = new RdfBeanPropertyMeta(this);
-
-		return true;
-	}
-
-	private PojoFilter getPropertyPojoFilter(BeanProperty p) throws Exception {
-		Class<? extends PojoFilter> c = p.filter();
-		if (c == PojoFilter.NULL.class)
-			return null;
-		try {
-			PojoFilter f = c.newInstance();
-			f.setBeanContext(this.beanMeta.ctx);
-			return f;
-		} catch (Exception e) {
-			throw new BeanRuntimeException(this.beanMeta.c, "Could not instantiate PojoFilter ''{0}'' for bean property ''{1}''", c.getName(), this.name).initCause(e);
-		}
-	}
-
-	/**
-	 * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.
-	 *
-	 * @param m The bean map to get the filtered value from.
-	 * @return The property value.
-	 */
-	public Object get(BeanMap<T> m) {
-		try {
-			// Read-only beans have their properties stored in a cache until getBean() is called.
-			Object bean = m.bean;
-			if (bean == null)
-				return m.propertyCache.get(name);
-
-			Object o = null;
-
-			if (getter == null && field == null)
-				throw new BeanRuntimeException(beanMeta.c, "Getter or public field not defined on property ''{0}''", name);
-
-			if (getter != null)
-				o = getter.invoke(bean, (Object[])null);
-
-			else if (field != null)
-				o = field.get(bean);
-
-			o = filter(o);
-			if (o == null)
-				return null;
-			if (properties != null) {
-				if (rawTypeMeta.isArray()) {
-					Object[] a = (Object[])o;
-					List l = new ArrayList(a.length);
-					ClassMeta childType = rawTypeMeta.getElementType();
-					for (Object c : a)
-						l.add(applyChildPropertiesFilter(childType, c));
-					return l;
-				} else if (rawTypeMeta.isCollection()) {
-					Collection c = (Collection)o;
-					List l = new ArrayList(c.size());
-					ClassMeta childType = rawTypeMeta.getElementType();
-					for (Object cc : c)
-						l.add(applyChildPropertiesFilter(childType, cc));
-					return l;
-				} else {
-					return applyChildPropertiesFilter(rawTypeMeta, o);
-				}
-			}
-			return o;
-		} catch (SerializeException e) {
-			throw new BeanRuntimeException(e);
-		} catch (Throwable e) {
-			if (beanMeta.ctx.ignoreInvocationExceptionsOnGetters) {
-				if (rawTypeMeta.isPrimitive())
-					return rawTypeMeta.getPrimitiveDefault();
-				return null;
-			}
-			throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);
-		}
-	}
-
-	/**
-	 * Equivalent to calling {@link BeanMap#put(Object, Object)}, but is faster since it avoids
-	 * 	looking up the property meta.
-	 *
-	 * @param m The bean map to set the property value on.
-	 * @param value The value to set.
-	 * @return The previous property value.
-	 * @throws BeanRuntimeException If property could not be set.
-	 */
-	public Object set(BeanMap<T> m, Object value) throws BeanRuntimeException {
-		try {
-			// Comvert to raw form.
-			value = unfilter(value);
-			BeanContext bc = this.beanMeta.ctx;
-
-		if (m.bean == null) {
-
-			// If this bean has subtypes, and we haven't set the subtype yet,
-			// store the property in a temporary cache until the bean can be instantiated.
-			if (m.meta.subTypeIdProperty != null && m.propertyCache == null)
-				m.propertyCache = new TreeMap<String,Object>();
-
-			// Read-only beans get their properties stored in a cache.
-			if (m.propertyCache != null)
-				return m.propertyCache.put(name, value);
-
-			throw new BeanRuntimeException("Non-existent bean instance on bean.");
-		}
-
-			boolean isMap = rawTypeMeta.isMap();
-			boolean isCollection = rawTypeMeta.isCollection();
-
-		if (field == null && setter == null && ! (isMap || isCollection)) {
-			if ((value == null && bc.ignoreUnknownNullBeanProperties) || bc.ignorePropertiesWithoutSetters)
-				return null;
-			throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);
-		}
-
-		Object bean = m.getBean(true);  // Don't use getBean() because it triggers array creation!
-
-		try {
-
-			Object r = beanMeta.ctx.beanMapPutReturnsOldValue || isMap || isCollection ? get(m) : null;
-				Class<?> propertyClass = rawTypeMeta.getInnerClass();
-
-			if (value == null && (isMap || isCollection)) {
-				if (setter != null) {
-					setter.invoke(bean, new Object[] { null });
-					return r;
-				} else if (field != null) {
-					field.set(bean, null);
-					return r;
-				}
-				throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' to null because no setter or public field is defined", name);
-			}
-
-			if (isMap) {
-
-				if (! (value instanceof Map)) {
-					if (value instanceof CharSequence)
-						value = new ObjectMap((CharSequence)value).setBeanContext(beanMeta.ctx);
-					else
-						throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));
-				}
-
-				Map valueMap = (Map)value;
-				Map propMap = (Map)r;
-					ClassMeta<?> valueType = rawTypeMeta.getValueType();
-
-				// If the property type is abstract, then we either need to reuse the existing
-				// map (if it's not null), or try to assign the value directly.
-					if (! rawTypeMeta.canCreateNewInstance()) {
-					if (propMap == null) {
-						if (setter == null && field == null)
-							throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));
-
-						if (propertyClass.isInstance(valueMap)) {
-							if (! valueType.isObject()) {
-								for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {
-									Object v = e.getValue();
-									if (v != null && ! valueType.getInnerClass().isInstance(v))
-										throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the value types in the assigned map do not match the specified ''elementClass'' attribute on the property, and the property value is currently null", name, propertyClass.getName(), findClassName(value));
-								}
-							}
-							if (setter != null)
-								setter.invoke(bean, valueMap);
-							else
-								field.set(bean, valueMap);
-							return r;
-						}
-						throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{2}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));
-					}
-				} else {
-					if (propMap == null) {
-						propMap = (Map)propertyClass.newInstance();
-						if (setter != null)
-							setter.invoke(bean, propMap);
-						else if (field != null)
-							field.set(bean, propMap);
-						else
-							throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined on this property, and the existing property value is null", name, propertyClass.getName(), findClassName(value));
-					} else {
-						propMap.clear();
-					}
-				}
-
-				// Set the values.
-				for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {
-					Object k = e.getKey();
-					Object v = e.getValue();
-					if (! valueType.isObject())
-						v = beanMeta.ctx.convertToType(v, valueType);
-					propMap.put(k, v);
-				}
-
-			} else if (isCollection) {
-
-				if (! (value instanceof Collection)) {
-					if (value instanceof CharSequence)
-						value = new ObjectList((CharSequence)value).setBeanContext(beanMeta.ctx);
-					else
-						throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));
-				}
-
-				Collection valueList = (Collection)value;
-				Collection propList = (Collection)r;
-					ClassMeta elementType = rawTypeMeta.getElementType();
-
-				// If the property type is abstract, then we either need to reuse the existing
-				// collection (if it's not null), or try to assign the value directly.
-					if (! rawTypeMeta.canCreateNewInstance()) {
-					if (propList == null) {
-						if (setter == null && field == null)
-							throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));
-
-						if (propertyClass.isInstance(valueList)) {
-							if (! elementType.isObject()) {
-									List l = new ObjectList(valueList);
-									for (ListIterator<Object> i = l.listIterator(); i.hasNext(); ) {
-										Object v = i.next();
-										if (v != null && (! elementType.getInnerClass().isInstance(v))) {
-											i.set(bc.convertToType(v, elementType));
-										}
-									}
-									valueList = l;
-								}
-							if (setter != null)
-								setter.invoke(bean, valueList);
-							else
-								field.set(bean, valueList);
-							return r;
-						}
-						throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));
-					}
-					propList.clear();
-				} else {
-					if (propList == null) {
-						propList = (Collection)propertyClass.newInstance();
-						if (setter != null)
-							setter.invoke(bean, propList);
-						else if (field != null)
-							field.set(bean, propList);
-						else
-							throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter is defined on this property, and the existing property value is null", name, propertyClass.getName(), findClassName(value));
-					} else {
-						propList.clear();
-					}
-				}
-
-				// Set the values.
-				for (Object v : valueList) {
-					if (! elementType.isObject())
-						v = beanMeta.ctx.convertToType(v, elementType);
-					propList.add(v);
-				}
-
-			} else {
-				if (filter != null && value != null && isParentClass(filter.getFilteredClass(), value.getClass())) {
-						value = filter.unfilter(value, rawTypeMeta);
-				} else {
-						value = beanMeta.ctx.convertToType(value, rawTypeMeta);
-					}
-				if (setter != null)
-					setter.invoke(bean, new Object[] { value });
-				else if (field != null)
-					field.set(bean, value);
-			}
-
-			return r;
-
-		} catch (BeanRuntimeException e) {
-			throw e;
-		} catch (Exception e) {
-			if (beanMeta.ctx.ignoreInvocationExceptionsOnSetters) {
-					if (rawTypeMeta.isPrimitive())
-						return rawTypeMeta.getPrimitiveDefault();
-				return null;
-			}
-			throw new BeanRuntimeException(beanMeta.c, "Error occurred trying to set property ''{0}''", name).initCause(e);
-		}
-		} catch (ParseException e) {
-			throw new BeanRuntimeException(e);
-		}
-	}
-
-	/**
-	 * Sets an array field on this bean.
-	 * Works on both <code>Object</code> and primitive arrays.
-	 *
-	 * @param bean The bean of the field.
-	 * @param l The collection to use to set the array field.
-	 * @throws IllegalArgumentException Thrown by method invocation.
-	 * @throws IllegalAccessException Thrown by method invocation.
-	 * @throws InvocationTargetException Thrown by method invocation.
-	 */
-	protected void setArray(T bean, List l) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
-		Object array = ArrayUtils.toArray(l, this.rawTypeMeta.getElementType().getInnerClass());
-		if (setter != null)
-			setter.invoke(bean, array);
-		else if (field != null)
-			field.set(bean, array);
-		else
-			throw new BeanRuntimeException(beanMeta.c, "Attempt to initialize array property ''{0}'', but no setter or field defined.", name);
-	}
-
-	/**
-	 * Adds a value to a {@link Collection} or array property.
-	 * Note that adding values to an array property is inefficient for large
-	 * arrays since it must copy the array into a larger array on each operation.
-	 *
-	 * @param m The bean of the field being set.
-	 * @param value The value to add to the field.
-	 * @throws BeanRuntimeException If field is not a collection or array.
-	 */
-	public void add(BeanMap<T> m, Object value) throws BeanRuntimeException {
-
-		BeanContext bc = beanMeta.ctx;
-
-		// Read-only beans get their properties stored in a cache.
-		if (m.bean == null) {
-			if (! m.propertyCache.containsKey(name))
-				m.propertyCache.put(name, new ObjectList(bc));
-			((ObjectList)m.propertyCache.get(name)).add(value);
-			return;
-		}
-
-		boolean isCollection = rawTypeMeta.isCollection();
-		boolean isArray = rawTypeMeta.isArray();
-
-		if (! (isCollection || isArray))
-			throw new BeanRuntimeException(beanMeta.c, "Attempt to add element to property ''{0}'' which is not a collection or array", name);
-
-		Object bean = m.getBean(true);
-
-		ClassMeta<?> elementType = rawTypeMeta.getElementType();
-
-		try {
-			Object v = bc.convertToType(value, elementType);
-
-			if (isCollection) {
-				Collection c = null;
-				if (getter != null) {
-					c = (Collection)getter.invoke(bean, (Object[])null);
-				} else if (field != null) {
-					c = (Collection)field.get(bean);
-				} else {
-					throw new BeanRuntimeException(beanMeta.c, "Attempt to append to collection property ''{0}'', but no getter or field defined.", name);
-				}
-
-				if (c != null) {
-					c.add(v);
-					return;
-				}
-
-				if (rawTypeMeta.canCreateNewInstance())
-					c = (Collection)rawTypeMeta.newInstance();
-				else
-					c = new ObjectList(bc);
-
-				c.add(v);
-
-				if (setter != null)
-					setter.invoke(bean, c);
-				else if (field != null)
-					field.set(bean, c);
-				else
-					throw new BeanRuntimeException(beanMeta.c, "Attempt to initialize collection property ''{0}'', but no setter or field defined.", name);
-
-			} else /* isArray() */ {
-
-				if (m.arrayPropertyCache == null)
-					m.arrayPropertyCache = new TreeMap<String,List<?>>();
-
-				List l = m.arrayPropertyCache.get(name);
-				if (l == null) {
-					l = new LinkedList();  // ArrayLists and LinkLists appear to perform equally.
-					m.arrayPropertyCache.put(name, l);
-
-					// Copy any existing array values into the temporary list.
-					Object oldArray;
-				if (getter != null)
-						oldArray = getter.invoke(bean, (Object[])null);
-				else if (field != null)
-						oldArray = field.get(bean);
-				else
-					throw new BeanRuntimeException(beanMeta.c, "Attempt to append to array property ''{0}'', but no getter or field defined.", name);
-					ArrayUtils.copyToList(oldArray, l);
-				}
-
-				// Add new entry to our array.
-				l.add(v);
-			}
-
-		} catch (BeanRuntimeException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new BeanRuntimeException(e);
-		}
-	}
-
-	/**
-	 * Returns all instances of the specified annotation in the hierarchy of this bean property.
-	 * <p>
-	 * Searches through the class hierarchy (e.g. superclasses, interfaces, packages) for all
-	 * instances of the specified annotation.
-	 *
-	 * @param a The class to find annotations for.
-	 * @return A list of annotations ordered in child-to-parent order.  Never <jk>null</jk>.
-	 */
-	public <A extends Annotation> List<A> findAnnotations(Class<A> a) {
-		List<A> l = new LinkedList<A>();
-		if (field != null) {
-			addIfNotNull(l, field.getAnnotation(a));
-			appendAnnotations(a, field.getType(), l);
-		}
-		if (getter != null) {
-			addIfNotNull(l, getter.getAnnotation(a));
-			appendAnnotations(a, getter.getReturnType(), l);
-		}
-		if (setter != null) {
-			addIfNotNull(l, setter.getAnnotation(a));
-			appendAnnotations(a, setter.getReturnType(), l);
-		}
-		appendAnnotations(a, this.getBeanMeta().getClassMeta().getInnerClass(), l);
-		return l;
-	}
-
-	private Object filter(Object o) throws SerializeException {
-		// First use filter defined via @BeanProperty.
-		if (filter != null)
-			return filter.filter(o);
-		if (o == null)
-			return null;
-		// Otherwise, look it up via bean context.
-		if (rawTypeMeta.hasChildPojoFilters()) {
-			Class c = o.getClass();
-			ClassMeta<?> cm = rawTypeMeta.innerClass == c ? rawTypeMeta : beanMeta.ctx.getClassMeta(c);
-			PojoFilter f = cm.getPojoFilter();
-			if (f != null)
-				return f.filter(o);
-		}
-		return o;
-	}
-
-	private Object unfilter(Object o) throws ParseException {
-		if (filter != null)
-			return filter.unfilter(o, rawTypeMeta);
-		if (o == null)
-			return null;
-		if (rawTypeMeta.hasChildPojoFilters()) {
-			Class c = o.getClass();
-			ClassMeta<?> cm = rawTypeMeta.innerClass == c ? rawTypeMeta : beanMeta.ctx.getClassMeta(c);
-			PojoFilter f = cm.getPojoFilter();
-			if (f != null)
-				return f.unfilter(o, rawTypeMeta);
-		}
-		return o;
-	}
-
-	private Object applyChildPropertiesFilter(ClassMeta cm, Object o) {
-		if (o == null)
-			return null;
-		if (cm.isBean())
-			return new BeanMap(o, new BeanMetaFiltered(cm.getBeanMeta(), properties));
-		if (cm.isMap())
-			return new FilteredMap((Map)o, properties);
-		if (cm.isObject()) {
-			if (o instanceof Map)
-				return new FilteredMap((Map)o, properties);
-			BeanMeta bm = this.getBeanMeta().ctx.getBeanMeta(o.getClass());
-			if (bm != null)
-				return new BeanMap(o, new BeanMetaFiltered(cm.getBeanMeta(), properties));
-		}
-		return o;
-	}
-
-	private String findClassName(Object o) {
-		if (o == null)
-			return null;
-		if (o instanceof Class)
-			return ((Class<?>)o).getName();
-		return o.getClass().getName();
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return name + ": " + this.rawTypeMeta.getInnerClass().getName() + ", field=["+field+"], getter=["+getter+"], setter=["+setter+"]";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanProxyInvocationHandler.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanProxyInvocationHandler.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanProxyInvocationHandler.class
deleted file mode 100755
index 4b8f78d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanProxyInvocationHandler.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/BeanProxyInvocationHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanProxyInvocationHandler.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanProxyInvocationHandler.java
deleted file mode 100755
index 3e628aa..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanProxyInvocationHandler.java
+++ /dev/null
@@ -1,78 +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;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-/**
- * Provides an {@link InvocationHandler} for creating beans from bean interfaces.
- * <p>
- * 	If the {@code useInterfaceProxies} setting is enabled in {@link BeanContext}, this
- * 	is the class that creates instances of beans from interfaces.
- *
- * @author Barry M. Caceres
- * @param <T> The interface class
- */
-public class BeanProxyInvocationHandler<T> implements InvocationHandler {
-
-	private final BeanMeta<T> meta;						// The BeanMeta for this instance
-	private Map<String, Object> beanProps;		// The map of property names to bean property values.
-
-	/**
-	 * Constructs with the specified {@link BeanMeta}.
-	 *
-	 * @param meta The bean meta data.
-	 */
-	public BeanProxyInvocationHandler(BeanMeta<T> meta) {
-		this.meta = meta;
-		this.beanProps = new HashMap<String, Object>();
-	}
-
-	/**
-	 * Implemented to handle the method called.
-	 */
-	@Override /* InvocationHandler */
-	public Object invoke(Object proxy, Method method, Object[] args) {
-		Class<?>[] paramTypes = method.getParameterTypes();
-		if (method.getName().equals("equals") && (paramTypes.length == 1) && (paramTypes[0] == java.lang.Object.class)) {
-			Object arg = args[0];
-			if (arg == null)
-				return false;
-			if (proxy == arg)
-				return true;
-			if (proxy.getClass() == arg.getClass()) {
-				InvocationHandler ih = Proxy.getInvocationHandler(arg);
-				if (ih instanceof BeanProxyInvocationHandler) {
-					return this.beanProps.equals(((BeanProxyInvocationHandler<?>)ih).beanProps);
-				}
-			}
-			BeanMap<Object> bean = this.meta.ctx.forBean(arg);
-			return this.beanProps.equals(bean);
-		}
-
-		if (method.getName().equals("hashCode") && (paramTypes.length == 0))
-			return Integer.valueOf(this.beanProps.hashCode());
-
-		if (method.getName().equals("toString") && (paramTypes.length == 0))
-			return this.beanProps.toString();
-
-		String prop = this.meta.getterProps.get(method);
-		if (prop != null)
-			return this.beanProps.get(prop);
-
-		prop = this.meta.setterProps.get(method);
-		if (prop != null) {
-			this.beanProps.put(prop, args[0]);
-			return null;
-		}
-
-		throw new UnsupportedOperationException("Unsupported bean method.  method=[ " + method + " ]");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanRuntimeException.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanRuntimeException.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanRuntimeException.class
deleted file mode 100755
index e3247f1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanRuntimeException.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/BeanRuntimeException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanRuntimeException.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanRuntimeException.java
deleted file mode 100755
index f931e98..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/BeanRuntimeException.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core;
-
-import java.text.*;
-
-/**
- * General bean runtime operation exception.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class BeanRuntimeException extends RuntimeException {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param message The error message.
-	 */
-	public BeanRuntimeException(String message) {
-		super(message);
-	}
-
-	/**
-	 * Shortcut for calling <code><jk>new</jk> BeanRuntimeException(String.format(c.getName() + <js>": "</js> + message, args));</code>
-	 *
-	 * @param c The class name of the bean that caused the exception.
-	 * @param message The error message.
-	 * @param args Arguments passed in to the {@code String.format()} method.
-	 */
-	public BeanRuntimeException(Class<?> c, String message, Object... args) {
-		this(c.getName() + ": " + (args.length == 0 ? message : MessageFormat.format(message, args)));
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param cause The initial cause of the exception.
-	 */
-	public BeanRuntimeException(Throwable cause) {
-		super(cause == null ? null : cause.getLocalizedMessage());
-		initCause(cause);
-	}
-
-	/**
-	 * Sets the inner cause for this exception.
-	 *
-	 * @param cause The inner cause.
-	 * @return This object (for method chaining).
-	 */
-	@Override /* Throwable */
-	public synchronized BeanRuntimeException initCause(Throwable cause) {
-		super.initCause(cause);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta$1.class
deleted file mode 100755
index 6ff209f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta$1.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/ClassMeta$ClassCategory.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta$ClassCategory.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta$ClassCategory.class
deleted file mode 100755
index 28f91ed..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta$ClassCategory.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/ClassMeta.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta.class
deleted file mode 100755
index 7e0e41a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta.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/ClassMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta.java
deleted file mode 100755
index a95bfdb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ClassMeta.java
+++ /dev/null
@@ -1,1262 +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;
-
-import static com.ibm.juno.core.ClassMeta.ClassCategory.*;
-import static com.ibm.juno.core.ClassMeta.ClassCategory.URI;
-import static com.ibm.juno.core.utils.ClassUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.lang.reflect.Proxy;
-import java.net.*;
-import java.net.URI;
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.filter.Filter;
-import com.ibm.juno.core.html.*;
-import com.ibm.juno.core.jena.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.urlencoding.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * A wrapper class around the {@link Class} object that provides cached information
- * about that class.
- *
- * <p>
- * 	Instances of this class can be created through the {@link BeanContext#getClassMeta(Class)} method.
- * <p>
- * 	The {@link BeanContext} class will cache and reuse instances of this class except for the following class types:
- * <ul>
- * 	<li>Arrays
- * 	<li>Maps with non-Object key/values.
- * 	<li>Collections with non-Object key/values.
- * </ul>
- * <p>
- * 	This class is tied to the {@link BeanContext} class because it's that class that makes the determination
- * 	of what is a bean.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <T> The class type of the wrapped class.
- */
-@Bean(properties={"innerClass","classCategory","elementType","keyType","valueType","notABeanReason","initException","beanMeta"})
-public final class ClassMeta<T> implements Type {
-
-	/** Class categories. */
-	enum ClassCategory {
-		MAP, COLLECTION, NUMBER, DECIMAL, BOOLEAN, CHAR, DATE, ARRAY, ENUM, BEAN, UNKNOWN, OTHER, CHARSEQ, STR, OBJ, URI, BEANMAP, READER, INPUTSTREAM
-	}
-
-	final BeanContext beanContext;                    // The bean context that created this object.
-	ClassCategory classCategory = UNKNOWN;            // The class category.
-	final Class<T> innerClass;                        // The class being wrapped.
-	ClassMeta<?>
-		filteredClassMeta,                             // The filtered class type (in class has filter associated with it.
-		elementType = null,                            // If ARRAY or COLLECTION, the element class type.
-		keyType = null,                                // If MAP, the key class type.
-		valueType = null;                              // If MAP, the value class type.
-	InvocationHandler invocationHandler;              // The invocation handler for this class (if it has one).
-	volatile BeanMeta<T> beanMeta;                    // The bean meta for this bean class (if it's a bean).
-	Method valueOfMethod;                             // The static valueOf(String) or fromString(String) method (if it has one).
-	Constructor<? extends T> noArgConstructor;        // The no-arg constructor for this class (if it has one).
-	Constructor<T> stringConstructor;                 // The X(String) constructor (if it has one).
-	Constructor<T> objectMapConstructor;              // The X(ObjectMap) constructor (if it has one).
-	Method toObjectMapMethod;                         // The toObjectMap() method (if it has one).
-	Method namePropertyMethod;                        // The method to set the name on an object (if it has one).
-	Method parentPropertyMethod;                      // The method to set the parent on an object (if it has one).
-	String notABeanReason;                            // If this isn't a bean, the reason why.
-	PojoFilter<T,?> pojoFilter;                       // The object filter associated with this bean (if it has one).
-	BeanFilter<? extends T> beanFilter;               // The bean filter associated with this bean (if it has one).
-	boolean
-		isDelegate,                                    // True if this class extends Delegate.
-		isAbstract,                                    // True if this class is abstract.
-		isMemberClass;                                 // True if this is a non-static member class.
-
-	private XmlClassMeta xmlMeta;                      // Class-related metadata from the @Xml annotation found on this class or parent class.
-	private JsonClassMeta jsonMeta;                    // Class-related metadata from the @Json annotation found on this class or parent class.
-	private HtmlClassMeta htmlMeta;                    // Class-related metadata from the @Html annotation found on this class or parent class.
-	private UrlEncodingClassMeta urlEncodingMeta;      // Class-related metadata from the @UrlEncoding annotation found on this class or parent class.
-	private RdfClassMeta rdfMeta;                      // Class-related metadata from the @Rdf annotation found on this class or parent class.
-
-	private Throwable initException;                  // Any exceptions thrown in the init() method.
-	private boolean hasChildPojoFilters;              // True if this class or any subclass of this class has a PojoFilter associated with it.
-	private Object primitiveDefault;                  // Default value for primitive type classes.
-	private Map<String,Method> remoteableMethods,     // Methods annotated with @Remoteable.  Contains all public methods if class is annotated with @Remotable.
-		publicMethods;                                 // All public methods, including static methods.
-
-	private static final Boolean BOOLEAN_DEFAULT = false;
-	private static final Character CHARACTER_DEFAULT = (char)0;
-	private static final Short SHORT_DEFAULT = (short)0;
-	private static final Integer INTEGER_DEFAULT = 0;
-	private static final Long LONG_DEFAULT = 0l;
-	private static final Float FLOAT_DEFAULT = 0f;
-	private static final Double DOUBLE_DEFAULT = 0d;
-	private static final Byte BYTE_DEFAULT = (byte)0;
-
-	/**
-	 * Shortcut for calling <code>ClassMeta(innerClass, beanContext, <jk>false</jk>)</code>.
-	 */
-	ClassMeta(Class<T> innerClass, BeanContext beanContext) {
-		this(innerClass, beanContext, false);
-	}
-
-	/**
-	 * Construct a new {@code ClassMeta} based on the specified {@link Class}.
-	 *
-	 * @param innerClass The class being wrapped.
-	 * @param beanContext The bean context that created this object.
-	 * @param delayedInit Don't call init() in constructor.
-	 * 	Used for delayed initialization when the possibility of class reference loops exist.
-	 */
-	ClassMeta(Class<T> innerClass, BeanContext beanContext, boolean delayedInit) {
-		this.innerClass = innerClass;
-		this.beanContext = beanContext;
-		if (! delayedInit)
-			init();
-	}
-
-
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	ClassMeta init() {
-
-		try {
-			Filter filter = findFilter(beanContext);
-			if (filter != null) {
-				if (filter.getType() == Filter.FilterType.BEAN)
-					beanFilter = (BeanFilter)filter;
-				else
-					pojoFilter = (PojoFilter)filter;
-				filteredClassMeta = (pojoFilter == null ? this : beanContext.getClassMeta(pojoFilter.getFilteredClass()));
-			} else {
-				filteredClassMeta = this;
-			}
-
-			if (innerClass != Object.class) {
-				this.noArgConstructor = beanContext.getImplClassConstructor(innerClass, Visibility.PUBLIC);
-				if (noArgConstructor == null)
-					noArgConstructor = findNoArgConstructor(innerClass, Visibility.PUBLIC);
-			}
-
-			this.hasChildPojoFilters = beanContext.hasChildPojoFilters(innerClass);
-
-			this.xmlMeta = new XmlClassMeta(innerClass);
-			this.jsonMeta = new JsonClassMeta(innerClass);
-			this.htmlMeta = new HtmlClassMeta(innerClass);
-			this.urlEncodingMeta = new UrlEncodingClassMeta(innerClass);
-			this.rdfMeta = new RdfClassMeta(innerClass);
-
-			Class c = innerClass;
-
-			if (c.isPrimitive()) {
-				if (c == Boolean.TYPE)
-					classCategory = BOOLEAN;
-				else if (c == Byte.TYPE || c == Short.TYPE || c == Integer.TYPE || c == Long.TYPE || c == Float.TYPE || c == Double.TYPE) {
-					if (c == Float.TYPE || c == Double.TYPE)
-						classCategory = DECIMAL;
-					else
-						classCategory = NUMBER;
-				}
-				else if (c == Character.TYPE)
-					classCategory = CHAR;
-			} else {
-				if (isParentClass(Delegate.class, c))
-					isDelegate = true;
-				if (c == Object.class)
-					classCategory = OBJ;
-				else if (c.isEnum())
-					classCategory = ENUM;
-				else if (isParentClass(CharSequence.class, c)) {
-					if (c.equals(String.class))
-						classCategory = STR;
-					else
-						classCategory = CHARSEQ;
-				}
-				else if (isParentClass(Number.class, c)) {
-					if (isParentClass(Float.class, c) || isParentClass(Double.class, c))
-						classCategory = DECIMAL;
-					else
-						classCategory = NUMBER;
-				}
-				else if (isParentClass(Collection.class, c))
-					classCategory = COLLECTION;
-				else if (isParentClass(Map.class, c)) {
-					if (isParentClass(BeanMap.class, c))
-						classCategory = BEANMAP;
-					else
-						classCategory = MAP;
-				}
-				else if (c == Character.class)
-					classCategory = CHAR;
-				else if (c == Boolean.class)
-					classCategory = BOOLEAN;
-				else if (isParentClass(Date.class, c) || isParentClass(Calendar.class, c))
-					classCategory = DATE;
-				else if (c.isArray())
-					classCategory = ARRAY;
-				else if (isParentClass(URL.class, c) || isParentClass(URI.class, c) || c.isAnnotationPresent(com.ibm.juno.core.annotation.URI.class))
-					classCategory = URI;
-				else if (isParentClass(Reader.class, c))
-					classCategory = READER;
-				else if (isParentClass(InputStream.class, c))
-					classCategory = INPUTSTREAM;
-			}
-
-			isMemberClass = c.isMemberClass() && ! Modifier.isStatic(c.getModifiers());
-
-			// Find static fromString(String) or equivalent method.
-			// fromString() must be checked before valueOf() so that Enum classes can create their own
-			//		specialized fromString() methods to override the behavior of Enum.valueOf(String).
-			// valueOf() is used by enums.
-			// parse() is used by the java logging Level class.
-			// forName() is used by Class and Charset
-			for (String methodName : new String[]{"fromString","valueOf","parse","parseString","forName"}) {
-				if (this.valueOfMethod == null) {
-			for (Method m : c.getMethods()) {
-				int mod = m.getModifiers();
-				if (Modifier.isStatic(mod) && Modifier.isPublic(mod)) {
-					String mName = m.getName();
-							if (mName.equals(methodName) && m.getReturnType() == innerClass) {
-						Class<?>[] args = m.getParameterTypes();
-						if (args.length == 1 && args[0] == String.class) {
-							this.valueOfMethod = m;
-							break;
-						}
-					}
-				}
-			}
-				}
-			}
-
-			// Find toObjectMap() method if present.
-			for (Method m : c.getMethods()) {
-				int mod = m.getModifiers();
-				if (Modifier.isPublic(mod) && ! Modifier.isStatic(mod)) {
-					String mName = m.getName();
-					if (mName.equals("toObjectMap")) {
-						if (m.getParameterTypes().length == 0 && m.getReturnType() == ObjectMap.class) {
-							this.toObjectMapMethod = m;
-							break;
-						}
-					}
-				}
-			}
-
-			// Find @NameProperty and @ParentProperty methods if present.
-			for (Method m : c.getDeclaredMethods()) {
-				if (m.isAnnotationPresent(ParentProperty.class) && m.getParameterTypes().length == 1) {
-					m.setAccessible(true);
-					parentPropertyMethod = m;
-				}
-				if (m.isAnnotationPresent(NameProperty.class) && m.getParameterTypes().length == 1) {
-					m.setAccessible(true);
-					namePropertyMethod = m;
-				}
-			}
-
-			// Find constructor(String) method if present.
-			for (Constructor cs : c.getConstructors()) {
-				int mod = cs.getModifiers();
-				if (Modifier.isPublic(mod)) {
-					Class<?>[] args = cs.getParameterTypes();
-					if (args.length == (isMemberClass ? 2 : 1)) {
-						Class<?> arg = args[(isMemberClass ? 1 : 0)];
-						if (arg == String.class)
-						this.stringConstructor = cs;
-						else if (ObjectMap.class.isAssignableFrom(arg))
-							this.objectMapConstructor = cs;
-					}
-				}
-			}
-
-			// Note:  Primitive types are normally abstract.
-			isAbstract = Modifier.isAbstract(c.getModifiers()) && ! isPrimitive();
-
-			// If this is an array, get the element type.
-			if (classCategory == ARRAY)
-				elementType = beanContext.getClassMeta(innerClass.getComponentType());
-
-			// If this is a MAP, see if it's parameterized (e.g. AddressBook extends HashMap<String,Person>)
-			else if (classCategory == MAP) {
-				ClassMeta[] parameters = beanContext.findParameters(innerClass, innerClass);
-				if (parameters != null && parameters.length == 2) {
-					keyType = parameters[0];
-					valueType = parameters[1];
-				} else {
-					keyType = beanContext.getClassMeta(Object.class);
-					valueType = beanContext.getClassMeta(Object.class);
-				}
-			}
-
-			// If this is a COLLECTION, see if it's parameterized (e.g. AddressBook extends LinkedList<Person>)
-			else if (classCategory == COLLECTION) {
-				ClassMeta[] parameters = beanContext.findParameters(innerClass, innerClass);
-				if (parameters != null && parameters.length == 1) {
-					elementType = parameters[0];
-				} else {
-					elementType = beanContext.getClassMeta(Object.class);
-				}
-			}
-
-			// If the category is unknown, see if it's a bean.
-			// Note that this needs to be done after all other initialization has been done.
-			else if (classCategory == UNKNOWN) {
-
-				BeanMeta newMeta = new BeanMeta(this, beanContext, beanFilter);
-				try {
-					notABeanReason = newMeta.init();
-				} catch (RuntimeException e) {
-					notABeanReason = e.getMessage();
-					throw e;
-				}
-				if (notABeanReason != null)
-					classCategory = OTHER;
-				else {
-					beanMeta = newMeta;
-					classCategory = BEAN;
-				}
-			}
-
-			if (c.isPrimitive()) {
-				if (c == Boolean.TYPE)
-					primitiveDefault = BOOLEAN_DEFAULT;
-				else if (c == Character.TYPE)
-					primitiveDefault = CHARACTER_DEFAULT;
-				else if (c == Short.TYPE)
-					primitiveDefault = SHORT_DEFAULT;
-				else if (c == Integer.TYPE)
-					primitiveDefault = INTEGER_DEFAULT;
-				else if (c == Long.TYPE)
-					primitiveDefault = LONG_DEFAULT;
-				else if (c == Float.TYPE)
-					primitiveDefault = FLOAT_DEFAULT;
-				else if (c == Double.TYPE)
-					primitiveDefault = DOUBLE_DEFAULT;
-				else if (c == Byte.TYPE)
-					primitiveDefault = BYTE_DEFAULT;
-			} else {
-				if (c == Boolean.class)
-					primitiveDefault = BOOLEAN_DEFAULT;
-				else if (c == Character.class)
-					primitiveDefault = CHARACTER_DEFAULT;
-				else if (c == Short.class)
-					primitiveDefault = SHORT_DEFAULT;
-				else if (c == Integer.class)
-					primitiveDefault = INTEGER_DEFAULT;
-				else if (c == Long.class)
-					primitiveDefault = LONG_DEFAULT;
-				else if (c == Float.class)
-					primitiveDefault = FLOAT_DEFAULT;
-				else if (c == Double.class)
-					primitiveDefault = DOUBLE_DEFAULT;
-				else if (c == Byte.class)
-					primitiveDefault = BYTE_DEFAULT;
-			}
-		} catch (NoClassDefFoundError e) {
-			this.initException = e;
-		} catch (RuntimeException e) {
-			this.initException = e;
-			throw e;
-		}
-
-		if (innerClass.getAnnotation(Remoteable.class) != null) {
-			remoteableMethods = getPublicMethods();
-		} else {
-			for (Method m : innerClass.getMethods()) {
-				if (m.getAnnotation(Remoteable.class) != null) {
-					if (remoteableMethods == null)
-						remoteableMethods = new LinkedHashMap<String,Method>();
-					remoteableMethods.put(ClassUtils.getMethodSignature(m), m);
-				}
-			}
-		}
-		if (remoteableMethods != null)
-			remoteableMethods = Collections.unmodifiableMap(remoteableMethods);
-
-		return this;
-	}
-
-	/**
-	 * Returns the category of this class.
-	 *
-	 * @return The category of this class.
-	 */
-	public ClassCategory getClassCategory() {
-		return classCategory;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a superclass of or the same as the specified class.
-	 *
-	 * @param c The comparison class.
-	 * @return <jk>true</jk> if this class is a superclass of or the same as the specified class.
-	 */
-	public boolean isAssignableFrom(Class<?> c) {
-		return isParentClass(innerClass, c);
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class as subtypes defined through {@link Bean#subTypes} or {@link BeanFilter#getSubTypes()}.
-	 *
-	 * @return <jk>true</jk> if this class has subtypes.
-	 */
-	public boolean hasSubTypes() {
-		return beanFilter != null && beanFilter.getSubTypeProperty() != null;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a subclass of or the same as the specified class.
-	 *
-	 * @param c The comparison class.
-	 * @return <jk>true</jk> if this class is a subclass of or the same as the specified class.
-	 */
-	public boolean isInstanceOf(Class<?> c) {
-		return isParentClass(c, innerClass);
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class or any child classes has a {@link PojoFilter} associated with it.
-	 * <p>
-	 * Used when filtering bean properties to prevent having to look up filters if we know for certain
-	 * that no filters are associated with a bean property.
-	 *
-	 * @return <jk>true</jk> if this class or any child classes has a {@link PojoFilter} associated with it.
-	 */
-	public boolean hasChildPojoFilters() {
-		return hasChildPojoFilters;
-	}
-
-	private Filter findFilter(BeanContext context) {
-		try {
-			com.ibm.juno.core.annotation.Filter b = innerClass.getAnnotation(com.ibm.juno.core.annotation.Filter.class);
-			if (b != null) {
-				Class<? extends Filter> c = b.value();
-				if (c != Filter.NULL.class) {
-					Filter f = c.newInstance();
-					f.setBeanContext(context);
-					return f;
-				}
-			}
-			if (context == null)
-				return null;
-			Filter f = context.findBeanFilter(innerClass);
-			if (f != null)
-				return f;
-			f = context.findPojoFilter(innerClass);
-			if (f != null)
-				return f;
-			List<Bean> ba = ReflectionUtils.findAnnotations(Bean.class, innerClass);
-			if (! ba.isEmpty())
-				f = new AnnotationBeanFilter<T>(innerClass, ba);
-			return f;
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * Locates the no-arg constructor for the specified class.
-	 * Constructor must match the visibility requirements specified by parameter 'v'.
-	 * If class is abstract, always returns <jk>null</jk>.
-	 * Note that this also returns the 1-arg constructor for non-static member classes.
-	 *
-	 * @param c The class from which to locate the no-arg constructor.
-	 * @param v The minimum visibility.
-	 * @return The constructor, or <jk>null</jk> if no no-arg constructor exists with the required visibility.
-	 */
-	@SuppressWarnings({"rawtypes","unchecked"})
-	protected static <T> Constructor<? extends T> findNoArgConstructor(Class<T> c, Visibility v) {
-		int mod = c.getModifiers();
-		if (Modifier.isAbstract(mod))
-			return null;
-		boolean isMemberClass = c.isMemberClass() && ! Modifier.isStatic(mod);
-		for (Constructor cc : c.getConstructors()) {
-			mod = cc.getModifiers();
-			if (cc.getParameterTypes().length == (isMemberClass ? 1 : 0) && v.isVisible(mod))
-				return v.filter(cc);
-		}
-		return null;
-	}
-
-	/**
-	 * Set element type on non-cached <code>Collection</code> types.
-	 *
-	 * @param elementType The class type for elements in the collection class represented by this metadata.
-	 * @return This object (for method chaining).
-	 */
-	protected ClassMeta<T> setElementType(ClassMeta<?> elementType) {
-		this.elementType = elementType;
-		return this;
-	}
-
-	/**
-	 * Set key type on non-cached <code>Map</code> types.
-	 *
-	 * @param keyType The class type for keys in the map class represented by this metadata.
-	 * @return This object (for method chaining).
-	 */
-	protected ClassMeta<T> setKeyType(ClassMeta<?> keyType) {
-		this.keyType = keyType;
-		return this;
-	}
-
-	/**
-	 * Set value type on non-cached <code>Map</code> types.
-	 *
-	 * @param valueType The class type for values in the map class represented by this metadata.
-	 * @return This object (for method chaining).
-	 */
-	protected ClassMeta<T> setValueType(ClassMeta<?> valueType) {
-		this.valueType = valueType;
-		return this;
-	}
-
-	/**
-	 * Returns the {@link Class} object that this class type wraps.
-	 *
-	 * @return The wrapped class object.
-	 */
-	public Class<T> getInnerClass() {
-		return innerClass;
-	}
-
-	/**
-	 * Returns the generalized form of this class if there is an {@link PojoFilter} associated with it.
-	 *
-	 * @return The filtered class type, or this object if no filter is associated with the class.
-	 */
-	@BeanIgnore
-	public ClassMeta<?> getFilteredClassMeta() {
-		return filteredClassMeta;
-	}
-
-	/**
-	 * For array and {@code Collection} types, returns the class type of the components of the array or {@code Collection}.
-	 *
-	 * @return The element class type, or <jk>null</jk> if this class is not an array or Collection.
-	 */
-	public ClassMeta<?> getElementType() {
-		return elementType;
-	}
-
-	/**
-	 * For {@code Map} types, returns the class type of the keys of the {@code Map}.
-	 *
-	 * @return The key class type, or <jk>null</jk> if this class is not a Map.
-	 */
-	public ClassMeta<?> getKeyType() {
-		return keyType;
-	}
-
-	/**
-	 * For {@code Map} types, returns the class type of the values of the {@code Map}.
-	 *
-	 * @return The value class type, or <jk>null</jk> if this class is not a Map.
-	 */
-	public ClassMeta<?> getValueType() {
-		return valueType;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class implements {@link Delegate}, meaning
-	 * 	it's a representation of some other object.
-	 *
-	 * @return <jk>true</jk> if this class implements {@link Delegate}.
-	 */
-	public boolean isDelegate() {
-		return isDelegate;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a subclass of {@link Map}.
-	 *
-	 * @return <jk>true</jk> if this class is a subclass of {@link Map}.
-	 */
-	public boolean isMap() {
-		return classCategory == MAP || classCategory == BEANMAP;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a subclass of {@link BeanMap}.
-	 *
-	 * @return <jk>true</jk> if this class is a subclass of {@link BeanMap}.
-	 */
-	public boolean isBeanMap() {
-		return classCategory == BEANMAP;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a subclass of {@link Collection}.
-	 *
-	 * @return <jk>true</jk> if this class is a subclass of {@link Collection}.
-	 */
-	public boolean isCollection() {
-		return classCategory == COLLECTION;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is an {@link Enum}.
-	 *
-	 * @return <jk>true</jk> if this class is an {@link Enum}.
-	 */
-	public boolean isEnum() {
-		return classCategory == ENUM;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is an array.
-	 *
-	 * @return <jk>true</jk> if this class is an array.
-	 */
-	public boolean isArray() {
-		return classCategory == ARRAY;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a bean.
-	 *
-	 * @return <jk>true</jk> if this class is a bean.
-	 */
-	public boolean isBean() {
-		return classCategory == BEAN;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is {@link Object}.
-	 *
-	 * @return <jk>true</jk> if this class is {@link Object}.
-	 */
-	public boolean isObject() {
-		return classCategory == OBJ;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is not {@link Object}.
-	 *
-	 * @return <jk>true</jk> if this class is not {@link Object}.
-	 */
-	public boolean isNotObject() {
-		return classCategory != OBJ;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a subclass of {@link Number}.
-	 *
-	 * @return <jk>true</jk> if this class is a subclass of {@link Number}.
-	 */
-	public boolean isNumber() {
-		return classCategory == NUMBER || classCategory == DECIMAL;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a subclass of {@link Float} or {@link Double}.
-	 *
-	 * @return <jk>true</jk> if this class is a subclass of {@link Float} or {@link Double}.
-	 */
-	public boolean isDecimal() {
-		return classCategory == DECIMAL;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a {@link Boolean}.
-	 *
-	 * @return <jk>true</jk> if this class is a {@link Boolean}.
-	 */
-	public boolean isBoolean() {
-		return classCategory == BOOLEAN;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a subclass of {@link CharSequence}.
-	 *
-	 * @return <jk>true</jk> if this class is a subclass of {@link CharSequence}.
-	 */
-	public boolean isCharSequence() {
-		return classCategory == STR || classCategory == CHARSEQ;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a {@link String}.
-	 *
-	 * @return <jk>true</jk> if this class is a {@link String}.
-	 */
-	public boolean isString() {
-		return classCategory == STR;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a {@link Character}.
-	 *
-	 * @return <jk>true</jk> if this class is a {@link Character}.
-	 */
-	public boolean isChar() {
-		return classCategory == CHAR;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a primitive.
-	 *
-	 * @return <jk>true</jk> if this class is a primitive.
-	 */
-	public boolean isPrimitive() {
-		return innerClass.isPrimitive();
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a {@link Date} or {@link Calendar}.
-	 *
-	 * @return <jk>true</jk> if this class is a {@link Date} or {@link Calendar}.
-	 */
-	public boolean isDate() {
-		return classCategory == DATE;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a {@link URI} or {@link URL}.
-	 *
-	 * @return <jk>true</jk> if this class is a {@link URI} or {@link URL}.
-	 */
-	public boolean isUri() {
-		return classCategory == URI;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is a {@link Reader}.
-	 *
-	 * @return <jk>true</jk> if this class is a {@link Reader}.
-	 */
-	public boolean isReader() {
-		return classCategory == READER;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is an {@link InputStream}.
-	 *
-	 * @return <jk>true</jk> if this class is an {@link InputStream}.
-	 */
-	public boolean isInputStream() {
-		return classCategory == INPUTSTREAM;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if instance of this object can be <jk>null</jk>.
-	 * <p>
-	 * 	Objects can be <jk>null</jk>, but primitives cannot, except for chars which can be represented
-	 * 	by <code>(<jk>char</jk>)0</code>.
-	 *
-	 * @return <jk>true</jk> if instance of this class can be null.
-	 */
-	public boolean isNullable() {
-		if (innerClass.isPrimitive())
-			return classCategory == CHAR;
-		return true;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class or one of it's methods are annotated with {@link Remoteable @Remotable}.
-	 *
-	 * @return <jk>true</jk> if this class is remoteable.
-	 */
-	public boolean isRemoteable() {
-		return remoteableMethods != null;
-	}
-
-	/**
-	 * All methods on this class annotated with {@link Remoteable @Remotable}, or all public methods if class is annotated.
-	 * Keys are method signatures (see {@link ClassUtils#getMethodSignature(Method)})
-	 *
-	 * @return All remoteable methods on this class.
-	 */
-	public Map<String,Method> getRemoteableMethods() {
-		return remoteableMethods;
-	}
-
-	/**
-	 * All public methods on this class including static methods.
-	 * Keys are method signatures (see {@link ClassUtils#getMethodSignature(Method)}).
-	 *
-	 * @return The public methods on this class.
-	 */
-	public Map<String,Method> getPublicMethods() {
-		if (publicMethods == null) {
-			synchronized(this) {
-				Map<String,Method> map = new LinkedHashMap<String,Method>();
-				for (Method m : innerClass.getMethods())
-					if (Modifier.isPublic(m.getModifiers()))
-						map.put(ClassUtils.getMethodSignature(m), m);
-				publicMethods = Collections.unmodifiableMap(map);
-			}
-		}
-		return publicMethods;
-	}
-
-	/**
-	 * Returns the {@link PojoFilter} associated with this class.
-	 *
-	 * @return The {@link PojoFilter} associated with this class, or <jk>null</jk> if there is no POJO filter
-	 * 	associated with this class.
-	 */
-	public PojoFilter<T,?> getPojoFilter() {
-		return pojoFilter;
-	}
-
-	/**
-	 * Returns the {@link BeanMeta} associated with this class.
-	 *
-	 * @return The {@link BeanMeta} associated with this class, or <jk>null</jk> if there is no bean meta
-	 * 	associated with this class.
-	 */
-	public BeanMeta<T> getBeanMeta() {
-		return beanMeta;
-	}
-
-	/**
-	 * Returns the no-arg constructor for this class.
-	 *
-	 * @return The no-arg constructor for this class, or <jk>null</jk> if it does not exist.
-	 */
-	public Constructor<? extends T> getConstructor() {
-		return noArgConstructor;
-	}
-
-	/**
-	 * Returns the <ja>@Xml</ja> annotation defined on this class, superclass, or interface of this class.
-	 *
-	 * @return XML metadata on this class.  Never <jk>null</jk>.
-	 */
-	public XmlClassMeta getXmlMeta() {
-		return xmlMeta;
-	}
-
-	/**
-	 * Returns metadata from the <ja>@Json</ja> annotation defined on this class, superclass, or interface of this class.
-	 *
-	 * @return JSON metadata on this class.  Never <jk>null</jk>.
-	 */
-	public JsonClassMeta getJsonMeta() {
-		return jsonMeta;
-	}
-
-	/**
-	 * Returns metadata from the <ja>@Html</ja> annotation defined on this class, superclass, or interface of this class.
-	 *
-	 * @return HTML metadata on this class.  Never <jk>null</jk>.
-	 */
-	public HtmlClassMeta getHtmlMeta() {
-		return htmlMeta;
-	}
-
-	/**
-	 * Returns metadata from the <ja>@UrlEncoding</ja> annotation defined on this class, superclass, or interface of this class.
-	 *
-	 * @return URL-Encoding metadata on this class.  Never <jk>null</jk>.
-	 */
-	public UrlEncodingClassMeta getUrlEncodingMeta() {
-		return urlEncodingMeta;
-	}
-
-	/**
-	 * Returns metadata from the <ja>@Rdf</ja> annotation defined on this class, superclass, or interface of this class.
-	 *
-	 * @return RDF metadata on this class.  Never <jk>null</jk>.
-	 */
-	public RdfClassMeta getRdfMeta() {
-		return rdfMeta;
-	}
-
-	/**
-	 * Returns the interface proxy invocation handler for this class.
-	 *
-	 * @return The interface proxy invocation handler, or <jk>null</jk> if it does not exist.
-	 */
-	public InvocationHandler getProxyInvocationHandler() {
-		if (invocationHandler == null && beanMeta != null && beanContext.useInterfaceProxies && innerClass.isInterface())
-			invocationHandler = new BeanProxyInvocationHandler<T>(beanMeta);
-		return invocationHandler;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class has a no-arg constructor or invocation handler.
-	 *
-	 * @return <jk>true</jk> if a new instance of this class can be constructed.
-	 */
-	public boolean canCreateNewInstance() {
-		if (isMemberClass)
-			return false;
-		if (noArgConstructor != null)
-			return true;
-		if (getProxyInvocationHandler() != null)
-			return true;
-		if (isArray() && elementType.canCreateNewInstance())
-			return true;
-		return false;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class has a no-arg constructor or invocation handler.
-	 * Returns <jk>false</jk> if this is a non-static member class and the outer object does not match
-	 * 	the class type of the defining class.
-	 *
-	 * @param outer The outer class object for non-static member classes.  Can be <jk>null</jk> for non-member or static classes.
-	 * @return <jk>true</jk> if a new instance of this class can be created within the context of the specified outer object.
-	 */
-	public boolean canCreateNewInstance(Object outer) {
-		if (isMemberClass)
-			return outer != null && noArgConstructor != null && noArgConstructor.getParameterTypes()[0] == outer.getClass();
-		return canCreateNewInstance();
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class can be instantiated as a bean.
-	 * Returns <jk>false</jk> if this is a non-static member class and the outer object does not match
-	 * 	the class type of the defining class.
-	 *
-	 * @param outer The outer class object for non-static member classes.  Can be <jk>null</jk> for non-member or static classes.
-	 * @return <jk>true</jk> if a new instance of this bean can be created within the context of the specified outer object.
-	 */
-	public boolean canCreateNewBean(Object outer) {
-		if (beanMeta == null)
-			return false;
-		// Beans with filters with subtype properties are assumed to be constructable.
-		if (beanFilter != null && beanFilter.getSubTypeProperty() != null)
-			return true;
-		if (beanMeta.constructor == null)
-			return false;
-		if (isMemberClass)
-			return outer != null && beanMeta.constructor.getParameterTypes()[0] == outer.getClass();
-		return true;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class can call the {@link #newInstanceFromString(Object, String)} method.
-	 *
-	 * @param outer The outer class object for non-static member classes.  Can be <jk>null</jk> for non-member or static classes.
-	 * @return <jk>true</jk> if this class has a no-arg constructor or invocation handler.
-	 */
-	public boolean canCreateNewInstanceFromString(Object outer) {
-		if (valueOfMethod != null)
-			return true;
-		if (stringConstructor != null) {
-			if (isMemberClass)
-				return outer != null && stringConstructor.getParameterTypes()[0] == outer.getClass();
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class can call the {@link #newInstanceFromString(Object, String)} method.
-	 *
-	 * @param outer The outer class object for non-static member classes.  Can be <jk>null</jk> for non-member or static classes.
-	 * @return <jk>true</jk> if this class has a no-arg constructor or invocation handler.
-	 */
-	public boolean canCreateNewInstanceFromObjectMap(Object outer) {
-		if (objectMapConstructor != null) {
-			if (isMemberClass)
-				return outer != null && objectMapConstructor.getParameterTypes()[0] == outer.getClass();
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class has an <code>ObjectMap toObjectMap()</code> method.
-	 *
-	 * @return <jk>true</jk> if class has a <code>toObjectMap()</code> method.
-	 */
-	public boolean hasToObjectMapMethod() {
-		return toObjectMapMethod != null;
-	}
-
-	/**
-	 * Returns the method annotated with {@link NameProperty @NameProperty}.
-	 *
-	 * @return The method annotated with {@link NameProperty @NameProperty} or <jk>null</jk> if method does not exist.
-	 */
-	public Method getNameProperty() {
-		return namePropertyMethod;
- 	}
-
-	/**
-	 * Returns the method annotated with {@link ParentProperty @ParentProperty}.
-	 *
-	 * @return The method annotated with {@link ParentProperty @ParentProperty} or <jk>null</jk> if method does not exist.
-	 */
-	public Method getParentProperty() {
-		return parentPropertyMethod;
- 	}
-
-	/**
-	 * Converts an instance of this class to an {@link ObjectMap}.
-	 *
-	 * @param t The object to convert to a map.
-	 * @return The converted object, or <jk>null</jk> if method does not have a <code>toObjectMap()</code> method.
-	 * @throws BeanRuntimeException Thrown by <code>toObjectMap()</code> method invocation.
-	 */
-	public ObjectMap toObjectMap(Object t) throws BeanRuntimeException {
-		try {
-			if (toObjectMapMethod != null)
-				return (ObjectMap)toObjectMapMethod.invoke(t);
-			return null;
-		} catch (Exception e) {
-			throw new BeanRuntimeException(e);
-		}
-	}
-
-	/**
-	 * Returns the reason why this class is not a bean, or <jk>null</jk> if it is a bean.
-	 *
-	 * @return The reason why this class is not a bean, or <jk>null</jk> if it is a bean.
-	 */
-	public synchronized String getNotABeanReason() {
-		return notABeanReason;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this class is abstract.
-	 * @return <jk>true</jk> if this class is abstract.
-	 */
-	public boolean isAbstract() {
-		return isAbstract;
-	}
-
-	/**
-	 * Returns any exception that was throw in the <code>init()</code> method.
-	 *
-	 * @return The cached exception.
-	 */
-	public Throwable getInitException() {
-		return initException;
-	}
-
-	/**
-	 * Returns the {@link BeanContext} that created this object.
-	 *
-	 * @return The bean context.
-	 */
-	public BeanContext getBeanContext() {
-		return beanContext;
-	}
-
-	/**
-	 * Returns the default value for primitives such as <jk>int</jk> or <jk>Integer</jk>.
-	 *
-	 * @return The default value, or <jk>null</jk> if this class type is not a primitive.
-	 */
-	@SuppressWarnings("unchecked")
-	public T getPrimitiveDefault() {
-		return (T)primitiveDefault;
-	}
-
-	/**
-	 * Create a new instance of the main class of this declared type from a <code>String</code> input.
-	 * <p>
-	 * In order to use this method, the class must have one of the following methods:
-	 * <ul>
-	 * 	<li><code><jk>public static</jk> T valueOf(String in);</code>
-	 * 	<li><code><jk>public static</jk> T fromString(String in);</code>
-	 * 	<li><code><jk>public</jk> T(String in);</code>
-	 * </ul>
-	 *
-	 * @param outer The outer class object for non-static member classes.  Can be <jk>null</jk> for non-member or static classes.
-	 * @param arg The input argument value.
-	 * @return A new instance of the object, or <jk>null</jk> if there is no no-arg constructor on the object.
-	 * @throws IllegalAccessException If the <code>Constructor</code> object enforces Java language access control and the underlying constructor is inaccessible.
-	 * @throws IllegalArgumentException If the parameter type on the method was invalid.
-	 * @throws InstantiationException If the class that declares the underlying constructor represents an abstract class, or
-	 * 	does not have one of the methods described above.
-	 * @throws InvocationTargetException If the underlying constructor throws an exception.
-	 */
-	@SuppressWarnings("unchecked")
-	public T newInstanceFromString(Object outer, String arg) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException {
-		Method m = valueOfMethod;
-		if (m != null)
-			return (T)m.invoke(null, arg);
-		Constructor<T> c = stringConstructor;
-		if (c != null) {
-			if (isMemberClass)
-				return c.newInstance(outer, arg);
-			return c.newInstance(arg);
-		}
-		throw new InstantiationError("No string constructor or valueOf(String) method found for class '"+getInnerClass().getName()+"'");
-	}
-
-	/**
-	 * Create a new instance of the main class of this declared type from an <code>ObjectMap</code> input.
-	 * <p>
-	 * In order to use this method, the class must have one of the following methods:
-	 * <ul>
-	 * 	<li><code><jk>public</jk> T(ObjectMap in);</code>
-	 * </ul>
-	 *
-	 * @param outer The outer class object for non-static member classes.  Can be <jk>null</jk> for non-member or static classes.
-	 * @param arg The input argument value.
-	 * @return A new instance of the object.
-	 * @throws IllegalAccessException If the <code>Constructor</code> object enforces Java language access control and the underlying constructor is inaccessible.
-	 * @throws IllegalArgumentException If the parameter type on the method was invalid.
-	 * @throws InstantiationException If the class that declares the underlying constructor represents an abstract class, or
-	 * 	does not have one of the methods described above.
-	 * @throws InvocationTargetException If the underlying constructor throws an exception.
-	 */
-	public T newInstanceFromObjectMap(Object outer, ObjectMap arg) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException {
-		Constructor<T> c = objectMapConstructor;
-		if (c != null) {
-			if (isMemberClass)
-				return c.newInstance(outer, arg);
-			return c.newInstance(arg);
-		}
-		throw new InstantiationError("No map constructor method found for class '"+getInnerClass().getName()+"'");
-	}
-
-	/**
-	 * Create a new instance of the main class of this declared type.
-	 *
-	 * @return A new instance of the object, or <jk>null</jk> if there is no no-arg constructor on the object.
-	 * @throws IllegalAccessException If the <code>Constructor</code> object enforces Java language access control and the underlying constructor is inaccessible.
-	 * @throws IllegalArgumentException If one of the following occurs:
-	 * 	<ul>
-	 * 		<li>The number of actual and formal parameters differ.
-	 * 		<li>An unwrapping conversion for primitive arguments fails.
-	 * 		<li>A parameter value cannot be converted to the corresponding formal parameter type by a method invocation conversion.
-	 * 		<li>The constructor pertains to an enum type.
-	 * 	</ul>
-	 * @throws InstantiationException If the class that declares the underlying constructor represents an abstract class.
-	 * @throws InvocationTargetException If the underlying constructor throws an exception.
-	 */
-	@SuppressWarnings("unchecked")
-	public T newInstance() throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException {
-		if (isArray())
-			return (T)Array.newInstance(getInnerClass().getComponentType(), 0);
-		Constructor<? extends T> c = getConstructor();
-		if (c != null)
-			return c.newInstance((Object[])null);
-		InvocationHandler h = getProxyInvocationHandler();
-		if (h != null)
-			return (T)Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class[] { getInnerClass(), java.io.Serializable.class }, h);
-		if (isArray())
-			return (T)Array.newInstance(this.elementType.innerClass,0);
-		return null;
-	}
-
-	/**
-	 * Same as {@link #newInstance()} except for instantiating non-static member classes.
-	 *
-	 * @param outer The instance of the owning object of the member class instance.  Can be <jk>null</jk> if instantiating a non-member or static class.
-	 * @return A new instance of the object, or <jk>null</jk> if there is no no-arg constructor on the object.
-	 * @throws IllegalAccessException If the <code>Constructor</code> object enforces Java language access control and the underlying constructor is inaccessible.
-	 * @throws IllegalArgumentException If one of the following occurs:
-	 * 	<ul>
-	 * 		<li>The number of actual and formal parameters differ.
-	 * 		<li>An unwrapping conversion for primitive arguments fails.
-	 * 		<li>A parameter value cannot be converted to the corresponding formal parameter type by a method invocation conversion.
-	 * 		<li>The constructor pertains to an enum type.
-	 * 	</ul>
-	 * @throws InstantiationException If the class that declares the underlying constructor represents an abstract class.
-	 * @throws InvocationTargetException If the underlying constructor throws an exception.
-	 */
-	public T newInstance(Object outer) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException {
-		if (isMemberClass)
-			return noArgConstructor.newInstance(outer);
-		return newInstance();
-	}
-
-	/**
-	 * Checks to see if the specified class type is the same as this one.
-	 *
-	 * @param t The specified class type.
-	 * @return <jk>true</jk> if the specified class type is the same as the class for this type.
-	 */
-	@Override /* Object */
-	public boolean equals(Object t) {
-		if (t == null || ! (t instanceof ClassMeta))
-			return false;
-		ClassMeta<?> t2 = (ClassMeta<?>)t;
-		return t2.getInnerClass() == this.getInnerClass();
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return toString(false);
-	}
-
-	/**
-	 * Same as {@link #toString()} except use simple class names.
-	 *
-	 * @param simple Print simple class names only (no package).
-	 * @return A new string.
-	 */
-	public String toString(boolean simple) {
-		return toString(new StringBuilder(), simple).toString();
-	}
-
-	/**
-	 * Appends this object as a readable string to the specified string builder.
-	 *
-	 * @param sb The string builder to append this object to.
-	 * @param simple Print simple class names only (no package).
-	 * @return The same string builder passed in (for method chaining).
-	 */
-	protected StringBuilder toString(StringBuilder sb, boolean simple) {
-		String name = innerClass.getName();
-		if (simple) {
-			int i = name.lastIndexOf('.');
-			name = name.substring(i == -1 ? 0 : i+1).replace('$', '.');
-		}
-		switch(classCategory) {
-			case ARRAY:
-				return elementType.toString(sb, simple).append('[').append(']');
-			case MAP:
-				return sb.append(name).append(keyType.isObject() && valueType.isObject() ? "" : "<"+keyType.toString(simple)+","+valueType.toString(simple)+">");
-			case BEANMAP:
-				return sb.append(BeanMap.class.getName()).append("<").append(name).append(">");
-			case COLLECTION:
-				return sb.append(name).append(elementType.isObject() ? "" : "<"+elementType.toString(simple)+">");
-			case OTHER:
-				if (simple)
-					return sb.append(name);
-				sb.append("OTHER-").append(name).append(",notABeanReason=").append(notABeanReason);
-				if (initException != null)
-					sb.append(",initException=").append(initException);
-				return sb;
-			default:
-				return sb.append(name);
-		}
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified object is an instance of this class.
-	 * This is a simple comparison on the base class itself and not on
-	 * any generic parameters.
-	 *
-	 * @param o The object to check.
-	 * @return <jk>true</jk> if the specified object is an instance of this class.
-	 */
-	public boolean isInstance(Object o) {
-		if (o != null)
-			return ClassUtils.isParentClass(this.innerClass, o.getClass());
-		return false;
-	}
-
-	/**
-	 * Returns a readable name for this class (e.g. <js>"java.lang.String"</js>, <js>"boolean[]"</js>). 
-	 *
-	 * @return The readable name for this class.
-	 */
-	public String getReadableName() {
-		return ClassUtils.getReadableClassName(this.innerClass);
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		return super.hashCode();
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/javadoc.css
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/javadoc.css b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/javadoc.css
deleted file mode 100755
index 036160c..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/javadoc.css
+++ /dev/null
@@ -1,1039 +0,0 @@
-/* Javadoc style sheet */
-/*
-Overall document style
-*/
-body {
-	background-image: linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
-	background-image: -o-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
-	background-image: -moz-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
-	background-image: -webkit-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
-	background-image: -ms-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
-	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #cddddf), color-stop(20px, #eaeded), color-stop(70px, #ffffff) );
-	background-repeat: no-repeat;
-	background-attachment: fixed;
-	color: #353833;
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: 76%;
-	margin: 0;
-}
-
-a:link,a:visited {
-	text-decoration: none;
-	color: #4c6b87;
-}
-
-a:hover,a:focus {
-	text-decoration: none;
-	color: #bb7a2a;
-}
-
-a:active {
-	text-decoration: none;
-	color: #4c6b87;
-}
-
-a[name] {
-	color: #353833;
-}
-
-a[name]:hover {
-	text-decoration: none;
-	color: #353833;
-}
-
-h1 {
-	font-size: 1.5em;
-}
-
-h2 {
-	font-size: 1.4em;
-}
-
-h3 {
-	font-size: 1.3em;
-}
-
-h4 {
-	font-size: 1.2em;
-}
-
-h5 {
-	font-size: 1.1em;
-}
-
-h6 {
-	font-size: 1.0em;
-}
-
-ul {
-	list-style-type: disc;
-}
-
-code, 
-tt, 
-pre,
-dt code {
-	font-size: 9pt;
-}
-
-table tr td dt code {
-	font-size: 9pt;
-	vertical-align: top;
-}
-
-sup {
-	font-size: .6em;
-}
-
-/*
-Document title and Copyright styles
-*/
-.clear {
-	clear: both;
-	height: 0px;
-	overflow: hidden;
-}
-
-.aboutLanguage {
-	float: right;
-	padding: 0px 21px;
-	font-size: .8em;
-	z-index: 200;
-	margin-top: -7px;
-}
-
-.legalCopy {
-	margin-left: .5em;
-}
-
-.bar a,
-.bar a:link,
-.bar a:visited,
-.bar a:active {
-	color: #ffffff;
-	text-decoration: none;
-}
-
-.bar a:hover,
-.bar a:focus {
-	color: #bb7a2a;
-}
-
-.tab {
-	background-color: #0066ff;
-	background-image: url('data:image/gif;base64,R0lGODlhpAYoAOYAAAAAAP////CgOe6fON+VNfChOu+gOeKXNvGiO+2fOtqOML58Kr17Kr18Krt6Kbp6KbZ2KLZ3KNuPMdqOMdqPMcyFLsyGLsiDLcOALMB+K799K79+K758K7t6Krh3Kbh4KbZ3KdKKMNKLMM+IL8yGL8mELsiDLsiELsaCLcWBLcWCLcJ/LMKALLl4Krh4KtKLMc+JMOWYNuOXNt+UNdyRNNmPM9WNMvCgOuqcOOibOOaYN+aZN+WYN+KWNt2SNdqQNNmQNNWOM/GhO/CgO+2eOuyeOuucOeudOeqcOeeaOPOiPN2VP92XQd+bSOezd+i1evnt4Pvy6v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFIALAAAAACkBigAAAf/gAFRT00UCgoThhSKh4iKjIeJCouOk5ATlZSGkY+TlZmQlZKUoIilhqOonameo6Wsqpaep42wnLS3mriSn5SYtqzBnbHExa3DuaG2osjJx7Kyv8jC0dOM1LrLy7vGm6a+tNjdma/Wspvb2uPO67zq5ee1zZLp5rqf767gwKv98a7int2rF49ZwXDI9tkzxk/guHf3uOFCWNDdPIYXDzbUpfCfP1/24GXLGDFfM4oD0WUMKM1jtZcjHaK8dNKkxoWzLFbEWPDaR587bwYluGqmSKA8Y6YUupQoUprsbgX0thFqyZU1caqMFM3oVHJfISrDyrRo1aMCS3U9G/ap0a1X/4dmdblUARQmOoYo2cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky
 5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLJu1kR4HbQhDg3p1bdwEhvBH4Bl5gePDiu3//Fp4c+HDjynvfhp47uW7qyJVnJ47dOPTuzZeHl64dePXtwcGXF89eCHf0yr9bD+99/nrs54mbZ77+PH7++sHn3nQCwifffbsdGOB/4wF4XIHSvafee9pNaCB9DTbIIIQOxpdhew8qmN6H/1kY3XMk8kagiSJ66CKFC34YIHkz+lYihv2tiCOMBCL4Yo8x9nejkECO6GONuG3Y4v9+Gu6oInIs2hekc1ImKKORSHJoIpMgnljkhVFW6OSSHDZJpJZOetkll2RWR6WYRz5Yo5JmmqdjnBfGSeaGc6Yo5Jbt0Qlnn3hySWiWQ04pp24SprmnlYNCmuWhIdY5X5g8/vhdo3g++mOBfGJZ6Z9pGorAEgMUIIABNxRgAKuv3sDqbbHW2qqrsBqAq6ywtqprrb3Smqusu+5qq7DGzgqsq8kSu+yzw/4Ka7LNSsurrL5Geyuw2OJa7bbRfltsrLwyy621r1J7rrHqhntuttfOKm667wobb7PlojsttPm6u2+u1c6rrb3H0juwq/kGzK/B99babsMD1yuwuApHrKz/xQ8fO7HE69Yb68a90ltxvyQ7bDLAHVscL7gre8uxvyuLnHLJ+jr7L802t/yyzjXLO3PBF/OccbA7nxzzryMzrPTN+iZN9MEe98yy0UDDC/TQ5sK8dNJD51y1xlFT/PPTVj/dtbJe9yxwyyCzbavMWjf989lrg41x0UyT3fbS3TrdLd5/S01w3oH7mvDYdFOtdtRu3w11tEgjvjDT1B4ed+J5+x203UIDLvjHChCRQAJFFDF66aiXPjrpqat+Ouqvt74667LHDjvrtt9Oeu62z9666bQDn3ruwrs+fPDG/0488Mgbv/zqyjdfPO/Q13789dYnr/3tvxdfu/SnP0/8//LMN9978OPTfn703YsP/u7vq189
 9tunz/399Oeve/vw82/++9vj3vqiB0D3se+A4vOe7v6XP/vVj4EH/B7/FLi/7PkPgg+M4AD1F0DXFTB+EcReAjfIQeaF8HsYVKADVZhC/B3vg/47YfJGiL4arpCFGqyhDCnowQka0IIihKELYefCGw6xh+z74QtTSELtNZGHUJzf9ZR4xOkJsYMmBGIVpShAEGpxhvK74RNjN0YAEtCHXkRhCMtYxAWuUYcWZOMOuei8NG4RdxRAAhKMgAMjHAEJfcRBIP34x0AO8giF5CMOEilIPvoRCYw8ZCT5mMhJ9hGRgJxkJP9oyU0CUv+RnfzkIkU5SkNSkpSOtCQhUXnJTLJylaYspSJT+clEghKSrPSkIUMZSF3OUpaNbGUsYfnLRwJTkrlE5S15ectdJrOXpGRmMI1ZTEwOs5CqxOQyn9nMbgaTkb785iuzmU1XXlOah6zlOM3pTWRek53TtOYvyynMasJzm7EM5zFPCU1n5nOd5wQoObk5TUFykqDHlKY++WnPgL5zn5dEJy3rGU94QpSa8ZSoM9G5UGB2lJ7VpOdA//lQjKYzodHEJUnbqdCUrrSiDm3oSOcJUJNOtKN+7Gc7GQrTkAp0nIzEJ039uVOPunSoDfXpQ2cqzpKK9KgZRehElSpToEq1nn//FGpTWUrQj9Y0qku1aixHyVGo6jShWj0rSl/q1ZKCtaox3WpPjzCBJOQgB0nIK17zyle+7rWvfgXsXwVrV8D2dbCB1athE4vYwh7WsYR9rGQjq9jJWvaymK1sYxNLWco2Fq+bRaxoFzvY0Rp2s5A97WIdi9rUcla1oe2saytL29q+NrO2ZexqUwta0so2trcFrmpXi9q9tla4niWubY+r3NneNre0LS50ezvc4PrWutWVLW6Nu1vkwva62O2sabUL3fJyt7nkhax0Xbte8OJWsd4dr2Xl+9zyOpe13XXvZNdLX+r+lrylBTB6sytZ5hKYs/xN72W9W1/z2je28RVw/
 3i3m9/rGji9f03wexn84OZemMK19e+CJbxc/Tb4vuc1MXz1S98Q5zfCmQ1wjAeM4Q4fmLYU4EEMeLADHvi4xzsAso9/zGMhDxnIPeZxkZU8ZCUHmclEfnKSk+xkIxO5ykdecpalHOUpaxnJTDYymLHsZS53GcpkznKatyzmJVP5zT+m8prHTGc3R/nMc7bzmeUMZjivec94fjKbw/zlQpu5zYLuM6AXzegyWznOTVY0lictaUQ7mtBm/vOfL81nPUsayp++tKZDzeg8ZxrOp76zoBdd50R7GtOcbrSeZT3qV3N51aYWdaVhzepZf3rTpd51qmndaiv/WthCxjWyA/9ta2Yf2tezBnatnz1saRc70rbWdbMpnW1QR5vU07a0t4ltaEQ7W9yofjS4jz3pXrv63ebmNrWN/W1oh5vXfrZ2udG87HTz297snve4IT1obcMb0+fGd8GxPeyAj9ndBo83nTstcHlLfN+xDjbA6y1wP0ugBzLoQQ8OAPKRi5zkJC95ylEu8pCnXOUnN3nIXR7zlNPc5DC/OctLDnOZ47zkOm/5z2/ec5vjnOhBL7rPV350nLM85Eo3OtOjnvORv3zmThf61Yee9Z4jvetBJ3nYtV5zno9d6UXfetK/vvWp35ztMaf62ccO9bmrHexcb3vc3573vWdd7H8nu8kBT3X/tNN96WWve98HL/inN77pbg88zQ8P87tHXu+P9/ripZ74wMv98ZyHfNmFvvbFG170mT8800Pv+MKXfvVVh73iMe942J/e9kDHO+ZvL3jeM37ukgd96oMPeNn3/uuvF3nPfQ931Nd+9JQH/uU7X/zOL//soff98xn/eddzP/fTP77uxR/+7e88+p5P/u8Rv/7rp3/867c9+uUP/+fLwPJ+3736m8969p8/+N43deCXf8rHf4JHdPiHeu4Xfgb4efRnfAFIgPHXAxJAADNggRY4AxeogRiogRz4gRn4gR64gRsYgiLYgR6YgSYYgi
 pIgiNIgiz4gic4gibogjOYgjT4/4ItiIMlyIMoOIM1CIM2uINAyIMXGIRCaIQi6IM5qIRJWIRQGIVMuIJLCINISIQ2mIVYSIVNyIU/2IJemIVCGIMyuIU6eIZD2IRMOIVs2IZdmIZw+IVu6IRg+IZBWIdrGIVk+IM4eIVVWIOA+IdqeIN6CIJ2WIaGmIdjKINPqIVoyIVV2Ih4uIhzKIVm2INLOIl0mIiUSIid+IabCIqCKIqdqImaaImjKIdSGIl+CIehCImOGIcuaIqcOIeXqIqfyIqJCIuSyIm0iImH2IeMeImvOIiBKIt7iIyICIy9CIzJeIePKItu+It8iIrK6ImKeIzZOIjNqIp8eIqfiIXbyP+NxDiLwziKxaiExxiGzxiM7tiN5qgANOADNFCP82iP+FiP9JiP9riP/ciP+niPACmQ+eiP/siP+3iQAYmP9KiQC/mPDAmQB6mQDkmQBTmQFhmRGamRFymREBmRFUmRHTmSGRmSA1mRD9mRKLmRLBmQJsmRKfmRJemRNFmTKomRE8mSIgmTMrmTJMmTQLmQK/mSCCmTGumTRUmTQ2mTHImSCemRRBmTUYmURlmVVimQS5mUJ6mTPzmVPxmTV9mST7mVWjmSTimVZMmUYAmSTEmVKemWYomTZJmVX/mQZzmTbFmWeEmScHmXaimUcqmXH3mXcNmVf9mScYmYJhmVewn/k32ZloIJmJB5lQY5l3W5ln4ZmVgZmJdZmf/ImI9plIwZloTJmRcJmnWZk1uJmkGpmlaZmZ25lpiZlhRQA0AABDXwAzWwm7qZm765m7+pm73Jm8BJnL45nMYpnMXZm8g5nMz5m8UZnMCJnNNpnNZ5ndJZndqpnc1JnM7pncsJntH5nN0JndL5nbxJnckZnuzJne1pntm5nuipnO6pnuTJnuX5A+oZn/BJnc+5nf15nfcpn/gJn+cJoO6JoP4poO/JnwN6oPUZnRC6nhFqnQ+qoOJJoOOZoQ6
 aofNpoPS5oea5oAUKoCSan9B5oReqoRTKoiWKnSf6njFaoRNaoy76/58s+qH2KaIhqqIMepwS2qENiqMjyqMFqqNHKqE+WqRAaqEcCqNBSqQkmqA/SqUTuqQhSqNC2qNaCqVNWp5W+qBYCqIcmqVhKqJniqFMyqVN6qI3+qNsaqMB2qZbmqJl+qQ1KqUeip0tOqdp6qUoiqRdmqd8KqRqCqZ2qqRVCqgyaqQ0OqY7Sqd62qa6OQFBYAOYagNBcKmZmqmbyqmdqqmb2qmjGqqiWqqh+qmmWqqoSqqj2qqi6qqwGqueCqq06qq1iqupaqu5uqqzGqu/qqq7aqq0Cqufyqu3mqyziqqtuqzImqy1+qyvKq3OSqyniqzNaqvViqnZ6qvEGqzgCv+t3Mqswqqr42quvaqs2Eqt3xqu4Lqu7Xqu3tqtvsqu7+qt+Oqu67qt8tqv6Uqv6Jqushqv9zqs1nqs+Oqv/AqwAtuw42qv1Aqv+QqxAeuv0Zqw9SqxCquxDGuxHnuqBBuxGNur+oquCGuwG5uwHSuuLFuuuFqwFVusFOuwmiqw/BqzLpurMButGquuKqutPUuzOXuuO/uxrDqzRnuzQluy9Tqy8kquN7uy5Fqx4dq08yqyGYuxUguqzcqzWgu0P0u17Gq1w1q0LcupQTABLxACIrC2IfACawu3bxsCdCu3dku3bxu3epu3czu3dhu3ePu3fuu2guu2fCu4hwu4hZv/uIy7uHdbuHsbuYDbuIEbuXUruX1LuYvLt5z7uJYLuY2ruKIbuoN7uJdruqd7t6RruI67t6bbuqv7uaMLuphLuJabupNLu4H7urIbu7xburq7uZtLuatbub+runJLvLR7u8pbu8bruaibvMLbu867vJo7u9V7u8M7vcR7vcfrvdYLvbVLvbnLvNy7veTbt9KrveMbveabvvDru7DbvuJbvqjbvN07v/aLv+ELvvQ7u/LLv5MrwPerv+pru+4bwH4bwOc7
 wA1cwABswP1bv/57wBCcwOh7vPv7wLqLu8Brv6pLwCEswacLvBU8wdh7wh7Muuybv9mrwQycwjD8v+Ab/8MY7MAtnMEUjMAhQAEjMAIw8MMwEMQ/XMRAPMRGXMRDTMRCzMRGvMROrMRInMRTPMVUjMRW3MRPvMRJfMRb/MVXLMVgPMZkLMVRrMVZbMZdnMZa7MVbzMZZHMdnbMVyvMZn7MZXfMdYrMdwfMdH3MdkDMhtPMhibMdd/MeHvMeJTMdcHMaFTMiDXMeOPMlvvMh4XMmUXMhs7MWSnMeWvMmNXMZtDMpB3MeCTMin3MmPLMqIbMikPMd+/MewHMizjMq1nMlNzMeXrMa47MakfMm/bMe3LMzDrMqR7MSnzMqh/MWvbMjO/MuqDMXObMvTbMy7DMm5/Ml8PMyarMvWDP/Eq5zMq8zLYdzMeVzMyHzL1hzMnuzK2zzNYAzN6bzI3IzNrVzO79zLVczE0kzJ68zP86zP+YzP9EzP6CzKjPzEZnzQ44zH/2zJwqzNBS3QQqwAJHDRFnDRFZDRFsDRF00CG00CHS3SHx3SI23SHg3SIM3RKb3SIu3RIe3SI53RGp3RKF3TL63SN23TLC3TPJ3TPx3UQk3SO43TM13SPU3TIV3URg3TSY3TLp3TFeDTRN3TN13UJk3VWP3UVE3TXY3TTP3VNy3VYm3VZg3UMq3VT83UYc3WQ+3VU33SZS3VZ33UWX3Va83Vba3Xb43UaO3WTU3SLo3XaB3YSt3Xhv3/1VEN2Fkt11tN15Bt104d2ZN91Iqt2EvN1XN91I6d15S92Wr913xd2JiN2Jud0jHN2HWN2pr92Jxt06cd2pJd1Z+N2Htd2JlN2q7N2ok92Kut05590r8d1LJd2bxt2aV92bst2Kk92oRt2cYd24et287d2h7d2aL92a5d3LRt2bft3aa93NOd3M/d0uLd2+Rt3dkN3hpN1std3t3N3bat3uz93VYd2/BN3GON3bMt3
 LWd1vmd3Mit2tS93rxNAhJwAhdQAiZQAifA4Aze4A1+Ag8u4RLu4BUe4RluAhf+4Bve4R/O4Bke4hNe4SH+4R4O4Rwu4ipuAije4iwu4S9u/+ExHuEQTuIYDuMTXuMrXuI6juMjDuEa7uA/3uIzbuMuruJH3uNAruM5TuM7nuRQ/uRIHuJDTuJLLuVVruRGXuRTDuRNruU9nuNX7uVDbuFYzuVobuZjDuZObuJvnuZffuNvzuNiDuJ1fuc3LudITuRR3udwfuEcnuJQnuV8fueH3uFxnuduXuhOPuh+vuVrPumSbueJTudfHuaNXultjumAbul5DuiXvuaJnuU8bup6/udtrumL7uhzruqKjuhdXupd7uqgbuudnumM3uqcHuuRnuuo7uAyXuu97umrvuu6LuhJTuuUzuRqfubFDut7juyizua+zurNjue47uvH/v/qm+7sr07kZb7tqL7h5R7q3f7pqU7lPb7s1n7uwz7p7k7uxA7utx7tv67t6v7t8a7uDj4BKJACKKACAj/wKaACBE/wKLDwCZ/wBW/wCM/wB+/wCy/xCH/wD9/wBy/xFk/xDN/xBd/wFQ/xCd/xJk/yGw/xJ6/xKgDyCo/yLw/zIe/yGT/xKc/yIZ/zEz/yLL/yOw/zFu/zF9/yMk/zFY/zH1/0Lg/yP7/0JC/0Ja/yTw/0So/0Rj/wVx/wEX/0Nk/0Ij/1PS/1Xx/2Vm/1VZ/1ZN/1OX/1Xv/zZl/2aN/1bJ/zQz/zEN/0VD/2bi/3Yr/3Qz/3dc/1gY/1Sp/3ar//9U6v91uf9m2/+Hxf9mov+B7f+B5v+IP/8nAP9pFf+Izv8Ihv+ZSf+Dfv91EP+YN/9pz/+JuP+asP9Tyv+o4f+6U/+rJP+5O/+aj/9rB/+2wP9Rjf97VP+b+f+pcf918v+rKP/L4v/Kx/+pmv+39f9XQ/+ctf89Fv+pX//Ljf+cP/8njf+csf9Jp//au//a1P/McP+uEP/C3//b
 u//rMf/ICf/ecP/fHP+xOAASuAASwACCwsGIKFhoSGh4mIiYOOjYKMipGQlI+ThYSSmYudjZKbm5aflZeeopykkIyimqueqbCms6OytqmotbGkqKG3pr6qwsOTucC0s8Gyypi//7q4pb2VrNO6xrmI16/byI/S0s3IoL/Y0dXd4qWO4Lvp7ezO3dnmxLHlyefc4Z3w+MPM7QIK9EbPGbVtAF0RA1iLobyCpyAOPKjKoa1+Ax+i+6bP3zJy+epZ0iby0j2L7kpqJGlwl8KLIN91zHhSIqd+DsdVwxnT2sxnE4ECvceCQoYNR5Fq2MC0KdIMS50yzQDVaVWpSq9KpRrValStVquCVep1LNmmYM1qTdsVbVu3WJ++nbrUrFysdq+Ohaq2LVu8Xf9unXt2a966hLkCjpt1rmC6iyHDHRw37+HCYQNr6Ou1M2XJoCd/NpwYcWXOkS8/zlzZNF7Un1U73jzbc/9o0Ktv67672HJtxnx/h4adG7No1r0Tw/Ys27ZztMsHLy++1q/w51Obv74+Wftw2pG/h6de+nR53+GZn7de+Xj03YqTmwc8nf1o8q3ny9+evvt67LwBiN5+pPUnWXX1YVedguXxRyBy0l2H33BuJXgcbvYJqNx/Dmo4lQQcNCDiAgyMaCKJJTawwIkMpLhiAy6yCKOJKqrYIo0ruhhjjSiKuCOJNJb444w1EvnikDHuiCSONjLZY5ErAmkki0tC2eSVCxw5ZY1KBslkkl5aOaSUL0Z5o5VSjnlmmVtm6WObW3Yppolysqmmk2vKCGePWlapZZF+xvklnnjeuWeeXBL/iqWedVKpqJqB8qjjoye+GWmjiWb6p52KsvmkpylCOiialo666Ztzaooqp2iK2uqqjqYK6oiGYmpmoaZWOuOlYbKaY690dhrrrIdGeuuiksIqKK+A5mrrobi+WmyuySJ77LNA/tqsrHqCWmu0UZbKraDcPmuot5S2aiyW326L7rjHvkusq75
 2W2Kf1JobrLv7Eisvo+B6yeypqiqJ77j6qgrnucMCrC618TJAwQMUd/CAAw9Y3IHGF2OsMccOeJxxByJvnPHFKH98csgnm0zyyi2D7HHJFtOMMc0Z2xwzzi9rrLPKPY8MM9Adxzw0z0UDjbTIIo98s9FBb/yz0FFP/+3y0lAnTXXKS/OMs9MpU2111D63PHbOWXedNtpEswy21zvHrbTZcou9dttYk70y3G0PvfXMdbusteCA4w113mETznbcfIP9ceNkQw5y2nmrPTfRUide9uOBb7545pf/Tfndltvdd82kd+434ZIzfnjnkJ+tN+qGn1761XdrfjTsukeuetW/I8566rWbLjrtx8t+seegG6948c/f/vbrnFfvvOzCy0z8360jX/nvgzM/OfTj3y6+3xhPH3rz7DOPfe7D2z460C9L/r74HtdPveP8447//s/j3vbi57zxXWwCHmjBBz6gQBcwcIEKVOAHHCjBCC6Qgguc4AMf2EANVv9wgxgE4QNDaEENehCCJ7xgCiUYwhSuUIUs3OALX9jBD8bQhiYkoQg/SMMTUlCCGtShC1soxBAScYM3RGENlQhDJjqwhzMkIRAdWEQZHpGHRrQiEpvIQSjqsINenGIUtShGLO4wg1XE4Re5aMEnrnGMahzhFsF4RSb20I1zZKMel7hGPJYwiFscIhlRmMI6nrGLb+zjHvUIRUCasYxoDGQWIXnINubxjouEoxPlGEdBxhGHmuyiCtMYSUom0ZOEVCQoFelFSeYRg6w0pCNTOUhGTrKUtPykHWN5SVIikpObRKUoTxlKS67ylZnEoBh9KcxTGvKUxtwlMlv5yE0u8Zf/zazkIhM5TW5W85cNXKYrKRnKZ26zl91EJw9nechsFlKG4vymO29pS2Qes5PezKU1P0ABEIAgAhEAAQQA+s+ABhQCAzWoQQWa0II2lKAHjcBDF4pQiBq0oRP9J0MBmtGJDjSjErWoRy36z4eOVKElJWlE
 UXpQkAqUoyrdKEtdilGCOjSkMxWpTnN60Z0WNKUsfWlQKzpUmA4VpBm9KVJ9atSf4hSoN+WpU4U6VaJWtakQ3ahSVXrSqDrVpEztaVGPGtOE0nSpY6VqVs0aVo1ada1YpShar7pSuj50q1KN61yfGleowpWsYz0rV2MK073y9bB+7SpEaVpWxiK2pYNN/6tjFUvRxkZ2qoW9rF41S1m/VhawdrVsXj+r1s9S9qOaPexeO/vY0rp1sqL9alkJCluFMtazhnVrbP8q2IVmdrSsBattU6tb0PJ2t2Klq2tXylqZyjata61tVXNb14Hi9ble7Stfgztb45oWudddbFhXK9LwJnezeeUudOXa3d5i968CReAH8ylKc3aQvknk5guPyExzvtOU57xnMPEbYA/GU59cLGctoQnM+qZTwJU8cDv9S89iNriEvFylhIlJ4QmPc58Oxqc6ERzNDOMyxAMesTb5+GAt9nfBXOywLlGMTQI3koofTrAvZQxiDLeYxgxmsYgBfE0ff/OPOJYnj//naU9pDtnJJAamiXUcSiZzOMfRBLIcqRllIaeYyAi2cJFXnMMRb5jKAP7viYPM5RqrmM2w/HGb4fzmLdtYlRM8szAVnGY8a5mOdR5ljq2cYD3LcscwxiSELTnnAvfzp+6NblsjGunk9rajOjWsenFL3LpKOrDgbW1NA2peTg83vZN27HTbG+qk/va9quVsqru7alCTtdSxPvV7Nw3fT4fWu54t7nKF2ty3fhfYoqYtq30bUk3P+ryPVbWvj4tsl75avLrWrnCzC21hT/vYtYa1sKWr3WEbO9jDdXa2z8tr0n67uJVGN1XJHWt1czuxz1buu5nbalrT+7a5Fren2Wv/63CnO7W8bre3Cf5rg3e7usu+N2RHu/DXRnzfqrbutaGd8Hz3muHUdjiuTytr2458vCWXuLRBDm6M+1u+KCTwleN45wuLcL8uHvSSl5xlI38ZymSOcwsMXUs+r7nAf
 y7zotlIdHIius9NTrofd9n0Exu9njP2uZuXrmhMZpPOje66iauOZgTz3OZgrzko2Tnzo6sZ6z0OejKxLGU5+1nrbBa0khNdYV/2XO5hx/OUBfliqLdd7ksHNNcFb/dLHp7OiVc6lMlO6Mr/Pe2BZvyT535ktJ8z8E12AeV3zveo493OgWZ72eHuwtGX/vFIP73igQ55fvpT2ch2brlRW23c/9ca0wcHrscVPnCLF9zlkrXpxk2tcmw3f73Gbzjyf3rydZN33fKON79vvfyAa9v534f+xKXP8uz7PuS7p3f0wU9aclef29d/vr7Lv32Rt7b7JEc19pOde7b2PvnHx3/2Z23NhnDD53HuRn/E1m8ASH4jZW/hx3zsV3Hjh370l3EXl2wS+HDmpn4V+H7otWsISIG613IX6G8ZqH0rt34myILmF1Eg6H3sNoLFV4EtaIMx2HEmh38op3/y93EuWH/TB18QAHOe12aYpHathHOuZ3irV3tSx3ld5kMM1IRu13d0N2aYt3hIZIWsd3Za+HmJ5IVXJ2aNNntaJnaNF3lTl/+GmvdzZPh0V2h6gKeEoqR6eyaHrHd5Yph5obeGccdgN1ZlpOeE4ER7qMeFujR4/KVzr/eEsVeHfriIgDhMkNh1UchlcZhjYHiGkueGf7h5oJd1kqiI+yR6kVR4cwh7mCh7n3h6ehdmhZhBm/hNnShzr6hNXWeEYYiEiqSE+qVDjbh3hniLdYaGsKh5tWh2j3iImWiHQ5eKjliMzciHXjeG0kiMq3iJd1eKiKiGooiLbZiMoQiH2SiLzWiMbCiFZBaLHkaNhmiNU0aOlBiOdCiIb4SHh8aJ1XiE86iLb7h1Vpdk6AiP2+iMrjiOAFmOAplJrNiNWzh55/iOB6mOiIj/jAtZjz/HjlCYkBxZYKjojodXhn7njz8Gi/pYdHqYc9r4hf3Yi/+Ij032aOengMbGWCpYk8YHfDl4gPu3gjgohCfYgD35k+xHXR
 2YgUHoagUofEbJcZ2WlAFocUX5g8QnleS3lCgYgNq3gP+nXO7Hg9aXchEIhEHplQNIWE0Jazr4gwkYhGg5hO2XgrQmlxollvBHltFWlzaZflE5ag6YaQb4lBv4gvYXl0MJlnRZVIUpgPuGmOtXlWV5lV3pf2nZgBaYk+JXgvDGgIopmXsJlRRXg5wplEG4lkfpkw4FmvFXlm95lpZpl9XFi574daonkzCpR8NYkBX5kp6okLh5/4pVOJEjuZIlmZubR48QtIyHZJHP2EvM6Uy+KY4fCY4b+ZvVGZCMpkzEuXokmYXYOYp2lJJOx4/xaJLJmZHCaY+kGJx3SJAU6ZLniZwbqZyHyIgsyZvyeZDyeJLqeZ+VWEIPeY99KGDRGWPTeYy56J4lFqD/2Z/pyaBSdqBvZ4bUGXbkOZDmSYvdmYcbuofoWZ8PCkw0SZrnZoM46ZmXRlIPOJhWSYNYaYFaSZR4GYLgR5mhBplByZS8x5aq6ZokeKI6qlU1KoP4RphmWZpDeqIYyJU5GpuJSYQXx5p6iZSV6ZejSaU+CKQm6oGl2aSBuZlMqpY9mppIiqP9h6UCN/9vi6mlIoikr6mkUDqjiumkjGmkjtmXonZXRdqWXBqjN/ilWxmmlzl/cDmnO4qCbnqjMHqle6pSqCmaL7qDkbqBrRmahgqbajqBs5lAMaegtgmfyhmMW7Sb8fmdnUefDWmfDRqNIumdxgmeFwqNFIqFqRqe2PiqHmqLCbqO4gmg7HmRCwqiXiaQtRqfHemNoLh2ogqrH2qhCgqcxEqFwYqQI3qsA9qeBfqN2pmIGqqK+zmtszqJ63mdb5StgbitKIat3Eig10iuwGqu8AqhIiqhfMSulheiq6qLGdquxISvzumRvxpNJQqoLJiiX7miKNWiTjmpbhmkXjqmNFqpMnj/qVb6pJvabYs6g3AKsUoJWRt7pA/bpR8rqJhpgo6qmXUqfSG7XY2KsY+apX36o5iapEKKqCa
 7spnJl3SaVTN7pi+bpjG7poC5s8Hno0DbsSQ7lYl6sp25fy/VmEApp5vastv2pynrmVJqp4VqsxF7sTD4sw6LtTCrfRSbf2+6mmI7mUF7mDgrsWBJm7gYquJJqvOVn6caq7c6rqYIrADbq8IqrcX0t/OJq9DZofvIq4XLt9zKkNsJYxG5rOVqrIirks96nIbbt0hGiOkIuM+puXVXrfTajv1aeQGrrKwauvJKuPypr48LusX6ukfXkskauT7HuuIardnpuN66u9r6/66w60O4C62+amOlO4uEdLydu7i6O7AkentL63AIW6gKC2mC2bBsq7QGa5pNu7JWa6ZEW7ZaS2prW7No6rZ++b2Syqnbu6Rga242qqcqu7UsW74W+5fi+5U+e7Y9mLZkK7TzO5dc67VRab9Vir8APL7j1qYGvKU1G6c3m7GG+W+zJbU8q6lDe7Tgm70j275v+74UrL8Q/LUIHLUN7L8P7LFMW5r8O5YODAHqa8FiSsJZilFyC6r2dZtwZ7efOryYy7iS67eVW56K27qqKrtB7KrKa5C5W7yHq6uJy4zM68TBK3SrG7i+O7my68Oy2rzQiLfFebldTMWNq5EN2YrXOv/EGlrETYzFzhu7vUt409ibU+zGXwzHaAhF6GqttntGXLy3XjyvqnvGd5y5ZXyKfzyFQIySzbqrUsyhUGy5bEy8dizIS1SwlVlsGWxposWTJ8yo2pu1IrzA5NvCefnCJfyYH0xcMYynUxvBj9rK56vKEiyAIYy+mzzBU/rJHNvBoty1zFam62u+bUvLuWzLDDzCBWzK8Suy/4vLAUzKhMrLzpzC0Suj3Uu/RntVMpypVJvBslzM8qvAEDfAUarMKwy3UhrOoZy/9sfMrnyU7OzL7iyb80YBCjABEkABE0AB/tzP/BzQ/izQ/QzQ/zzQBx3QBp3QBY3QAL3QBv3QAo3/0AQ90Att0Qmd0Rpd0Rjd0R0N0Qcd0SHt0CNN0RIN0hNd
 0SL9zxfN0CT90h8N0ynN0S690g0d0y190i+N0hPQ0jQ90xct0R4N1Bqt0zW90zOt0kMd00sd1EUt0z9t1EqN0xQ91S5N1Rkt1U1d0kdt0lwd1Vxt00l9016d0k6N1EN91jw90Vqt1V191W+N1hut1jJN11ht1Xgd10L91mKd02VN1m391Apd1WAN1Xtt1n+N1H2t2FUd2Ig92Fn91XNN2Id91kwt2Jdt1Y5N1ndd2IDd2ZMN2Sid2VK92WP91ZxN2mWt2lv92J8N2XGt14L92nlN1LDt2WyN2pKN15UdKtYbDde2zdqhvdaLDdq8/duF3dqjnduNjdnDXdeJfdem7de33duw3c+BAAA7');
-	background-position: left top;
-	background-repeat: no-repeat;
-	color: #ffffff;
-	padding: 8px;
-	width: 5em;
-	font-weight: bold;
-}
-/*
-Navigation bar styles
-*/
-.bar {
-	background-image: url('data:image/gif;base64,R0lGODlhMgBwAOYAAAAAAP///z1bcT5ccj9dc0NieUBedERjekFfdUtthlZ6lTxbcT1ccjxbcD5dcz1ccTtZbUJieUFhdz9edD5dcjxZbjxabjtYbEZogEVmfkVnfkRlfENjekJieEBfdT9ecz1bbzxZbUZof0VmfURle0NjeUJhd0BfdD1abk5zjEtvh0pthUlrg0hqgURkek1xiUxviExwiEtuhklrglN5k1F2kFB1jk9zjE5xik5yiktthVJ2kFJ3kFF2j05xiVd9mFV6lVR5k1F1jld9l1Z7lVV6lFqAm1l/mVh9mFh+mFqAml2DnluAm1uBm1p/mV2DnWGIo2CGoV+FoF+Fn16Dnl6Enl2CnGKIo2KJo2GHomGIomCFoGCGoGKHomKIomGGoWGHoWOIo2OJozxbb0VofzxbbjtZbEZpgDxabUhrgkJid0Fhdklsg0hrgTxZbE5ziz1abU90jElrgUhqgFN5klB1jVR6k1F2jll/mFqAmVyCm12DnP///wAAAAAAAAAAACH5BAEAAHwALAAAAAAyAHAAAAf/gGYhgmaFgiGIg4OEi4WJiISGkIuNh4mWgheGbpOWipqFnJchoI+ToGZuFhUQrK2trrAQs6+vFbG1rLe5s7quaMDAcCgoaCjDw8EhwcPFx8fMxMbB0c7DZWUg2iBj3Nnb2djb3N7j291j3+bo3wsLDe/wAg0P8A32C/Px+fT2/vz19t0DCI/BAAYPBgx4gPAgg4YLDyZc2PDhw4kME1bEWJEBAQoEHBD46ICCSAciKagcKZKkyZAnR5p82bLlzJMfDBjI+aFnzp0TJvTUuXOnT50fJhT1+bOp0aE7T0iVigDBCQ8IPEjValUr1a5Zp369alXsiapktUqQsMZEWxMm/9aumbtGTdy5buHGZUs3L1y5btu+3Tu3Q4QIJQp0KHF4MWLEHQwjVsw
 4gmPGiR1bnjxZs2MXB0qI5uCiBIcDHEq4cJG6tGjTpU+3fk3adOjXo2OjLrGBhO/evUlsGA5cuG/jwYknN858efLhGTKMGCE9unUN0bFn0DC9uvXt0qlTt969/PftZDCoV3+GjAgMItKvP/N+vnv48u3XX68f/5wWc8zRBoD/EdhCG3IcSOCAAbZgYIAMFgghhAYSyAYbaczAwoYbsqEhCxdiiOGHHHq4YYYcdogiiimamIAOCSQgQ4wzxriCjCvosMKNMtIYYwI89iikj0LWCKQKMcAAg/8KSi6pApNKQtmklE9KueSUUGaJJZM4vJDDl116+cKYOeDgAw5oflkmmWN6qWaYObip5ppijpnCDW/cgOcbceDZp55vBIonoHz6CSihfQo66J6J9mlDHXXcIcQdNlA6KaQ2CKGpEJFOWmmmd0DaKaWWdjrqp5fysAMPrO6wQw871MBqDzz0QKusrb4a66ysqqorrr36CiuuNNBABx1BFEuHHcfSkKyxxx777LLNBiGtssxKe62x2dJQhAJEEAGuuEQUYS4RQABRRLjhjguuueu2K2+87s5r7g9JIJFEEvj2+wO+QwyBhL768mvwv/gW3C+/BSt88L95OCExHng4gUf/xBFffMQRFE9c8cVOZOyxxRFPPDLIESthhBFMNKGEyka43AQTSjDR8sotv7yyzEyw7DLMTfjss84xK9GEHnpYobQVeuxhhdNI77FH004v3fTTTCdttdNVL6301VA/scQSVFDxxBNVVIG22FSovUQVZJuNttpux3122mxTYffca0uxxd9TTOH331xwMQUXfh8OuOB/b1H4FIsP3jjkWwQueeFgRPEFF19kHoXmYIDBReabg7F555+DLvrpnmt+Ouupdw5GF6FnQfvsXWThBRheeNFF7rXf/rvuvINhe+jDG0/78bgTL8YVXlwRxvRePH+FGNVfcX0Y0U/PvfXYd0/9//Pdi/+99s9DoQUU7GOBhRZavM/+
 Fe2v3/778a9vPxTuw2///v3Ln/sGSMACGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTCMoQxnSMMa2vCGOMyhDnfIwx76EIb0AyD+5AcF+vFPiPCTHxLhx74lvo980hsf+rK3PfNRMXxRPF/5snjF2zFveLvrXfKUh7zchZGMzSPjF80YOs1xrnWyG50bTffG2IWOc3X83Bdel0fVSc5yjXsc4irHhcgF0nCGbFzlEuk4Lohtb3hzW9vEBrey3Y1uj7Qk3+IGSUwizf9rYMua1KgGSq5lrZRY89rXTKkHmOUMaEajmc2CNjRYzqyWOxPaK3dmtJJZ7GMYI9nGOvZLkoXMYifzZcWKiTInJGxfC0NYEgI2sHxB82HPPBjD9uUwf/3gW/IiF7zQpS52kUuc5wrnu9RpryIoC1nYqtY7ozWtblkLntyi57aoRQcaqKpXrhoWr2zFA2AFdFe1AuivgpUrgfLgUaeyVKjqkKlNRRRUopIUqTJlKo2iKlR3yhOjDEWoPIk0UI061EgVddJCFapLb2ITmcyEJhzEtE5yolOc5gQmmb4ASVHa0pSaFNQoPYmoVNLSlYzKpBcRyUg3kkGOdvTUHwWpRkb/KhKRgHQhFpXoQyFKw4hSBKIPeVVFGjprWVnwHwo1yEAIUpBbJdRWAVVoQnZ9a4Dyw577xIc/9AGsX/mKgfbshz+FHWx0zPMd7TiWsdcJj3cWKx7xnEcDwUHOb4ij2d80h7OdXU5ohwMa2uimNaxRDW5qIxvV5sY2uHltayWTmcpcBjK0pUxjMNMZ23KmtruNAGAGIxe62IUvfiFMX4jLlsAkt7hmQQtWvMKVq0xFumERC3bNchawaMUpTEFKUKCylKMApbxQAa95P/CRkMikJCdJyUrc65L40vcm9LUJfENiEIhkxCH+lYhC/msR/25EwBTRCAPc8Y95BGQg8mhwZ
 j8EEuEHSzgg4jhHOcABggxrgx3m+PCG17FhaqChGcZARjGAsQxhSOMZcKjGNEyM4mesghe76AUuXOELWuBYF70Ico4VcYpNdOIRmTDyKEphiiSHghGG8IQiHBEJRyC5Ep2osicCAQA7');
-	background-repeat: repeat-x;
-	color: #ffffff;
-	padding: .8em .5em .4em .8em;
-	height: auto; /*height:1.8em;*/
-	font-size: 1em;
-	margin: 0;
-}
-
-.topNav {
-	background-image: url('data:image/gif;base64,R0lGODlhMgBwAOYAAAAAAP///z1bcT5ccj9dc0NieUBedERjekFfdUtthlZ6lTxbcT1ccjxbcD5dcz1ccTtZbUJieUFhdz9edD5dcjxZbjxabjtYbEZogEVmfkVnfkRlfENjekJieEBfdT9ecz1bbzxZbUZof0VmfURle0NjeUJhd0BfdD1abk5zjEtvh0pthUlrg0hqgURkek1xiUxviExwiEtuhklrglN5k1F2kFB1jk9zjE5xik5yiktthVJ2kFJ3kFF2j05xiVd9mFV6lVR5k1F1jld9l1Z7lVV6lFqAm1l/mVh9mFh+mFqAml2DnluAm1uBm1p/mV2DnWGIo2CGoV+FoF+Fn16Dnl6Enl2CnGKIo2KJo2GHomGIomCFoGCGoGKHomKIomGGoWGHoWOIo2OJozxbb0VofzxbbjtZbEZpgDxabUhrgkJid0Fhdklsg0hrgTxZbE5ziz1abU90jElrgUhqgFN5klB1jVR6k1F2jll/mFqAmVyCm12DnP///wAAAAAAAAAAACH5BAEAAHwALAAAAAAyAHAAAAf/gGYhgmaFgiGIg4OEi4WJiISGkIuNh4mWgheGbpOWipqFnJchoI+ToGZuFhUQrK2trrAQs6+vFbG1rLe5s7quaMDAcCgoaCjDw8EhwcPFx8fMxMbB0c7DZWUg2iBj3Nnb2djb3N7j291j3+bo3wsLDe/wAg0P8A32C/Px+fT2/vz19t0DCI/BAAYPBgx4gPAgg4YLDyZc2PDhw4kME1bEWJEBAQoEHBD46ICCSAciKagcKZKkyZAnR5p82bLlzJMfDBjI+aFnzp0TJvTUuXOnT50fJhT1+bOp0aE7T0iVigDBCQ8IPEjValUr1a5Zp369alXsiapktUqQsMZEWxMm/9aumbtGTdy5buHGZUs3L1y5btu+3Tu3Q4QIJQp0KHF4MWLEHQwjVsw
 4gmPGiR1bnjxZs2MXB0qI5uCiBIcDHEq4cJG6tGjTpU+3fk3adOjXo2OjLrGBhO/evUlsGA5cuG/jwYknN858efLhGTKMGCE9unUN0bFn0DC9uvXt0qlTt969/PftZDCoV3+GjAgMItKvP/N+vnv48u3XX68f/5wWc8zRBoD/EdhCG3IcSOCAAbZgYIAMFgghhAYSyAYbaczAwoYbsqEhCxdiiOGHHHq4YYYcdogiiimamIAOCSQgQ4wzxriCjCvosMKNMtIYYwI89iikj0LWCKQKMcAAg/8KSi6pApNKQtmklE9KueSUUGaJJZM4vJDDl116+cKYOeDgAw5oflkmmWN6qWaYObip5ppijpnCDW/cgOcbceDZp55vBIonoHz6CSihfQo66J6J9mlDHXXcIcQdNlA6KaQ2CKGpEJFOWmmmd0DaKaWWdjrqp5fysAMPrO6wQw871MBqDzz0QKusrb4a66ysqqorrr36CiuuNNBABx1BFEuHHcfSkKyxxx777LLNBiGtssxKe62x2dJQhAJEEAGuuEQUYS4RQABRRLjhjguuueu2K2+87s5r7g9JIJFEEvj2+wO+QwyBhL768mvwv/gW3C+/BSt88L95OCExHng4gUf/xBFffMQRFE9c8cVOZOyxxRFPPDLIESthhBFMNKGEyka43AQTSjDR8sotv7yyzEyw7DLMTfjss84xK9GEHnpYobQVeuxhhdNI77FH004v3fTTTCdttdNVL6301VA/scQSVFDxxBNVVIG22FSovUQVZJuNttpux3122mxTYffca0uxxd9TTOH331xwMQUXfh8OuOB/b1H4FIsP3jjkWwQueeFgRPEFF19kHoXmYIDBReabg7F555+DLvrpnmt+Ouupdw5GF6FnQfvsXWThBRheeNFF7rXf/rvuvINhe+jDG0/78bgTL8YVXlwRxvRePH+FGNVfcX0Y0U/PvfXYd0/9//Pdi/+99s9DoQUU7GOBhRZavM/+
 Fe2v3/778a9vPxTuw2///v3Ln/sGSMACGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTCMoQxnSMMa2vCGOMyhDnfIwx76EIb0AyD+5AcF+vFPiPCTHxLhx74lvo980hsf+rK3PfNRMXxRPF/5snjF2zFveLvrXfKUh7zchZGMzSPjF80YOs1xrnWyG50bTffG2IWOc3X83Bdel0fVSc5yjXsc4irHhcgF0nCGbFzlEuk4Lohtb3hzW9vEBrey3Y1uj7Qk3+IGSUwizf9rYMua1KgGSq5lrZRY89rXTKkHmOUMaEajmc2CNjRYzqyWOxPaK3dmtJJZ7GMYI9nGOvZLkoXMYifzZcWKiTInJGxfC0NYEgI2sHxB82HPPBjD9uUwf/3gW/IiF7zQpS52kUuc5wrnu9RpryIoC1nYqtY7ozWtblkLntyi57aoRQcaqKpXrhoWr2zFA2AFdFe1AuivgpUrgfLgUaeyVKjqkKlNRRRUopIUqTJlKo2iKlR3yhOjDEWoPIk0UI061EgVddJCFapLb2ITmcyEJhzEtE5yolOc5gQmmb4ASVHa0pSaFNQoPYmoVNLSlYzKpBcRyUg3kkGOdvTUHwWpRkb/KhKRgHQhFpXoQyFKw4hSBKIPeVVFGjprWVnwHwo1yEAIUpBbJdRWAVVoQnZ9a4Dyw577xIc/9AGsX/mKgfbshz+FHWx0zPMd7TiWsdcJj3cWKx7xnEcDwUHOb4ij2d80h7OdXU5ohwMa2uimNaxRDW5qIxvV5sY2uHltayWTmcpcBjK0pUxjMNMZ23KmtruNAGAGIxe62IUvfiFMX4jLlsAkt7hmQQtWvMKVq0xFumERC3bNchawaMUpTEFKUKCylKMApbxQAa95P/CRkMikJCdJyUrc65L40vcm9LUJfENiEIhkxCH+lYhC/msR/25EwBTRCAPc8Y95BGQg8mhwZ
 j8EEuEHSzgg4jhHOcABggxrgx3m+PCG17FhaqChGcZARjGAsQxhSOMZcKjGNEyM4mesghe76AUuXOELWuBYF70Ico4VcYpNdOIRmTDyKEphiiSHghGG8IQiHBEJRyC5Ep2osicCAQA7');
-	background-repeat: repeat-x;
-	color: #ffffff;
-	float: left;
-	padding: 0;
-	width: 100%;
-	clear: right;
-	height: 2.8em;
-	padding-top: 10px;
-	overflow: hidden;
-}
-
-.bottomNav {
-	margin-top: 10px;
-	background-image: url('data:image/gif;base64,R0lGODlhMgBwAOYAAAAAAP///z1bcT5ccj9dc0NieUBedERjekFfdUtthlZ6lTxbcT1ccjxbcD5dcz1ccTtZbUJieUFhdz9edD5dcjxZbjxabjtYbEZogEVmfkVnfkRlfENjekJieEBfdT9ecz1bbzxZbUZof0VmfURle0NjeUJhd0BfdD1abk5zjEtvh0pthUlrg0hqgURkek1xiUxviExwiEtuhklrglN5k1F2kFB1jk9zjE5xik5yiktthVJ2kFJ3kFF2j05xiVd9mFV6lVR5k1F1jld9l1Z7lVV6lFqAm1l/mVh9mFh+mFqAml2DnluAm1uBm1p/mV2DnWGIo2CGoV+FoF+Fn16Dnl6Enl2CnGKIo2KJo2GHomGIomCFoGCGoGKHomKIomGGoWGHoWOIo2OJozxbb0VofzxbbjtZbEZpgDxabUhrgkJid0Fhdklsg0hrgTxZbE5ziz1abU90jElrgUhqgFN5klB1jVR6k1F2jll/mFqAmVyCm12DnP///wAAAAAAAAAAACH5BAEAAHwALAAAAAAyAHAAAAf/gGYhgmaFgiGIg4OEi4WJiISGkIuNh4mWgheGbpOWipqFnJchoI+ToGZuFhUQrK2trrAQs6+vFbG1rLe5s7quaMDAcCgoaCjDw8EhwcPFx8fMxMbB0c7DZWUg2iBj3Nnb2djb3N7j291j3+bo3wsLDe/wAg0P8A32C/Px+fT2/vz19t0DCI/BAAYPBgx4gPAgg4YLDyZc2PDhw4kME1bEWJEBAQoEHBD46ICCSAciKagcKZKkyZAnR5p82bLlzJMfDBjI+aFnzp0TJvTUuXOnT50fJhT1+bOp0aE7T0iVigDBCQ8IPEjValUr1a5Zp369alXsiapktUqQsMZEWxMm/9aumbtGTdy5buHGZUs3L1y5btu+3Tu3Q4QIJQp0KHF4MWLEHQwjVsw
 4gmPGiR1bnjxZs2MXB0qI5uCiBIcDHEq4cJG6tGjTpU+3fk3adOjXo2OjLrGBhO/evUlsGA5cuG/jwYknN858efLhGTKMGCE9unUN0bFn0DC9uvXt0qlTt969/PftZDCoV3+GjAgMItKvP/N+vnv48u3XX68f/5wWc8zRBoD/EdhCG3IcSOCAAbZgYIAMFgghhAYSyAYbaczAwoYbsqEhCxdiiOGHHHq4YYYcdogiiimamIAOCSQgQ4wzxriCjCvosMKNMtIYYwI89iikj0LWCKQKMcAAg/8KSi6pApNKQtmklE9KueSUUGaJJZM4vJDDl116+cKYOeDgAw5oflkmmWN6qWaYObip5ppijpnCDW/cgOcbceDZp55vBIonoHz6CSihfQo66J6J9mlDHXXcIcQdNlA6KaQ2CKGpEJFOWmmmd0DaKaWWdjrqp5fysAMPrO6wQw871MBqDzz0QKusrb4a66ysqqorrr36CiuuNNBABx1BFEuHHcfSkKyxxx777LLNBiGtssxKe62x2dJQhAJEEAGuuEQUYS4RQABRRLjhjguuueu2K2+87s5r7g9JIJFEEvj2+wO+QwyBhL768mvwv/gW3C+/BSt88L95OCExHng4gUf/xBFffMQRFE9c8cVOZOyxxRFPPDLIESthhBFMNKGEyka43AQTSjDR8sotv7yyzEyw7DLMTfjss84xK9GEHnpYobQVeuxhhdNI77FH004v3fTTTCdttdNVL6301VA/scQSVFDxxBNVVIG22FSovUQVZJuNttpux3122mxTYffca0uxxd9TTOH331xwMQUXfh8OuOB/b1H4FIsP3jjkWwQueeFgRPEFF19kHoXmYIDBReabg7F555+DLvrpnmt+Ouupdw5GF6FnQfvsXWThBRheeNFF7rXf/rvuvINhe+jDG0/78bgTL8YVXlwRxvRePH+FGNVfcX0Y0U/PvfXYd0/9//Pdi/+99s9DoQUU7GOBhRZavM/+
 Fe2v3/778a9vPxTuw2///v3Ln/sGSMACGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTCMoQxnSMMa2vCGOMyhDnfIwx76EIb0AyD+5AcF+vFPiPCTHxLhx74lvo980hsf+rK3PfNRMXxRPF/5snjF2zFveLvrXfKUh7zchZGMzSPjF80YOs1xrnWyG50bTffG2IWOc3X83Bdel0fVSc5yjXsc4irHhcgF0nCGbFzlEuk4Lohtb3hzW9vEBrey3Y1uj7Qk3+IGSUwizf9rYMua1KgGSq5lrZRY89rXTKkHmOUMaEajmc2CNjRYzqyWOxPaK3dmtJJZ7GMYI9nGOvZLkoXMYifzZcWKiTInJGxfC0NYEgI2sHxB82HPPBjD9uUwf/3gW/IiF7zQpS52kUuc5wrnu9RpryIoC1nYqtY7ozWtblkLntyi57aoRQcaqKpXrhoWr2zFA2AFdFe1AuivgpUrgfLgUaeyVKjqkKlNRRRUopIUqTJlKo2iKlR3yhOjDEWoPIk0UI061EgVddJCFapLb2ITmcyEJhzEtE5yolOc5gQmmb4ASVHa0pSaFNQoPYmoVNLSlYzKpBcRyUg3kkGOdvTUHwWpRkb/KhKRgHQhFpXoQyFKw4hSBKIPeVVFGjprWVnwHwo1yEAIUpBbJdRWAVVoQnZ9a4Dyw577xIc/9AGsX/mKgfbshz+FHWx0zPMd7TiWsdcJj3cWKx7xnEcDwUHOb4ij2d80h7OdXU5ohwMa2uimNaxRDW5qIxvV5sY2uHltayWTmcpcBjK0pUxjMNMZ23KmtruNAGAGIxe62IUvfiFMX4jLlsAkt7hmQQtWvMKVq0xFumERC3bNchawaMUpTEFKUKCylKMApbxQAa95P/CRkMikJCdJyUrc65L40vcm9LUJfENiEIhkxCH+lYhC/msR/25EwBTRCAPc8Y95BGQg8mhwZ
 j8EEuEHSzgg4jhHOcABggxrgx3m+PCG17FhaqChGcZARjGAsQxhSOMZcKjGNEyM4mesghe76AUuXOELWuBYF70Ico4VcYpNdOIRmTDyKEphiiSHghGG8IQiHBEJRyC5Ep2osicCAQA7');
-	background-repeat: repeat-x;
-	color: #ffffff;
-	float: left;
-	padding: 0;
-	width: 100%;
-	clear: right;
-	height: 2.8em;
-	padding-top: 10px;
-	overflow: hidden;
-}
-
-.subNav {
-	background-color: #dee3e9;
-	border-bottom: 1px solid #9eadc0;
-	float: left;
-	width: 100%;
-	overflow: hidden;
-}
-
-.subNav div {
-	clear: left;
-	float: left;
-	padding: 0 0 5px 6px;
-}
-
-ul.navList,
-ul.subNavList {
-	float: left;
-	margin: 0 25px 0 0;
-	padding: 0;
-}
-
-ul.navList li {
-	list-style: none;
-	float: left;
-	padding: 3px 6px;
-}
-
-ul.subNavList li {
-	list-style: none;
-	float: left;
-	font-size: 90%;
-}
-
-.topNav a:link,
-.topNav a:active,
-.topNav a:visited,
-.bottomNav a:link,
-.bottomNav a:active,
-.bottomNav a:visited {
-	color: #ffffff;
-	text-decoration: none;
-}
-
-.topNav a:hover,
-.bottomNav a:hover {
-	text-decoration: none;
-	color: #bb7a2a;
-}
-
-.navBarCell1Rev {
-	background-image: url('data:image/gif;base64,R0lGODlhAwAeANUAAAAAAP///9+VNfChOu+gOeKXNr58Kr18Krp6KbZ3KMyGLr9+K7t6Krh4KbZ3KdKKMM+IL8yGL8mELsiDLsWBLcWCLcKALLl4KtKLMd+UNdyRNNmPM9WNMvCgOuqcOOaZN+WYN+KWNtqQNPGhO+yeOuucOeeaOPOiPP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACgALAAAAAADAB4AAAZAwJNwMBoQOgSS0lPymJ4f0CdUCGUEGY12I9pwvpgHBkJWRBQTyaRCqVjei/jBcGAgGI1LI+FI5Pd9f3x+eoJ9QQA7');
-	background-color: #a88834;
-	color: #ffffff;
-	margin: auto 5px;
-	border: 1px solid #c9aa44;
-}
-/*
-Page header and footer styles
-*/
-.header,
-.footer {
-	clear: both;
-	margin: 0 20px;
-	padding: 5px 0 0 0;
-}
-
-.indexHeader {
-	margin: 10px;
-	position: relative;
-}
-
-.indexHeader h1 {
-	font-size: 1.3em;
-}
-
-.title {
-	color: #2c4557;
-	margin: 10px 0;
-}
-
-.subTitle {
-	margin: 5px 0 0 0;
-}
-
-.header ul {
-	margin: 0 0 25px 0;
-	padding: 0;
-}
-
-.footer ul {
-	margin: 20px 0 5px 0;
-}
-
-.header ul li/*,
-.footer ul li*/ {
-	list-style: none;
-	font-size: 1.2em;
-}
-/*
-Heading styles
-*/
-div.details ul.blockList ul.blockList ul.blockList li.blockList h4,
-div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
-	background-color: #dee3e9;
-	border-top: 1px solid #9eadc0;
-	border-bottom: 1px solid #9eadc0;
-	margin: 0 0 6px -8px;
-	padding: 2px 5px;
-}
-
-ul.blockList ul.blockList ul.blockList li.blockList h3 {
-	background-color: #dee3e9;
-	border-top: 1px solid #9eadc0;
-	border-bottom: 1px solid #9eadc0;
-	margin: 0 0 6px -8px;
-	padding: 2px 5px;
-}
-
-ul.blockList ul.blockList li.blockList h3 {
-	padding: 0;
-	margin: 15px 0;
-}
-
-ul.blockList li.blockList h2 {
-	padding: 0px 0 20px 0;
-}
-/*
-Page layout container styles
-*/
-.contentContainer,
-.sourceContainer,
-.classUseContainer,
-.serializedFormContainer,
-.constantValuesContainer {
-	clear: both;
-	padding: 10px 20px;
-	position: relative;
-}
-
-.indexContainer {
-	margin: 10px;
-	position: relative;
-	font-size: 1.0em;
-}
-
-.indexContainer h2 {
-	font-size: 1.1em;
-	padding: 0 0 3px 0;
-}
-
-.indexContainer ul {
-	margin: 0;
-	padding: 0;
-}
-
-.indexContainer ul li {
-	list-style: none;
-}
-
-.contentContainer .description dl dt,
-.contentContainer .details dl dt,
-.serializedFormContainer dl dt {
-	font-size: 1.1em;
-	font-weight: bold;
-	margin: 10px 0 0 0;
-	color: #4e4e4e;
-}
-
-.contentContainer .description dl dd,
-.contentContainer .details dl dd,
-.serializedFormContainer dl dd {
-	margin: 10px 0 10px 20px;
-}
-
-.serializedFormContainer dl.nameValue dt {
-	margin-left: 1px;
-	font-size: 1.1em;
-	display: inline;
-	font-weight: bold;
-}
-
-.serializedFormContainer dl.nameValue dd {
-	margin: 0 0 0 1px;
-	font-size: 1.1em;
-	display: inline;
-}
-/*
-List styles
-*/
-ul.horizontal li {
-	display: inline;
-	font-size: 0.9em;
-}
-
-ul.inheritance {
-	margin: 0;
-	padding: 0;
-}
-
-ul.inheritance li {
-	display: inline;
-	list-style: none;
-}
-
-ul.inheritance li ul.inheritance {
-	margin-left: 15px;
-	padding-left: 15px;
-	padding-top: 1px;
-}
-
-ul.blockList,
-ul.blockListLast {
-	margin: 10px 0 10px 0;
-	padding: 0;
-}
-
-ul.blockList li.blockList,
-ul.blockListLast li.blockList {
-	list-style: none;
-	margin-bottom: 25px;
-}
-
-ul.blockList ul.blockList li.blockList,
-ul.blockList ul.blockListLast li.blockList {
-	padding: 0px 20px 5px 10px;
-	border: 1px solid #9eadc0;
-	background-color: #f9f9f9;
-}
-
-ul.blockList ul.blockList ul.blockList li.blockList,
-ul.blockList ul.blockList ul.blockListLast li.blockList {
-	padding: 0 0 5px 8px;
-	background-color: #ffffff;
-	border: 1px solid #9eadc0;
-	border-top: none;
-}
-
-ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
-	margin-left: 0;
-	padding-left: 0;
-	padding-bottom: 15px;
-	border: none;
-	border-bottom: 1px solid #9eadc0;
-}
-
-ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
-	list-style: none;
-	border-bottom: none;
-	padding-bottom: 0;
-}
-
-table tr td dl,
-table tr td dl dt,
-table tr td dl dd {
-	margin-top: 0;
-	margin-bottom: 1px;
-}
-/*
-Table styles
-*/
-.contentContainer table,
-.classUseContainer table,
-.constantValuesContainer table {
-	border-bottom: 1px solid #9eadc0;
-	width: 100%;
-}
-
-.contentContainer ul li table,
-.classUseContainer ul li table,
-.constantValuesContainer ul li table {
-	width: 100%;
-}
-
-.contentContainer .description table,
-.contentContainer .details table {
-	border-bottom: none;
-}
-
-.contentContainer ul li table th.colOne,
-.contentContainer ul li table th.colFirst,
-.contentContainer ul li table th.colLast,
-.classUseContainer ul li table th,
-.constantValuesContainer ul li table th,
-.contentContainer ul li table td.colOne,
-.contentContainer ul li table td.colFirst,
-.contentContainer ul li table td.colLast,
-.classUseContainer ul li table td,
-.constantValuesContainer ul li table td {
-	vertical-align: top;
-	padding-right: 20px;
-}
-
-.contentContainer ul li table th.colLast,
-.classUseContainer ul li table th.colLast,
-.constantValuesContainer ul li table th.colLast,
-.contentContainer ul li table td.colLast,
-.classUseContainer ul li table td.colLast,
-.constantValuesContainer ul li table td.colLast,
-.contentContainer ul li table th.colOne,
-.classUseContainer ul li table th.colOne,
-.contentContainer ul li table td.colOne,
-.classUseContainer ul li table td.colOne {
-	padding-right: 3px;
-}
-
-.overviewSummary caption,
-.packageSummary caption,
-.contentContainer ul.blockList li.blockList caption,
-.summary caption,
-.classUseContainer caption,
-.constantValuesContainer caption {
-	position: relative;
-	text-align: left;
-	background-repeat: no-repeat;
-	color: #ffffff;
-	font-weight: bold;
-	clear: none;
-	overflow: hidden;
-	padding: 0px;
-	margin: 0px;
-}
-
-caption a:link,
-caption a:hover,
-caption a:active,
-caption a:visited {
-	color: #ffffff;
-}
-
-.overviewSummary caption span,
-.packageSummary caption span,
-.contentContainer ul.blockList li.blockList caption span,
-.summary caption span,
-.classUseContainer caption span,
-.constantValuesContainer caption span {
-	white-space: nowrap;
-	padding-top: 8px;
-	padding-left: 8px;
-	display: block;
-	float: left;
-	background-image: url(resources/titlebar.gif);
-	height: 18px;
-}
-
-.overviewSummary .tabEnd,.packageSummary .tabEnd,
-.contentContainer ul.blockList li.blockList .tabEnd,
-.summary .tabEnd,
-.classUseContainer .tabEnd,
-.constantValuesContainer .tabEnd {
-	width: 10px;
-	background-image: url('data:image/gif;base64,R0lGODlhEwAoAOYAAAAAAP////CgOe6fON+VNfChOu+gOeKXNvGiO+2fOtqOML58Kr17Kr18Krt6Kbp6KbZ2KLZ3KNuPMdqOMdqPMcyFLsyGLsiDLcOALMB+K799K79+K758K7t6Krh3Kbh4KbZ3KdKKMNKLMM+IL8yGL8mELsiDLsiELsaCLcWBLcWCLcJ/LMKALLl4Krh4KtKLMc+JMOWYNuOXNt+UNdyRNNmPM9WNMvCgOuqcOOibOOaYN+aZN+WYN+KWNt2SNdqQNNmQNNWOM/GhO/CgO+2eOuyeOuucOeudOeqcOeeaOPOiPN2VP92XQd+bSOezd+i1evnt4Pvy6v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFIALAAAAAATACgAAAf/gBQTCoQUChSGgoVNT1EBSpCRkpNDOkxQBQUICEIFnZ6ZnJkFO04GBpk3BqqrpwWqAgUDS0UJtkW4ubUJuLZECjhIR0dGOMXGwcTGSEgUSTlJ0dLS0NE50BM7PNs82jve3NoxPBQ9Mj09B+no6ufq5j0SM/MzBPXz9vj3BBI0PjQAAwb8N5CGghoIa/xQiHBhwxpAgNSgYCOIRRsYM1YMojHIhBcvQogMCTJESZMiTE4YAaPliJcwWcJ4OXMEBQsVSOi0QMICT5w7dZJQYKLEiRMlippQajRpiQsnJKhAQTWFCqtXp6KwuhXFBBYYWIgdOzasWAwrMEzYoCFDhg1wruOyfbvhbQYKDRowYLCgQV+/efnmbcBBQocHDhw8ONyBMeLFDyJT+OD
 iw4cWly1jroz5socJESJAgAAiQmnToUmHBgFicuXMnTdn9gxatOrTp1Wbbk1Z82zZsT+nvr06NW7erzHH7h18Qm/YvjlrFm67NG7jq5H7Xi6d9nDrxUUfd709+m/qo8GjFp+dPPTM3VugJ75eN2v3ys03/74+93hEiEwgSIAACijBIBQEAgA7');
-	background-repeat: no-repeat;
-	background-position: top right;
-	position: relative;
-	float: left;
-}
-
-ul.blockList ul.blockList li.blockList table {
-	margin: 0 0 12px 0px;
-	width: 100%;
-}
-
-.tableSubHeadingColor {
-	background-color: #EEEEFF;
-}
-
-.altColor {
-	background-color: #eeeeef;
-}
-
-.rowColor {
-	background-color: #ffffff;
-}
-
-.overviewSummary td,
-.packageSummary td,
-.contentContainer ul.blockList li.blockList td,
-.summary td,
-.classUseContainer td,.constantValuesContainer td {
-	text-align: left;
-	padding: 3px 3px 3px 7px;
-}
-
-th.colFirst,
-th.colLast,
-th.colOne,
-.constantValuesContainer th {
-	background: #dee3e9;
-	border-top: 1px solid #9eadc0;
-	border-bottom: 1px solid #9eadc0;
-	text-align: left;
-	padding: 3px 3px 3px 7px;
-}
-
-td.colOne a:link,
-td.colOne a:active,
-td.colOne a:visited,
-td.colOne a:hover,
-td.colFirst a:link,
-td.colFirst a:active,
-td.colFirst a:visited,
-td.colFirst a:hover,
-td.colLast a:link,
-td.colLast a:active,
-td.colLast a:visited,
-td.colLast a:hover,
-.constantValuesContainer td a:link,
-.constantValuesContainer td a:active,
-.constantValuesContainer td a:visited,
-.constantValuesContainer td a:hover {
-	font-weight: bold;
-}
-
-td.colFirst,
-th.colFirst {
-	border-left: 1px solid #9eadc0;
-	white-space: nowrap;
-}
-
-td.colLast,
-th.colLast {
-	border-right: 1px solid #9eadc0;
-}
-
-td.colOne,
-th.colOne {
-	border-right: 1px solid #9eadc0;
-	border-left: 1px solid #9eadc0;
-}
-
-table.overviewSummary {
-	padding: 0px;
-	margin-left: 0px;
-}
-
-table.overviewSummary td.colFirst,
-table.overviewSummary th.colFirst,
-table.overviewSummary td.colOne,
-table.overviewSummary th.colOne {
-	width: 25%;
-	vertical-align: middle;
-}
-
-table.packageSummary td.colFirst,
-table.overviewSummary th.colFirst {
-	width: 25%;
-	vertical-align: middle;
-}
-/*
-Content styles
-*/
-.description pre {
-	margin-top: 0;
-}
-
-.deprecatedContent {
-	margin: 0;
-	padding: 10px 0;
-}
-
-.docSummary {
-	padding: 0;
-}
-
-/*
-Formatting effect styles
-*/
-.sourceLineNo {
-	color: green;
-	padding: 0 30px 0 0;
-}
-
-h1.hidden {
-	visibility: hidden;
-	overflow: hidden;
-	font-size: .9em;
-}
-
-.block {
-	display: block;
-	margin: 0px;
-}
-
-.strong {
-	font-weight: bold;
-}
-
-/*--- Juno-specific styles --------------------------------------------------*/
-
-property {
-	font-size: 9pt;
-	font-family: monospace;
-	font-weight: bold;
-}
-
-/*--- Bordered code ---*/
-p.bcode {
-	font-size: 9pt;
-	white-space: pre;
-	border: 1px solid black;
-	margin: 0px 20px;
-	border-radius: 10px;
-	overflow: hidden;
-	font-family: monospace;
-	background-color: #f8f8f8;
-	border-color: #cccccc;
-	-moz-tab-size: 3;
-	tab-size: 3;
-	-o-tab-size: 3;
-}
-
-.fixedWidth {
-	max-width: 800px;
-}
-
-/* Override padding bottom in javadoc comments. */
-.blockList p.bcode {
-	padding-bottom: 0px !important;
-}
-
-/*--- Unbordered code ---*/
-p.code {
-	font-size: 9pt;
-	white-space: pre;
-	font-family: monospace;
-	padding-bottom: 15px;
-	margin: -15px;
-}
-
-td.code {
-	font-size: 9pt;
-	white-space: pre;
-	font-family: monospace;
-}
-
-table.code {
-	font-size: 9pt;
-	white-space: pre;
-	font-family: monospace;
-}
-
-/*--- Java code effects ---*/
-jc,jd,jt,jk,js,jf,jsf,jsm,ja {
-	font-size: 9pt;
-	white-space: pre;
-	font-family: monospace;
-}
-/* Comment */
-jc {
-	color: green;
-}
-/* Javadoc comment */
-jd {
-	color: #3f5fbf;
-}
-/* Javadoc tag */
-jt {
-	color: #7f9fbf;
-	font-weight: bold;
-}
-/* Primitive */
-jk {
-	color: #7f0055;
-	font-weight: bold;
-}
-/* String */
-js {
-	color: blue;
-}
-/* Field */
-jf {
-	color: blue;
-}
-/* Static field */
-jsf {
-	color: blue;
-	font-style: italic;
-}
-/* Static method */
-jsm {
-	font-style: italic;
-}
-/* Annotation */
-ja {
-	color: grey;
-}
-
-/*--- XML code effects ---*/
-xt,xa,xc,xs {
-	font-size: 9pt;
-	white-space: pre;
-	font-family: monospace;
-}
-
-xt {
-	color: DarkCyan;
-}
-
-xa {
-	color: purple;
-}
-
-xc {
-	color: mediumblue;
-}
-
-xs {
-	color: blue;
-	font-style: italic;
-}
-
-/*--- Override formatting on <table class='styled'> ---*/
-table.styled,.contentContainer .description table.styled,.contentContainer ul li table.styled,ul.blockList ul.blockList li.blockList table.styled
-	{
-	padding: 0px;
-	position: relative;
-	font-size: 1.1em;
-	width: auto;
-	border: 1px solid #9eadc0;
-	margin-left: 20px;
-	margin-right: 20px;
-	border-collapse: collapse;
-}
-
-table.styled th {
-	background-color: #dee3e9;
-	border: 1px solid #9eadc0;
-	padding: 3px 10px 3px 10px;
-}
-
-table.styled td {
-	padding: 3px;
-}
-
-table.styled ul {
-	padding: 0px 10px;
-}
-
-table.styled tr:nth-child(1) {
-	background-color: #dee3e9;
-}
-
-table.styled tr:nth-child(2n+2) {
-	background-color: #eeeeef;
-}
-
-table.styled tr:nth-child(2n+3) {
-	background-color: white;
-}
-
-/* Same as r1 except with a border on the bottom */
-table.styled tr.bb {
-	border-bottom: 1px solid #9eadc0
-}
-
-table.styled tr.light {
-	background-color: white !important;
-}
-
-table.styled tr.dark {
-	background-color: #eeeeef !important;
-}
-
-/*--- Juno topic headers ---*/
-h2.topic,
-h3.topic,
-h4.topic {
-	margin-bottom: 20px;
-	margin-top: 25px;
-	padding-top: 3px;
-	padding-left: 25px;
-	color: #2c4557;
-	border-top: 2px groove #9eadc0;
-	background-image: url('data:image/gif;base64,R0lGODlhEAAQAIQfACZJcSdKcjFTejVWfT5fhUFih0ZnjEhojUxskFFwk1Z0l1d1mFp4ml98nmaComiEpGuHpnKNq3SOrHiRroGZtYeeuJGmv5erwp+yx6O1yqm6zrDA0sTQ3s3X4+Dn7v///yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEAAB8ALAAAAAAQABAAAAVk4CeOZGmWgmEQG/k0MHw4UY0gY1PvfG3kvaBhUqk4IMgkcuGrdJ7QaCfDiBgunKx2m1VYP5KNeEze0H4VjHrNVh9+HodlTq9bEr9PhMLv+ykOAyIaNEE8ACMFiouMigEnkJGQIQA7');
-	background-repeat: no-repeat;
-	background-position: left center;
-}
-
-h2.closed,
-h3.closed,
-h4.closed {
-	background-image: url('data:image/gif;base64,R0lGODlhEAAQAIQYADNVfDhagUNkiUZnjEhojUxskE9vklFwlFd1mF17nWJ/oGaCo2+KqXKNq3aQrX2WsoGZtYObtoeeuJKowJ2wxqm6zrbF1sTQ3v///////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEAAB8ALAAAAAAQABAAAAVi4CeOZGmST6EGpLK8cNHMi6GI8qzvcyEikqBwGByIIJekcpmEiByWqHQadYgYlax2m2WIFpSweBxeiBKTtHqdTvwi8LgcjhAdHPi8Hn8QERiAgYKABCIAAoiJiogAJ46PjiEAOw==') !important;
-}
-
-div.topic {
-	margin-left: 10px;
-}
-
-h5.topic,
-h6.topic {
-	margin-bottom: 10px;
-	margin-top: 20px;
-	color: #2c4557;
-	text-decoration: underline;
-}
-
-h6 {
-	margin: 10px 0px;
-}
-
-h6.figure {
-	color: #2c4557;
-	margin-left: 30px;
-	margin-right: 30px;
-	margin-top: 10px;
-	margin-bottom: 0px;
-	font-style: italic;
-}
-
-/*--- Override how Javadoc handles unordered lists inside .footer ---*/
-ul.normal {
-	margin-top: 0px;
-}
-
-ul.normal li {
-	font-size: 100%;
-	list-style: disc;
-}
-
-/*--- Bordered images ---*/
-.bordered {
-	border: 1px solid #cccccc;
-	margin: 0px 20px;
-	border-radius: 10px;
-}
-
-.padded {
-	padding-left: 20px;
-	padding-right: 20px;
-}
-
-/*--- Rows with bottom borders ---*/
-tr.borderbottom td {
-	border-bottom: 1px solid #9eadc0
-}
-
-/* Article links */
-a.doclink {
-	font-weight: bold;
-}
-
-.nomargin {
-	margin: 0px;
-}
-
-ol.toc,
-ul.toc,
-.toc ol,
-.toc ul {
-	background: #dee3e9;
-	margin: 0px;
-	padding: 0px;
-}
-
-ul.toc,
-.toc ul {
-	list-style: disc;
-}
-
-ol.toc p,
-ul.toc p,
-.toc ol p,
-.toc ul p,
-ol.toc div,
-ul.toc div,
-.toc ol div,
-.toc ul div {
-	color: #353833;
-	font: normal 1em Arial, Helvetica, sans-serif;
-	font-size: 1em;
-	padding-bottom: 5px;
-	margin: 0px;
-}
-
-.toc li {
-	background: #FFFFFF;
-	margin-left: 30px;
-	padding-left: 5px;
-}
-
-/* Linear gradients */
-
-/* Light-colored background headers */
-h5.toc,
-h6.toc, 
-h2.title,
-div.docSummary > div.block,
-div.contentContainer > div.block > p:first-child {
-	background: linear-gradient(to bottom, #F5F5F5, #DEE3E9) repeat scroll 0% 0% transparent;
-	background: -moz-linear-gradient(to bottom, #F5F5F5, #DEE3E9) repeat scroll 0% 0% transparent;
-	background: -webkit-gradient(linear, left top, left bottom, from(#F5F5F5), to(#DEE3E9) );
-}
-
-/* Dark-colored background headers */
-div.header > div.subTitle > div.block,
-div.footer > div.subTitle > div.block > p:first-child, 
-h1.title,
-div.contentContainer > h2:first-of-type,
-body > p:first-child {
-	background: linear-gradient(to bottom, #3B596D, #6289A3) repeat scroll 0% 0% transparent;
-	background: -moz-linear-gradient(to bottom, #3B596D, #6289A3) repeat scroll 0% 0% transparent;
-	background: -webkit-gradient(linear, left top, left bottom, from(#3B596D), to(#6289A3) );
-}
-
-/* Header styles */
-
-h5.toc,
-h6.toc {
-	color: #2C4557;
-	margin-bottom: 0px;
-	padding: 5px 30px;
-	border-radius: 15px 15px 15px 0px;
-	text-decoration: none;
-}
-
-/* Light-colored title on package summary pages */
-div.docSummary > div.block,
-div.contentContainer > div.block > p:first-child {
-	font-size: 1.2em;
-	font-weight: bold;
-	color: #2C4557;
-	margin-top: 0px;
-	margin-bottom: 0px;
-	padding: 5px 30px;
-	border-radius: 0px 0px 15px 15px;
-	text-decoration: none;
-}
-
-/* Dark-colored title on overview page */
-div.header > div.subTitle > div.block,
-div.footer > div.subTitle > div.block > p:first-child,
-body > p:first-child {
-	font-size: 1.2em;
-	font-weight: bold;
-	color: white;
-	margin-bottom: 0px;
-	padding: 5px 30px;
-	border-radius: 15px;
-	text-decoration: none;
-}
-
-/* Dark-colored package title on package summary pages */
-h1.title,
-div.contentContainer > h2:first-of-type {
-	font-size: 1.2em;
-	font-weight: bold;
-	color: white;
-	margin-bottom: 0px;
-	padding: 5px 30px;
-	border-radius: 15px 15px 0px 0px;
-	text-decoration: none;
-}
-
-/* Class titles */
-h2.title {
-	font-size: 1.2em;
-	font-weight: bold;
-	color: #2C4557;
-	margin-top: 0px;
-	margin-bottom: 0px;
-	padding: 5px 30px;
-	border-radius: 15px;
-	text-decoration: none;
-}
-
-
-.spaced-list li { padding:5px; }
-.footer .spaced-list ul { margin:0 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/package.html b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/package.html
deleted file mode 100755
index 413b883..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/package.html
+++ /dev/null
@@ -1,942 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-    Licensed Materials - Property of IBM
-    (c) Copyright IBM Corporation 2015. 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>Juno Cloud Microservice 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='#Introduction'>Microservice Introduction</a></p> 
-	<li><p><a class='doclink' href='#GettingStarted'>Getting Started</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#GettingStarted_Installing'>Installing in Eclipse</a></p> 
-		<li><p><a class='doclink' href='#GettingStarted_Running'>Running in Eclipse</a></p> 
-		<li><p><a class='doclink' href='#GettingStarted_Building'>Building and Running from Command-Line</a></p> 
-	</ol>	
-	<li><p><a class='doclink' href='#Manifest'>Manifest File</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#Manifest_API'>Manifest API</a></p> 
-	</ol>
-	<li><p><a class='doclink' href='#ConfigFile'>Config File</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#ConfigFile_API'>Config File API</a></p>
-	</ol> 
-	<li><p><a class='doclink' href='#ResourceClasses'>Resource Classes</a></p> 
-	<li><p><a class='doclink' href='#RestMicroservice'>RestMicroservice</a></p>
-	<ol> 
-		<li><p><a class='doclink' href='#RestMicroservice_Extending'>Extending RestMicroservice</a></p>
-	</ol>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="Introduction"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Microservice Introduction</h2>
-<div class='topic'>
-	<p>
-		The Juno Cloud Microservice is an API for creating standalone executable jars that can be used to 
-		start lightweight configurable REST interfaces with all the power of the Juno REST server and client APIs.
-	</p>
-	<p>
-		The Microservice API consists of a combination of the Juno Core, Server, and Client APIs and an embedded
-		Eclipse Jetty Servlet Container.  It includes all libraries needed to execute in a Java 1.6+ environment.
-	</p>
-	<p>
-		Features include:
-	</p>
-	<ul class='spaced-list'>
-		<li>An out-of-the-box zipped Eclipse project to get started quickly.
-		<li>Packaged as a simple executable jar and configuration file.
-		<li>All the power of the Juno Cloud API for defining REST servlets and clients with the ability to serialize and parse POJOs as HTML, JSON, XML, RDF, URL-Encoding, and others.
-		<li>An extensible API that allows you to hook into various lifecycle events.
-		<li>Simple-to-use APIs for accessing manifest file entries, command-line arguments, and external configuration file properties.
-		<li>Predefined REST resources for configuring microservice and accessing log files.
-	</ul>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="GettingStarted"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Getting Started</h2>
-<div class='topic'>
-	<p>
-		The <l>microservice-project.zip</l> file is a zipped eclipse project that includes everything you 
-		need to create a REST microservice in an Eclipse workspace.
-	</p>	
-		
-	<!-- ======================================================================================================== -->
-	<a id="GettingStarted_Installing"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.1 - Installing in Eclipse</h3>
-	<div class='topic'>
-		<p>
-			Follow these instructions to create a new template project in Eclipse.
-		</p>		
-		<ol class='spaced-list'>
-			<li>Download the latest microservice-project zip file (e.g. <l>microservice-project-5.2.zip</l>).
-			<li>In your Eclipse workspace, go to <b>File-&gt;Import-&gt;General-&gt;Existing Projects into Workspace</b> and click <b>Next</b>.<br><br>
-				<img class='bordered' src="doc-files/instructions1.png">
-			<li>Select the zip file and click <b>Finish</b>.<br><br>
-				<img class='bordered' src="doc-files/instructions2.png">
-			<li>In your workspace, you should now see the following project:<br><br>
-				<img class='bordered' src="doc-files/instructions3.png">
-		</ol>
-		<p>
-			The important elements in this project are:
-		</p>
-		<ul class='spaced-list'>
-			<li><l>META-INF/MANIFEST.MF</l> - The manifest file.  <br>
-				This defines the entry point, classpath, top-level REST resources, and location of external configuration file. <br><br>
-				<p class='bcode'>
-	<mk>Main-Class</mk>: com.ibm.juno.microservice.RestMicroservice
-	<mk>Rest-Resources</mk>: 
-	 com.ibm.juno.microservice.sample.RootResources
-	<mk>Main-ConfigFile</mk>: microservice.cfg
-	<mk>Class-Path</mk>: 
-	 lib/commons-codec-1.9.jar 
-	 lib/commons-io-1.2.jar 
-	 lib/commons-logging-1.1.1.jar 
-	 lib/httpclient-4.5.jar 
-	 lib/httpcore-4.4.1.jar 
-	 lib/httpmime-4.5.jar 
-	 lib/javax.servlet-api-3.0.jar 
-	 lib/jetty-all-8.1.0.jar 
-	 lib/juno-all-5.2.jar 
-	 lib/org.apache.commons.fileupload_1.3.1.jar
-				</p>
-			<li><l>RestMicroservice.java</l> - The application class. <br>
-				This is a specialized microservice in Juno for exposing REST servlets.
-			<li><l>RootResources.java</l> - The top-level REST resource. <br>
-				This class routes HTTP requests to child resources:<br><br>
-				<p class='bcode'>
-	<jd>/**
-	 * Root microservice page.
-	 */</jd>
-	<ja>@RestResource</ja>(
-		path=<js>"/"</js>,
-		label=<js>"Juno Microservice Template"</js>,
-		description=<js>"Template for creating REST microservices"</js>,
-		properties={
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'$R{servletURI}?method=OPTIONS'}"</js>)
-		},
-		children={
-			HelloWorldResource.<jk>class</jk>,
-			ConfigResource.<jk>class</jk>,
-			LogsResource.<jk>class</jk>
-		}
-	)
-	<jk>public class</jk> RootResources <jk>extends</jk> ResourceGroup {
-		<jc>// No actual code!</jc>
-	}		
-				</p>
-			<li><l>microservice.cfg</l> - The external configuration file. <br>
-				A deceivingly simple yet powerful INI-style configuration file:<br><br>
-		<p class='bcode'>
-	<cc>#================================================================================
-	# Basic configuration file for SaaS microservices
-	# Subprojects can use this as a starting point.
-	#================================================================================</cc>
-	
-	<cc>#================================================================================
-	# REST settings
-	#================================================================================</cc>
-	<cs>[REST]</cs>
-	
-	<cc># The HTTP port number to use.
-	# Default is Rest-Port setting in manifest file, or 8000.</cc>
-	<ck>port</ck> = <cv>10000</cv>
-	...
-				</p>
-				
-		</ul>
-		<p>
-			At this point, you're ready to start the microservice from your workspace.
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="GettingStarted_Running"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.2 - Running in Eclipse</h3>
-	<div class='topic'>
-		<p>
-			The <l>microservice-project.launch</l> file is already provided to allow you to quickly start
-			your new microservice.
-		</p>
-		<p>
-			Go to <b>Run-&gt;Run Configurations-&gt;Java Application-&gt;microservice-project</b> and click <b>Run</b>.
-		</p>
-		<img class='bordered' src="doc-files/instructions4.png">
-		<p>
-			In your console view, you should see the following output:
-		</p>
-		<img class='bordered' src="doc-files/instructions5.png">
-		<p>
-			Now open your browser and point to <l>http://localhost:10000</l>.  
-			You should see the following:
-		</p>
-		<img class='bordered' src="doc-files/instructions6.png">
-		<p>
-			You have started a REST interface on port 10000.
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="GettingStarted_Building"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.3 - Building and Running from Command Line</h3>
-	<div class='topic'>
-		<p>
-			The <l>build.xml</l> file is a very basic ANT script for creating your microservice
-			as an executable jar.
-		</p>
-		<p>
-			To build your microservice, right-click on <l>build.xml</l> and select <b>Run As-&gt;Ant Build</b>.
-			Once complete (which should only take about 1 second), if you refresh your project, you should see the following new directory:
-		</p>
-		<img class='bordered' src='doc-files/build1.png'>
-		<p>
-			If you open up a command prompt in the <l>build/microservice</l> folder, you can start your microservice as follows:
-		</p>
-		<img class='bordered' src='doc-files/build2.png'>
-		<p>
-			If you get this error message: <code class='snippet'>java.net.BindException: Address already in use</code>, then this microservice is already running elsewhere and so it cannot bind to port 10000.
-		</p>
-	</div>
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="Manifest"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - Manifest File</h2>
-<div class='topic'>
-	<p>
-		The <l>META-INF/MANIFEST.MF</l> file is used to describe the microservice. 
-		If you open it, you'll see the following:
-	</p>
-	<p class='bcode'>
-	<mk>Main-Class</mk>: <mv>com.ibm.juno.microservice.RestMicroservice</mv>
-	<mk>Rest-Resources</mk>: 
-	 <mv>com.ibm.juno.microservice.sample.RootResources</mv>
-	<mk>Main-ConfigFile</mk>: <mv>microservice.cfg</mv>
-	<mk>Class-Path</mk>: 
-	 <mv>lib/commons-codec-1.9.jar 
-	 lib/commons-io-1.2.jar 
-	 lib/commons-logging-1.1.1.jar 
-	 lib/httpclient-4.5.jar 
-	 lib/httpcore-4.4.1.jar 
-	 lib/httpmime-4.5.jar 
-	 lib/javax.servlet-api-3.0.jar 
-	 lib/jetty-all-8.1.0.jar 
-	 lib/juno-all-5.2.jar 
-	 lib/org.apache.commons.fileupload_1.3.1.jar</mv>
-	</p>
-	<p>
-	 	The <mk>Main-Class</mk> entry is the standard manifest entry describing the entry point for the executable jar.
-	 	In most cases, this value will always be <l>com.ibm.juno.microservice.RestMicroservice</l>.
-	 	However, it is possible to extend this class or implement your own microservice, in which case you'll need
-	 	to modify this value to point to the new class.
-	</p>
-	<p>
-		The <mk>Rest-Resources</mk> entry is a comma-delimited list of REST resources.
-		These are classes that subclass from either {@link com.ibm.juno.microservice.Resource} or {@link com.ibm.juno.microservice.ResourceGroup}.
-		This is a specialized entry when using <l>com.ibm.juno.microservice.RestMicroservice</l>.
-		In most cases, you'll want to specify a single top-level "grouping" REST resource mapped to <l>"/"</l> that extends from {@link com.ibm.juno.microservice.ResourceGroup}
-		so that you can define multiple child resources.
-		In this case, we're pointing to a resource defined in our project: <l>com.ibm.juno.microservice.sample.RootResources</l>.
-	</p>
-	<p>
-		The <mk>Main-ConfigFile</mk> entry points to the location of an external configuration file for our microservice.
-	</p>		
-	<p>
-		The <mk>Class-Path</mk> entry is the standard manifest file entry.
-		However, if you need to add extra libraries to your microservice, you'll need to copy them into your <l>lib</l> 
-		directory and add them to the classpath here.
-	</p>
-	<p>
-		Other manifest file entries are also provided:
-	</p>
-	<ul class='spaced-list'>
-		<li><mk>Rest-Port</mk> - The HTTP port to use.  Default is <l>10000</l>.
-		<li><mk>Rest-ContextPath</mk> - The servlet context path.  Default is <l>"/"</l>.
-		<li><mk>Rest-AuthType</mk> - Authentication support.<br>  
-			Possible values are <l>"NONE"</l> and <l>"BASIC"</l>.<br>  
-			Default is <l>"NONE"</l>.<br>
-			Used with the following additional settings:
-			<ul>
-				<li><mk>Rest-LoginUser</mk>
-				<li><mk>Rest-LoginPassword</mk>
-				<li><mk>Rest-AuthRealm</mk>
-			</ul>
-	</ul>
-	<p>
-		In addition to these predefined manifest entries, you can add your own particular entries to the manifest file
-		and access them through the Manifest API described next. 
-	</p>
-	
-	<!-- ======================================================================================================== -->
-	<a id="Manifest_API"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.1 - Manifest API</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.microservice.Microservice#getManifest()} method is a static method that
-			can be used to retrieve the manifest file as an {@link com.ibm.juno.core.ObjectMap}.  
-		</p>
-		<p class='bcode'>
-	<jc>// Get Main-Class from manifest file.</jc>
-	String mainClass = Microservice.<jsm>getManifest</jsm>().getString(<js>"Main-Class"</js>, <js>"unknown"</js>);
-	 
-	<jc>// Get Rest-Resources from manifest file.</jc>
-	String[] restResources = Microservice.<jsm>getManifest</jsm>().getStringArray(<js>"Rest-Resources"</js>);
-		</p>
-		<p>
-			Since this method returns an {@link com.ibm.juno.core.ObjectMap}, it's possible to retrieve entries as a wide variety
-			of object types such as java primitives, arrays, collections, maps, or even POJOs serialized as JSON.
-		</p>
-	</div>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="ConfigFile"></a>
-<h2 class='topic' onclick='toggle(this)'>4 - Config File</h2>
-<div class='topic'>
-	<p>
-		The microservice config file is an external INI-style configuration file that is used to configure
-		your microservice.
-	</p>
-	<p>
-		If you open the <l>microservice.cfg</l> file, you'll see several predefined sections and settings.
-	</p>
-	<p class='bcode'>
-	<cc>#================================================================================
-	# Basic configuration file for SaaS microservices
-	# Subprojects can use this as a starting point.
-	#================================================================================</cc>
-	
-	<cc>#================================================================================
-	# REST settings
-	#================================================================================</cc>
-	<cs>[REST]</cs>
-	
-	<cc># The HTTP port number to use.
-	# Default is Rest-Port setting in manifest file, or 8000.</cc>
-	<ck>port</ck> = <cv>10000</cv>
-	
-	<cc># A JSON map of servlet paths to servlet classes.
-	# Example:  
-	# 	resourceMap = {'/*':'com.ibm.MyServlet'}
-	# Either resourceMap or resources must be specified.</cc>
-	<ck>resourceMap</ck> = 
-
-	<cc># A comma-delimited list of names of classes that extend from Servlet.
-	# Resource paths are pulled from @RestResource.path() annotation, or
-	# 	"/*" if annotation not specified.
-	# Example:  
-	# 	resources = com.ibm.MyServlet
-	# Default is Rest-Resources in manifest file.
-	# Either resourceMap or resources must be specified.</cc>
-	<ck>resources</ck> = 
-
-	<cc># The context root of the Jetty server.
-	# Default is Rest-ContextPath in manifest file, or "/".</cc>
-	<ck>contextPath</ck> = 
-
-	<cc># Authentication:  NONE, BASIC.</cc>
-	<ck>authType</ck> = <cv>NONE</cv>
-	
-	<cc># The BASIC auth username.
-	# Default is Rest-LoginUser in manifest file.</cc>
-	<ck>loginUser</ck> = 
-	
-	<cc># The BASIC auth password.
-	# Default is Rest-LoginPassword in manifest file.</cc>
-	<ck>loginPassword</ck> = 
-	
-	<cc># The BASIC auth realm.
-	# Default is Rest-AuthRealm in manifest file.</cc>
-	<ck>authRealm</ck> = 
-	
-	<cc># Stylesheet to use for HTML views.
-	# The default options are:
-	#  - styles/juno.css
-	#  - styles/devops.css
-	# Other stylesheets can be referenced relative to the servlet package or working
-	# 	directory.</cc>
-	<ck>stylesheet</ck> = <cv>styles/devops.css</cv>
-	
-	<cc># What to do when the config file is saved.
-	# Possible values:
-	# 	NOTHING - Don't do anything. 
-	#	RESTART_SERVER - Restart the Jetty server.
-	#	RESTART_SERVICE - Shutdown and exit with code '3'.</cc>
-	<ck>saveConfigAction</ck> = <cv>RESTART_SERVER</cv>
-	
-	<cc># Enable SSL support.</cc>
-	<ck>useSsl</ck> = <cv>false</cv>
-	
-	<cc>#================================================================================
-	# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
-	#--------------------------------------------------------------------------------
-	# Ignored if REST/useSsl is false.
-	#================================================================================</cc>
-	<cs>[REST-SslContextFactory]</cs>
-	<ck>keyStorePath</ck> = <cv>client_keystore.jks</cv>
-	<ck>keyStorePassword*</ck> = <cv>{HRAaRQoT}</cv>
-	<ck>excludeCipherSuites</ck> = <cv>TLS_DHE.*, TLS_EDH.*</cv>
-	<ck>excludeProtocols</ck> = <cv>SSLv3</cv>
-	<ck>allowRenegotiate</ck> = <cv>false</cv>
-	
-	<cc>#================================================================================
-	# Logger settings
-	# See FileHandler Java class for details.
-	#================================================================================</cc>
-	<cs>[Logging]</cs>
-
-	<cc># The directory where to create the log file.
-	# Default is "."</cc>
-	<ck>logDir</ck> = <cv>logs</cv>
-	
-	<cc># The name of the log file to create for the main logger.
-	# The logDir and logFile make up the pattern that's passed to the FileHandler
-	# constructor.
-	# If value is not specified, then logging to a file will not be set up.</cc>
-	<ck>logFile</ck> = <cv>microservice.%g.log</cv>
-	
-	<cc># Whether to append to the existing log file or create a new one.
-	# Default is false.</cc>
-	<ck>append</ck> = 
-	
-	<cc># The SimpleDateFormat format to use for dates.
-	# Default is "yyyy.MM.dd hh:mm:ss".</cc>
-	<ck>dateFormat</ck> = 
-	
-	<cc># The log message format.
-	# The value can contain any of the following variables:
-	# 	{date} - The date, formatted per dateFormat.
-	#	{class} - The class name.
-	#	{method} - The method name.
-	#	{logger} - The logger name.
-	#	{level} - The log level name.
-	#	{msg} - The log message.
-	#	{threadid} - The thread ID.
-	#	{exception} - The localized exception message.
-	# Default is "[{date} {level}] {msg}%n".</cc>
-	<ck>format</ck> =
-	
-	<cc># The maximum log file size.
-	# Suffixes available for numbers.
-	# See ConfigFile.getInt(String,int) for details.
-	# Default is 1M.</cc>
-	<ck>limit</ck> = <cv>10M</cv>
-	
-	<cc># Max number of log files.
-	# Default is 1.</cc>
-	<ck>count</ck> = <cv>5</cv>
-	
-	<cc># Default log levels.
-	# Keys are logger names.
-	# Values are serialized Level POJOs.</cc>
-	<ck>levels</ck> = <cv>{ com.ibm.juno:'INFO' }</cv>
-	
-	<cc># Only print unique stack traces once and then refer to them by a simple 8 character hash identifier.
-	# Useful for preventing log files from filling up with duplicate stack traces.
-	# Default is false.</cc>
-	<ck>useStackTraceHashes</ck> = <cv>true</cv>
-	
-	<cc># The default level for the console logger.
-	# Default is WARNING.</cc>
-	<ck>consoleLevel</ck> = 
-	
-	<cc>#================================================================================
-	# System properties
-	#--------------------------------------------------------------------------------
-	# These are arbitrary system properties that are set during startup.
-	#================================================================================</cc>
-	<cs>[SystemProperties]</cs>
-	
-	<cc># Configure Jetty for StdErrLog Logging</cc>
-	<ck>org.eclipse.jetty.util.log.class</ck> = <cv>org.eclipse.jetty.util.log.StrErrLog</cv>
-	
-	<cc># Jetty logging level</cc>
-	<ck>org.eclipse.jetty.LEVEL</ck> = <cv>WARN</cv>		
-	</p>
-	<p class='info'>
-		The predefined config file includes all settings for instructional purposes. 
-		In your microservice, you can remove all lines from your config file that have default values.
-	</p>
-	<p>
-		Although the config file looks deceptively simple, the config file API is a very powerful feature with many capabilities, including:
-	</p>
-	<ul>
-		<li>The ability to use variables to reference environment variables, system properties, other config file entries, and a host of other types.
-		<li>The ability to store and retrieve POJOs as JSON.
-		<li>APIs for updating, modifying, and saving configuration files without losing comments or formatting.
-		<li>Extensive listener APIs.
-	</ul>
-	<h6 class='topic'>Examples:</h6>
-	<p class='bcode'>
-	<cc>#--------------------------</cc>
-	<cc># My section</cc>
-	<cc>#--------------------------</cc>
-	<cs>[MySection]</cs>
-	
-	<cc># An integer</cc>
-	<ck>anInt</ck> = <cv>1 </cv>
-	
-	<cc># A boolean</cc>
-	<ck>aBoolean</ck> = <cv>true </cv>
-	
-	<cc># An int array</cc>
-	<ck>anIntArray</ck> = <cv>1,2,3 </cv>
-	
-	<cc># A POJO that can be converted from a String</cc>
-	<ck>aURL</ck> = <cv>http://foo </cv>
-	
-	<cc># An encoded password</cc>
-	<ck>aPassword*</ck> = <cv>{HRAaRQoT}</cv>
-
-	<cc># A POJO that can be converted from JSON</cc>
-	<ck>aBean</ck> = <cv>{foo:'bar',baz:123}</cv>
-	
-	<cc># A system property</cc>
-	<ck>locale</ck> = <cv>$S{java.locale, en_US}</cv>
-	
-	<cc># An environment variable</cc>
-	<ck>path</ck> = <cv>$E{PATH, unknown}</cv>
-	
-	<cc># A manifest file entry</cc>
-	<ck>mainClass</ck> = <cv>$MF{Main-Class}</cv>
-	
-	<cc># Another value in this config file</cc>
-	<ck>sameAsAnInt</ck> = <cv>$C{MySection/anInt}</cv>
-	
-	<cc># A command-line argument in the form "myarg=foo"</cc>
-	<ck>myArg</ck> = <cv>$ARG{myarg}</cv>
-	
-	<cc># The first command-line argument</cc>
-	<ck>firstArg</ck> = <cv>$ARG{0}</cv>
-
-	<cc># Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.</cc>
-	<ck>nested</ck> = <cv>$S{mySystemProperty,$E{MY_ENV_VAR,$ARG{0}}}</cv>
-
-	<cc># A POJO with embedded variables</cc>
-	<ck>aBean2</ck> = <cv>{foo:'$ARG{0}',baz:$C{MySection/anInt}}</cv>
-	
-	</p>
-	<p class='bcode'>
-	<jc>// Java code for accessing config entries above.</jc>
-	ConfigFile cf = Microservice.<jsm>getConfig</jsm>();
-	
-	<jk>int</jk> anInt = cf.getInt(<js>"MySection/anInt"</js>); 
-	<jk>boolean</jk> aBoolean = cf.getBoolean(<js>"MySection/aBoolean"</js>); 
-	<jk>int</jk>[] anIntArray = cf.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"MySection/anIntArray"</js>); 
-	URL aURL = cf.getObject(URL.<jk>class</jk>, <js>"MySection/aURL"</js>); 
-	String aPassword = cf.getString(<js>"MySection/aPassword"</js>);
-	MyBean aBean = cf.getObject(MyBean.<jk>class</jk>, <js>"MySection/aBean"</js>); 
-	Locale locale = cf.getObject(Locale.<jk>class</jk>, <js>"MySection/locale"</js>); 
-	String path = cf.getString(<js>"MySection/path"</js>); 
-	String mainClass = cf.getString(<js>"MySection/mainClass"</js>); 
-	<jk>int</jk> sameAsAnInt = cf.getInt(<js>"MySection/sameAsAnInt"</js>); 
-	String myArg = cf.getString(<js>"MySection/myArg"</js>); 
-	String firstArg = cf.getString(<js>"MySection/firstArg"</js>); 
-	</p>
-	<h6 class='topic'>Additional Information</h6>
-	<ul class='javahierarchy'>
-		<li class='p'><a href='../core/ini/package-summary.html#TOC'><l>com.ibm.juno.core.ini</l></a> - Juno Configuration API Javadocs.
-	</ul>
-	
-	<!-- ======================================================================================================== -->
-	<a id="ConfigFile_API"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.1 - Config File API</h3>
-	<div class='topic'>
-		<p>
-			There are 3 primary ways of getting access to the config file.
-		</p>
-		<ul class='javahierarchy'>
-			<li class='m'>{@link com.ibm.juno.microservice.Microservice#getConfig()} - A static method that can be used to access
-				the config file from anywhere in your application.<br>
-				When using this method, any of the following variables can be resolved:
-				<ul>
-					<li><l>$S{key}, $S{key,default}</l> - System properties.
-					<li><l>$E{key}, $E{key,default}</l> - Environment variables.
-					<li><l>$C{key}, $C{key,default}</l> - Config file entries.
-					<li><l>$MF{key}, $MF{key,default}</l> - Manifest file entries.
-					<li><l>$ARG{key}, $ARG{key,default}</l> - Command-line arguments.
-				</ul>
-				Additional user-defined variables can be defined by overriding the {@link com.ibm.juno.microservice.Microservice#createVarResolver()} method.
-			<li class='m'>{@link com.ibm.juno.server.RestServlet#getConfig()} - An instance method to access it from inside a REST servlet.<br>
-				The following variables are available in addition to the variables defined above:
-				<ul>
-					<li><l>$I{key}, $I{key,default}</l> - Servlet initialization parameters.
-				</ul>
-				<h6 class='figure'>Example usage:</h6>
-				<p class='bcode'>
-	<cc>#-------------------------------</cc>
-	<cc># Properties for MyHelloResource </cc>
-	<cc>#-------------------------------</cc>
-	<cs>[MyHelloResource]</cs>
-	<ck>greeting</ck> = <cv>Hello world!</cv> 
-				</p>
-				<p class='bcode'>
-	<ja>@RestResource</ja>(...)
-	<jk>public class</jk> MyHelloResource <jk>extends</jk> Resource {
-		<jc>// Access config file when initializing fields.</jc>
-		<jk>private</jk> String greeting = getConfig().getString(<js>"MyHelloResource/greeting"</js>); 
-		
-		<jc>// Or access config file in servlet init method.</jc>
-		<ja>@Override</ja> <jc>/* Servlet */</jc>
-		<jk>public void</jk> init() {
-			String greeting = getConfig().getString(<js>"MyHelloResource/greeting"</js>); 
-		}
-	}		
-				</p>
-				<p>
-					Additional user-defined variables can be defined at this level by overriding the {@link com.ibm.juno.microservice.Resource#createVarResolver()} method.
-				</p>
-			<li class='m'>{@link com.ibm.juno.server.RestRequest#getConfig()} - An instance method to access it from inside a REST method.<br>
-				The following variables are available in addition to the variables defined above:
-				<ul>
-					<li><l>$L{key}, $L{key,args}</l> - Localized variables pulled from {@link com.ibm.juno.server.RestRequest#getMessage(String, Object...)}.
-					<li><l>$A{key}, $A{key,default}</l> - Request attributes pulled from {@link com.ibm.juno.server.RestRequest#getAttribute(String)}.
-					<li><l>$P{key}, $P{key,default}</l> - Request parameters pulled from {@link com.ibm.juno.server.RestRequest#getParameter(String)}.
-					<li><l>$R{key}</l> - Request variables.
-					<ul>
-			 			<li><l>$R{contextPath}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getContextPath()}.
-			 			<li><l>$R{method}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getMethod()}.
-			 			<li><l>$R{methodDescription}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getMethodDescription()}.
-			 			<li><l>$R{pathInfo}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getPathInfo()}.
-			 			<li><l>$R{requestParentURI}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getRequestParentURI()}.
-			 			<li><l>$R{requestURI}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getRequestURI()}.
-			 			<li><l>$R{servletDescription}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getServletDescription()}.
-			 			<li><l>$R{servletLabel}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getServletLabel()}.
-			 			<li><l>$R{servletParentURI}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getServletParentURI()}.
-			 			<li><l>$R{servletPath}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getServletPath()}.
-			 			<li><l>$R{servletURI}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getServletURI()}.
-			 			<li><l>$R{trimmedRequestURI}</l> - Value returned by {@link com.ibm.juno.server.RestRequest#getTrimmedRequestURI()}.
-					</ul>
-					<li><l>$UE{...}</l> - URL-Encode the specified value by calling {@link com.ibm.juno.server.RestUtils#encode(String)}.
-				</ul>
-				<h6 class='figure'>Example usage:</h6>
-				<p class='bcode'>
-	<cc>#-----------------------------</cc>
-	<cc># Contents of microservice.cfg </cc>
-	<cc>#-----------------------------</cc>
-	<cs>[MyHelloResource]</cs>
-	<ck>greeting</ck> = <cv>Hello $A{person}!</cv> 
-	<ck>localizedGreeting</ck> = <cv>$L{HelloMessage,$A{person}}</cv> 
-				</p>
-				<p class='bcode'>
-	<cc>#---------------------------------</cc>
-	<cc># Contents of MyHelloResource.java </cc>
-	<cc>#---------------------------------</cc>
-	<ja>@RestResource</ja>(
-		path=<js>"/hello"</js>,
-		messages=<js>"nls/Messages"</js>,
-		...
-	)
-	<jk>public class</jk> MyHelloResource <jk>extends</jk> Resource {
-
-		<jd>/** Standard hello message. */</jd>
-		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/{person}"</js>)
-		<jk>public</jk> String sayHello(RestRequest req) {
-			<jk>return</jk> req.getConfig().getString(<js>"MyHelloResource/greeting"</js>);
-		}
-
-		<jd>/** Hello message in users language. */</jd>
-		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/localized/{person}"</js>)
-		<jk>public</jk> String sayLocalizedHello(RestRequest req) {
-			<jk>return</jk> req.getConfig().getString(<js>"MyHelloResource/localizedGreeting"</js>);
-		}
-	}		
-				<p class='bcode'>
-	<cc>#---------------------------------------</cc>
-	<cc># Contents of nls/Messages_en.properties </cc>
-	<cc>#---------------------------------------</cc>
-	<ck>MyHelloResource.HelloMessage</ck> = <cv>Hello {0}!</cv> 
-				</p>
-				<p>
-					Additional user-defined variables can be defined at this level by overriding the {@link com.ibm.juno.server.RestServlet#createRequestVarResolver(RestRequest)} method.
-				</p>
-		</ul>
-		<p>
-			That <l>sayLocalizedHello()</l> example might need some explanation since there's a lot going on there.
-			Here's what happens when an HTTP call is made to <l>GET /hello/localized/Bob</l>:
-		</p>
-		<ol class='spaced-list'>
-			<li>The HTTP call matches the <l>/hello</l> path on the <l>MyHelloResource</l> class.
-			<li>The HTTP call matches the <l>/localized/{person}</l> path on the <l>sayLocalizedHello()</l> method.
-			<li>The request attribute <l>person</l> gets assigned the value <l>"Bob"</l>.
-			<li>The call to <l>req.getConfig().getString("MyHelloResource/localizedGreeting")</l> 
-				finds the value <l>"$L{HelloMessage,$A{person}}"</l>.
-			<li>The arguments in the <l>$L{}</l> variable get resolved, resulting in <l>"$L{HelloMessage,Bob}"</l>.
-			<li>The <l>$L{}</l> variable gets resolved to the message <l>"Hello {0}!"</l> in the localized properties file of the servlet based on the <l>Accept-Language</l> header on the request.
-			<li>The arguments get replaced in the message resulting in <l>"Hello Bob!"</l>. 
-			<li>The resulting message <l>"Hello Bob!"</l> is returned as a POJO to be serialized to whatever content type was specified on the <l>Accept</l> header on the request.
-</ol>
-		<p>
-			This particular example is needlessly complex, but it gives an idea of how variables can be used recursively to produce sophisticated results
-		</p>
-	</div>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="ResourceClasses"></a>
-<h2 class='topic' onclick='toggle(this)'>5 - Resource Classes</h2>
-<div class='topic'>
-	<p>
-		Now let's take a look at the resource classes themselves.  
-		The top-level page:
-	</p>
-	<img class='bordered' src='doc-files/instructions6.png'>
-	<p>
-		...is generated by this class...
-	<p class='bcode'>
-	<jd>/**
-	 * Root microservice page.
-	 */</jd>
-	<ja>@RestResource</ja>(
-		path=<js>"/"</js>,
-		label=<js>"Juno Microservice Template"</js>,
-		description=<js>"Template for creating REST microservices"</js>,
-		properties={
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'$R{servletURI}?method=OPTIONS'}"</js>)
-		},
-		children={
-			HelloWorldResource.<jk>class</jk>,
-			ConfigResource.<jk>class</jk>,
-			LogsResource.<jk>class</jk>
-		}
-	)
-	<jk>public class</jk> RootResources <jk>extends</jk> ResourceGroup {
-		<jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L;
-	}		
-	</p>
-	<ul class='spaced-list'>
-		<li>The </l>label</l> and <l>description</l> annotations define the titles on the page.<br>
-			These can be globalized using <l>$L{...}</l> variables, or by defining specially-named properties in the properties
-			file for the resource.
-		<li>In this case, the <l>path</l> annotation defines the context root of your application since it was 
-			not specified in the manifest or config file.<br>
-			Therefore, this resource is mapped to <l>http://localhost:10000</l>.
-		<li>The <l>children</l> annotation make up the list of child resources.<br>
-			These child resources can be anything that extends from <l>Servlet</l>, although usually
-			they will be subclasses of {@link com.ibm.juno.microservice.Resource} or other resource groups.
-	</ul>
-	<p>
-		If you click the <l>helloWorld</l> link in your application, you'll get a simple hello world message:
-	</p>
-	<img class='bordered' src='doc-files/helloworld1.png'>
-	<p>
-		...which is generated by this class...
-	</p>
-	<p class='bcode'>
-	<jd>/**
-	 * Sample REST resource that prints out a simple "Hello world!" message.
-	 */</jd>
-	<ja>@RestResource</ja>(
-		path=<js>"/helloWorld"</js>,
-		label=<js>"Hello World example"</js>,
-		description=<js>"Simplest possible REST resource"</js>
-	)
-	<jk>public class</jk> HelloWorldResource <jk>extends</jk> Resource {
-	
-		<jd>/** GET request handler */</jd>
-		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>)
-		<jk>public</jk> String sayHello() {
-			<jk>return</jk> <js>"Hello world!"</js>;
-		}
-	}		
-	</p>
-	<p>
-		The {@link com.ibm.juno.microservice.Resource} and {@link com.ibm.juno.microservice.ResourceGroup} classes
-		are powerful servlets designed specifically for creating REST APIs using nothing more than serialized and parsed POJOs.
-	</p>
-	<h6 class='topic'>Additional Information</h6>
-	<ul class='javahierarchy'>
-		<li class='p'><a href='../server/package-summary.html#TOC'><l>com.ibm.juno.core.server</l></a> - Juno Server API Javadocs.
-	</ul>
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="RestMicroservice"></a>
-<h2 class='topic' onclick='toggle(this)'>6 - RestMicroservice</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.microservice.RestMicroservice} class is the main application entrypoint for REST microservices. 
-	</p>
-	<p>
-		The class hierarchy is:
-	</p>
-	<ul class='javahierarchy'>
-		<li class='a'>{@link com.ibm.juno.microservice.Microservice} - Abstract class that defines simple start/stop methods and access to the manifest file, config file, and arguments.
-			<ul>
-				<li class='c'>{@link com.ibm.juno.microservice.RestMicroservice} - Specialized microservice for starting up REST interfaces using Jetty and specifying REST servlets
-					through the manifest file or config file.
-			</ul>
-	</ul>
-	<p>
-		Refer to the Javadocs for these class for more information.
-	</p>
-	
-<!-- ======================================================================================================== -->
-	<a id="RestMicroservice_Extending"></a>
-	<h3 class='topic' onclick='toggle(this)'>6.1 - Extending RestMicroservice</h3>
-<div class='topic'>
-		<p>
-			This example shows how the {@link com.ibm.juno.microservice.RestMicroservice} class
-			can be extended to implement lifecycle listener methods or override existing methods.
-			We'll create a new class <l>com.ibm.SampleCustomRestMicroservice</l>.
-		</p>
-		<p>
-			First, the manifest file needs to be modified to point to our new microservice:
-		</p>
-		<p class='bcode'>
-	<mk>Main-Class:</mk> com.ibm.SampleCustomRestMicroservice
-		</p>
-		<p>
-			Then we define the following class:
-		</p>
-		<p class='bcode'>
-	<jd>/**
-	 * Sample subclass of a RestMicroservice that provides customized behavior.
-	 * This class must be specified in the Main-Class entry in the manifest file and optionally
-	 * 	a Main-ConfigFile entry.
-	 */</jd>
-	<jk>public class</jk> SampleCustomRestMicroservice <jk>extends</jk> RestMicroservice {
-	
-		<jd>/**
-		 * Must implement a main method and call start()!
-		 */</jd>
-		<jk>public static void</jk> main(String[] args) <jk>throws</jk> Exception {
-			<jk>new</jk> SampleCustomRestMicroservice(args).start();
-		}
-	
-		<jd>/**
-		 * Must implement a constructor!
-		 * 
-		 * <ja>@param</ja> args Command line arguments. 
-		 * <ja>@throws</ja> Exception 
-		 */</jd>
-		<jk>public</jk> SampleCustomRestMicroservice(String[] args) <jk>throws</jk> Exception {
-			<jk>super</jk>(args);
-		}
-	
-		<jc>//--------------------------------------------------------------------------------
-		// Methods on Microservice that can be overridden and customized.
-		//--------------------------------------------------------------------------------</jc>
-	
-		<ja>@Override</ja> <jc>/* Microservice */</jc>
-		<jk>protected void</jk> start() <jk>throws</jk> Exception {
-			<jk>super</jk>.start();
-		}
-	
-		<ja>@Override</ja> <jc>/* Microservice */</jc>
-		<jk>public void</jk> stop() {
-			<jk>super</jk>.stop();
-		}
-	
-		<ja>@Override</ja> <jc>/* Microservice */</jc>
-		<jk>public void</jk> kill() {
-			<jk>super</jk>.kill();
-		}
-	
-		<ja>@Override</ja> <jc>/* Microservice */</jc>
-		<jk>public void</jk> onStart() {
-			System.<jsf>err</jsf>.println(<js>"onStart() called!"</js>);
-		}
-	
-		<ja>@Override</ja> <jc>/* Microservice */</jc>
-		<jk>public void</jk> onStop() {
-			System.<jsf>err</jsf>.println(<js>"onStop() called!"</js>);
-		}
-	
-		<jc>//--------------------------------------------------------------------------------
-		// Methods on RestMicroservice that can be overridden and customized.
-		//--------------------------------------------------------------------------------</jc>
-	
-		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
-		<jk>protected void</jk> initLogging() <jk>throws</jk> Exception {
-			<jk>super</jk>.initLogging();
-		}
-	
-		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
-		<jk>protected</jk> Server createServer() <jk>throws</jk> Exception {
-			<jk>return super</jk>.createServer();
-		}
-	
-		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
-		<jk>protected void</jk> startServer() <jk>throws</jk> Exception {
-			<jk>super</jk>.startServer();
-		}
-	
-		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
-		<jk>protected void</jk> onCreateServer() {
-			System.<jsf>err</jsf>.println(<js>"onCreateServer() called!"</js>);
-		}
-	
-		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
-		<jk>protected void</jk> onStartServer() {
-			System.<jsf>err</jsf>.println(<js>"onStartServer() called!"</js>);
-		}
-	
-		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
-		<jk>protected void</jk> onPostStartServer() {
-			System.<jsf>err</jsf>.println(<js>"onPostStartServer() called!"</js>);
-		}
-	
-		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
-		<jk>protected void</jk> onStopServer() {
-			System.<jsf>err</jsf>.println(<js>"onStopServer() called!"</js>);
-		}
-	
-		<ja>@Override</ja> <jc>/* RestMicroservice */</jc>
-		<jk>protected void</jk> onPostStopServer() {
-			System.<jsf>err</jsf>.println(<js>"onPostStopServer() called!"</js>);
-		}
-	}
-		</p>
-	</div>	
-</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.microservice/src/com/ibm/juno/microservice/resources/ConfigEdit.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ConfigEdit.html b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ConfigEdit.html
deleted file mode 100755
index 59874e1..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ConfigEdit.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-    Licensed Materials - Property of IBM
-    (c) Copyright IBM Corporation 2015. 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'>
-		@import '$R{servletURI}/style.css';
-	</style>
-</head>
-<body>
-	<h3 class='title'>$R{servletLabel}</h3>
-	<h5 class='description'>Edit config file</h5>
-	<p class='links'><a href='$R{requestParentURI}'>up</a> - <a href='$R{servletURI}?method=OPTIONS'>options</a></p>
-	<form id='form' action='$R{servletURI}' method='POST' enctype='application/x-www-form-urlencoded'>	
-		<div class='data'>
-			<table>
-				<tr><td colspan='2' align='right'><button type='submit'>Submit</button><button type='reset'>Reset</button></td></tr>
-				<tr><th colspan='2'>Contents</th></tr>
-				<tr><td colspan='2'><textarea name='contents' rows='40' cols='120' style='white-space: pre; word-wrap: normal; overflow-x: scroll;'>$A{contents}</textarea></td></tr>
-			</table>
-		</div>
-	</form>	
-</body>
-</html>
-


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$MapMatcher.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$MapMatcher.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$MapMatcher.class
deleted file mode 100755
index e1303c6..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$MapMatcher.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/utils/PojoQuery$NumberMatcher.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberMatcher.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberMatcher.class
deleted file mode 100755
index d67f612..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberMatcher.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/utils/PojoQuery$NumberPattern.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberPattern.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberPattern.class
deleted file mode 100755
index 25153ec..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberPattern.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/utils/PojoQuery$NumberRange.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberRange.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberRange.class
deleted file mode 100755
index 127742c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$NumberRange.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/utils/PojoQuery$ObjectMatcher.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$ObjectMatcher.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$ObjectMatcher.class
deleted file mode 100755
index f826750..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$ObjectMatcher.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/utils/PojoQuery$SearchPattern.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$SearchPattern.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$SearchPattern.class
deleted file mode 100755
index eead3cd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$SearchPattern.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/utils/PojoQuery$StringMatcher.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$StringMatcher.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$StringMatcher.class
deleted file mode 100755
index 65b68c5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$StringMatcher.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/utils/PojoQuery$TimestampPattern.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$TimestampPattern.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$TimestampPattern.class
deleted file mode 100755
index 98258f3..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$TimestampPattern.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/utils/PojoQuery$TimestampRange.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$TimestampRange.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$TimestampRange.class
deleted file mode 100755
index 4256f45..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery$TimestampRange.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/utils/PojoQuery.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery.class
deleted file mode 100755
index e27b8bf..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery.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/utils/PojoQuery.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery.java
deleted file mode 100755
index 4010e64..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoQuery.java
+++ /dev/null
@@ -1,1246 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.utils;
-
-import static java.util.Calendar.*;
-
-import java.text.*;
-import java.util.*;
-import java.util.regex.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Designed to provide query/view/sort/paging filtering on tabular in-memory POJO models.
- * <p>
- * 	It can also perform just view filtering on beans/maps.
- * <p>
- * 	Examples of tabular POJO models:
- * 	<ul>
- * 		<li><tt>Collection{@code <Map>}</tt>
- * 		<li><tt>Collection{@code <Bean>}</tt>
- * 		<li><tt>Map[]</tt>
- * 		<li><tt>Bean[]</tt>
- * 	</ul>
- * <p>
- * 	Tabular POJO models can be thought of as tables of data.  For example, a list of the following beans...
- * <p class='bcode'>
- * 	<jk>public</jk> MyBean {
- * 		<jk>public int</jk> fi;
- * 		<jk>public</jk> String fs;
- * 		<jk>public</jk> Date fd;
- * 	}
- * <p>
- * 	... can be thought of a table containing the following columns...
- * <p>
- * 	<table class='styled code'>
- * 		<tr><th>fi</th><th>fs</th><th>fd</th></tr>
- * 		<tr><td>123</td><td>'foobar'</td><td>yyyy/MM/dd HH:mm:ss</td></tr>
- * 		<tr><td colspan=3>...</td></tr>
- * 	</table>
- * <p>
- * 	From this table, you can perform the following functions:
- * 	<ul>
- * 		<li>Query - Return only rows where a search pattern matches.
- * 		<li>View - Return only the specified subset of columns in the specified order.
- * 		<li>Sort - Sort the table by one or more columns.
- * 		<li>Page - Only return a subset of rows.
- * 	</ul>
- *
- * <h5 class='topic'>Query</h5>
- * <p>
- * 	The query capabilites allow you to filter based on query patterns against
- * 	strings, dates, and numbers.  Queries take the form of a Map with column names
- * 	as keys, and search patterns as values.  <br>
- * 	Search patterns can be either {@code Strings} or {@code Maps}.<br>
- * 	Multiple search patterns are ANDed (i.e. all patterns must match for the row to be returned).
- *
- * <h6 class='topic'>Examples</h6>
- * <ul>
- * 	<li><tt>{fi:'123'}</tt> - Return only rows where the <tt>fi</tt> column is 123.
- * 	<li><tt>{fs:'foobar'}</tt> - Return only rows where the <tt>fs</tt> column is 'foobar'.
- * 	<li><tt>{fd:'2001'}</tt> - Return only rows where the <tt>fd</tt> column have dates in the year 2001.
- * 	<li><tt>{fs:'foobar'}</tt> - Return only rows where the <tt>fs</tt> column is 'foobar'.
- * 		and the <tt>fs</tt> column starts with <tt>"foo"</tt>.
- * </ul>
- * <p>
- * 	Search patterns can also be applied to lower level fields.  For example, the search term
- * 	<tt>{f1:{f2:{f3{'foobar'}}}</tt> means only return top level rows where the <tt>f1.getF2().getF3()</tt>
- * 	property is <tt>'foobar'</tt>.
- *
- * <h5 class='topic'>String Patterns</h5>
- * <p>
- * 	Any objects can be queried against using string patterns.  If the objects being
- * 	searched are not strings, then the patterns are matched against whatever is
- * 	return by the {@code Object#toString()} method.
- *
- * <h6 class='topic'>Example string query patterns</h6>
- * <ul>
- * 	<li><tt>foo</tt> - The string 'foo'
- * 	<li><tt>foo bar</tt> - The string 'foo' or the string 'bar'
- * 	<li><tt>'foo bar'</tt> - The phrase 'foo bar'
- * 	<li><tt>"foo bar"</tt> - The phrase 'foo bar'
- * 	<li><tt>foo*</tt> - <tt>*</tt> matches zero-or-more characters.
- * 	<li><tt>foo?</tt> - <tt>?</tt> matches exactly one character
- * </ul>
- *
- * <h6 class='topic'>Notes</h6>
- * <ul>
- * 	<li>Whitespace is ignored around search patterns.
- * 	<li>Prepend <tt>+</tt> to tokens that must match.  (e.g. <tt>+foo* +*bar</tt>)
- * 	<li>Prepend <tt>-</tt> to tokens that must not match.  (e.g. <tt>+foo* -*bar</tt>)
- * </ul>
- *
- * <h5 class='topic'>Numeric Patterns</h5>
- * <p>
- * 	Any object of type {@link Number} (or numeric primitives) can be searched using numeric patterns.
- *
- * <h6 class='topic'>Example numeric query patterns</h6>
- * <ul>
- * 	<li><tt>123</tt> - The single number 123
- * 	<li><tt>1 2 3</tt>	- 1, 2, or 3
- * 	<li><tt>1-100</tt> - Between 1 and 100
- * 	<li><tt>1 - 100</tt> - Between 1 and 100
- * 	<li><tt>1 - 100 200-300</tt> - Between 1 and 100 or between 200 and 300
- * 	<li><tt>&gt; 100</tt> - Greater than 100
- * 	<li><tt>&gt;= 100</tt> - Greater than or equal to 100
- * 	<li><tt>!123</tt> - Not 123
- * </ul>
- *
- * <h6 class='topic'>Notes</h6>
- * <ul>
- * 	<li>Whitespace is ignored in search patterns.
- * 	<li>Negative numbers are supported.
- * </ul>
- *
- * <h5 class='topic'>Date Patterns</h5>
- * <p>
- * 	Any object of type {@link Date} or {@link Calendar} can be searched using date patterns.
- * <p>
- * 	The default valid input timestamp formats (which can be overridden via the {@link #setValidTimestampFormats(String...)} method are...
- *
- * <ul>
- * 	<li><tt>yyyy.MM.dd.HH.mm.ss</tt>
- * 	<li><tt>yyyy.MM.dd.HH.mm</tt>
- * 	<li><tt>yyyy.MM.dd.HH</tt>
- * 	<li><tt>yyyy.MM.dd</tt>
- * 	<li><tt>yyyy.MM</tt>
- * 	<li><tt>yyyy</tt>
- * </ul>
- *
- * <h6 class='topic'>Example date query patterns</h6>
- * <ul>
- * 	<li><tt>2001</tt> - A specific year.
- * 	<li><tt>2001.01.01.10.50</tt> - A specific time.
- * 	<li><tt>&gt;2001</tt>	- After a specific year.
- * 	<li><tt>&gt;=2001</tt> - During or after a specific year.
- * 	<li><tt>2001 - 2003.06.30</tt>	- A date range.
- * 	<li><tt>2001 2003 2005</tt>	- Multiple date patterns are ORed.
- * </ul>
- *
- * <h6 class='topic'>Notes</h6>
- * <ul>
- * 	<li>Whitespace is ignored in search patterns.
- * </ul>
- *
- * <h5 class='topic'>View</h5>
- * <p>
- * 	The view capability allows you to return only the specified subset of columns in the
- * 	specified order.<br>
- * 	The view parameter is a list of either <tt>Strings</tt> or <tt>Maps</tt>.
- *
- * <h6 class='topic'>Example view parameters</h6>
- * <ul>
- * 	<li><tt>['f1']</tt> - Return only column 'f1'.
- * 	<li><tt>['f2','f1']</tt> - Return only columns 'f2' and 'f1'.
- * 	<li><tt>['f1',{f2:'f3'}]</tt> - Return only columns 'f1' and 'f2', but for 'f2' objects,
- * 		only show the 'f3' property.
- * </ul>
- *
- * <h5 class='topic'>Sort</h5>
- * <p>
- * 	The sort capability allows you to sort values by the specified rows.<br>
- * 	The sort parameter is a list of either <tt>Strings</tt> or <tt>Maps</tt>.<br>
- * 	<tt>Strings</tt> represent column names to sort ascending.  If you want
- * 	to sort descending, you need to specify a <tt>Map</tt> of the form <tt>{colname:'d'}</tt>
- *
- * <h6 class='topic'>Example sort parameters</h6>
- * <ul>
- * 	<li><tt>['f1']</tt> - Sort rows by column 'f1' ascending.
- * 	<li><tt>[{f1:'a'}]</tt> - Sort rows by column 'f1' ascending.
- * 	<li><tt>[{f1:'d'}]</tt> - Sort rows by column 'f1' descending.
- * 	<li><tt>[{f1:'a'},{f2:'d'}]</tt> - Sort rows by column 'f1' ascending, then 'f2' descending.
- * </ul>
- *
- * <h5 class='topic'>Paging</h5>
- * <p>
- * 	Use the <tt>pos</tt> and <tt>limit</tt> parameters to specify a subset of rows to
- * 	return.
- *
- * <h5 class='topic'>Other Notes</h5>
- * <ul>
- * 	<li>Calling <tt>filterMap()</tt> or <tt>filterCollection()</tt> always returns a new data
- * 		structure, so the methods can be called multiple times against the same input.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({"unchecked","rawtypes"})
-public final class PojoQuery {
-
-	private Object input;
-	private ClassMeta type;
-	private BeanContext beanContext;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param input The POJO we're going to be filtering.
-	 * @param beanContext The bean context to use to create bean maps for beans.
-	 */
-	public PojoQuery(Object input, BeanContext beanContext) {
-		this.input = input;
-		this.type = beanContext.getClassMetaForObject(input);
-		this.beanContext = beanContext;
-	}
-
-	/**
-	 * Filters the input object as a map.
-	 *
-	 * @param view The list and order of properties to return from the map.  Values must be of type {@code String} or {@code Map}.
-	 * @return The filtered map
-	 */
-	public Map filterMap(List view) {
-
-		if (input == null)
-			return null;
-
-		if (! (type.isBean() || type.isMap()))
-			throw new RuntimeException("Cannot call filterMap() on class type " + type);
-
-		Map m = (Map)replaceWithMutables(input);
-		doView(m, view);
-
-		return m;
-	}
-
-	/**
-	 * Filters the input object as a collection of maps.
-	 *
-	 * @param query The query attributes.  Keys must be column names and values must be of type {@code String} or {@code Map}.
-	 * @param view The view attributes.  Values must be of type {@code String} or {@code Map}.
-	 * @param sort The sort attributes.  Values must be of type {@code String} or {@code Map}.
-	 * @param pos The index into the list to start returning results from.  Default is {@code 0}.
-	 * @param limit The number of rows to return.  Default is all rows.
-	 * @param ignoreCase If <jk>true</jk>, then querying is case insensitive.  Default is <jk>false</jk>.
-	 * @return The filtered collection.
-	 */
-	public List filterCollection(Map query, List view, List sort, int pos, int limit, boolean ignoreCase) {
-
-		if (input == null)
-			return null;
-
-		if (! (type.isArray() || type.isCollection()))
-			throw new RuntimeException("Cannot call filterCollection() on class type " + type);
-
-		if (view == null)
-			view = Collections.EMPTY_LIST;
-
-		if (sort == null)
-			sort = Collections.EMPTY_LIST;
-
-		// Create a new ObjectList
-		ObjectList l = (ObjectList)replaceWithMutables(input);
-
-		// Do the search
-		CollectionFilter filter = new CollectionFilter(query, ignoreCase);
-		filter.doQuery(l);
-
-		// If sort or view isn't empty, then we need to make sure that all entries in the
-		// list are maps.
-		if ((! sort.isEmpty()) || (! view.isEmpty())) {
-
-			if (! sort.isEmpty())
-				doSort(l, sort);
-
-			if (! view.isEmpty())
-				doView(l, view);
-		}
-
-		// Do the paging.
-		if (pos != 0 || limit != 0) {
-			int end = (limit == 0 || limit+pos >= l.size()) ? l.size() : limit + pos;
-			ObjectList l2 = new DelegateList(((DelegateList)l).getClassMeta());
-			l2.addAll(l.subList(pos, end));
-			l = l2;
-		}
-
-		return l;
-	}
-
-	/*
-	 * If there are any non-Maps in the specified list, replaces them with BeanMaps.
-	 */
-	private Object replaceWithMutables(Object o) {
-		if (o == null)
-			return null;
-		ClassMeta cm = beanContext.getClassMetaForObject(o);
-		if (cm.isCollection()) {
-			ObjectList l = new DelegateList(beanContext.getClassMetaForObject(o));
-			for (Object o2 : (Collection)o)
-				l.add(replaceWithMutables(o2));
-			return l;
-		}
-		if (cm.isMap() && o instanceof BeanMap) {
-			BeanMap bm = (BeanMap)o;
-			DelegateBeanMap dbm = new DelegateBeanMap(bm.getBean(), beanContext);
-			for (BeanMapEntry e : (Set<BeanMapEntry>)bm.entrySet()) {
-				ClassMeta ct1 = e.getMeta().getClassMeta();
-				if (ct1.isArray() || ct1.isBean() || ct1.isCollection() || ct1.isMap() || ct1.isObject())
-					dbm.put(e.getKey(), replaceWithMutables(e.getValue()));
-				else
-					dbm.addKey(e.getKey());
-			}
-			return dbm;
-		}
-		if (cm.isBean()) {
-			BeanMap bm = beanContext.forBean(o);
-			DelegateBeanMap dbm = new DelegateBeanMap(bm.getBean(), beanContext);
-			for (BeanMapEntry e : (Set<BeanMapEntry>)bm.entrySet()) {
-				ClassMeta ct1 = e.getMeta().getClassMeta();
-				if (ct1.isArray() || ct1.isBean() || ct1.isCollection() || ct1.isMap() || ct1.isObject()) {
-					Object val = null;
-					try {
-						val = e.getValue();
-					} catch (BeanRuntimeException ex) {
-						// Ignore.
-					}
-					dbm.put(e.getKey(), replaceWithMutables(val));
-				}
-				else
-					dbm.addKey(e.getKey());
-			}
-			return dbm;
-		}
-		if (cm.isMap()) {
-			Map m = (Map)o;
-			DelegateMap dm = new DelegateMap(beanContext.getClassMetaForObject(m));
-			for (Map.Entry e : (Set<Map.Entry>)m.entrySet())
-				dm.put(e.getKey().toString(), replaceWithMutables(e.getValue()));
-			return dm;
-		}
-		if (cm.isArray()) {
-			return replaceWithMutables(Arrays.asList((Object[])o));
-		}
-		return o;
-	}
-
-	/*
-	 * Sorts the specified list by the sort list.
-	 */
-	private void doSort(List list, List sortList) {
-
-		Map sort = new LinkedHashMap();
-		for (Object s : sortList) {
-			if (s instanceof String)
-				sort.put(s, "a");
-			else if (s instanceof Map) {
-				Map sm = (Map)s;
-				for (Map.Entry e : (Set<Map.Entry>)sm.entrySet())
-					sort.put(e.getKey(), e.getValue().toString().toLowerCase(Locale.ENGLISH));
-			}
-		}
-
-		// Do the sort.
-		List<String> columns = new ArrayList<String>(sort.keySet());
-		Collections.reverse(columns);
-		for (final String c : columns) {
-			final boolean isDesc = StringUtils.startsWith(sort.get(c).toString(), 'd');
-			Comparator comp = new Comparator<Map>() {
-				@Override /* Comparator */
-				public int compare(Map m1, Map m2) {
-					Comparable v1 = (Comparable)m1.get(c), v2 = (Comparable)m2.get(c);
-					if (v1 == null && v2 == null)
-						return 0;
-					if (v1 == null)
-						return (isDesc ? -1 : 1);
-					if (v2 == null)
-						return (isDesc ? 1 : -1);
-					return (isDesc ? v2.compareTo(v1) : v1.compareTo(v2));
-				}
-			};
-			Collections.sort(list, comp);
-		}
-	}
-
-	/*
-	 * Filters all but the specified view columns on all entries in the specified list.
-	 */
-	private void doView(List list, List view) {
-
-		for (ListIterator i = list.listIterator(); i.hasNext();) {
-			Object o = i.next();
-			Map m = (Map)o;
-			doView(m, view);
-		}
-	}
-
-	/*
-	 * Creates a new Map with only the entries specified in the view list.
-	 */
-	private void doView(Map m, List view) {
-		List<String> filterKeys = new LinkedList<String>();
-		for (Object v : view) {
-			if (v instanceof String) {
-				filterKeys.add(v.toString());
-			} else if (v instanceof ObjectMap) {
-				ObjectMap vm = (ObjectMap)v;
-				for (Map.Entry<String,Object> e : vm.entrySet()) {
-					String vmKey = e.getKey();
-					Object vmVal = e.getValue();
-					Object mv = m.get(vmKey);
-					filterKeys.add(vmKey);
-					if (vmVal instanceof List) {
-						List l = (List)vmVal;
-						if (mv instanceof List)
-							doView((List)mv, l);
-						else if (mv instanceof Map)
-							doView((Map)mv, l);
-					}
-				}
-			}
-		}
-		if (m instanceof DelegateMap)
-			((DelegateMap)m).filterKeys(filterKeys);
-		else
-			((DelegateBeanMap)m).filterKeys(filterKeys);
-	}
-
-
-	/*
-	 * Returns the appropriate IMatcher for the specified class type.
-	 */
-	private IMatcher getObjectMatcherForType(String queryString, boolean ignoreCase, ClassMeta cm) {
-		if (cm.isDate())
-			return new DateMatcher(queryString);
-		if (cm.isNumber())
-			return new NumberMatcher(queryString);
-		if (cm.isObject())
-			return new ObjectMatcher(queryString, ignoreCase);
-		return new StringMatcher(queryString, ignoreCase);
-	}
-
-	//====================================================================================================
-	// CollectionFilter
-	//====================================================================================================
-	private class CollectionFilter {
-		IMatcher entryMatcher;
-
-		public CollectionFilter(Map query, boolean ignoreCase) {
-			if (query != null && ! query.isEmpty())
-				entryMatcher = new MapMatcher(query, ignoreCase);
-		}
-
-		public void doQuery(List in) {
-			if (in == null || entryMatcher == null)
-				return;
-			for (Iterator i = in.iterator(); i.hasNext();) {
-				Object o = i.next();
-				if (! entryMatcher.matches(o))
-					i.remove();
-			}
-		}
-	}
-
-	//====================================================================================================
-	// IMatcher
-	//====================================================================================================
-	private interface IMatcher<E> {
-		public boolean matches(E o);
-	}
-
-	//====================================================================================================
-	// MapMatcher
-	//====================================================================================================
-	/*
-	 * Matches on a Map only if all specified entry matchers match.
-	 */
-	private class MapMatcher implements IMatcher<Map> {
-
-		Map<String,IMatcher> entryMatchers = new HashMap<String,IMatcher>();
-
-		public MapMatcher(Map query, boolean ignoreCase) {
-			for (Map.Entry e : (Set<Map.Entry>)query.entrySet()) {
-				String key = e.getKey().toString();
-				Object value = e.getValue();
-				IMatcher matcher = null;
-				if (value instanceof String)
-					matcher = getObjectMatcherForType((String)value, ignoreCase, beanContext.object());
-				else if (value instanceof ObjectMap)
-					matcher = new MapMatcher((ObjectMap)value, ignoreCase);
-				else
-					throw new RuntimeException("Invalid value type: " + value);
-				entryMatchers.put(key, matcher);
-			}
-		}
-
-		@Override /* IMatcher */
-		public boolean matches(Map m) {
-			if (m == null)
-				return false;
-			for (Map.Entry<String,IMatcher> e : entryMatchers.entrySet()) {
-				String key = e.getKey();
-				Object val = m.get(key);
-				if (! e.getValue().matches(val))
-					return false;
-			}
-			return true;
-		}
-	}
-
-	//====================================================================================================
-	// ObjectMatcher
-	//====================================================================================================
-	/*
-	 * Matcher that uses the correct matcher based on object type.
-	 * Used for objects when we can't determine the object type beforehand.
-	 */
-	private class ObjectMatcher implements IMatcher<Object> {
-
-		String searchPattern;
-		boolean ignoreCase;
-		DateMatcher dateMatcher;
-		NumberMatcher numberMatcher;
-		StringMatcher stringMatcher;
-
-		ObjectMatcher(String searchPattern, boolean ignoreCase) {
-			this.searchPattern = searchPattern;
-			this.ignoreCase = ignoreCase;
-		}
-
-		@Override /* IMatcher */
-		public boolean matches(Object o) {
-			if (o instanceof Number)
-				return getNumberMatcher().matches(o);
-			if (o instanceof Date || o instanceof Calendar)
-				return getDateMatcher().matches(o);
-			return getStringMatcher().matches(o);
-		}
-
-		private IMatcher getNumberMatcher() {
-			if (numberMatcher == null)
-				numberMatcher = new NumberMatcher(searchPattern);
-			return numberMatcher;
-		}
-
-		private IMatcher getStringMatcher() {
-			if (stringMatcher == null)
-				stringMatcher = new StringMatcher(searchPattern, ignoreCase);
-			return stringMatcher;
-		}
-
-		private IMatcher getDateMatcher() {
-			if (dateMatcher == null)
-				dateMatcher = new DateMatcher(searchPattern);
-			return dateMatcher;
-		}
-	}
-
-	//====================================================================================================
-	// NumberMatcher
-	//====================================================================================================
-	private static class NumberMatcher implements IMatcher<Number> {
-
-		private NumberPattern[] numberPatterns;
-
-		/**
-		 * Construct a number matcher for the given search pattern.
-		 * @param searchPattern A date search paattern.  See class usage for a description.
-		 */
-		public NumberMatcher(String searchPattern) {
-			numberPatterns = new NumberPattern[1];
-			numberPatterns[0] = new NumberPattern(searchPattern);
-
-		}
-
-		/**
-		 * Returns 'true' if this integer matches the pattern(s).
-		 */
-		@Override /* IMatcher */
-		public boolean matches(Number in) {
-			for (int i = 0; i < numberPatterns.length; i++) {
-				if (! numberPatterns[i].matches(in))
-					return false;
-			}
-			return true;
-		}
-
-	}
-
-	/**
-	 * A construct representing a single search pattern.
-	 */
-	private static class NumberPattern {
-		NumberRange[] numberRanges;
-
-		public NumberPattern(String searchPattern) {
-
-			List<NumberRange> l = new LinkedList<NumberRange>();
-
-			for (String s : breakUpTokens(searchPattern)) {
-				boolean isNot = (s.charAt(0) == '!');
-				String token = s.substring(1);
-				Pattern p = Pattern.compile("(([<>]=?)?)(-?\\d+)(-?(-?\\d+)?)");
-
-				// Possible patterns:
-				// 123, >123, <123, >=123, <=123, >-123, >=-123, 123-456, -123--456
-				// Regular expression used:  (([<>]=?)?)(-?\d+)(-??(-?\d+))
-				Matcher m = p.matcher(token);
-
-				// If a non-numeric value was passed in for a numeric value, just set the value to '0'.
-				// (I think this might resolve a workaround in custom queries).
-				if (! m.matches())
-					throw new RuntimeException("Numeric value didn't match pattern:  ["+token+"]");
-					//m = numericPattern.matcher("0");
-
-				String arg1 = m.group(1);
-				String start = m.group(3);
-				String end = m.group(5);
-
-				l.add(new NumberRange(arg1, start, end, isNot));
-			}
-
-			numberRanges = l.toArray(new NumberRange[l.size()]);
-		}
-
-		private List<String> breakUpTokens(String s) {
-			// Get rid of whitespace in "123 - 456"
-			s = s.replaceAll("(-?\\d+)\\s*-\\s*(-?\\d+)", "$1-$2");
-			// Get rid of whitespace in ">= 123"
-			s = s.replaceAll("([<>]=?)\\s+(-?\\d+)", "$1$2");
-			// Get rid of whitespace in "! 123"
-			s = s.replaceAll("(!)\\s+(-?\\d+)", "$1$2");
-
-			// Replace all commas with whitespace
-			// Allows for alternate notation of: 123,456...
-			s = s.replaceAll(",", " ");
-
-			String[] s2 = s.split("\\s+");
-
-			// Make all tokens 'ORed'.  There is no way to AND numeric tokens.
-			for (int i = 0; i < s2.length; i++)
-				if (! StringUtils.startsWith(s2[i], '!'))
-					s2[i] = "^"+s2[i];
-
-			List<String> l = new LinkedList<String>();
-			l.addAll(Arrays.asList(s2));
-			return l;
-		}
-
-		public boolean matches(Number number) {
-			if (numberRanges.length == 0) return true;
-			for (int i = 0; i < numberRanges.length; i++)
-				if (numberRanges[i].matches(number))
-					return true;
-			return false;
-		}
-	}
-
-	/**
-	 * A construct representing a single search range in a single search pattern.
-	 * All possible forms of search patterns are boiled down to these number ranges.
-	 */
-	private static class NumberRange {
-		int start;
-		int end;
-		boolean isNot;
-
-		public NumberRange(String arg, String start, String end, boolean isNot) {
-
-			this.isNot = isNot;
-
-			// 123, >123, <123, >=123, <=123, >-123, >=-123, 123-456, -123--456
-			if (arg.equals("") && end == null) { // 123
-				this.start = Integer.parseInt(start);
-				this.end = this.start;
-			} else if (arg.equals(">")) {
-				this.start = Integer.parseInt(start)+1;
-				this.end = Integer.MAX_VALUE;
-			} else if (arg.equals(">=")) {
-				this.start = Integer.parseInt(start);
-				this.end = Integer.MAX_VALUE;
-			} else if (arg.equals("<")) {
-				this.start = Integer.MIN_VALUE;
-				this.end = Integer.parseInt(start)-1;
-			} else if (arg.equals("<=")) {
-				this.start = Integer.MIN_VALUE;
-				this.end = Integer.parseInt(start);
-			} else {
-				this.start = Integer.parseInt(start);
-				this.end = Integer.parseInt(end);
-			}
-		}
-
-		public boolean matches(Number n) {
-			long i = n.longValue();
-			boolean b = (i>=start && i<=end);
-			if (isNot) b = !b;
-			return b;
-		}
-	}
-
-	//====================================================================================================
-	// DateMatcher
-	//====================================================================================================
-	/** The list of all valid timestamp formats */
-	private SimpleDateFormat[] validTimestampFormats = new SimpleDateFormat[0];
-	{
-		setValidTimestampFormats("yyyy.MM.dd.HH.mm.ss","yyyy.MM.dd.HH.mm","yyyy.MM.dd.HH","yyyy.MM.dd","yyyy.MM","yyyy");
-	}
-
-	/**
-	 * Use this method to override the allowed search patterns when used in locales where time formats are
-	 * different.
-	 * @param s A comma-delimited list of valid time formats.
-	 */
-	public void setValidTimestampFormats(String...s) {
-		validTimestampFormats = new SimpleDateFormat[s.length];
-		for (int i = 0; i < s.length; i++)
-			validTimestampFormats[i] = new SimpleDateFormat(s[i]);
-	}
-
-	private class DateMatcher implements IMatcher<Object> {
-
-		private TimestampPattern[] patterns;
-
-		/**
-		 * Construct a timestamp matcher for the given search pattern.
-		 * @param searchPattern The search pattern.
-		 */
-		DateMatcher(String searchPattern) {
-			patterns = new TimestampPattern[1];
-			patterns[0] = new TimestampPattern(searchPattern);
-
-		}
-
-		/**
-		 * Returns <jk>true</jk> if the specified date matches the pattern passed in through
-		 * 	the contstructor.<br>
-		 * The Object can be of type {@link Date} or {@link Calendar}.<br>
-		 * Always returns <jk>false</jk> on <jk>null</jk> input.
-		 */
-		@Override /* IMatcher */
-		public boolean matches(Object in) {
-			if (in == null) return false;
-
-			Calendar c = null;
-			if (in instanceof Calendar)
-				c = (Calendar)in;
-			else if (in instanceof Date) {
-				c = Calendar.getInstance();
-				c.setTime((Date)in);
-			} else {
-				return false;
-			}
-			for (int i = 0; i < patterns.length; i++) {
-				if (! patterns[i].matches(c))
-					return false;
-			}
-			return true;
-		}
-	}
-
-	/**
-	 * A construct representing a single search pattern.
-	 */
-	private class TimestampPattern {
-		TimestampRange[] ranges;
-		List<TimestampRange> l = new LinkedList<TimestampRange>();
-
-		public TimestampPattern(String s) {
-
-			// Handle special case where timestamp is enclosed in quotes.
-			// This can occur on hyperlinks created by group-by queries.
-			// e.g. '2007/01/29 04:17:43 PM'
-			if (s.charAt(0) == '\'' && s.charAt(s.length()-1) == '\'')
-				s = s.substring(1, s.length()-1);
-
-			// Pattern for finding <,>,<=,>=
-			Pattern p1 = Pattern.compile("^\\s*([<>](?:=)?)\\s*(\\S+.*)$");
-			// Pattern for finding range dash (e.g. xxx - yyy)
-			Pattern p2 = Pattern.compile("^(\\s*-\\s*)(\\S+.*)$");
-
-			// States are...
-			// 1 - Looking for <,>,<=,>=
-			// 2 - Looking for single date.
-			// 3 - Looking for start date.
-			// 4 - Looking for -
-			// 5 - Looking for end date.
-			int state = 1;
-
-			String op = null;
-			CalendarP startDate = null;
-
-			ParsePosition pp = new ParsePosition(0);
-			Matcher m = null;
-			String seg = s;
-
-			while (! seg.equals("") || state != 1) {
-				if (state == 1) {
-					m = p1.matcher(seg);
-					if (m.matches()) {
-						op = m.group(1);
-						seg = m.group(2);
-						state = 2;
-					} else {
-						state = 3;
-					}
-				} else if (state == 2) {
-					l.add(new TimestampRange(op, parseDate(seg, pp)));
-					//tokens.add("^"+op + parseTimestamp(seg, pp));
-					seg = seg.substring(pp.getIndex()).trim();
-					pp.setIndex(0);
-					state = 1;
-				} else if (state == 3) {
-					startDate = parseDate(seg, pp);
-					seg = seg.substring(pp.getIndex()).trim();
-					pp.setIndex(0);
-					state = 4;
-				} else if (state == 4) {
-					// Look for '-'
-					m = p2.matcher(seg);
-					if (m.matches()) {
-						state = 5;
-						seg = m.group(2);
-					} else {
-						// This is a single date (e.g. 2002/01/01)
-						l.add(new TimestampRange(startDate));
-						state = 1;
-					}
-				} else if (state == 5) {
-					l.add(new TimestampRange(startDate, parseDate(seg, pp)));
-					seg = seg.substring(pp.getIndex()).trim();
-					pp.setIndex(0);
-					state = 1;
-				}
-			}
-
-			ranges = l.toArray(new TimestampRange[l.size()]);
-		}
-
-		public boolean matches(Calendar c) {
-			if (ranges.length == 0) return true;
-			for (int i = 0; i < ranges.length; i++)
-				if (ranges[i].matches(c))
-					return true;
-			return false;
-		}
-	}
-
-	/**
-	 * A construct representing a single search range in a single search pattern.
-	 * All possible forms of search patterns are boiled down to these timestamp ranges.
-	 */
-	private static class TimestampRange {
-		Calendar start;
-		Calendar end;
-
-		public TimestampRange(CalendarP start, CalendarP end) {
-			this.start = start.copy().roll(MILLISECOND, -1).getCalendar();
-			this.end = end.roll(1).getCalendar();
-		}
-
-		public TimestampRange(CalendarP singleDate) {
-			this.start = singleDate.copy().roll(MILLISECOND, -1).getCalendar();
-			this.end = singleDate.roll(1).getCalendar();
-		}
-
-		public TimestampRange(String op, CalendarP singleDate) {
-			if (op.equals(">")) {
-				this.start = singleDate.roll(1).roll(MILLISECOND, -1).getCalendar();
-				this.end = new CalendarP(new Date(Long.MAX_VALUE), 0).getCalendar();
-			} else if (op.equals("<")) {
-				this.start = new CalendarP(new Date(0), 0).getCalendar();
-				this.end = singleDate.getCalendar();
-			} else if (op.equals(">=")) {
-				this.start = singleDate.roll(MILLISECOND, -1).getCalendar();
-				this.end = new CalendarP(new Date(Long.MAX_VALUE), 0).getCalendar();
-			} else if (op.equals("<=")) {
-				this.start = new CalendarP(new Date(0), 0).getCalendar();
-				this.end = singleDate.roll(1).getCalendar();
-			}
-		}
-
-		public boolean matches(Calendar c) {
-			boolean b = (c.after(start) && c.before(end));
-			return b;
-		}
-	}
-
-	private static int getPrecisionField(String pattern) {
-		if (pattern.indexOf('s') != -1)
-			return SECOND;
-		if (pattern.indexOf('m') != -1)
-			return MINUTE;
-		if (pattern.indexOf('H') != -1)
-			return HOUR_OF_DAY;
-		if (pattern.indexOf('d') != -1)
-			return DAY_OF_MONTH;
-		if (pattern.indexOf('M') != -1)
-			return MONTH;
-		if (pattern.indexOf('y') != -1)
-			return YEAR;
-		return Calendar.MILLISECOND;
-	}
-
-
-	/**
-	 * Parses a timestamp string off the beginning of the string segment 'seg'.
-	 * Goes through each possible valid timestamp format until it finds a match.
-	 * The position where the parsing left off is stored in pp.
-	 * @param seg The string segment being parsed.
-	 * @param pp Where parsing last left off.
-	 * @return An object represening a timestamp.
-	 */
-	protected CalendarP parseDate(String seg, ParsePosition pp) {
-
-		CalendarP cal = null;
-
-		for (int i = 0; i < validTimestampFormats.length && cal == null; i++) {
-			pp.setIndex(0);
-			SimpleDateFormat f = validTimestampFormats[i];
-			Date d = f.parse(seg, pp);
-			int idx = pp.getIndex();
-			if (idx != 0) {
-				// it only counts if the next character is '-', 'space', or end-of-string.
-				char c = (seg.length() == idx ? 0 : seg.charAt(idx));
-				if (c == 0 || c == '-' || Character.isWhitespace(c))
-					cal = new CalendarP(d, getPrecisionField(f.toPattern()));
-			}
-		}
-
-		if (cal == null) throw new RuntimeException("Invalid date encountered:  ["+seg+"]");
-
-		return cal;
-	}
-
-	/**
-	 * Combines a Calendar with a precision identifier.
-	 */
-	private static class CalendarP {
-		public Calendar c;
-		public int precision;
-
-		public CalendarP(Date date, int precision) {
-			c = Calendar.getInstance();
-			c.setTime(date);
-			this.precision = precision;
-		}
-
-		public CalendarP copy() {
-			return new CalendarP(c.getTime(), precision);
-		}
-
-		public CalendarP roll(int field, int amount) {
-			c.add(field, amount);
-			return this;
-		}
-
-		public CalendarP roll(int amount) {
-			return roll(precision, amount);
-		}
-
-		public Calendar getCalendar() {
-			return c;
-		}
-	}
-
-	//====================================================================================================
-	// StringMatcher
-	//====================================================================================================
-	private static class StringMatcher implements IMatcher<Object> {
-
-		private SearchPattern[] searchPatterns;
-
-		/**
-		 * Construct a string matcher for the given search pattern.
-		 * @param searchPattern The search pattern.  See class usage for details.
-		 * @param ignoreCase If <jk>true</jk>, use case-insensitive matching.
-		 */
-		public StringMatcher(String searchPattern, boolean ignoreCase) {
-			this.searchPatterns = new SearchPattern[1];
-			this.searchPatterns[0] = new SearchPattern(searchPattern, ignoreCase);
-		}
-
-		/**
-		 * Returns 'true' if this string matches the pattern(s).
-		 * Always returns false on null input.
-		 */
-		@Override /* IMatcher */
-		public boolean matches(Object in) {
-			if (in == null) return false;
-			for (int i = 0; i < searchPatterns.length; i++) {
-				if (! searchPatterns[i].matches(in.toString()))
-					return false;
-			}
-			return true;
-		}
-
-	}
-	/**
-	 * A construct representing a single search pattern.
-	 */
-	private static class SearchPattern {
-		Pattern[] orPatterns, andPatterns, notPatterns;
-
-		public SearchPattern(String searchPattern, boolean ignoreCase) {
-
-			List<Pattern> ors = new LinkedList<Pattern>();
-			List<Pattern> ands = new LinkedList<Pattern>();
-			List<Pattern> nots = new LinkedList<Pattern>();
-
-			for (String arg : breakUpTokens(searchPattern)) {
-				char prefix = arg.charAt(0);
-				String token = arg.substring(1);
-
-				token = token.replaceAll("([\\?\\*\\+\\\\\\[\\]\\{\\}\\(\\)\\^\\$\\.])", "\\\\$1");
-				token = token.replace("\u9997", ".*");
-				token = token.replace("\u9996", ".?");
-
-				if (! token.startsWith(".*"))
-					token = "^" + token;
-				if (! token.endsWith(".*"))
-					token = token + "$";
-
-				int flags = Pattern.DOTALL;
-				if (ignoreCase)
-					flags |= Pattern.CASE_INSENSITIVE;
-
-				Pattern p = Pattern.compile(token, flags);
-
-				if (prefix == '^')
-					ors.add(p);
-				else if (prefix == '+')
-					ands.add(p);
-				else if (prefix == '-')
-					nots.add(p);
-			}
-			orPatterns = ors.toArray(new Pattern[ors.size()]);
-			andPatterns = ands.toArray(new Pattern[ands.size()]);
-			notPatterns = nots.toArray(new Pattern[nots.size()]);
-		}
-
-		/**
-		 * Break up search pattern into separate tokens.
-		 */
-		private List<String> breakUpTokens(String s) {
-
-			// If the string is null or all whitespace, return an empty vector.
-			if (s == null || s.trim().length() == 0)
-				return Collections.emptyList();
-
-			// Pad with spaces.
-			s = " " + s + " ";
-
-			// Replace instances of [+] and [-] inside single and double quotes with
-			// \u2001 and \u2002 for later replacement.
-			int escapeCount = 0;
-			boolean inSingleQuote = false;
-			boolean inDoubleQuote = false;
-			char[] ca = s.toCharArray();
-			for (int i = 0; i < ca.length; i++) {
-				if (ca[i] == '\\') escapeCount++;
-				else if (escapeCount % 2 == 0) {
-					if (ca[i] == '\'') inSingleQuote = ! inSingleQuote;
-					else if (ca[i] == '"') inDoubleQuote = ! inDoubleQuote;
-					else if (ca[i] == '+' && (inSingleQuote || inDoubleQuote)) ca[i] = '\u9999';
-					else if (ca[i] == '-' && (inSingleQuote || inDoubleQuote)) ca[i] = '\u9998';
-				}
-				if (ca[i] != '\\') escapeCount = 0;
-			}
-			s = new String(ca);
-
-			// Remove spaces between '+' or '-' and the keyword.
-			//s = perl5Util.substitute("s/([\\+\\-])\\s+/$1/g", s);
-			s = s.replaceAll("([\\+\\-])\\s+", "$1");
-
-			// Replace:  [*]->[\u3001] as placeholder for '%', ignore escaped.
-			s = replace(s, '*', '\u9997', true);
-			// Replace:  [?]->[\u3002] as placeholder for '_', ignore escaped.
-			s = replace(s, '?', '\u9996', true);
-			// Replace:  [\*]->[*], [\?]->[?]
-			s = unEscapeChars(s, new char[]{'*','?'});
-
-			// Remove spaces
-			s = s.trim();
-
-			// Re-replace the [+] and [-] characters inside quotes.
-			s = s.replace('\u9999', '+');
-			s = s.replace('\u9998', '-');
-
-			String[] sa = splitQuoted(s, ' ');
-			List<String> l = new ArrayList<String>(sa.length);
-			int numOrs = 0;
-			for (int i = 0; i < sa.length; i++) {
-				String token = sa[i];
-				int len = token.length();
-				if (len > 0) {
-					char c = token.charAt(0);
-					String s2 = null;
-					if ((c == '+' || c == '-') && len > 1)
-						s2 = token.substring(1);
-					else {
-						s2 = token;
-						c = '^';
-						numOrs++;
-					}
-					// Trim off leading and trailing single and double quotes.
-					if (s2.matches("\".*\"") || s2.matches("'.*'"))
-						s2 = s2.substring(1, s2.length()-1);
-
-					// Replace:  [\"]->["]
-					s2 = unEscapeChars(s2, new char[]{'"','\''});
-
-					// Un-escape remaining escaped backslashes.
-					s2 = unEscapeChars(s2, new char[]{'\\'});
-
-					l.add(c + s2);
-				}
-			}
-
-			// If there's a single OR clause, turn it into an AND clause (makes the SQL cleaner).
-			if (numOrs == 1) {
-				int ii = l.size();
-				for (int i = 0; i < ii; i++) {
-					String x = l.get(i);
-					if (x.charAt(0) == '^')
-						l.set(i, '+'+x.substring(1));
-				}
-			}
-			return l;
-		}
-
-		public boolean matches(String input) {
-			if (input == null) return false;
-			for (int i = 0; i < andPatterns.length; i++)
-				if (! andPatterns[i].matcher(input).matches())
-					return false;
-			for (int i = 0; i < notPatterns.length; i++)
-				if (notPatterns[i].matcher(input).matches())
-					return false;
-			for (int i = 0; i < orPatterns.length; i++)
-				if (orPatterns[i].matcher(input).matches())
-					return true;
-			return orPatterns.length == 0;
-		}
-
-	}
-
-	/**
-	 * Same as split(String, char), but does not split on characters inside
-	 * single quotes.
-	 * Does not split on escaped delimiters, and escaped quotes are also ignored.
-	 * Example:
-	 * split("a,b,c",',') -> {"a","b","c"}
-	 * split("a,'b,b,b',c",',') -> {"a","'b,b,b'","c"}
-	 */
-	private static String[] splitQuoted(String s, char c) {
-
-		if (s == null || s.matches("\\s*"))
-			return new String[0];
-
-		List<String> l = new LinkedList<String>();
-		char[] sArray = s.toCharArray();
-		int x1 = 0;
-		int escapeCount = 0;
-		boolean inSingleQuote = false;
-		boolean inDoubleQuote = false;
-		for (int i = 0; i < sArray.length; i++) {
-			if (sArray[i] == '\\') escapeCount++;
-			else if (escapeCount % 2 == 0) {
-				if (sArray[i] == '\'' && ! inDoubleQuote) inSingleQuote = ! inSingleQuote;
-				else if (sArray[i] == '"' && ! inSingleQuote) inDoubleQuote = ! inDoubleQuote;
-				else if (sArray[i] == c && ! inSingleQuote && ! inDoubleQuote) {
-					String s2 = new String(sArray, x1, i-x1).trim();
-					l.add(s2);
-					x1 = i+1;
-				}
-			}
-			if (sArray[i] != '\\') escapeCount = 0;
-		}
-		String s2 = new String(sArray, x1, sArray.length-x1).trim();
-		l.add(s2);
-
-		return l.toArray(new String[l.size()]);
-	}
-
-	/**
-	 * Replaces tokens in a string with a different token.
-	 * replace("A and B and C", "and", "or") -> "A or B or C"
-	 * replace("andandand", "and", "or") -> "ororor"
-	 * replace(null, "and", "or") -> null
-	 * replace("andandand", null, "or") -> "andandand"
-	 * replace("andandand", "", "or") -> "andandand"
-	 * replace("A and B and C", "and", null) -> "A  B  C"
-	 * @param ignoreEscapedChars Specify 'true' if escaped 'from' characters should be ignored.
-	 */
-	static String replace(String s, char from, char to, boolean ignoreEscapedChars) {
-		if (s == null) return null;
-
-		char[] sArray = s.toCharArray();
-
-		int escapeCount = 0;
-		int singleQuoteCount = 0;
-		int doubleQuoteCount = 0;
-		for (int i = 0; i < sArray.length; i++) {
-			char c = sArray[i];
-			if (c == '\\' && ignoreEscapedChars)
-				escapeCount++;
-			else if (escapeCount % 2 == 0) {
-				if (c == from && singleQuoteCount % 2 == 0 && doubleQuoteCount % 2 == 0)
-				sArray[i] = to;
-			}
-			if (sArray[i] != '\\') escapeCount = 0;
-		}
-		return new String(sArray);
-	}
-
-	/**
-	 * Removes escape characters (specified by escapeChar) from the specified characters.
-	 */
-	static String unEscapeChars(String s, char[] toEscape) {
-		char escapeChar = '\\';
-		if (s == null) return null;
-		if (s.length() == 0) return s;
-		StringBuffer sb = new StringBuffer(s.length());
-		char[] sArray = s.toCharArray();
-		for (int i = 0; i < sArray.length; i++) {
-			char c = sArray[i];
-
-			if (c == escapeChar) {
-				if (i+1 != sArray.length) {
-					char c2 = sArray[i+1];
-					boolean isOneOf = false;
-					for (int j = 0; j < toEscape.length && ! isOneOf; j++)
-						isOneOf = (c2 == toEscape[j]);
-					if (isOneOf) {
-						i++;
-					} else if (c2 == escapeChar) {
-						sb.append(escapeChar);
-						i++;
-					}
-				}
-			}
-			sb.append(sArray[i]);
-		}
-		return sb.toString();
-	}
-}
-
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest$JsonNode.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest$JsonNode.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest$JsonNode.class
deleted file mode 100755
index 32b73b8..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest$JsonNode.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/utils/PojoRest.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest.class
deleted file mode 100755
index 3daabb9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest.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/utils/PojoRest.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest.java
deleted file mode 100755
index 6923d65..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRest.java
+++ /dev/null
@@ -1,843 +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.utils;
-
-import static java.net.HttpURLConnection.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Provides the ability to perform standard REST operations (GET, PUT, POST, DELETE) against
- * nodes in a POJO model.  Nodes in the POJO model are addressed using URLs.
- * <p>
- * 	A POJO model is defined as a tree model where nodes consist of consisting of the following:
- * 	<ul>
- * 		<li>{@link Map Maps} and Java beans representing JSON objects.
- * 		<li>{@link Collection Collections} and arrays representing JSON arrays.
- * 		<li>Java beans.
- * 	</ul>
- * <p>
- * 	Leaves of the tree can be any type of object.
- * <p>
- * 	Use {@link #get(String) get()} to retrieve an element from a JSON tree.<br>
- * 	Use {@link #put(String,Object) put()} to create (or overwrite) an element in a JSON tree.<br>
- * 	Use {@link #post(String,Object) post()} to add an element to a list in a JSON tree.<br>
- * 	Use {@link #delete(String) delete()} to remove an element from a JSON tree.<br>
- * <p>
- * 	Leading slashes in URLs are ignored.  So <js>"/xxx/yyy/zzz"</js> and <js>"xxx/yyy/zzz"</js> are considered identical.
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Construct an unstructured POJO model</jc>
- * 	ObjectMap m = <jk>new</jk> ObjectMap(<js>""</js>
- * 		+ <js>"{"</js>
- * 		+ <js>"	name:'John Smith', "</js>
- * 		+ <js>"	address:{ "</js>
- * 		+ <js>"		streetAddress:'21 2nd Street', "</js>
- * 		+ <js>"		city:'New York', "</js>
- * 		+ <js>"		state:'NY', "</js>
- * 		+ <js>"		postalCode:10021 "</js>
- * 		+ <js>"	}, "</js>
- * 		+ <js>"	phoneNumbers:[ "</js>
- * 		+ <js>"		'212 555-1111', "</js>
- * 		+ <js>"		'212 555-2222' "</js>
- * 		+ <js>"	], "</js>
- * 		+ <js>"	additionalInfo:null, "</js>
- * 		+ <js>"	remote:false, "</js>
- * 		+ <js>"	height:62.4, "</js>
- * 		+ <js>"	'fico score':' &gt; 640' "</js>
- * 		+ <js>"} "</js>
- * 	);
- *
- * 	<jc>// Wrap Map inside a PojoRest object</jc>
- * 	PojoRest johnSmith = <jk>new</jk> PojoRest(m);
- *
- * 	<jc>// Get a simple value at the top level</jc>
- * 	<jc>// "John Smith"</jc>
- * 	String name = johnSmith.getString(<js>"name"</js>);
- *
- * 	<jc>// Change a simple value at the top level</jc>
- * 	johnSmith.put(<js>"name"</js>, <js>"The late John Smith"</js>);
- *
- * 	<jc>// Get a simple value at a deep level</jc>
- * 	<jc>// "21 2nd Street"</jc>
- * 	String streetAddress = johnSmith.getString(<js>"address/streetAddress"</js>);
- *
- * 	<jc>// Set a simple value at a deep level</jc>
- * 	johnSmith.put(<js>"address/streetAddress"</js>, <js>"101 Cemetery Way"</js>);
- *
- * 	<jc>// Get entries in a list</jc>
- * 	<jc>// "212 555-1111"</jc>
- * 	String firstPhoneNumber = johnSmith.getString(<js>"phoneNumbers/0"</js>);
- *
- * 	<jc>// Add entries to a list</jc>
- * 	johnSmith.post(<js>"phoneNumbers"</js>, <js>"212 555-3333"</js>);
- *
- * 	<jc>// Delete entries from a model</jc>
- * 	johnSmith.delete(<js>"fico score"</js>);
- *
- * 	<jc>// Add entirely new structures to the tree</jc>
- * 	ObjectMap medicalInfo = new ObjectMap(<js>""</js>
- * 		+ <js>"{"</js>
- * 		+ <js>"	currentStatus: 'deceased',"</js>
- * 		+ <js>"	health: 'non-existent',"</js>
- * 		+ <js>"	creditWorthiness: 'not good'"</js>
- * 		+ <js>"}"</js>
- * 	);
- * 	johnSmith.put(<js>"additionalInfo/medicalInfo"</js>, medicalInfo);
- * <p>
- * 	In the special case of collections/arrays of maps/beans, a special XPath-like selector notation
- * 	can be used in lieu of index numbers on GET requests to return a map/bean with a specified attribute value.<br>
- * 	The syntax is {@code @attr=val}, where attr is the attribute name on the child map, and val is the matching value.
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Get map/bean with name attribute value of 'foo' from a list of items</jc>
- * 	Map m = pojoRest.getMap(<js>"/items/@name=foo"</js>);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({"unchecked","rawtypes"})
-public final class PojoRest {
-
-	/** The list of possible request types. */
-	private static final int GET=1, PUT=2, POST=3, DELETE=4;
-
-	private ReaderParser parser = JsonParser.DEFAULT;
-	private final BeanContext bc;
-
-	/** If true, the root cannot be overwritten */
-	private boolean rootLocked = false;
-
-	/** The root of the model. */
-	private JsonNode root;
-
-	/**
-	 * Create a new instance of a REST interface over the specified object.
-	 * <p>
-	 * 	Uses {@link BeanContext#DEFAULT} for working with Java beans.
-	 *
-	 * @param o The object to be wrapped.
-	 */
-	public PojoRest(Object o) {
-		this(o, null);
-	}
-
-	/**
-	 * Create a new instance of a REST interface over the specified object.
-	 * <p>
-	 * 	The parser is used as the bean context.
-	 *
-	 * @param o The object to be wrapped.
-	 * @param parser The parser to use for parsing arguments and converting objects to the correct data type.
-	 */
-	public PojoRest(Object o, ReaderParser parser) {
-		if (parser == null)
-			parser = JsonParser.DEFAULT;
-		this.parser = parser;
-		this.bc = parser.getBeanContext();
-		this.root = new JsonNode(null, null, o, bc.object());
-	}
-
-	/**
-	 * Call this method to prevent the root object from being overwritten on put("", xxx); calls.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public PojoRest setRootLocked() {
-		this.rootLocked = true;
-		return this;
-	}
-
-	/**
-	 * The root object that was passed into the constructor of this method.
-	 *
-	 * @return The root object.
-	 */
-	public Object getRootObject() {
-		return root.o;
-	}
-
-	/**
-	 * Retrieves the element addressed by the URL.
-	 *
-	 * @param url The URL of the element to retrieve.
-	 * 		If null or blank, returns the root.
-	 * @return The addressed element, or null if that element does not exist in the tree.
-	 */
-	public Object get(String url) {
-		return get(url, null);
-	}
-
-	/**
-	 * Retrieves the element addressed by the URL.
-	 *
-	 * @param url The URL of the element to retrieve.
-	 * 		If null or blank, returns the root.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The addressed element, or null if that element does not exist in the tree.
-	 */
-	public Object get(String url, Object defVal) {
-		Object o = service(GET, url, null);
-		return o == null ? defVal : o;
-	}
-
-	/**
-	 * Retrieves the element addressed by the URL as the specified object type.
-	 * <p>
-	 * Will convert object to the specified type per {@link BeanContext#convertToType(Object, ClassMeta)}.
-	 *
-	 * @param type The specified object type.
-	 * @param url The URL of the element to retrieve.
-	 * 		If null or blank, returns the root.
-	 * @param <T> The specified object type.
-	 *
-	 * @return The addressed element, or null if that element does not exist in the tree.
-	 */
-	public <T> T get(Class<T> type, String url) {
-		return get(type, url, null);
-	}
-
-	/**
-	 * Retrieves the element addressed by the URL as the specified object type.
-	 * <p>
-	 * Will convert object to the specified type per {@link BeanContext#convertToType(Object, ClassMeta)}.
-	 *
-	 * @param type The specified object type.
-	 * @param url The URL of the element to retrieve.
-	 * 		If null or blank, returns the root.
-	 * @param def The default value if addressed item does not exist.
-	 * @param <T> The specified object type.
-	 *
-	 * @return The addressed element, or null if that element does not exist in the tree.
-	 */
-	public <T> T get(Class<T> type, String url, T def) {
-		Object o = service(GET, url, null);
-		if (o == null)
-			return def;
-		return bc.convertToType(o, type);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link String}.
-	 * <p>
-	 * 	Shortcut for <code>get(String.<jk>class</jk>, key)</code>.
-	 *
-	 * @param url The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 */
-	public String getString(String url) {
-		return get(String.class, url);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link String}.
-	 * <p>
-	 * 	Shortcut for <code>get(String.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param url The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 */
-	public String getString(String url, String defVal) {
-		return get(String.class, url, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to an {@link Integer}.
-	 * <p>
-	 * 	Shortcut for <code>get(Integer.<jk>class</jk>, key)</code>.
-	 *
-	 * @param url The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Integer getInt(String url) {
-		return get(Integer.class, url);
-	}
-
-	/**
-	 * Returns the specified entry value converted to an {@link Integer}.
-	 * <p>
-	 * 	Shortcut for <code>get(Integer.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param url The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Integer getInt(String url, Integer defVal) {
-		return get(Integer.class, url, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Long}.
-	 * <p>
-	 * 	Shortcut for <code>get(Long.<jk>class</jk>, key)</code>.
-	 *
-	 * @param url The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Long getLong(String url) {
-		return get(Long.class, url);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Long}.
-	 * <p>
-	 * 	Shortcut for <code>get(Long.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param url The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Long getLong(String url, Long defVal) {
-		return get(Long.class, url, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Boolean}.
-	 * <p>
-	 * 	Shortcut for <code>get(Boolean.<jk>class</jk>, key)</code>.
-	 *
-	 * @param url The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Boolean getBoolean(String url) {
-		return get(Boolean.class, url);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Boolean}.
-	 * <p>
-	 * 	Shortcut for <code>get(Boolean.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param url The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Boolean getBoolean(String url, Boolean defVal) {
-		return get(Boolean.class, url, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Map}.
-	 * <p>
-	 * 	Shortcut for <code>get(Map.<jk>class</jk>, key)</code>.
-	 *
-	 * @param url The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Map<?,?> getMap(String url) {
-		return get(Map.class, url);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Map}.
-	 * <p>
-	 * 	Shortcut for <code>get(Map.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param url The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public Map<?,?> getMap(String url, Map<?,?> defVal) {
-		return get(Map.class, url, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link List}.
-	 * <p>
-	 * 	Shortcut for <code>get(List.<jk>class</jk>, key)</code>.
-	 *
-	 * @param url The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public List<?> getList(String url) {
-		return get(List.class, url);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link List}.
-	 * <p>
-	 * 	Shortcut for <code>get(List.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param url The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public List<?> getList(String url, List<?> defVal) {
-		return get(List.class, url, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link Map}.
-	 * <p>
-	 * 	Shortcut for <code>get(ObjectMap.<jk>class</jk>, key)</code>.
-	 *
-	 * @param url The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectMap getObjectMap(String url) {
-		return get(ObjectMap.class, url);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link ObjectMap}.
-	 * <p>
-	 * 	Shortcut for <code>get(ObjectMap.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param url The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectMap getObjectMap(String url, ObjectMap defVal) {
-		return get(ObjectMap.class, url, defVal);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link ObjectList}.
-	 * <p>
-	 * 	Shortcut for <code>get(ObjectList.<jk>class</jk>, key)</code>.
-	 *
-	 * @param url The key.
-	 * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectList getObjectList(String url) {
-		return get(ObjectList.class, url);
-	}
-
-	/**
-	 * Returns the specified entry value converted to a {@link ObjectList}.
-	 * <p>
-	 * 	Shortcut for <code>get(ObjectList.<jk>class</jk>, key, defVal)</code>.
-	 *
-	 * @param url The key.
-	 * @param defVal The default value if the map doesn't contain the specified mapping.
-	 * @return The converted value, or the default value if the map contains no mapping for this key.
-	 * @throws InvalidDataConversionException If value cannot be converted.
-	 */
-	public ObjectList getObjectList(String url, ObjectList defVal) {
-		return get(ObjectList.class, url, defVal);
-	}
-
-	/**
-	 * Executes the specified method with the specified parameters on the specified object.
-	 *
-	 * @param url The URL of the element to retrieve.
-	 * @param method The method signature.
-	 * 	<p>
-	 * 		Can be any of the following formats:
-	 * 	</p>
-	 * 	<ul>
-	 * 		<li>Method name only.  e.g. <js>"myMethod"</js>.
-	 * 		<li>Method name with class names.  e.g. <js>"myMethod(String,int)"</js>.
-	 * 		<li>Method name with fully-qualified class names.  e.g. <js>"myMethod(java.util.String,int)"</js>.
-	 * 	</ul>
-	 * 	<p>
-	 * 		As a rule, use the simplest format needed to uniquely resolve a method.
-	 * 	</p>
-	 * @param args The arguments to pass as parameters to the method.<br>
-	 * 	These will automatically be converted to the appropriate object type if possible.<br>
-	 * 	This must be an array, like a JSON array.
-	 * @return The returned object from the method call.
-	 * @throws IllegalAccessException If the <code>Constructor</code> object enforces Java language access control and the underlying constructor is inaccessible.
-	 * @throws IllegalArgumentException If one of the following occurs:
-	 * 	<ul>
-	 * 		<li>The number of actual and formal parameters differ.
-	 * 		<li>An unwrapping conversion for primitive arguments fails.
-	 * 		<li>A parameter value cannot be converted to the corresponding formal parameter type by a method invocation conversion.
-	 * 		<li>The constructor pertains to an enum type.
-	 * 	</ul>
-	 * @throws InvocationTargetException If the underlying constructor throws an exception.
-	 * @throws ParseException If the input contains a syntax error or is malformed.
-	 * @throws NoSuchMethodException
-	 * @throws IOException
-	 */
-	public Object invokeMethod(String url, String method, String args) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException, ParseException, NoSuchMethodException, IOException {
-		return new PojoIntrospector(get(url), parser).invokeMethod(method, args);
-	}
-
-	/**
-	 * Returns the list of available methods that can be passed to the {@link #invokeMethod(String, String, String)} for the object
-	 * 	addressed by the specified URL.
-	 *
-	 * @param url The URL.
-	 * @return The list of methods.
-	 */
-	public Collection<String> getPublicMethods(String url) {
-		Object o = get(url);
-		if (o == null)
-			return null;
-		return bc.getClassMeta(o.getClass()).getPublicMethods().keySet();
-	}
-
-	/**
-	 * Returns the class type of the object at the specified URL.
-	 *
-	 * @param url The URL.
-	 * @return The class type.
-	 */
-	public ClassMeta getClassMeta(String url) {
-		JsonNode n = getNode(normalizeUrl(url), root);
-		if (n == null)
-			return null;
-		return n.cm;
-	}
-
-	/**
-	 * Sets/replaces the element addressed by the URL.
-	 * <p>
-	 * 	This method expands the POJO model as necessary to create the new element.
-	 *
-	 * @param url The URL of the element to create.
-	 * 		If <jk>null</jk> or blank, the root itself is replaced with the specified value.
-	 * @param val The value being set.  Value can be of any type.
-	 * @return The previously addressed element, or <jk>null</jk> the element did not previously exist.
-	 */
-	public Object put(String url, Object val) {
-		return service(PUT, url, val);
-	}
-
-	/**
-	 * Adds a value to a list element in a POJO model.
-	 * <p>
-	 * 	The URL is the address of the list being added to.
-	 * <p>
-	 * 	If the list does not already exist, it will be created.
-	 * <p>
-	 * 	This method expands the POJO model as necessary to create the new element.
-	 * <p>
-	 * 	Note:  You can only post to three types of nodes:
-	 * 	<ul>
-	 * 		<li>{@link List Lists}
-	 * 		<li>{@link Map Maps} containing integers as keys (i.e sparse arrays)
-	 * 		<li>arrays
-	 * 	</ul>
-	 *
-	 * @param url The URL of the element being added to.
-	 * 		If null or blank, the root itself (assuming it's one of the types specified above) is added to.
-	 * @param val The value being added.
-	 * @return The URL of the element that was added.
-	 */
-	public String post(String url, Object val) {
-		return (String)service(POST, url, val);
-	}
-
-	/**
-	 * Remove an element from a POJO model.
-	 * <p>
-	 * qIf the element does not exist, no action is taken.
-	 *
-	 * @param url The URL of the element being deleted.
-	 * 		If <jk>null</jk> or blank, the root itself is deleted.
-	 * @return The removed element, or null if that element does not exist.
-	 */
-	public Object delete(String url) {
-		return service(DELETE, url, null);
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return String.valueOf(root.o);
-	}
-
-	/** Handle nulls and strip off leading '/' char. */
-	private String normalizeUrl(String url) {
-
-		// Interpret nulls and blanks the same (i.e. as addressing the root itself)
-		if (url == null)
-			url = "";
-
-		// Strip off leading slash if present.
-		if (url.length() > 0 && url.charAt(0) == '/')
-			url = url.substring(1);
-
-		return url;
-	}
-
-
-	/*
-	 * Workhorse method.
-	 */
-	private Object service(int method, String url, Object val) throws PojoRestException {
-
-		url = normalizeUrl(url);
-
-		if (method == GET) {
-			JsonNode p = getNode(url, root);
-			return p == null ? null : p.o;
-		}
-
-		// Get the url of the parent and the property name of the addressed object.
-		int i = url.lastIndexOf('/');
-		String parentUrl = (i == -1 ? null : url.substring(0, i));
-		String childKey = (i == -1 ? url : url.substring(i + 1));
-
-		if (method == PUT) {
-			if (url.length() == 0) {
-				if (rootLocked)
-					throw new PojoRestException(HTTP_FORBIDDEN, "Cannot overwrite root object");
-				Object o = root.o;
-				root = new JsonNode(null, null, val, bc.object());
-				return o;
-			}
-			JsonNode n = (parentUrl == null ? root : getNode(parentUrl, root));
-			if (n == null)
-				throw new PojoRestException(HTTP_NOT_FOUND, "Node at URL ''{0}'' not found.", parentUrl);
-			ClassMeta cm = n.cm;
-			Object o = n.o;
-			if (cm.isMap())
-				return ((Map)o).put(childKey, convert(val, cm.getValueType()));
-			if (cm.isCollection() && o instanceof List)
-				return ((List)o).set(parseInt(childKey), convert(val, cm.getElementType()));
-			if (cm.isArray()) {
-				o = setArrayEntry(n.o, parseInt(childKey), val, cm.getElementType());
-				ClassMeta pct = n.parent.cm;
-				Object po = n.parent.o;
-				if (pct.isMap()) {
-					((Map)po).put(n.keyName, o);
-					return url;
-				}
-				if (pct.isBean()) {
-					BeanMap m = bc.forBean(po);
-					m.put(n.keyName, o);
-					return url;
-				}
-				throw new PojoRestException(HTTP_BAD_REQUEST, "Cannot perform PUT on ''{0}'' with parent node type ''{1}''", url, pct);
-			}
-			if (cm.isBean())
-				return bc.forBean(o).put(childKey, val);
-			throw new PojoRestException(HTTP_BAD_REQUEST, "Cannot perform PUT on ''{0}'' whose parent is of type ''{1}''", url, cm);
-		}
-
-		if (method == POST) {
-			// Handle POST to root special
-			if (url.length() == 0) {
-				ClassMeta cm = root.cm;
-				Object o = root.o;
-				if (cm.isCollection()) {
-					Collection c = (Collection)o;
-					c.add(convert(val, cm.getElementType()));
-					return (c instanceof List ? url + "/" + (c.size()-1) : null);
-				}
-				if (cm.isArray()) {
-					Object[] o2 = addArrayEntry(o, val, cm.getElementType());
-					root = new JsonNode(null, null, o2, null);
-					return url + "/" + (o2.length-1);
-				}
-				throw new PojoRestException(HTTP_BAD_REQUEST, "Cannot perform POST on ''{0}'' of type ''{1}''", url, cm);
-			}
-			JsonNode n = getNode(url, root);
-			if (n == null)
-				throw new PojoRestException(HTTP_NOT_FOUND, "Node at URL ''{0}'' not found.", url);
-			ClassMeta cm = n.cm;
-			Object o = n.o;
-			if (cm.isArray()) {
-				Object[] o2 = addArrayEntry(o, val, cm.getElementType());
-				ClassMeta pct = n.parent.cm;
-				Object po = n.parent.o;
-				if (pct.isMap()) {
-					((Map)po).put(childKey, o2);
-					return url + "/" + (o2.length-1);
-				}
-				if (pct.isBean()) {
-					BeanMap m = bc.forBean(po);
-					m.put(childKey, o2);
-					return url + "/" + (o2.length-1);
-				}
-				throw new PojoRestException(HTTP_BAD_REQUEST, "Cannot perform POST on ''{0}'' with parent node type ''{1}''", url, pct);
-			}
-			if (cm.isCollection()) {
-				Collection c = (Collection)o;
-				c.add(convert(val, cm.getElementType()));
-				return (c instanceof List ? url + "/" + (c.size()-1) : null);
-			}
-			throw new PojoRestException(HTTP_BAD_REQUEST, "Cannot perform POST on ''{0}'' of type ''{1}''", url, cm);
-		}
-
-		if (method == DELETE) {
-			if (url.length() == 0) {
-				if (rootLocked)
-					throw new PojoRestException(HTTP_FORBIDDEN, "Cannot overwrite root object");
-				Object o = root.o;
-				root = new JsonNode(null, null, null, bc.object());
-				return o;
-			}
-			JsonNode n = (parentUrl == null ? root : getNode(parentUrl, root));
-			ClassMeta cm = n.cm;
-			Object o = n.o;
-			if (cm.isMap())
-				return ((Map)o).remove(childKey);
-			if (cm.isCollection() && o instanceof List)
-				return ((List)o).remove(parseInt(childKey));
-			if (cm.isArray()) {
-				int index = parseInt(childKey);
-				Object old = ((Object[])o)[index];
-				Object[] o2 = removeArrayEntry(o, index);
-				ClassMeta pct = n.parent.cm;
-				Object po = n.parent.o;
-				if (pct.isMap()) {
-					((Map)po).put(n.keyName, o2);
-					return old;
-				}
-				if (pct.isBean()) {
-					BeanMap m = bc.forBean(po);
-					m.put(n.keyName, o2);
-					return old;
-				}
-				throw new PojoRestException(HTTP_BAD_REQUEST, "Cannot perform POST on ''{0}'' with parent node type ''{1}''", url, pct);
-			}
-			if (cm.isBean())
-				return bc.forBean(o).put(childKey, null);
-			throw new PojoRestException(HTTP_BAD_REQUEST, "Cannot perform PUT on ''{0}'' whose parent is of type ''{1}''", url, cm);
-		}
-
-		return null;	// Never gets here.
-	}
-
-	private Object[] setArrayEntry(Object o, int index, Object val, ClassMeta componentType) {
-		Object[] a = (Object[])o;
-		if (a.length <= index) {
-			// Expand out the array.
-			Object[] a2 = (Object[])Array.newInstance(a.getClass().getComponentType(), index+1);
-			System.arraycopy(a, 0, a2, 0, a.length);
-			a = a2;
-		}
-		a[index] = convert(val, componentType);
-		return a;
-	}
-
-	private Object[] addArrayEntry(Object o, Object val, ClassMeta componentType) {
-		Object[] a = (Object[])o;
-		// Expand out the array.
-		Object[] a2 = (Object[])Array.newInstance(a.getClass().getComponentType(), a.length+1);
-		System.arraycopy(a, 0, a2, 0, a.length);
-		a2[a.length] = convert(val, componentType);
-		return a2;
-	}
-
-	private Object[] removeArrayEntry(Object o, int index) {
-		Object[] a = (Object[])o;
-		// Shrink the array.
-		Object[] a2 = (Object[])Array.newInstance(a.getClass().getComponentType(), a.length-1);
-		System.arraycopy(a, 0, a2, 0, index);
-		System.arraycopy(a, index+1, a2, index, a.length-index-1);
-		return a2;
-	}
-
-	class JsonNode {
-		Object o;
-		ClassMeta cm;
-		JsonNode parent;
-		String keyName;
-
-		JsonNode(JsonNode parent, String keyName, Object o, ClassMeta cm) {
-			this.o = o;
-			this.keyName = keyName;
-			this.parent = parent;
-			if (cm == null || cm.isObject()) {
-				if (o == null)
-					cm = bc.object();
-				else
-					cm = bc.getClassMetaForObject(o);
-			}
-			this.cm = cm;
-		}
-	}
-
-	JsonNode getNode(String url, JsonNode n) {
-		if (url == null || url.isEmpty())
-			return n;
-		int i = url.indexOf('/');
-		String parentKey, childUrl = null;
-		if (i == -1) {
-			parentKey = url;
-		} else {
-			parentKey = url.substring(0, i);
-			childUrl = url.substring(i + 1);
-		}
-
-		Object o = n.o;
-		Object o2 = null;
-		ClassMeta cm = n.cm;
-		ClassMeta ct2 = null;
-		if (o == null)
-			return null;
-		if (cm.isMap()) {
-			o2 = ((Map)o).get(parentKey);
-			ct2 = cm.getValueType();
-		} else if (cm.isCollection() && o instanceof List) {
-			int key = parseInt(parentKey);
-			List l = ((List)o);
-			if (l.size() <= key)
-				return null;
-			o2 = l.get(key);
-			ct2 = cm.getElementType();
-		} else if (cm.isArray()) {
-			int key = parseInt(parentKey);
-			Object[] a = ((Object[])o);
-			if (a.length <= key)
-				return null;
-			o2 = a[key];
-			ct2 = cm.getElementType();
-		} else if (cm.isBean()) {
-			BeanMap m = bc.forBean(o);
-			o2 = m.get(parentKey);
-			BeanPropertyMeta pMeta = m.getPropertyMeta(parentKey);
-			if (pMeta == null)
-				throw new PojoRestException(HTTP_BAD_REQUEST,
-					"Unknown property ''{0}'' encountered while trying to parse into class ''{1}''",
-					parentKey, m.getClassMeta()
-				);
-			ct2 = pMeta.getClassMeta();
-		}
-
-		if (childUrl == null)
-			return new JsonNode(n, parentKey, o2, ct2);
-
-		return getNode(childUrl, new JsonNode(n, parentKey, o2, ct2));
-	}
-
-	private Object convert(Object in, ClassMeta cm) {
-		if (cm == null)
-			return in;
-		if (cm.isBean() && in instanceof Map)
-			return bc.convertToType(in, cm);
-		return in;
-	}
-
-	private int parseInt(String key) {
-		try {
-			return Integer.parseInt(key);
-		} catch (NumberFormatException e) {
-			throw new PojoRestException(HTTP_BAD_REQUEST,
-				"Cannot address an item in an array with a non-integer key ''{0}''", key
-			);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRestException.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRestException.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRestException.class
deleted file mode 100755
index a9c026e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRestException.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/utils/PojoRestException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRestException.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRestException.java
deleted file mode 100755
index 86e3934..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/PojoRestException.java
+++ /dev/null
@@ -1,56 +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.utils;
-
-import java.net.*;
-import java.text.*;
-
-/**
- * Generic exception thrown from the {@link PojoRest} class.
- * <p>
- * 	Typically, this is a user-error, such as trying to address a non-existent node in the tree.
- * <p>
- * 	The status code is an HTTP-equivalent code.  It will be one of the following:
- * <ul>
- * 	<li>{@link HttpURLConnection#HTTP_BAD_REQUEST HTTP_BAD_REQUEST} - Attempting to do something impossible.
- * 	<li>{@link HttpURLConnection#HTTP_NOT_FOUND HTTP_NOT_FOUND} - Attempting to access a non-existent node in the tree.
- * 	<li>{@link HttpURLConnection#HTTP_FORBIDDEN HTTP_FORBIDDEN} - Attempting to overwrite the root object.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class PojoRestException extends RuntimeException {
-
-	private static final long serialVersionUID = 1L;
-
-	private int status;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param status The HTTP-equivalent status code.
-	 * @param message The detailed message.
-	 * @param args Optional message arguments.
-	 */
-	public PojoRestException(int status, String message, Object...args) {
-		super(args.length == 0 ? message : MessageFormat.format(message, args));
-		this.status = status;
-	}
-
-	/**
-	 * The HTTP-equivalent status code.
-	 * <p>
-	 * 	See above for details.
-	 *
-	 * @return The HTTP-equivalent status code.
-	 */
-	public int getStatus() {
-		return status;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$1.class
deleted file mode 100755
index 72f4d06..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$1.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/utils/ProcBuilder$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$2.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$2.class
deleted file mode 100755
index 9f5f469..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$2.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/utils/ProcBuilder$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$3.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$3.class
deleted file mode 100755
index b13996a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$3.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/utils/ProcBuilder$4.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$4.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$4.class
deleted file mode 100755
index c75c48a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$4.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/utils/ProcBuilder$5.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$5.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$5.class
deleted file mode 100755
index d83e166..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$5.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/utils/ProcBuilder$Matcher.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$Matcher.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$Matcher.class
deleted file mode 100755
index 9521154..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder$Matcher.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/utils/ProcBuilder.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder.class
deleted file mode 100755
index 5083520..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/utils/ProcBuilder.class and /dev/null differ


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlStrippedDocSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlStrippedDocSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlStrippedDocSerializer.java
deleted file mode 100755
index a03c32c..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/HtmlStrippedDocSerializer.java
+++ /dev/null
@@ -1,55 +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.html;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Serializes POJOs to HTTP responses as stripped HTML.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>text/html+stripped</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>text/html</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Produces the same output as {@link HtmlDocSerializer}, but without the header and body tags and page title and description.
- * 	Used primarily for JUnit testing the {@link HtmlDocSerializer} class.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces(value="text/html+stripped",contentType="text/html")
-public class HtmlStrippedDocSerializer extends HtmlSerializer {
-
-	//---------------------------------------------------------------------------
-	// Overridden methods
-	//---------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		HtmlSerializerContext hctx = (HtmlSerializerContext)ctx;
-		HtmlSerializerWriter w = hctx.getWriter(out);
-		if (o == null
-			|| (o instanceof Collection && ((Collection<?>)o).size() == 0)
-			|| (o.getClass().isArray() && Array.getLength(o) == 0))
-			w.sTag(1, "p").append("No Results").eTag("p").nl();
-		else
-			super.doSerialize(o, w, hctx);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/SimpleHtmlWriter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/SimpleHtmlWriter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/SimpleHtmlWriter.class
deleted file mode 100755
index 3d86ffb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/SimpleHtmlWriter.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/html/SimpleHtmlWriter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/SimpleHtmlWriter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/SimpleHtmlWriter.java
deleted file mode 100755
index 5c10459..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/SimpleHtmlWriter.java
+++ /dev/null
@@ -1,36 +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.html;
-
-import java.io.*;
-
-/**
- * Utility class for creating custom HTML.
- * <p>
- * Example:
- * <p class='bcode'>
- * 	String table = <jk>new</jk> SimpleHtmlWriter().sTag(<js>"table"</js>).sTag(<js>"tr"</js>).sTag(<js>"td"</js>).append(<js>"hello"</js>).eTag(<js>"td"</js>).eTag(<js>"tr"</js>).eTag(<js>"table"</js>).toString();
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SimpleHtmlWriter extends HtmlSerializerWriter {
-
-	/**
-	 * Constructor.
-	 */
-	public SimpleHtmlWriter() {
-		super(new StringWriter(), true, '\'', null, null);
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return out.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/Html.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/Html.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/Html.class
deleted file mode 100755
index 0f0e970..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/Html.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/html/annotation/Html.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/Html.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/Html.java
deleted file mode 100755
index 4d9829b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/Html.java
+++ /dev/null
@@ -1,54 +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.html.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import com.ibm.juno.core.html.*;
-
-/**
- * Annotation that can be applied to classes, fields, and methods to tweak how
- * they are handled by {@link HtmlSerializer}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Documented
-@Target({TYPE,FIELD,METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface Html {
-
-	/**
-	 * Treat as XML.
-	 * Useful when creating beans that model HTML elements.
-	 */
-	boolean asXml() default false;
-
-	/**
-	 * Treat as plain text.
-	 * Object is serialized to a String using the <code>toString()</code> method and written directly to output.
-	 * Useful when you want to serialize custom HTML.
-	 */
-	boolean asPlainText() default false;
-
-	/**
-	 * When <jk>true</jk>, collections of beans should be rendered as trees instead of tables.
-	 * Default is <jk>false</jk>.
-	 */
-	boolean noTables() default false;
-
-	/**
-	 * When <jk>true</jk>, don't add headers to tables.
-	 * Default is <jk>false</jk>.
-	 */
-	boolean noTableHeaders() default false;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/package.html
deleted file mode 100755
index 082a694..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/annotation/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>HTML annotations</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/html/doc-files/HTML_DESCRIPTION.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_DESCRIPTION.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_DESCRIPTION.png
deleted file mode 100755
index 621721b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_DESCRIPTION.png 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/html/doc-files/HTML_LINKS.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_LINKS.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_LINKS.png
deleted file mode 100755
index 3c07fe6..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_LINKS.png 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/html/doc-files/HTML_TITLE.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_TITLE.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_TITLE.png
deleted file mode 100755
index 5365735..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/doc-files/HTML_TITLE.png 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/html/dto/HtmlElement.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/HtmlElement.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/HtmlElement.class
deleted file mode 100755
index 4a7103e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/HtmlElement.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/html/dto/HtmlElement.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/HtmlElement.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/HtmlElement.java
deleted file mode 100755
index 986e4e9..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/HtmlElement.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * 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.
- *******************************************************************************/
-package com.ibm.juno.core.html.dto;
-
-import com.ibm.juno.core.html.*;
-import com.ibm.juno.core.html.annotation.*;
-
-/**
- * Superclass for all HTML elements.
- * <p>
- * These are beans that when serialized using {@link HtmlSerializer} generate
- * valid XHTML elements.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Html(asXml=true)
-public abstract class HtmlElement {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/Img.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/Img.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/Img.class
deleted file mode 100755
index 70226c9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/Img.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/html/dto/Img.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/Img.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/Img.java
deleted file mode 100755
index f8e1672..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/Img.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:  Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core.html.dto;
-
-import static com.ibm.juno.core.xml.annotation.XmlFormat.*;
-
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents an HTML IMG element.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="img")
-public class Img extends HtmlElement {
-
-	/** <code>src</code> attribute */
-	@Xml(format=ATTR)
-	public String src;
-
-	/**
-	 * Constructor
-	 *
-	 * @param src <code>src</code> attribute
-	 */
-	public Img(String src) {
-		this.src = src;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/package.html
deleted file mode 100755
index d3e9ed5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/dto/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>HTML Data Transfer Objects</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/html/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/package.html
deleted file mode 100755
index b06a2fc..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/html/package.html
+++ /dev/null
@@ -1,72 +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>HTML serialization and parsing support</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='#HtmlSerializer'>HTML serialization support</a></p> 
-	<li><p><a class='doclink' href='#HtmlParser'>HTML parsing support</a></p> 
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="HtmlSerializer"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - HTML serialization support</h2>
-<div class='topic'>
-	TODO
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="HtmlParser"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - HTML parsing support</h2>
-<div class='topic'>
-	TODO
-</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/ini/ConfigFile.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFile.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFile.class
deleted file mode 100755
index fbb891c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFile.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/ini/ConfigFile.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFile.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFile.java
deleted file mode 100755
index 4280133..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFile.java
+++ /dev/null
@@ -1,743 +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.ini;
-
-import static com.ibm.juno.core.ini.ConfigFileFormat.*;
-import static com.ibm.juno.core.ini.ConfigUtils.*;
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-import static java.lang.reflect.Modifier.*;
-
-import java.beans.*;
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Implements the API for accessing the contents of a config file.
- * <p>
- * Refer to {@link com.ibm.juno.core.ini} for more information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class ConfigFile implements Map<String,Section> {
-
-	//--------------------------------------------------------------------------------
-	// Abstract methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Retrieves an entry value from this config file.
-	 *
-	 * @param sectionName - The section name.  Must not be <jk>null</jk>.
-	 * @param sectionKey - The section key.  Must not be <jk>null</jk>.
-	 * @return The value, or the default value if the section or value doesn't exist.
-	 */
-	public abstract String get(String sectionName, String sectionKey);
-
-	/**
-	 * Sets an entry value in this config file.
-	 *
-	 * @param sectionName - The section name.  Must not be <jk>null</jk>.
-	 * @param sectionKey - The section key.  Must not be <jk>null</jk>.
-	 * @param value The new value.
-	 * @param encoded
-	 * @return The previous value, or <jk>null</jk> if the section or key did not previously exist.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract String put(String sectionName, String sectionKey, Object value, boolean encoded);
-
-	/**
-	 * Removes an antry from this config file.
-	 *
-	 * @param sectionName - The section name.  Must not be <jk>null</jk>.
-	 * @param sectionKey - The section key.  Must not be <jk>null</jk>.
-	 * @return The previous value, or <jk>null</jk> if the section or key did not previously exist.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract String remove(String sectionName, String sectionKey);
-
-	/**
-	 * Returns the current set of keys in the specified section.
-	 *
-	 * @param sectionName - The section name.  Must not be <jk>null</jk>.
-	 * @return The list of keys in the specified section, or <jk>null</jk> if section does not exist.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract Set<String> getSectionKeys(String sectionName);
-
-	/**
-	 * Reloads ths config file object from the persisted file contents if the modified timestamp on the file has changed.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws IOException If file could not be read, or file is not associated with this object.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile loadIfModified() throws IOException;
-
-	/**
-	 * Loads ths config file object from the persisted file contents.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws IOException If file could not be read, or file is not associated with this object.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile load() throws IOException;
-
-	/**
-	 * Loads ths config file object from the specified reader.
-	 *
-	 * @param r The reader to read from.
-	 * @return This object (for method chaining).
-	 * @throws IOException If file could not be read, or file is not associated with this object.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile load(Reader r) throws IOException;
-
-	/**
-	 * Adds arbitrary lines to the specified config file section.
-	 * <p>
-	 * The lines can be any of the following....
-	 * <ul>
-	 * 	<li><js>"# comment"</js> - A comment line.
-	 * 	<li><js>"key=val"</js> - A key/value pair (equivalent to calling {@link #put(String,Object)}.
-	 * 	<li><js>" foobar "</js> - Anything else (interpreted as a comment).
-	 * </ul>
-	 * <p>
-	 * If the section does not exist, it will automatically be created.
-	 *
-	 * @param section The name of the section to add lines to, or <jk>null</jk> to add to the beginning unnamed section.
-	 * @param lines The lines to add to the section.
-	 * @return This object (for method chaining).
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile addLines(String section, String...lines);
-
-	/**
-	 * Adds header comments to the specified section.
-	 * <p>
-	 * Header comments are defined as lines that start with <jk>"#"</jk> immediately preceding a section header <jk>"[section]"</jk>.
-	 * These are handled as part of the section itself instead of being interpreted as comments in the previous section.
-	 * <p>
-	 * Header comments can be of the following formats...
-	 * <ul>
-	 * 	<li><js>"# comment"</js> - A comment line.
-	 * 	<li><js>"comment"</js> - Anything else (will automatically be prefixed with <js>"# "</js>).
-	 * </ul>
-	 * <p>
-	 * If the section does not exist, it will automatically be created.
-	 *
-	 * @param section The name of the section to add lines to, or <jk>null</jk> to add to the default section.
-	 * @param headerComments The comment lines to add to the section.
-	 * @return This object (for method chaining).
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile addHeaderComments(String section, String...headerComments);
-
-	/**
-	 * Removes any header comments from the specified section.
-	 *
-	 * @param section The name of the section to remove header comments from.
-	 * @return This object (for method chaining).
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile clearHeaderComments(String section);
-
-	/**
-	 * Returns the serializer in use for this config file.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws SerializeException If no serializer is defined on this config file.
-	 */
-	protected abstract WriterSerializer getSerializer() throws SerializeException;
-
-	/**
-	 * Returns the parser in use for this config file.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws ParseException If no parser is defined on this config file.
-	 */
-	protected abstract ReaderParser getParser() throws ParseException;
-
-	/**
-	 * Places a read lock on this config file.
-	 */
-	protected abstract void readLock();
-
-	/**
-	 * Removes the read lock on this config file.
-	 */
-	protected abstract void readUnlock();
-
-
-	//--------------------------------------------------------------------------------
-	// API methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the specified value as a string from the config file.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @param def The default value if the section or value does not exist.
-	 * @return The value, or the default value if the section or value doesn't exist.
-	 */
-	public final String getString(String key, String def) {
-		assertFieldNotNull(key, "key");
-		String s = get(getSectionName(key), getSectionKey(key));
-		return (s == null ? def : s);
-	}
-
-	/**
-	 * Removes an entry with the specified key.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @return The previous value, or <jk>null</jk> if the section or key did not previously exist.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public final String removeString(String key) {
-		assertFieldNotNull(key, "key");
-		return remove(getSectionName(key), getSectionKey(key));
-	}
-
-	/**
-	 * Gets the entry with the specified key and converts it to the specified value.
-	 * <p>
-	 * The key can be in one of the following formats...
-	 * <ul>
-	 * 	<li><js>"key"</js> - A value in the default section (i.e. defined above any <code>[section]</code> header).
-	 * 	<li><js>"section/key"</js> - A value from the specified section.
-	 * </ul>
-	 * <p>
-	 * If the class type is an array, the value is split on commas and converted individually.
-	 * <p>
-	 * If you specify a primitive element type using this method (e.g. <code><jk>int</jk>.<jk>class</jk></code>,
-	 * 	you will get an array of wrapped objects (e.g. <code>Integer[].<jk>class</jk></code>.
-	 *
-	 * @param c The class to convert the value to.
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @throws ParseException If parser could not parse the value or if a parser is not registered with this config file.
-	 * @return The value, or <jk>null</jk> if the section or key does not exist.
-	 */
-	@SuppressWarnings("unchecked")
-	public final <T> T getObject(Class<T> c, String key) throws ParseException {
-		assertFieldNotNull(c, "c");
-		return getObject(c, key, c.isArray() ? (T)Array.newInstance(c.getComponentType(), 0) : null);
-	}
-
-	/**
-	 * Gets the entry with the specified key and converts it to the specified value..
-	 * <p>
-	 * The key can be in one of the following formats...
-	 * <ul>
-	 * 	<li><js>"key"</js> - A value in the default section (i.e. defined above any <code>[section]</code> header).
-	 * 	<li><js>"section/key"</js> - A value from the specified section.
-	 * </ul>
-	 *
-	 * @param c The class to convert the value to.
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @param def The default value if section or key does not exist.
-	 * @throws ParseException If parser could not parse the value or if a parser is not registered with this config file.
-	 * @return The value, or <jk>null</jk> if the section or key does not exist.
-	 */
-	public final <T> T getObject(Class<T> c, String key, T def) throws ParseException {
-		assertFieldNotNull(c, "c");
-		assertFieldNotNull(key, "key");
-		return getObject(c, getSectionName(key), getSectionKey(key), def);
-	}
-
-	/**
-	 * Same as {@link #getObject(Class, String, Object)}, but value is referenced through section name and key instead of full key.
-	 *
-	 * @param c The class to convert the value to.
-	 * @param sectionName - The section name.  Must not be <jk>null</jk>.
-	 * @param sectionKey - The section key.  Must not be <jk>null</jk>.
-	 * @param def The default value if section or key does not exist.
-	 * @throws ParseException If parser could not parse the value or if a parser is not registered with this config file.
-	 * @return The value, or the default value if the section or value doesn't exist.
-	 */
-	@SuppressWarnings("unchecked")
-	public <T> T getObject(Class<T> c, String sectionName, String sectionKey, T def) throws ParseException {
-		String s = get(sectionName, sectionKey);
-		if (s == null)
-			return def;
-		if (c == String.class)
-			return (T)s;
-		if (c == Integer.class || c == int.class)
-			return (T)(StringUtils.isEmpty(s) ? def : Integer.valueOf(parseIntWithSuffix(s)));
-		if (c == Boolean.class || c == boolean.class)
-			return (T)(StringUtils.isEmpty(s) ? def : Boolean.valueOf(Boolean.parseBoolean(s)));
-		if (c == String[].class) {
-			String[] r = StringUtils.isEmpty(s) ? new String[0] : StringUtils.split(s, ',');
-			return (T)(r.length == 0 ? def : r);
-		}
-		if (c.isArray()) {
-			Class<?> ce = c.getComponentType();
-			if (StringUtils.isEmpty(s))
-				return def;
-			String[] r = StringUtils.split(s, ',');
-			Object o = Array.newInstance(ce, r.length);
-			for (int i = 0; i < r.length; i++)
-				Array.set(o, i, getParser().parse(r[i], ce));
-			return (T)o;
-		}
-		if (StringUtils.isEmpty(s))
-			return def;
-		return getParser().parse(s, c);
-	}
-
-	/**
-	 * Gets the entry with the specified key.
-	 * <p>
-	 * The key can be in one of the following formats...
-	 * <ul>
-	 * 	<li><js>"key"</js> - A value in the default section (i.e. defined above any <code>[section]</code> header).
-	 * 	<li><js>"section/key"</js> - A value from the specified section.
-	 * </ul>
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @return The value, or <jk>null</jk> if the section or key does not exist.
-	 */
-	public final String getString(String key) {
-		return getString(key, null);
-	}
-
-	/**
-	 * Gets the entry with the specified key, splits the value on commas, and returns the values as trimmed strings.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @return The value, or an empty list if the section or key does not exist.
-	 */
-	public final String[] getStringArray(String key) {
-		return getStringArray(key, new String[0]);
-	}
-
-	/**
-	 * Same as {@link #getStringArray(String)} but returns a default value if the value cannot be found.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @param def The default value if section or key does not exist.
-	 * @return The value, or an empty list if the section or key does not exist.
-	 */
-	public final String[] getStringArray(String key, String[] def) {
-		String s = getString(key);
-		if (s == null)
-			return def;
-		String[] r = StringUtils.isEmpty(s) ? new String[0] : StringUtils.split(s, ',');
-		return r.length == 0 ? def : r;
-	}
-
-	/**
-	 * Convenience method for getting int config values.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @return The value, or <code>0</code> if the section or key does not exist or cannot be parsed as an integer.
-	 */
-	public final int getInt(String key) {
-		return getInt(key, 0);
-	}
-
-	/**
-	 * Convenience method for getting int config values.
-	 * <p>
-	 * <js>"M"</js> and <js>"K"</js> can be used to identify millions and thousands.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <ul>
-	 * 	<li><code><js>"100K"</js> => 1024000</code>
-	 * 	<li><code><js>"100M"</js> => 104857600</code>
-	 * </ul>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @param def The default value if config file or value does not exist.
-	 * @return The value, or the default value if the section or key does not exist or cannot be parsed as an integer.
-	 */
-	public final int getInt(String key, int def) {
-		String s = getString(key);
-		if (StringUtils.isEmpty(s))
-			return def;
-		return parseIntWithSuffix(s);
-	}
-
-	/**
-	 * Convenience method for getting boolean config values.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @return The value, or <jk>false</jk> if the section or key does not exist or cannot be parsed as a boolean.
-	 */
-	public final boolean getBoolean(String key) {
-		return getBoolean(key, false);
-	}
-
-	/**
-	 * Convenience method for getting boolean config values.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @param def The default value if config file or value does not exist.
-	 * @return The value, or the default value if the section or key does not exist or cannot be parsed as a boolean.
-	 */
-	public final boolean getBoolean(String key, boolean def) {
-		String s = getString(key);
-		return StringUtils.isEmpty(s) ? def : Boolean.parseBoolean(s);
-	}
-
-	/**
-	 * Adds or replaces an entry with the specified key with a POJO serialized to a string using the registered serializer.
-	 * <p>
-	 *	Equivalent to calling <code>put(key, value, isEncoded(key))</code>.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @param value The new value POJO.
-	 * @return The previous value, or <jk>null</jk> if the section or key did not previously exist.
-	 * @throws SerializeException If serializer could not serialize the value or if a serializer is not registered with this config file.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public final String put(String key, Object value) throws SerializeException {
-		return put(key, value, isEncoded(key));
-	}
-
-	/**
-	 * Adds or replaces an entry with the specified key with the specified value.
-	 * <p>
-	 * The format of the entry depends on the data type of the value.
-	 * <ul>
-	 * 	<li>Simple types (<code>String</code>, <code>Number</code>, <code>Boolean</code>, primitives)
-	 * 		are serialized as plain strings.
-	 * 	<li>Arrays and collections of simple types are serialized as comma-delimited lists of plain strings.
-	 * 	<li>Other types (e.g. beans) are serialized using the serializer registered with this config file.
-	 * 	<li>Arrays and collections of other types are serialized as comma-delimited lists of serialized strings of each entry.
-	 * </ul>
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @param value The new value.
-	 *	@param encoded If <jk>true</jk>, value is encoded by the registered encoder when the config file is persisted to disk.
-	 * @return The previous value, or <jk>null</jk> if the section or key did not previously exist.
-	 * @throws SerializeException If serializer could not serialize the value or if a serializer is not registered with this config file.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public final String put(String key, Object value, boolean encoded) throws SerializeException {
-		assertFieldNotNull(key, "key");
-		if (value == null)
-			value = "";
-		Class<?> c = value.getClass();
-		if (isSimpleType(c))
-			return put(getSectionName(key), getSectionKey(key), value.toString(), encoded);
-		if (c.isAssignableFrom(Collection.class)) {
-			Collection<?> c2 = (Collection<?>)value;
-			String[] r = new String[c2.size()];
-			int i = 0;
-			for (Object o2 : c2) {
-				boolean isSimpleType = o2 == null ? true : isSimpleType(o2.getClass());
-				r[i++] = (isSimpleType ? Array.get(value, i).toString() : getSerializer().toString(Array.get(value, i)));
-			}
-			return put(getSectionName(key), getSectionKey(key), StringUtils.join(r, ','), encoded);
-		} else if (c.isArray()) {
-			boolean isSimpleType = isSimpleType(c.getComponentType());
-			String[] r = new String[Array.getLength(value)];
-			for (int i = 0; i < r.length; i++) {
-				r[i] = (isSimpleType ? Array.get(value, i).toString() : getSerializer().toString(Array.get(value, i)));
-			}
-			return put(getSectionName(key), getSectionKey(key), StringUtils.join(r, ','), encoded);
-		}
-		return put(getSectionName(key), getSectionKey(key), getSerializer().toString(value), encoded);
-	}
-
-	private final boolean isSimpleType(Class<?> c) {
-		return (c == String.class || c.isPrimitive() || c.isAssignableFrom(Number.class) || c == Boolean.class);
-	}
-
-	/**
-	 * Returns the specified section as a map of key/value pairs.
-	 *
-	 * @param sectionName The section name to retrieve.
-	 * @return A map of the section, or <jk>null</jk> if the section was not found.
-	 */
-	public final ObjectMap getSectionMap(String sectionName) {
-		readLock();
-		try {
-			Set<String> keys = getSectionKeys(sectionName);
-			if (keys == null)
-				return null;
-			ObjectMap m = new ObjectMap();
-			for (String key : keys)
-				m.put(key, get(sectionName, key));
-			return m;
-		} finally {
-			readUnlock();
-		}
-	}
-
-	/**
-	 * Copies the entries in a section to the specified bean by calling the public setters on that bean.
-	 *
-	 *	@param sectionName The section name to write from.
-	 * @param bean The bean to set the properties on.
-	 * @param ignoreUnknownProperties If <jk>true</jk>, don't throw an {@link IllegalArgumentException} if this section
-	 * 	contains a key that doesn't correspond to a setter method.
-	 * @param permittedPropertyTypes If specified, only look for setters whose property types
-	 * 	are those listed.  If not specified, use all setters.
-	 * @return An object map of the changes made to the bean.
-	 * @throws ParseException If parser was not set on this config file or invalid properties were found in the section.
-	 * @throws IllegalArgumentException
-	 * @throws IllegalAccessException
-	 * @throws InvocationTargetException
-	 */
-	public final ObjectMap writeProperties(String sectionName, Object bean, boolean ignoreUnknownProperties, Class<?>...permittedPropertyTypes) throws ParseException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
-		assertFieldNotNull(bean, "bean");
-		ObjectMap om = new ObjectMap();
-		readLock();
-		try {
-			Set<String> keys = getSectionKeys(sectionName);
-			if (keys == null)
-				throw new IllegalArgumentException("Section not found");
-			keys = new LinkedHashSet<String>(keys);
-			for (Method m : bean.getClass().getMethods()) {
-				int mod = m.getModifiers();
-				if (isPublic(mod) && (!isStatic(mod)) && m.getName().startsWith("set") && m.getParameterTypes().length == 1) {
-					Class<?> pt = m.getParameterTypes()[0];
-					if (permittedPropertyTypes == null || permittedPropertyTypes.length == 0 || ArrayUtils.contains(pt, permittedPropertyTypes)) {
-						String propName = Introspector.decapitalize(m.getName().substring(3));
-						Object value = getObject(pt, sectionName, propName, null);
-						if (value != null) {
-							m.invoke(bean, value);
-							om.put(propName, value);
-							keys.remove(propName);
-						}
-					}
-				}
-			}
-			if (! (ignoreUnknownProperties || keys.isEmpty()))
-				throw new ParseException("Invalid properties found in config file section ["+sectionName+"]: " + JsonSerializer.DEFAULT_LAX.toString(keys));
-			return om;
-		} finally {
-			readUnlock();
-		}
-	}
-
-	/**
-	 * Shortcut for calling <code>asBean(sectionName, c, <jk>false</jk>)</code>.
-	 *
-	 * @param sectionName The section name to write from.
-	 * @param c The bean class to create.
-	 * @return A new bean instance.
-	 * @throws ParseException
-	 */
-	public final <T> T getSectionAsBean(String sectionName, Class<T>c) throws ParseException {
-		return getSectionAsBean(sectionName, c, false);
-	}
-
-	/**
-	 * Converts this config file section to the specified bean instance.
-	 *
-	 *	@param sectionName The section name to write from.
-	 * @param c The bean class to create.
-	 * @param ignoreUnknownProperties If <jk>false</jk>, throws a {@link ParseException} if
-	 * 	the section contains an entry that isn't a bean property name.
-	 * @return A new bean instance.
-	 * @throws ParseException
-	 */
-	public final <T> T getSectionAsBean(String sectionName, Class<T> c, boolean ignoreUnknownProperties) throws ParseException {
-		assertFieldNotNull(c, "c");
-		readLock();
-		try {
-			BeanMap<T> bm = getParser().getBeanContext().newBeanMap(c);
-			for (String k : getSectionKeys(sectionName)) {
-				BeanPropertyMeta<?> bpm = bm.getPropertyMeta(k);
-				if (bpm == null) {
-					if (! ignoreUnknownProperties)
-						throw new ParseException("Unknown property {0} encountered", k);
-				} else {
-					bm.put(k, getObject(bpm.getClassMeta().getInnerClass(), sectionName + '/' + k));
-				}
-			}
-			return bm.getBean();
-		} finally {
-			readUnlock();
-		}
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this section contains the specified key and the key has a non-blank value.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @return <jk>true</jk> if this section contains the specified key and the key has a non-blank value.
-	 */
-	public final boolean containsNonEmptyValue(String key) {
-		return ! StringUtils.isEmpty(getString(key, null));
-	}
-
-	/**
-	 * Gets the section with the specified name.
-	 *
-	 * @param name The section name.
-	 * @return The section, or <jk>null</jk> if section does not exist.
-	 */
-	protected abstract Section getSection(String name);
-
-	/**
-	 * Gets the section with the specified name and optionally creates it if it's not there.
-	 *
-	 * @param name The section name.
-	 * @param create Create the section if it's not there.
-	 * @return The section, or <jk>null</jk> if section does not exist.
-	 * @throws UnsupportedOperationException If config file is read only and section doesn't exist and <code>create</code> is <jk>true</jk>.
-	 */
-	protected abstract Section getSection(String name, boolean create);
-
-	/**
-	 * Appends a section to this config file if it does not already exist.
-	 * <p>
-	 * Returns the existing section if it already exists.
-	 *
-	 * @param name The section name, or <jk>null</jk> for the default section.
-	 * @return The appended or existing section.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile addSection(String name);
-
-	/**
-	 * Creates or overwrites the specified section.
-	 *
-	 * @param name The section name, or <jk>null</jk> for the default section.
-	 * @param contents The contents of the new section.
-	 * @return The appended or existing section.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile setSection(String name, Map<String,String> contents);
-
-	/**
-	 * Removes the section with the specified name.
-	 *
-	 * @param name The name of the section to remove, or <jk>null</jk> for the default section.
-	 * @return The removed section, or <jk>null</jk> if named section does not exist.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile removeSection(String name);
-
-	/**
-	 * Returns <jk>true</jk> if the encoding flag is set on the specified entry.
-	 *
-	 * @param key The key.  See {@link #getString(String)} for a description of the key.
-	 * @return <jk>true</jk> if the encoding flag is set on the specified entry.
-	 */
-	public abstract boolean isEncoded(String key);
-
-	/**
-	 * Saves this config file to disk.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to save file to disk, or file is not associated with this object.
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile save() throws IOException;
-
-	/**
-	 * Saves this config file to the specified writer as an INI file.
-	 * <p>
-	 * The writer will automatically be closed.
-	 *
-	 * @param out The writer to send the output to.
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to send contents to the writer.
-	 */
-	public final ConfigFile serializeTo(Writer out) throws IOException {
-		return serializeTo(out, INI);
-	}
-
-	/**
-	 * Same as {@link #serializeTo(Writer)}, except allows you to explicitely specify a format.
-	 *
-	 * @param out The writer to send the output to.
-	 * @param format The {@link ConfigFileFormat} of the output.
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to send contents to the writer.
-	 */
-	public abstract ConfigFile serializeTo(Writer out, ConfigFileFormat format) throws IOException;
-
-	/**
-	 * Add a listener to this config file to react to modification events.
-	 *
-	 * @param listener The new listener to add.
-	 * @return This object (for method chaining).
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile addListener(ConfigFileListener listener);
-
-	/**
-	 * Merges the contents of the specified config file into this config file.
-	 * <p>
-	 * Pretty much identical to just replacing this config file, but
-	 * 	causes the {@link ConfigFileListener#onChange(ConfigFile, Set)} method to be invoked
-	 * 	on differences between the file.
-	 * @param cf The config file whose values should be copied into this config file.
-	 * @return This object (for method chaining).
-	 * @throws UnsupportedOperationException If config file is read only.
-	 */
-	public abstract ConfigFile merge(ConfigFile cf);
-
-	/**
-	 * Returns the config file contents as a string.
-	 * <p>
-	 * The contents of the string are the same as the contents that would be serialized to disk.
-	 */
-	@Override /* Object */
-	public abstract String toString();
-
-	/**
-	 * Returns a wrapped instance of this config file where calls to getters
-	 * 	have their values first resolved by the specified {@link StringVarResolver}.
-	 * <p>
-	 * @param vr
-	 * @return This config file wrapped in an instance of {@link ConfigFileWrapped}.
-	 */
-	public abstract ConfigFile getResolving(StringVarResolver vr);
-
-	/**
-	 * Returns a wrapped instance of this config file where calls to getters have their values
-	 * 	first resolved by a default {@link StringVarResolver}.
-	 *
-	 *  The default {@link StringVarResolver} is registered with the following {@link StringVar StringVars}:
-	 * <ul>
-	 * 	<li><code>$S{key}</code>,<code>$S{key,default}</code> - System properties.
-	 * 	<li><code>$E{key}</code>,<code>$E{key,default}</code> - Environment variables.
-	 * 	<li><code>$C{key}</code>,<code>$C{key,default}</code> - Values in this configuration file.
-	 * </ul>
-	 *
-	 * @return A new config file that resolves string variables.
-	 */
-	public abstract ConfigFile getResolving();
-
-	/**
-	 * Wraps this config file in a {@link Writable} interface that renders it as plain text.
-	 *
-	 * @return This config file wrapped in a {@link Writable}.
-	 */
-	public abstract Writable toWritable();
-
-	private int parseIntWithSuffix(String s) {
-		assertFieldNotNull(s, "s");
-		int m = 1;
-		if (s.endsWith("M")) {
-			m = 1024*1024;
-			s = s.substring(0, s.length()-1).trim();
-		} else if (s.endsWith("K")) {
-			m = 1024;
-			s = s.substring(0, s.length()-1).trim();
-		}
-		return Integer.parseInt(s) * m;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileFormat.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileFormat.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileFormat.class
deleted file mode 100755
index 2af9062..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileFormat.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/ini/ConfigFileFormat.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileFormat.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileFormat.java
deleted file mode 100755
index ae991e7..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileFormat.java
+++ /dev/null
@@ -1,25 +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.ini;
-
-import java.io.*;
-
-/**
- * Valid formats that can be passed to the {@link ConfigFile#serializeTo(Writer, ConfigFileFormat)} method.
- */
-public enum ConfigFileFormat {
-	/** Normal INI file format*/
-	INI,
-
-	/** Batch file with "set X" commands */
-	BATCH,
-
-	/** Shell script file with "export X" commands */
-	SHELL;
-}
\ 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/ini/ConfigFileImpl$1$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$1$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$1$1.class
deleted file mode 100755
index df4b978..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$1$1.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/ini/ConfigFileImpl$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$1.class
deleted file mode 100755
index 248452a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$1.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/ini/ConfigFileImpl$2$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$2$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$2$1.class
deleted file mode 100755
index 9dcb412..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$2$1.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/ini/ConfigFileImpl$2.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$2.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$2.class
deleted file mode 100755
index a533afa..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$2.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/ini/ConfigFileImpl$3$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$3$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$3$1.class
deleted file mode 100755
index b09b475..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$3$1.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/ini/ConfigFileImpl$3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$3.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$3.class
deleted file mode 100755
index d132e6a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$3.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/ini/ConfigFileImpl$4.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$4.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$4.class
deleted file mode 100755
index 3f9c85a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl$4.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/ini/ConfigFileImpl.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl.class
deleted file mode 100755
index 55cd0f5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl.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/ini/ConfigFileImpl.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl.java
deleted file mode 100755
index e9a0a64..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileImpl.java
+++ /dev/null
@@ -1,729 +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.ini;
-
-import static com.ibm.juno.core.ini.ConfigUtils.*;
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-import java.nio.charset.*;
-import java.util.*;
-import java.util.concurrent.locks.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Implementation class for {@link ConfigFile}.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ConfigFileImpl extends ConfigFile {
-
-	private final File file;
-	private final Encoder encoder;
-	private final WriterSerializer serializer;
-	private final ReaderParser parser;
-	private final Charset charset;
-	final List<ConfigFileListener> listeners = Collections.synchronizedList(new ArrayList<ConfigFileListener>());
-
-	private Map<String,Section> sections;  // The actual data.
-
-	private static final String DEFAULT = "default";
-
-	private final boolean readOnly;
-
-	volatile boolean hasBeenModified = false;
-	private ReadWriteLock lock = new ReentrantReadWriteLock();
-
-	long modifiedTimestamp;
-
-	/**
-	 * Constructor.
-	 * <p>
-	 * Loads the contents of the specified file into this config file.
-	 * <p>
-	 * If file does not initially exist, this object will start off empty.
-	 *
-	 * @param file The INI file on disk.
-	 * 	If <jk>null</jk>, create an in-memory config file.
-	 * @param readOnly Make this configuration file read-only.
-	 *		Attempting to set any values on this config file will cause {@link UnsupportedOperationException} to be thrown.
-	 *	@param encoder The encoder to use for encoding sensitive values in this configuration file.
-	 * 	If <jk>null</jk>, defaults to {@link XorEncoder#INSTANCE}.
-	 *	@param serializer The serializer to use for serializing POJOs in the {@link #put(String, Object)} method.
-	 * 	If <jk>null</jk>, defaults to {@link JsonSerializer#DEFAULT}.
-	 *	@param parser The parser to use for parsing POJOs in the {@link #getObject(Class,String)} method.
-	 * 	If <jk>null</jk>, defaults to {@link JsonParser#DEFAULT}.
-	 * @param charset The charset on the files.
-	 * 	If <jk>null</jk>, defaults to {@link Charset#defaultCharset()}.
-	 * @throws IOException
-	 */
-	public ConfigFileImpl(File file, boolean readOnly, Encoder encoder, WriterSerializer serializer, ReaderParser parser, Charset charset) throws IOException {
-		this.file = file;
-		this.encoder = encoder == null ? XorEncoder.INSTANCE : encoder;
-		this.serializer = serializer == null ? JsonSerializer.DEFAULT : serializer;
-		this.parser = parser == null ? JsonParser.DEFAULT : parser;
-		this.charset = charset == null ? Charset.defaultCharset() : charset;
-		load();
-		this.readOnly = readOnly;
-		if (readOnly) {
-			this.sections = Collections.unmodifiableMap(this.sections);
-			for (Section s : sections.values())
-				s.setReadOnly();
-		}
-	}
-
-	/**
-	 * Constructor.
-	 * Shortcut for calling <code><jk>new</jk> ConfigFileImpl(file, <jk>false</jk>, <jk>null</jk>, <jk>null</jk>, <jk>null</jk>, <jk>null</jk>);</code>
-	 *
-	 * @param file The config file.  Does not need to exist.
-	 * @throws IOException
-	 */
-	public ConfigFileImpl(File file) throws IOException {
-		this(file, false, null, null, null, null);
-	}
-
-	/**
-	 * Constructor.
-	 * Shortcut for calling <code><jk>new</jk> ConfigFileImpl(<jk>null</jk>, <jk>false</jk>, <jk>null</jk>, <jk>null</jk>, <jk>null</jk>, <jk>null</jk>);</code>
-	 *
-	 * @throws IOException
-	 */
-	public ConfigFileImpl() throws IOException {
-		this(null);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl loadIfModified() throws IOException {
-		if (file == null)
-			return this;
-		writeLock();
-		try {
-			if (file.lastModified() > modifiedTimestamp)
-				load();
-		} finally {
-			writeUnlock();
-		}
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl load() throws IOException {
-		Reader r = null;
-		if (file != null && file.exists())
-			r = new InputStreamReader(new FileInputStream(file), charset);
-		else
-			r = new StringReader("");
-		try {
-			load(r);
-		} finally {
-			r.close();
-		}
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl load(Reader r) throws IOException {
-		assertFieldNotNull(r, "r");
-		writeLock();
-		try {
-			this.sections = Collections.synchronizedMap(new LinkedHashMap<String,Section>());
-			BufferedReader in = new BufferedReader(r);
-			try {
-				writeLock();
-				hasBeenModified = false;
-				try {
-					sections.clear();
-					String line = null;
-					Section section = getSection(null, true);
-					while ((line = in.readLine()) != null) {
-						if (line.matches("\\s*\\[.*\\].*")) {
-							String sn = line.substring(line.indexOf('[')+1, line.indexOf(']')).trim();
-							section = getSection(sn, true).addHeaderComments(section.removeTrailingComments());
-						} else {
-							section.addLines(null, line);
-						}
-					}
-					in.close();
-					if (hasBeenModified)  // Set when values need to be encoded.
-						save();
-					if (file != null)
-						modifiedTimestamp = file.lastModified();
-				} finally {
-					writeUnlock();
-				}
-			} finally {
-				in.close();
-			}
-		} finally {
-			writeUnlock();
-		}
-		for (ConfigFileListener l : listeners)
-			l.onLoad(this);
-		return this;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Map methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Map */
-	public Section get(Object key) {
-		if (StringUtils.isEmpty(key))
-			key = DEFAULT;
-		readLock();
-		try {
-			return sections.get(key);
-		} finally {
-			readUnlock();
-		}
-	}
-
-	@Override /* Map */
-	public Section put(String key, Section section) {
-		Set<String> changes = createChanges();
-		Section old = put(key, section, changes);
-		signalChanges(changes);
-		return old;
-	}
-
-	private Section put(String key, Section section, Set<String> changes) {
-		if (StringUtils.isEmpty(key))
-			key = DEFAULT;
-		writeLock();
-		try {
-			Section prev = sections.put(key, section);
-			findChanges(changes, prev, section);
-			return prev;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	@Override /* Map */
-	public void putAll(Map<? extends String,? extends Section> map) {
-		Set<String> changes = createChanges();
-		writeLock();
-		try {
-			for (Map.Entry<? extends String,? extends Section> e : map.entrySet())
-				put(e.getKey(), e.getValue(), changes);
-		} finally {
-			writeUnlock();
-		}
-		signalChanges(changes);
-	}
-
-	@Override /* Map */
-	public void clear() {
-		Set<String> changes = createChanges();
-		writeLock();
-		try {
-			for (Section s : values())
-				findChanges(changes, s, null);
-			sections.clear();
-		} finally {
-			writeUnlock();
-		}
-		signalChanges(changes);
-	}
-
-	@Override /* Map */
-	public boolean containsKey(Object key) {
-		if (StringUtils.isEmpty(key))
-			key = DEFAULT;
-		return sections.containsKey(key);
-	}
-
-	@Override /* Map */
-	public boolean containsValue(Object value) {
-		return sections.containsValue(value);
-	}
-
-	@Override /* Map */
-	public Set<Map.Entry<String,Section>> entrySet() {
-
-		// We need to create our own set so that entries are removed correctly.
-		return new AbstractSet<Map.Entry<String,Section>>() {
-			@Override /* Map */
-			public Iterator<Map.Entry<String,Section>> iterator() {
-				return new Iterator<Map.Entry<String,Section>>() {
-					Iterator<Map.Entry<String,Section>> i = sections.entrySet().iterator();
-					Map.Entry<String,Section> i2;
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return i.hasNext();
-					}
-
-					@Override /* Iterator */
-					public Map.Entry<String,Section> next() {
-						i2 = i.next();
-						return i2;
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						Set<String> changes = createChanges();
-						findChanges(changes, i2.getValue(), null);
-						i.remove();
-						signalChanges(changes);
-					}
-				};
-			}
-
-			@Override /* Map */
-			public int size() {
-				return sections.size();
-			}
-		};
-	}
-
-	@Override /* Map */
-	public boolean isEmpty() {
-		return sections.isEmpty();
-	}
-
-	@Override /* Map */
-	public Set<String> keySet() {
-
-		// We need to create our own set so that sections are removed correctly.
-		return new AbstractSet<String>() {
-			@Override /* Set */
-			public Iterator<String> iterator() {
-				return new Iterator<String>() {
-					Iterator<String> i = sections.keySet().iterator();
-					String i2;
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return i.hasNext();
-					}
-
-					@Override /* Iterator */
-					public String next() {
-						i2 = i.next();
-						return i2;
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						Set<String> changes = createChanges();
-						findChanges(changes, sections.get(i2), null);
-						i.remove();
-						signalChanges(changes);
-					}
-				};
-			}
-
-			@Override /* Set */
-			public int size() {
-				return sections.size();
-			}
-		};
-	}
-
-	@Override /* Map */
-	public int size() {
-		return sections.size();
-	}
-
-	@Override /* Map */
-	public Collection<Section> values() {
-		return new AbstractCollection<Section>() {
-			@Override /* Collection */
-			public Iterator<Section> iterator() {
-				return new Iterator<Section>() {
-					Iterator<Section> i = sections.values().iterator();
-					Section i2;
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return i.hasNext();
-					}
-
-					@Override /* Iterator */
-					public Section next() {
-						i2 = i.next();
-						return i2;
-					}
-
-					@Override /* Iterator */
-					public void remove() {
-						Set<String> changes = createChanges();
-						findChanges(changes, i2, null);
-						i.remove();
-						signalChanges(changes);
-					}
-				};
-			}
-			@Override /* Collection */
-			public int size() {
-				return sections.size();
-			}
-		};
-	}
-
-	@Override /* Map */
-	public Section remove(Object key) {
-		Set<String> changes = createChanges();
-		Section prev = remove(key, changes);
-		signalChanges(changes);
-		return prev;
-	}
-
-	private Section remove(Object key, Set<String> changes) {
-		writeLock();
-		try {
-			Section prev = sections.remove(key);
-			findChanges(changes, prev, null);
-			return prev;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	//--------------------------------------------------------------------------------
-	// API methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* ConfigFile */
-	public String get(String sectionName, String sectionKey) {
-		assertFieldNotNull(sectionKey, "sectionKey");
-		Section s = get(sectionName);
-		if (s == null)
-			return null;
-		Object s2 = s.get(sectionKey);
-		return (s2 == null ? null : s2.toString());
-	}
-
-	@Override /* ConfigFile */
-	public String put(String sectionName, String sectionKey, Object value, boolean encoded) {
-		assertFieldNotNull(sectionKey, "sectionKey");
-		Section s = getSection(sectionName, true);
-		return s.put(sectionKey, value.toString(), encoded);
-	}
-
-	@Override /* ConfigFile */
-	public String remove(String sectionName, String sectionKey) {
-		assertFieldNotNull(sectionKey, "sectionKey");
-		Section s = getSection(sectionName, false);
-		if (s == null)
-			return null;
-		return s.remove(sectionKey);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl addLines(String section, String...lines) {
-		Set<String> changes = createChanges();
-		writeLock();
-		try {
-			getSection(section, true).addLines(changes, lines);
-		} finally {
-			writeUnlock();
-		}
-		signalChanges(changes);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl addHeaderComments(String section, String...headerComments) {
-		writeLock();
-		try {
-			if (headerComments == null)
-				headerComments = new String[0];
-			getSection(section, true).addHeaderComments(Arrays.asList(headerComments));
-		} finally {
-			writeUnlock();
-		}
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl clearHeaderComments(String section) {
-		writeLock();
-		try {
-			Section s = getSection(section, false);
-			if (s != null)
-				s.clearHeaderComments();
-		} finally {
-			writeUnlock();
-		}
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public Section getSection(String name) {
-		return getSection(name, false);
-	}
-
-	@Override /* ConfigFile */
-	public Section getSection(String name, boolean create) {
-		if (StringUtils.isEmpty(name))
-			name = DEFAULT;
-		Section s = sections.get(name);
-		if (s != null)
-			return s;
-		if (create) {
-			s = new Section().setParent(this).setName(name);
-			sections.put(name, s);
-			return s;
-		}
-		return null;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl addSection(String name) {
-		writeLock();
-		try {
-			getSection(name, true);
-		} finally {
-			writeUnlock();
-		}
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile setSection(String name, Map<String,String> contents) {
-		writeLock();
-		try {
-			put(name, new Section(contents).setParent(this).setName(name));
-		} finally {
-			writeUnlock();
-		}
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl removeSection(String name) {
-		Set<String> changes = createChanges();
-		writeLock();
-		try {
-			Section prev = sections.remove(name);
-			if (changes != null && prev != null)
-				findChanges(changes, prev, null);
-		} finally {
-			writeUnlock();
-		}
-		signalChanges(changes);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public Set<String> getSectionKeys(String sectionName) {
-		Section s = get(sectionName);
-		if (s == null)
-			return null;
-		return s.keySet();
-	}
-
-	@Override /* ConfigFile */
-	public boolean isEncoded(String key) {
-		assertFieldNotNull(key, "key");
-		String section = getSectionName(key);
-		Section s = getSection(section, false);
-		if (s == null)
-			return false;
-		return s.isEncoded(getSectionKey(key));
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl save() throws IOException {
-		writeLock();
-		try {
-			if (file == null)
-				throw new UnsupportedOperationException("No backing file specified for config file.");
-			Writer out = new OutputStreamWriter(new FileOutputStream(file), charset);
-			try {
-				serializeTo(out);
-				hasBeenModified = false;
-				modifiedTimestamp = file.lastModified();
-			} finally {
-				out.close();
-			}
-			for (ConfigFileListener l : listeners)
-				l.onSave(this);
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFileImpl serializeTo(Writer out, ConfigFileFormat format) throws IOException {
-		readLock();
-		try {
-			PrintWriter pw = (out instanceof PrintWriter ? (PrintWriter)out : new PrintWriter(out));
-			for (Section s : sections.values())
-				s.writeTo(pw, format);
-			pw.flush();
-			pw.close();
-			out.close();
-		} finally {
-			readUnlock();
-		}
-		return this;
-	}
-
-	void setHasBeenModified() {
-		hasBeenModified = true;
-	}
-
-	@Override /* ConfigFile */
-	public String toString() {
-		try {
-			StringWriter sw = new StringWriter();
-			toWritable().writeTo(sw);
-			return sw.toString();
-		} catch (IOException e) {
-			return e.getLocalizedMessage();
-		}
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile addListener(ConfigFileListener listener) {
-		assertFieldNotNull(listener, "listener");
-		writeLock();
-		try {
-			this.listeners.add(listener);
-			return this;
-		} finally {
-			writeUnlock();
-		}
-	}
-
-	List<ConfigFileListener> getListeners() {
-		return listeners;
-	}
-
-	@Override /* ConfigFile */
-	public Writable toWritable() {
-		return new ConfigFileWritable(this);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile merge(ConfigFile cf) {
-		assertFieldNotNull(cf, "cf");
-		Set<String> changes = createChanges();
-		writeLock();
-		try {
-			for (String sectionName : this.keySet())
-				if (! cf.containsKey(sectionName))
-					remove(sectionName, changes);
-
-			for (Map.Entry<String,Section> e : cf.entrySet())
-				put(e.getKey(), e.getValue(), changes);
-
-		} finally {
-			writeUnlock();
-		}
-		signalChanges(changes);
-		return this;
-	}
-
-	Encoder getEncoder() {
-		return encoder;
-	}
-
-	@Override /* ConfigFile */
-	protected WriterSerializer getSerializer() throws SerializeException {
-		if (serializer == null)
-			throw new SerializeException("Serializer not defined on config file.");
-		return serializer;
-	}
-
-	@Override /* ConfigFile */
-	protected ReaderParser getParser() throws ParseException {
-		if (parser == null)
-			throw new ParseException("Parser not defined on config file.");
-		return parser;
-	}
-
-	@Override /* ConfigFile */
-	protected void readLock() {
-		lock.readLock().lock();
-	}
-
-	@Override /* ConfigFile */
-	protected void readUnlock() {
-		lock.readLock().unlock();
-	}
-
-	private void writeLock() {
-		if (readOnly)
-			throw new UnsupportedOperationException("Cannot modify read-only ConfigFile.");
-		lock.writeLock().lock();
-		hasBeenModified = true;
-	}
-
-	private void writeUnlock() {
-		lock.writeLock().unlock();
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile getResolving(StringVarResolver vr) {
-		assertFieldNotNull(vr, "vr");
-		return new ConfigFileWrapped(this, vr);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile getResolving() {
-		return getResolving(
-			new StringVarResolver(StringVarResolver.DEFAULT)
-				.addVar("C", new StringVarWithDefault() {
-					@Override /* StringVar */
-					public String resolve(String varVal) {
-						return getString(varVal);
-					}
-				}
-			)
-		);
-	}
-
-	/*
-	 * Finds the keys that are different between the two sections and adds it to
-	 * the specified set.
-	 */
-	private void findChanges(Set<String> s, Section a, Section b) {
-		if (s == null)
-			return;
-		String sname = (a == null ? b.name : a.name);
-		if (a == null) {
-			for (String k : b.keySet())
-				s.add(getFullKey(sname, k));
-		} else if (b == null) {
-			for (String k : a.keySet())
-				s.add(getFullKey(sname, k));
-		} else {
-			for (String k : a.keySet())
-				addChange(s, sname, k, a.get(k), b.get(k));
-			for (String k : b.keySet())
-				addChange(s, sname, k, a.get(k), b.get(k));
-		}
-	}
-
-	private void addChange(Set<String> changes, String section, String key, String oldVal, String newVal) {
-		if (! StringUtils.isEquals(oldVal, newVal))
-			changes.add(getFullKey(section, key));
-	}
-
-	private Set<String> createChanges() {
-		return (listeners.size() > 0 ? new LinkedHashSet<String>() : null);
-	}
-
-	private void signalChanges(Set<String> changes) {
-		if (changes != null && ! changes.isEmpty())
-			for (ConfigFileListener l : listeners)
-				l.onChange(this, changes);
-	}
-}
\ 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/ini/ConfigFileListener.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileListener.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileListener.class
deleted file mode 100755
index 2e64bfd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileListener.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/ini/ConfigFileListener.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileListener.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileListener.java
deleted file mode 100755
index a813356..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileListener.java
+++ /dev/null
@@ -1,42 +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.ini;
-
-import java.util.*;
-
-
-/**
- * Listener that can be used to listen for change events in config files.
- * <p>
- * Use the {@link ConfigFile#addListener(ConfigFileListener)} method to register listeners.
- */
-public class ConfigFileListener {
-
-	/**
-	 * Gets called immediately after a config file has been loaded.
-	 *
-	 * @param cf The config file being loaded.
-	 */
-	public void onLoad(ConfigFile cf) {}
-
-	/**
-	 * Gets called immediately after a config file has been saved.
-	 *
-	 * @param cf The config file being saved.
-	 */
-	public void onSave(ConfigFile cf) {}
-
-	/**
-	 * Signifies that the specified values have changed.
-	 *
-	 * @param cf The config file being modified.
-	 * @param changes The full keys (e.g. <js>"Section/key"</js>) of entries that have changed in the config file.
-	 */
-	public void onChange(ConfigFile cf, Set<String> changes) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWrapped.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWrapped.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWrapped.class
deleted file mode 100755
index bd1a0af..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWrapped.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/ini/ConfigFileWrapped.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWrapped.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWrapped.java
deleted file mode 100755
index a0bbfd1..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/ini/ConfigFileWrapped.java
+++ /dev/null
@@ -1,259 +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.ini;
-import static com.ibm.juno.core.utils.ThrowableUtils.*;
-
-import java.io.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Wraps an instance of {@link ConfigFileImpl} in an interface that will
- * 	automatically replace {@link StringVarResolver} variables.
- * <p>
- * The {@link ConfigFile#getResolving(StringVarResolver)} returns an instance of this class.
- * <p>
- * This class overrides the {@link #getString(String, String)} to resolve string variables.
- * All other method calls are passed through to the inner config file.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ConfigFileWrapped extends ConfigFile {
-
-	private final ConfigFileImpl cf;
-	private final StringVarResolver vr;
-
-	ConfigFileWrapped(ConfigFileImpl cf, StringVarResolver vr) {
-		this.cf = cf;
-		this.vr = vr;
-	}
-
-	@Override /* ConfigFile */
-	public void clear() {
-		cf.clear();
-	}
-
-	@Override /* ConfigFile */
-	public boolean containsKey(Object key) {
-		return cf.containsKey(key);
-	}
-
-	@Override /* ConfigFile */
-	public boolean containsValue(Object value) {
-		return cf.containsValue(value);
-	}
-
-	@Override /* ConfigFile */
-	public Set<java.util.Map.Entry<String,Section>> entrySet() {
-		return cf.entrySet();
-	}
-
-	@Override /* ConfigFile */
-	public Section get(Object key) {
-		return cf.get(key);
-	}
-
-	@Override /* ConfigFile */
-	public boolean isEmpty() {
-		return cf.isEmpty();
-	}
-
-	@Override /* ConfigFile */
-	public Set<String> keySet() {
-		return cf.keySet();
-	}
-
-	@Override /* ConfigFile */
-	public Section put(String key, Section value) {
-		return cf.put(key, value);
-	}
-
-	@Override /* ConfigFile */
-	public void putAll(Map<? extends String,? extends Section> map) {
-		cf.putAll(map);
-	}
-
-	@Override /* ConfigFile */
-	public Section remove(Object key) {
-		return cf.remove(key);
-	}
-
-	@Override /* ConfigFile */
-	public int size() {
-		return cf.size();
-	}
-
-	@Override /* ConfigFile */
-	public Collection<Section> values() {
-		return cf.values();
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile loadIfModified() throws IOException {
-		cf.loadIfModified();
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile load() throws IOException {
-		cf.load();
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile load(Reader r) throws IOException {
-		cf.load(r);
-		return this;
-	}
-
-
-	@Override /* ConfigFile */
-	public boolean isEncoded(String key) {
-		return cf.isEncoded(key);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile addLines(String section, String... lines) {
-		cf.addLines(section, lines);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile addHeaderComments(String section, String... headerComments) {
-		cf.addHeaderComments(section, headerComments);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile clearHeaderComments(String section) {
-		cf.clearHeaderComments(section);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public Section getSection(String name) {
-		return cf.getSection(name);
-	}
-
-	@Override /* ConfigFile */
-	public Section getSection(String name, boolean create) {
-		return cf.getSection(name, create);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile addSection(String name) {
-		cf.addSection(name);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile setSection(String name, Map<String,String> contents) {
-		cf.setSection(name, contents);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile removeSection(String name) {
-		cf.removeSection(name);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile save() throws IOException {
-		cf.save();
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile serializeTo(Writer out, ConfigFileFormat format) throws IOException {
-		cf.serializeTo(out, format);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public String toString() {
-		return cf.toString();
-	}
-
-	@Override /* ConfigFile */
-	@SuppressWarnings("hiding")
-	public ConfigFile getResolving(StringVarResolver vr) {
-		assertFieldNotNull(vr, "vr");
-		return new ConfigFileWrapped(cf, vr);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile getResolving() {
-		return new ConfigFileWrapped(cf, StringVarResolver.DEFAULT);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile addListener(ConfigFileListener listener) {
-		cf.addListener(listener);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	public Writable toWritable() {
-		return cf.toWritable();
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile merge(ConfigFile newCf) {
-		cf.merge(newCf);
-		return this;
-	}
-
-	@Override /* ConfigFile */
-	protected WriterSerializer getSerializer() throws SerializeException {
-		return cf.getSerializer();
-	}
-
-	@Override /* ConfigFile */
-	protected ReaderParser getParser() throws ParseException {
-		return cf.getParser();
-	}
-
-	@Override /* ConfigFile */
-	public String get(String sectionName, String sectionKey) {
-		String s = cf.get(sectionName, sectionKey);
-		if (s == null)
-			return null;
-		return vr.resolve(s);
-	}
-
-	@Override /* ConfigFile */
-	public String put(String sectionName, String sectionKey, Object value, boolean encoded) {
-		return cf.put(sectionName, sectionKey, value, encoded);
-	}
-
-	@Override /* ConfigFile */
-	public String remove(String sectionName, String sectionKey) {
-		return cf.remove(sectionName, sectionKey);
-	}
-
-	@Override /* ConfigFile */
-	public Set<String> getSectionKeys(String sectionName) {
-		return cf.getSectionKeys(sectionName);
-	}
-
-	@Override /* ConfigFile */
-	protected void readLock() {
-		cf.readLock();
-	}
-
-	@Override /* ConfigFile */
-	protected void readUnlock() {
-		cf.readUnlock();
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/package.html
deleted file mode 100755
index 98cb75a..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/package.html
+++ /dev/null
@@ -1,210 +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>Base toolkit for serializers, parsers, and bean contexts</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='#BeanContext_Api'>Bean Context API</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#BeanMap'>The BeanMap class</a></p> 
-		<li><p><a class='doclink' href='#BeanContext'>The BeanContext class</a></p>
-		<li><p><a class='doclink' href='#Bean'>Bean annotations</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#ObjectMap_ObjectList'>ObjectMap and ObjectList APIs</a></p>
-	<li><p><a class='doclink' href='#PojoCategories'>POJO Categories</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="BeanContext_Api"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Bean Context API</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.core.BeanContext} class is the core class in the Juno architecture.  It serves multiple functions...
-	</p>
-	<ul class='normal'>
-		<li>It provides the ability to create instances of {@link com.ibm.juno.core.BeanMap BeanMaps}.
-		<li>It serves as a repository for {@link com.ibm.juno.core.filter.Filter Filters}, which are used to tailor how beans and non-beans are handled. 
-		<li>It's used by all built-in {@link com.ibm.juno.core.serializer.Serializer Serializers} and {@link com.ibm.juno.core.parser.Parser Parsers} for working with POJOs in a consistent way.
-	</ul>
-	
-	<!-- ======================================================================================================== -->
-	<a id="BeanMap"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - The BeanMap class</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.core.BeanMap} class allows you to access the properties of a bean through the familiar {@code Map} interface. 
-			So, for example, you can use the {@code Map.get(key)} method to retrieve a property value in leu of it's getter method, and the {@code Map.put(key, value)} method to set a property value in leu of it's setter method.
-		</p>
-		<p>
-			The serialization and parsing of beans in Juno is accomplished by wrapping Java beans inside instances of the class {@code BeanMap}. 
-		</p>
-		<p>
-			<b>Note:</b> Instances of {@link com.ibm.juno.core.BeanMap} objects are always retrieved through the {@link com.ibm.juno.core.BeanContext} class. You cannot instantiate {@code BeanMaps} directly since the rules for defining what constitutes a bean depend on various settings in the bean context.
-		</p>
-		<p>
-			In general, the performance on using the {@link com.ibm.juno.core.BeanMap} class to access properties is equivalent to using reflection directly.
-		</p>
-		<p>
-			See the {@link com.ibm.juno.core.BeanMap} javadoc for more information.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="BeanContext"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.2 - The BeanContext class</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.core.BeanContext} class is the workhorse class used to wrap Java beans inside {@link com.ibm.juno.core.BeanMap BeanMaps}. 
-			There are several options provided on the {@link com.ibm.juno.core.BeanContext} class to tailor the definition of a bean.
-		</p>
-		<p>
-			The following is a very simple example of how to wrap a bean inside a {@link com.ibm.juno.core.BeanMap} wrapper and use the wrapper interface to get and set property values on the bean. 
-			In this case, we're using the DEFAULT bean context.
-		</p>
-		<p class='bcode'>
-	<jc>// A sample pseudo bean class.</jc>
-	<jk>public class</jk> Person {
-		<jk>public</jk> String getName();
-		<jk>public void</jk> setName(String name);
-		<jk>public int</jk> getAge();
-		<jk>public void</jk> setAge(<jk>int</jk> age);
-	}
-	
-	<jc>// Get an instance of a bean context.
-	// In this case, just use the default bean context.</jc>
-	BeanContext beanContext = BeanContext.<jsf>DEFAULT</jsf>;
-	
-	<jc>// Create an instance of our bean and wrap it in a bean map.</jc>
-	Person p = <jk>new</jk> Person();
-	BeanMap&lt;Person&gt; m = beanContext.forBean(p);
-	
-	<jc>// Set some properties on the bean.</jc>
-	m.put(<js>"name"</js>, <js>"John Smith"</js>);
-	m.put(<js>"age"</js>, 21);
-	
-	<jc>// Print out bean properties.</jc>
-	System.out.println(m.get(<js>"name"</js>));	<jc>// Prints "John Smith"</jc>
-	System.out.println(p.getName());	  <jc>// Prints "John Smith"</jc>
-	System.out.println(m.get(<js>"age"</js>));	 <jc>// Prints 21</jc>
-	System.out.println(p.getAge());		<jc>// Prints 21</jc>
-	
-	<jc>// The bean context class can also create instances of bean maps.</jc>
-	m = beanContext.newBeanMap(Person.<jk>class</jk>);
-	p = m.getBean();	<jc>// Get the new wrapped bean.</jc>
-	
-	<jc>// The bean context class can also create instances of beans.</jc>
-	p = beanContext.newBean(Person.<jk>class</jk>);
-		</p>
-		<p>
-			There are 3 ways to get an instance of a {@link com.ibm.juno.core.BeanContext}:
-		</p>
-		<p class='bcode'>
-	<jc>// Use one of the default bean contexts.</jc>
-	BeanContext beanContext = BeanContext.<jsf>DEFAULT</jsf>;
-	
-	<jc>// Create a context from scratch with your own settings.</jc>
-	beanContext = <jk>new</jk> BeanContext().addFilters(DateFilter.ISO8601DT.<jk>class</jk>);
-	
-	<jc>// Clone and modify an existing context.</jc>
-	beanContext = BeanContext.<jsf>DEFAULT</jsf>.clone().addFilters(DateFilter.ISO8601DT.<jk>class</jk>);
-		</p>
-		<p>
-			The {@link com.ibm.juno.core.BeanContext} class is a highly-customizable class.  
-			See the {@link com.ibm.juno.core.BeanContext} javadoc for more information.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="Bean"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.3 - Bean annotations</h3>
-	<div class='topic'>
-		<p>
-			Juno provides the following annotations that can be used to fine-tune what properties are associated with beans:
-		</p>
-		<ul class='normal'>
-			<li>{@link com.ibm.juno.core.annotation.Bean} - Fine-tune properties associated with beans.
-			<li>{@link com.ibm.juno.core.annotation.BeanProperty} - Fine-tune bean properties (fields / getters / setters).
-			<li>{@link com.ibm.juno.core.annotation.BeanConstructor} - Define read-only bean properties that can only be set through constructor arguments.
-			<li>{@link com.ibm.juno.core.annotation.BeanIgnore} - Prevent bean classes/methods/fields from being interpreted as bean constructs.
-		</ul>
-		<p>
-			These annotations always override the settings defined in the {@link com.ibm.juno.core.BeanContext} class.
-		</p>
-		<p>
-			For example, the following bean class will only have one property associated with it, <js>"name"</js>, since it's the only one listed in the list of properties.
-		</p>
-		<p class='bcode'>
-	<jc>// Bean with only one 'name' property</jc>
-	<ja>@Bean</ja>(properties={<js>"name"</js>})
-	<jk>public class</jk> Person {
-		<jk>public</jk> String getName();
-		<jk>public void</jk> setName(String name);
-		<jk>public int</jk> getAge();
-		<jk>public void</jk> setAge(<jk>int</jk> age);
-	}
-		</p>
-		<p>
-			When this bean is serialized using one of the {@link com.ibm.juno.core.serializer.Serializer Serializers}, the age property will be ignored.
-		</p>
-		<p>
-			Using the <ja>@Bean</ja> and <ja>@BeanProperty</ja> annotations, it's also possible to include non-standard properties (for example, getters or setters with non-standard names), or override the names of properties (for example, {@code "Name"} or {@code "fullName"} instead of {@code "name"}).
-		</p>
-		<p>
-			It should be noted that the {@link com.ibm.juno.core.filter.BeanFilter} class can also be used to exclude properties from beans.  
-			However, only the annotations can be used to include non-standard properties or override property names.
-		</p>
-		<p>
-			See the {@link com.ibm.juno.core.annotation.Bean}, {@link com.ibm.juno.core.annotation.BeanProperty}, {@link com.ibm.juno.core.annotation.BeanConstructor}, and {@link com.ibm.juno.core.annotation.BeanIgnore} javadocs for more information.
-		</p>
-	</div>
-</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/parser/InputStreamParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/InputStreamParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/InputStreamParser.class
deleted file mode 100755
index ec2f7c0..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/InputStreamParser.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/parser/InputStreamParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/InputStreamParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/InputStreamParser.java
deleted file mode 100755
index e4b8518..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/InputStreamParser.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.parser;
-
-import java.io.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-
-/**
- * Subclass of {@link Parser} for byte-based parsers.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	This class is typically the parent class of all byte-based parsers.
- * 	It has 1 abstract method to implement...
- * <ul>
- * 	<li><code>parse(InputStream, ClassMeta, ParserContext)</code>
- * </ul>
- *
- *
- * <h6 class='topic'>@Consumes annotation</h6>
- * <p>
- * 	The media types that this parser can handle is specified through the {@link Consumes @Consumes} annotation.
- * <p>
- * 	However, the media types can also be specified programmatically by overriding the {@link #getMediaTypes()} method.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class InputStreamParser extends Parser<InputStream> {
-
-	@Override /* Parser */
-	public boolean isReaderParser() {
-		return false;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Abstract methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Parser */
-	protected abstract <T> T doParse(InputStream in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParseException.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParseException.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParseException.class
deleted file mode 100755
index 858b57f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParseException.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/parser/ParseException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParseException.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParseException.java
deleted file mode 100755
index f013dfb..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParseException.java
+++ /dev/null
@@ -1,81 +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.parser;
-
-import java.text.*;
-
-/**
- * Exception that indicates invalid syntax encountered during parsing.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ParseException extends Exception {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param msg The error message.
-	 * @param args Optional printf arguments to replace in the error message.
-	 */
-	public ParseException(String msg, Object...args) {
-		super(args.length == 0 ? msg : MessageFormat.format(msg, args));
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param lineNumber The line number where the parse error was detected.
-	 * @param colNumber The column number where the parse error was detected.
-	 * @param msg The error message.
-	 * @param args Optional printf arguments to replace in the error message.
-	 */
-	public ParseException(int lineNumber, int colNumber, String msg, Object... args) {
-		super(
-			(lineNumber != -1 ? MessageFormat.format("Parse exception occurred at line=''{0}'', column=''{1}''.  ", lineNumber, colNumber) : "")
-			+ (args.length == 0 ? msg : MessageFormat.format(msg, args))
-		);
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param cause The cause of the parse exception.
-	 */
-	public ParseException(Exception cause) {
-		super(cause == null ? null : cause.getLocalizedMessage());
-		initCause(cause);
-	}
-
-	/**
-	 * Returns the highest-level <code>ParseException</code> in the stack trace.
-	 * Useful for JUnit testing of error conditions.
-	 *
-	 * @return The root parse exception, or this exception if there isn't one.
-	 */
-	public ParseException getRootCause() {
-		ParseException t = this;
-		while (! (t.getCause() == null || ! (t.getCause() instanceof ParseException)))
-			t = (ParseException)t.getCause();
-		return t;
-	}
-
-	/**
-	 * Sets the inner cause for this exception.
-	 *
-	 * @param cause The inner cause.
-	 * @return This object (for method chaining).
-	 */
-	@Override /* Throwable */
-	public synchronized ParseException initCause(Throwable cause) {
-		super.initCause(cause);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/Parser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/Parser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/Parser.class
deleted file mode 100755
index 222d41a..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/Parser.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/parser/Parser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/Parser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/Parser.java
deleted file mode 100755
index 0394bc6..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/Parser.java
+++ /dev/null
@@ -1,573 +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.parser;
-
-import static com.ibm.juno.core.utils.StringUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.text.*;
-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.filters.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Parent class for all Juno parsers.
- *
- *
- * <h6 class='topic'>@Consumes annotation</h6>
- * <p>
- * 	The media types that this parser can handle is specified through the {@link Consumes @Consumes} annotation.
- * <p>
- * 	However, the media types can also be specified programmatically by overriding the {@link #getMediaTypes()} method.
- *
- *
- * <a id='ValidDataConversions'></a><h6 class='topic'>Valid data conversions</h6>
- * 	Parsers can parse any parsable POJO types, as specified in the <a class='doclink' href='../package-summary.html#PojoCategories'>POJO Categories</a>.
- * <p>
- * 	Some examples of conversions are shown below...
- * </p>
- * 	<table class='styled'>
- * 		<tr>
- * 			<th>Data type</th>
- * 			<th>Class type</th>
- * 			<th>JSON example</th>
- * 			<th>XML example</th>
- * 			<th>Class examples</th>
- * 		</tr>
- * 		<tr>
- * 			<td>object</td>
- * 			<td>Maps, Java beans</td>
- * 			<td class='code'>{name:<js>'John Smith'</js>,age:21}</td>
- * 			<td class='code'><xt>&lt;object&gt;
- * 	&lt;name</xt> <xa>type</xa>=<xs>'string'</xs><xt>&gt;</xt>John Smith<xt>&lt;/name&gt;
- * 	&lt;age</xt> <xa>type</xa>=<xs>'number'</xs><xt>&gt;</xt>21<xt>&lt;/age&gt;
- * &lt;/object&gt;</xt></td>
- * 			<td class='code'>HashMap, TreeMap&lt;String,Integer&gt;</td>
- * 		</tr>
- * 		<tr>
- * 			<td>array</td>
- * 			<td>Collections, Java arrays</td>
- * 			<td class='code'>[1,2,3]</td>
- * 			<td class='code'><xt>&lt;array&gt;
- * 	&lt;number&gt;</xt>1<xt>&lt;/number&gt;
- * 	&lt;number&gt;</xt>2<xt>&lt;/number&gt;
- * 	&lt;number&gt;</xt>3<xt>&lt;/number&gt;
- * &lt;/array&gt;</xt></td>
- * 			<td class='code'>List&lt;Integer&gt;, <jk>int</jk>[], Float[], Set&lt;Person&gt;</td>
- * 		</tr>
- * 		<tr>
- * 			<td>number</td>
- * 			<td>Numbers</td>
- * 			<td class='code'>123</td>
- * 			<td class='code'><xt>&lt;number&gt;</xt>123<xt>&lt;/number&gt;</xt></td>
- * 			<td class='code'>Integer, Long, Float, <jk>int</jk></td>
- * 		</tr>
- * 		<tr>
- * 			<td>boolean</td>
- * 			<td>Booleans</td>
- * 			<td class='code'><jk>true</jk></td>
- * 			<td class='code'><xt>&lt;boolean&gt;</xt>true<xt>&lt;/boolean&gt;</xt></td>
- * 			<td class='code'>Boolean</td>
- * 		</tr>
- * 		<tr>
- * 			<td>string</td>
- * 			<td>CharSequences</td>
- * 			<td class='code'><js>'foobar'</js></td>
- * 			<td class='code'><xt>&lt;string&gt;</xt>foobar<xt>&lt;/string&gt;</xt></td>
- * 			<td class='code'>String, StringBuilder</td>
- * 		</tr>
- * 	</table>
- * <p>
- * 	In addition, any class types with {@link PojoFilter PojoFilters} associated with them on the registered
- * 		{@link #getBeanContext() beanContext} can also be passed in.
- * <p>
- * 	For example, if the {@link CalendarFilter} filter is used to generalize {@code Calendar} objects to {@code String} objects.  When registered
- * 	with this parser, you can construct {@code Calendar} objects from {@code Strings} using the following syntax...
- * <p class='bcode'>
- * 	Calendar c = parser.parse(<js>"'Sun Mar 03 04:05:06 EST 2001'"</js>, GregorianCalendar.<jk>class</jk>);
- * <p>
- * 	If <code>Object.<jk>class</jk></code> is specified as the target type, then the parser
- * 	automatically determines the data types and generates the following object types...
- * </p>
- * <table class='styled'>
- * 	<tr><th>JSON type</th><th>Class type</th></tr>
- * 	<tr><td>object</td><td>{@link ObjectMap}</td></tr>
- * 	<tr><td>array</td><td>{@link ObjectList}</td></tr>
- * 	<tr><td>number</td><td>{@link Number} <br>(depending on length and format, could be {@link Integer}, {@link Double}, {@link Float}, etc...)</td></tr>
- * 	<tr><td>boolean</td><td>{@link Boolean}</td></tr>
- * 	<tr><td>string</td><td>{@link String}</td></tr>
- * </table>
- *
- *
- * <a id='SupportedTypes'></a><h6 class='topic'>Supported types</h6>
- * <p>
- * 	Several of the methods below take {@link Type} parameters to identify the type of
- * 		object to create.  Any of the following types can be passed in to these methods...
- * </p>
- * <ul>
- * 	<li>{@link ClassMeta}
- * 	<li>{@link Class}
- * 	<li>{@link ParameterizedType}
- * 	<li>{@link GenericArrayType}
- * </ul>
- * <p>
- * 	However, {@code ParameterizedTypes} and {@code GenericArrayTypes} should not contain
- * 		{@link WildcardType WildcardTypes} or {@link TypeVariable TypeVariables}.
- * <p>
- * 	Passing in <jk>null</jk> or <code>Object.<jk>class</jk></code> typically signifies that it's up to the parser
- * 	to determine what object type is being parsed parsed based on the rules above.
-
- *
- * @author James Bognar (jbognar@us.ibm.com)
- * @param <R> The input type (e.g. Reader or InputStream)
- */
-public abstract class Parser<R> extends CoreApi {
-
-	/** General serializer properties currently set on this serializer. */
-	protected transient ParserProperties pp = new ParserProperties();
-	private transient List<ParserListener> listeners = new LinkedList<ParserListener>();
-	private String[] mediaTypes;
-
-	// Hidden constructor to force subclass from InputStreamParser or ReaderParser.
-	Parser() {}
-
-	//--------------------------------------------------------------------------------
-	// Abstract methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Workhorse method.  Subclasses are expected to implement this method.
-	 *
-	 * @param in The input stream or reader containing the input.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param type The class type of the object to create.
-	 * 	If <jk>null</jk> or <code>Object.<jk>class</jk></code>, object type is based on what's being parsed.
-	 * 	For example, when parsing JSON text, it may return a <code>String</code>, <code>Number</code>, <code>ObjectMap</code>, etc...
-	 * @param ctx The runtime context object returned by {@link #createContext(ObjectMap, Method, Object)}.
-	 * 	If <jk>null</jk>, one will be created using {@link #createContext()}.
-	 * @param <T> The class type of the object to create.
-	 * @return The parsed object.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	protected abstract <T> T doParse(R in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException;
-
-	/**
-	 * Returns <jk>true</jk> if this parser subclasses from {@link ReaderParser}.
-	 *
-	 * @return <jk>true</jk> if this parser subclasses from {@link ReaderParser}.
-	 */
-	public abstract boolean isReaderParser();
-
-	//--------------------------------------------------------------------------------
-	// Other methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Parses the content of the reader and creates an object of the specified type.
-	 *
-	 * @param in The input stream or reader containing the input.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param type The class type of the object to create.
-	 * 	If <jk>null</jk> or <code>Object.<jk>class</jk></code>, object type is based on what's being parsed.
-	 * 	For example, when parsing JSON text, it may return a <code>String</code>, <code>Number</code>, <code>ObjectMap</code>, etc...
-	 * @param ctx The runtime context object returned by {@link #createContext(ObjectMap, Method, Object)}.
-	 * @param <T> The class type of the object to create.
-	 * @return The parsed object.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final <T> T parse(R in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException {
-		try {
-			if (in == null)
-				throw new IOException("Null input stream or reader passed to parser.");
-			return doParse(in, estimatedSize, type, ctx);
-		} catch (RuntimeException e) {
-			throw new ParseException(e);
-		} finally {
-			ctx.close();
-		}
-	}
-
-	/**
-	 * Parses the content of the reader and creates an object of the specified type.
-	 * <p>
-	 * Equivalent to calling <code>parser.parse(in, type, <jk>null</jk>);</code>
-	 *
-	 * @param in The input stream or reader containing the input.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param type The class type of the object to create.
-	 * 	If <jk>null</jk> or <code>Object.<jk>class</jk></code>, object type is based on what's being parsed.
-	 * 	For example, when parsing JSON text, it may return a <code>String</code>, <code>Number</code>, <code>ObjectMap</code>, etc...
-	 * @param <T> The class type of the object to create.
-	 * @return The parsed object.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final <T> T parse(R in, int estimatedSize, ClassMeta<T> type) throws ParseException, IOException {
-		ParserContext ctx = createContext();
-		return parse(in, estimatedSize, type, ctx);
-	}
-
-	/**
-	 * Parses input into the specified object type.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	MyBean b = p.parse(json, MyBean.<jk>class</jk>);
-	 * </p>
-	 * <p>
-	 * This method equivalent to the following code:
-	 * <p class='bcode'>
-	 * 	ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	ClassMeta&lt;MyBean&gt; cm = p.getBeanContext().getClassMeta(MyBean.<jk>class</jk>);
-	 * 	MyBean b = p.parse(json, cm, <jk>null</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param <T> The class type of the object to create.
-	 * @param in The input stream or reader containing the input.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param type The class type of the object to create.
-	 * @return The parsed object.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final <T> T parse(R in, int estimatedSize, Class<T> type) throws ParseException, IOException {
-		ClassMeta<T> cm = getBeanContext().getClassMeta(type);
-		return parse(in, estimatedSize, cm);
-	}
-
-	/**
-	 * Parses input into a map with specified key and value types.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	Map&lt;String,MyBean&gt; m = p.parseMap(json, LinkedHashMap.<jk>class</jk>, String.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 * </p>
-	 * 		<p>
-	 * 			A simpler approach is often to just extend the map class you want and just use the normal {@link #parse(Object, int, Class)} method:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<jk>public static class</jk> MyMap <jk>extends</jk> LinkedHashMap&lt;String,MyBean&gt; {}
-	 *
-	 * 	ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	Map&lt;String,MyBean&gt; m = p.parse(json, MyMap.<jk>class</jk>);
-	 * </p>
-	 * <p>
-	 * This method equivalent to the following code:
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	ClassMeta&lt;Map&lt;String,MyBean&gt;&gt; cm = p.getBeanContext().getMapClassMeta(LinkedList.<jk>class</jk>, String.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 * 	Map&ltString,MyBean&gt; m = p.parse(json, cm, <jk>null</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param <T> The class type of the object to create.
-	 * @param in The input stream or reader containing the input.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param mapClass The map class type.
-	 * @param keyClass The key class type.
-	 * @param valueClass The value class type.
-	 * @return The parsed object.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final <K,V,T extends Map<K,V>> T parseMap(R in, int estimatedSize, Class<T> mapClass, Class<K> keyClass, Class<V> valueClass) throws ParseException, IOException {
-		ClassMeta<T> cm = getBeanContext().getMapClassMeta(mapClass, keyClass, valueClass);
-		return parse(in, estimatedSize, cm);
-	}
-
-	/**
-	 * Parses input into a collection with a specified element type.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	List&lt;MyBean&gt; l = p.parseCollection(json, LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 * </p>
-	 * 		<p>
-	 * A simpler approach is often to just extend the collection class you want and just use the normal {@link #parse(Object, int, Class)} method:
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	<jk>public static class</jk> MyBeanCollection <jk>extends</jk> LinkedList&lt;MyBean&gt; {}
-	 *
-	 * 	ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	List&lt;MyBean&gt; l = p.parse(json, MyBeanCollection.<jk>class</jk>);
-	 * </p>
-	 * <p>
-	 * This method equivalent to the following code:
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-	 * 	ClassMeta&lt;List&lt;MyBean&gt;&gt; cm = p.getBeanContext().getCollectionClassMeta(LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 * 	List&lt;MyBean&gt; l = p.parse(json, cm, <jk>null</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param <T> The class type of the object to create.
-	 * @param in The input stream or reader containing the input.
-	 * @param estimatedSize The estimated size of the input, or <code>-1</code> if unknown.
-	 * @param collectionClass The collection class type.
-	 * @param entryClass The class type of entries in the collection.
-	 * @return The parsed object.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final <E,T extends Collection<E>> T parseCollection(R in, int estimatedSize, Class<T> collectionClass, Class<E> entryClass) throws ParseException, IOException {
-		ClassMeta<T> cm = getBeanContext().getCollectionClassMeta(collectionClass, entryClass);
-		return parse(in, estimatedSize, cm);
-	}
-
-	/**
-	 * Create the context object that will be passed in to the parse method.
-	 * <p>
-	 * 	It's up to implementers to decide what the context object looks like, although typically
-	 * 	it's going to be a subclass of {@link ParserContext}.
-	 *
-	 * @param properties Optional additional properties.
-	 * @param javaMethod Java method that invoked this serializer.
-	 * 	When using the REST API, this is the Java method invoked by the REST call.
-	 * 	Can be used to access annotations defined on the method or class.
-	 * @param outer The outer object for instantiating top-level non-static inner classes.
-	 * @return The new context.
-	 */
-	public ParserContext createContext(ObjectMap properties, Method javaMethod, Object outer) {
-		return new ParserContext(getBeanContext(), pp, properties, javaMethod, outer);
-	}
-
-	/**
-	 * Create a basic context object without overriding properties or specifying <code>javaMethod</code>.
-	 * <p>
-	 * Equivalent to calling <code>createContext(<jk>null</jk>, <jk>null</jk>)</code>.
-	 *
-	 * @return The new context.
-	 */
-	protected final ParserContext createContext() {
-		return createContext(null, null, null);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Other methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Adds a {@link ParserListener} to this parser to listen for parse events.
-	 *
-	 * @param listener The listener to associate with this parser.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public Parser<R> addListener(ParserListener listener) throws LockedException {
-		checkLock();
-		this.listeners.add(listener);
-		return this;
-	}
-
-	/**
-	 * Returns the current parser listeners associated with this parser.
-	 *
-	 * @return The current list of parser listeners.
-	 */
-	public List<ParserListener> getListeners() {
-		return listeners;
-	}
-
-	/**
-	 * Converts the specified string to the specified type.
-	 *
-	 * @param outer The outer object if we're converting to an inner object that needs to be created within the context of an outer object.
-	 * @param s The string to convert.
-	 * @param type The class type to convert the string to.
-	 * @return The string converted as an object of the specified type.
-	 * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified type.
-	 * @param <T> The class type to convert the string to.
-	 */
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	protected <T> T convertAttrToType(Object outer, String s, ClassMeta<T> type) throws ParseException {
-		if (s == null)
-			return null;
-
-		if (type == null)
-			type = (ClassMeta<T>)object();
-		PojoFilter filter = type.getPojoFilter();
-		ClassMeta<?> gType = type.getFilteredClassMeta();
-
-		Object o = s;
-		if (gType.isChar())
-			o = s.charAt(0);
-		else if (gType.isNumber())
-			o = parseNumber(s, (Class<? extends Number>)gType.getInnerClass());
-		else if (gType.isBoolean())
-			o = Boolean.parseBoolean(s);
-		else if (! (gType.isCharSequence() || gType.isObject())) {
-			if (gType.canCreateNewInstanceFromString(outer)) {
-				try {
-					o = gType.newInstanceFromString(outer, s);
-				} catch (Exception e) {
-					throw new ParseException("Unable to construct new object of type ''{0}'' from input string ''{1}''", type, s).initCause(e);
-				}
-			} else {
-				throw new ParseException("Invalid conversion from string to class ''{0}''", type);
-			}
-		}
-
-		if (filter != null)
-			o = filter.unfilter(o, type);
-
-
-		return (T)o;
-	}
-
-	/**
-	 * Convenience method for calling the {@link ParentProperty @ParentProperty} method on
-	 * the specified object if it exists.
-	 *
-	 * @param cm The class type of the object.
-	 * @param o The object.
-	 * @param parent The parent to set.
-	 * @throws ParseException
-	 */
-	protected void setParent(ClassMeta<?> cm, Object o, Object parent) throws ParseException {
-		Method m = cm.getParentProperty();
-		if (m != null) {
-			try {
-				m.invoke(o, parent);
-			} catch (Exception e) {
-				throw new ParseException(e);
-			}
-		}
-	}
-
-	/**
-	 * Convenience method for calling the {@link NameProperty @NameProperty} method on
-	 * the specified object if it exists.
-	 *
-	 * @param cm The class type of the object.
-	 * @param o The object.
-	 * @param name The name to set.
-	 * @throws ParseException
-	 */
-	protected void setName(ClassMeta<?> cm, Object o, Object name) throws ParseException {
-		Method m = cm.getNameProperty();
-		if (m != null) {
-			try {
-				m.invoke(o, name);
-			} catch (Exception e) {
-				throw new ParseException(e);
-			}
-		}
-	}
-
-
-	/**
-	 * Method that gets called when an unknown bean property name is encountered.
-	 *
-	 * @param ctx The parser context.
-	 * @param propertyName The unknown bean property name.
-	 * @param beanMap The bean that doesn't have the expected property.
-	 * @param line The line number where the property was found.  <code>-1</code> if line numbers are not available.
-	 * @param col The column number where the property was found.  <code>-1</code> if column numbers are not available.
-	 * @throws ParseException Automatically thrown if {@link BeanContextProperties#BEAN_ignoreUnknownBeanProperties} setting
-	 * 	on this parser is <jk>false</jk>
-	 * @param <T> The class type of the bean map that doesn't have the expected property.
-	 */
-	protected <T> void onUnknownProperty(ParserContext ctx, String propertyName, BeanMap<T> beanMap, int line, int col) throws ParseException {
-		if (propertyName.equals("uri") || propertyName.equals("type") || propertyName.equals("_class"))
-			return;
-		if (! ctx.getBeanContext().isIgnoreUnknownBeanProperties())
-			throw new ParseException(line, col, "Unknown property ''{0}'' encountered while trying to parse into class ''{1}''", propertyName, beanMap.getClassMeta());
-		if (listeners.size() > 0)
-			for (ParserListener listener : listeners)
-				listener.onUnknownProperty(propertyName, beanMap.getClassMeta().getInnerClass(), beanMap.getBean(), line, col);
-	}
-
-
-	/**
-	 * Returns the media types handled based on the value of the {@link Consumes} annotation on the parser class.
-	 * <p>
-	 * This method can be overridden by subclasses to determine the media types programatically.
-	 *
-	 * @return The list of media types.  Never <jk>null</jk>.
-	 */
-	public String[] getMediaTypes() {
-		if (mediaTypes == null) {
-			Consumes c = ReflectionUtils.getAnnotation(Consumes.class, getClass());
-			if (c == null)
-				throw new RuntimeException(MessageFormat.format("Class ''{0}'' is missing the @Consumes annotation", getClass().getName()));
-			mediaTypes = c.value();
-		}
-		return mediaTypes;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-
-	@Override /* CoreApi */
-	public Parser<R> setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public Parser<R> addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public Parser<R> addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> Parser<R> addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public Parser<R> setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public Parser<R> lock() {
-		super.lock();
-		return this;
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override /* Lockable */
-	public Parser<R> clone() throws CloneNotSupportedException {
-		return (Parser<R>)super.clone();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserContext.class
deleted file mode 100755
index 788eb28..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserContext.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/parser/ParserContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserContext.java
deleted file mode 100755
index 30b2365..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserContext.java
+++ /dev/null
@@ -1,132 +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.parser;
-
-import java.lang.reflect.*;
-import java.util.*;
-import java.util.logging.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Context object that lives for the duration of a single parsing of {@link Parser} and its subclasses.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ParserContext {
-
-	private static Logger logger = Logger.getLogger(ParserContext.class.getName());
-
-	private boolean debug, closed;
-	private final BeanContext beanContext;
-	private final List<String> warnings = new LinkedList<String>();
-
-	private ObjectMap properties;
-	private Method javaMethod;
-	private Object outer;
-
-	/**
-	 * Create a new parser context with the specified options.
-	 *
-	 * @param beanContext The bean context being used.
-	 * @param pp The default parser properties.
-	 * @param properties 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 ParserContext(BeanContext beanContext, ParserProperties pp, ObjectMap properties, Method javaMethod, Object outer) {
-		this.debug = pp.debug;
-		this.beanContext = beanContext;
-		this.properties = properties;
-		this.javaMethod = javaMethod;
-		this.outer = outer;
-	}
-
-	/**
-	 * Returns the bean context associated with this context.
-	 *
-	 * @return The bean context associated with this context.
-	 */
-	public final BeanContext getBeanContext() {
-		return beanContext;
-	}
-
-	/**
-	 * Returns the Java method that invoked this parser.
-	 * <p>
-	 * When using the REST API, this is the Java method invoked by the REST call.
-	 * Can be used to access annotations defined on the method or class.
-	 *
-	 * @return The Java method that invoked this parser.
-	*/
-	public final Method getJavaMethod() {
-		return javaMethod;
-	}
-
-	/**
-	 * Returns the outer object used for instantiating top-level non-static member classes.
-	 * When using the REST API, this is the servlet object.
-	 *
-	 * @return The outer object.
-	*/
-	public final Object getOuter() {
-		return outer;
-	}
-
-	/**
-	 * Returns the {@link SerializerProperties#SERIALIZER_debug} setting value in this context.
-	 *
-	 * @return The {@link SerializerProperties#SERIALIZER_debug} setting value in this context.
-	 */
-	public final boolean isDebug() {
-		return debug;
-	}
-
-	/**
-	 * Returns the runtime properties associated with this context.
-	 *
-	 * @return The runtime properties associated with this context.
-	 */
-	public final ObjectMap getProperties() {
-		return properties;
-	}
-
-	/**
-	 * Logs a warning message.
-	 *
-	 * @param msg The warning message.
-	 * @param args Optional printf arguments to replace in the error message.
-	 */
-	public void addWarning(String msg, Object... args) {
-		msg = args.length == 0 ? msg : String.format(msg, args);
-		logger.warning(msg);
-		warnings.add(warnings.size() + 1 + ": " + msg);
-	}
-
-	/**
-	 * Perform cleanup on this context object if necessary.
-	 *
-	 * @throws ParseException
-	 */
-	public void close() throws ParseException {
-		if (closed)
-			throw new ParseException("Attempt to close ParserContext more than once.");
-		if (debug && warnings.size() > 0)
-			throw new ParseException("Warnings occurred during parsing: \n" + StringUtils.join(warnings, "\n"));
-	}
-
-	@Override /* Object */
-	protected void finalize() throws Throwable {
-		if (! closed)
-			throw new RuntimeException("ParserContext was not closed.");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup$ParserEntry.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup$ParserEntry.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup$ParserEntry.class
deleted file mode 100755
index 01c92d0..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup$ParserEntry.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/parser/ParserGroup.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup.class
deleted file mode 100755
index 85a3152..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup.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/parser/ParserGroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup.java
deleted file mode 100755
index 225eb77..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserGroup.java
+++ /dev/null
@@ -1,317 +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.parser;
-
-import static com.ibm.juno.core.utils.ArrayUtils.*;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * Represents a group of {@link Parser Parsers} that can be looked up by media type.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Provides the following features:
- * <ul>
- * 	<li>Finds parsers based on HTTP <code>Content-Type</code> header values.
- * 	<li>Sets common properties on all parsers in a single method call.
- * 	<li>Locks all parsers in a single method call.
- * 	<li>Clones existing groups and all parsers within the group in a single method call.
- * </ul>
- *
- *
- * <h6 class='topic'>Match ordering</h6>
- * <p>
- * 	Parsers are matched against <code>Content-Type</code> strings in the order they exist in this group.
- * <p>
- * 	Adding new entries will cause the entries to be prepended to the group.
- *  	This allows for previous parsers to be overridden through subsequent calls.
- * <p>
- * 	For example, calling <code>g.append(P1.<jk>class</jk>,P2.<jk>class</jk>).append(P3.<jk>class</jk>,P4.<jk>class</jk>)</code>
- * 	will result in the order <code>P3, P4, P1, P2</code>.
- *
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Construct a new parser group</jc>
- * 	ParserGroup g = <jk>new</jk> ParserGroup();
- *
- * 	<jc>// Add some parsers to it</jc>
- * 	g.append(JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>);
- *
- * 	<jc>// Change settings on parsers simultaneously</jc>
- * 	g.setProperty(BeanContextProperties.<jsf>BEAN_beansRequireSerializable</jsf>, <jk>true</jk>)
- * 		.addFilters(CalendarFilter.ISO8601DT.<jk>class</jk>)
- * 		.lock();
- *
- * 	<jc>// Find the appropriate parser by Content-Type</jc>
- * 	ReaderParser p = (ReaderParser)g.getParser(<js>"text/json"</js>);
- *
- * 	<jc>// Parse a bean from JSON</jc>
- * 	String json = <js>"{...}"</js>;
- * 	AddressBook addressBook = p.parse(json, AddressBook.<jk>class</jk>);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ParserGroup extends Lockable {
-
-	private transient Map<String,ParserEntry> entryMap = new HashMap<String,ParserEntry>();
-	private transient LinkedList<ParserEntry> tempEntries = new LinkedList<ParserEntry>();
-	private transient ParserEntry[] entries;
-
-
-	/**
-	 * Registers the specified REST parsers with this parser group.
-	 *
-	 * @param p The parsers to append to this group.
-	 * @return This object (for method chaining).
-	 */
-	public ParserGroup append(Parser<?>...p) {
-		checkLock();
-		entries = null;
-		for (Parser<?> pp : reverse(p))  {
-			ParserEntry e = new ParserEntry(pp);
-			tempEntries.addFirst(e);
-			for (String mediaType : e.mediaTypes)
-				entryMap.put(mediaType, e);
-		}
-		return this;
-	}
-
-	/**
-	 * Same as {@link #append(Parser[])}, except specify classes instead of class instances
-	 * 	 of {@link Parser}.
-	 * <p>
-	 * Note that this can only be used on {@link Parser Parsers} with no-arg constructors.
-	 *
-	 * @param p The parsers to append to this group.
-	 * @return This object (for method chaining).
-	 * @throws Exception Thrown if {@link Parser} could not be constructed.
-	 */
-	public ParserGroup append(Class<? extends Parser<?>>...p) throws Exception {
-		checkLock();
-		for (Class<? extends Parser<?>> c : reverse(p)) {
-			try {
-			append(c.newInstance());
-			} catch (NoClassDefFoundError e) {
-				// Ignore if dependent library not found (e.g. Jena).
-				System.err.println(e);
-			}
-		}
-		return this;
-	}
-
-	/**
-	 * Same as {@link #append(Class[])}, except specify a single class to avoid unchecked compile warnings.
-	 *
-	 * @param p The parser to append to this group.
-	 * @return This object (for method chaining).
-	 * @throws Exception Thrown if {@link Parser} could not be constructed.
-	 */
-	public ParserGroup append(Class<? extends Parser<?>> p) throws Exception {
-		checkLock();
-		try {
-		append(p.newInstance());
-		} catch (NoClassDefFoundError e) {
-			// Ignore if dependent library not found (e.g. Jena).
-			System.err.println(e);
-		}
-		return this;
-	}
-
-	/**
-	 * Returns the parser registered to handle the specified media type.
-	 * <p>
-	 * The media-type string must not contain any parameters such as <js>";charset=X"</js>.
-	 *
-	 * @param mediaType The media-type string (e.g. <js>"text/json"</js>).
-	 * @return The REST parser that handles the specified request content type, or <jk>null</jk> if
-	 * 		no parser is registered to handle it.
-	 */
-	public Parser<?> getParser(String mediaType) {
-		ParserEntry e = entryMap.get(mediaType);
-		return (e == null ? null : e.parser);
-	}
-
-	/**
-	 * Searches the group for a parser that can handle the specified media type.
-	 *
-	 * @param mediaType The accept string.
-	 * @return The media type registered by one of the parsers that matches the <code>mediaType</code> string,
-	 * 	or <jk>null</jk> if no media types matched.
-	 */
-	public String findMatch(String mediaType) {
-		MediaRange[] mr = MediaRange.parse(mediaType);
-		if (mr.length == 0)
-			mr = MediaRange.parse("*/*");
-
-		for (MediaRange a : mr)
-			for (ParserEntry e : getEntries())
-				for (MediaRange a2 : e.mediaRanges)
-					if (a.matches(a2))
-						return a2.getMediaType();
-
-		return null;
-	}
-
-	/**
-	 * Returns the media types that all parsers in this group can handle
-	 * <p>
-	 * Entries are ordered in the same order as the parsers in the group.
-	 *
-	 * @return The list of media types.
-	 */
-	public List<String> getSupportedMediaTypes() {
-		List<String> l = new ArrayList<String>();
-		for (ParserEntry e : getEntries())
-			for (String mt : e.mediaTypes)
-				if (! l.contains(mt))
-					l.add(mt);
-		return l;
-	}
-
-	private ParserEntry[] getEntries() {
-		if (entries == null)
-			entries = tempEntries.toArray(new ParserEntry[tempEntries.size()]);
-		return entries;
-	}
-
-	static class ParserEntry {
-		Parser<?> parser;
-		MediaRange[] mediaRanges;
-		String[] mediaTypes;
-
-		ParserEntry(Parser<?> p) {
-			parser = p;
-
-			mediaTypes = new String[p.getMediaTypes().length];
-			int i = 0;
-			for (String mt : p.getMediaTypes())
-				mediaTypes[i++] = mt.toLowerCase(Locale.ENGLISH);
-
-			List<MediaRange> l = new LinkedList<MediaRange>();
-			for (i = 0; i < mediaTypes.length; i++)
-				l.addAll(Arrays.asList(MediaRange.parse(mediaTypes[i])));
-			mediaRanges = l.toArray(new MediaRange[l.size()]);
-		}
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Convenience methods for setting properties on all parsers.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Shortcut for calling {@link Parser#setProperty(String, Object)} on all parsers in this group.
-	 *
-	 * @param property The property name.
-	 * @param value The property value.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public ParserGroup setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		for (ParserEntry e : getEntries())
-			e.parser.setProperty(property, value);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link Parser#setProperties(ObjectMap)} on all parsers in this group.
-	 *
-	 * @param properties The properties to set.  Ignored if <jk>null</jk>.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public ParserGroup setProperties(ObjectMap properties) {
-		checkLock();
-		if (properties != null)
-			for (Map.Entry<String,Object> e : properties.entrySet())
-				setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link Parser#addNotBeanClasses(Class[])} on all parsers in this group.
-	 *
-	 * @param classes The classes to specify as not-beans to the underlying bean context of all parsers in this group.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public ParserGroup addNotBeanClasses(Class<?>...classes) throws LockedException {
-		checkLock();
-		for (ParserEntry e : getEntries())
-			e.parser.addNotBeanClasses(classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link Parser#addFilters(Class[])} on all parsers in this group.
-	 *
-	 * @param classes The classes to add bean filters for to the underlying bean context of all parsers in this group.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public ParserGroup addFilters(Class<?>...classes) throws LockedException {
-		checkLock();
-		for (ParserEntry e : getEntries())
-			e.parser.addFilters(classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link Parser#addImplClass(Class, Class)} on all parsers in this group.
-	 *
-	 * @param <T> The interface or abstract class type.
-	 * @param interfaceClass The interface or abstract class.
-	 * @param implClass The implementation class.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public <T> ParserGroup addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		checkLock();
-		for (ParserEntry e : getEntries())
-			e.parser.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Locks this group and all parsers in this group.
-	 */
-	@Override /* Lockable */
-	public ParserGroup lock() {
-		super.lock();
-		for (ParserEntry e : getEntries())
-			e.parser.lock();
-		return this;
-	}
-
-	/**
-	 * Clones this group and all parsers in this group.
-	 */
-	@Override /* Lockable */
-	public ParserGroup clone() throws CloneNotSupportedException {
-		ParserGroup c = (ParserGroup)super.clone();
-		c.entryMap = new HashMap<String,ParserEntry>();
-		c.tempEntries = new LinkedList<ParserEntry>();
-		c.entries = null;
-		ParserEntry[] e = getEntries();
-		for (int i = e.length-1; i >= 0; i--)
-			c.append(e[i].parser.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/parser/ParserListener.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserListener.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserListener.class
deleted file mode 100755
index 1e80272..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserListener.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/parser/ParserListener.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserListener.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserListener.java
deleted file mode 100755
index 8b24cc1..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserListener.java
+++ /dev/null
@@ -1,40 +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.parser;
-
-import com.ibm.juno.core.*;
-
-/**
- * Class for listening for certain parse events during a document parse.
- * <p>
- * 	Listeners can be registered with parsers through the {@link Parser#addListener(ParserListener)} method.
- * </p>
- * 	It should be noted that listeners are not automatically copied over to new parsers when a parser is cloned.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ParserListener {
-
-	/**
-	 * Gets called when an unknown bean property is detected in a document.
-	 * <p>
-	 * 	This method only gets called if {@link BeanContextProperties#BEAN_ignoreUnknownBeanProperties} setting is <jk>true</jk>.
-	 * 	Otherwise, the parser will throw a {@link ParseException}.
-	 *
-	 * @param <T> The class type of the bean.
-	 * @param propertyName The property name encountered in the document.
-	 * @param beanClass The bean class.
-	 * @param bean The bean.
-	 * @param line The line number where the unknown property was found (-1 if parser doesn't support line/column indicators).
-	 * @param col The column number where the unknown property was found (-1 if parser doesn't support line/column indicators).
-	 */
-	public <T> void onUnknownProperty(String propertyName, Class<T> beanClass, T bean, int line, int col) {
-		// Do something with information
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserProperties.class
deleted file mode 100755
index d02c9bc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserProperties.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/parser/ParserProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserProperties.java
deleted file mode 100755
index 0392b51..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserProperties.java
+++ /dev/null
@@ -1,57 +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.parser;
-
-import com.ibm.juno.core.*;
-
-/**
- * Configurable properties common to all {@link Parser} classes.
- * <p>
- * 	Use the {@link Parser#setProperty(String, Object)} method to set property values.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class ParserProperties implements Cloneable {
-
-	/**
-	 * Debug mode ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * Enables the following additional information during parsing:
-	 * <ul>
-	 * 	<li>When bean setters throws exceptions, the exception includes the object stack information
-	 * 		in order to determine how that method was invoked.
-	 * </ul>
-	 */
-	public static final String PARSER_debug = "Parser.debug";
-
-	boolean
-		debug = 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(PARSER_debug))
-			debug = bc.convertToType(value, Boolean.class);
-		else
-			return false;
-		return true;
-	}
-
-
-	@Override /* Object */
-	public ParserProperties clone() throws CloneNotSupportedException {
-		return (ParserProperties)super.clone();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserReader.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserReader.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserReader.class
deleted file mode 100755
index 9dd18f7..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserReader.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/parser/ParserReader.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserReader.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserReader.java
deleted file mode 100755
index 18b9478..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/parser/ParserReader.java
+++ /dev/null
@@ -1,379 +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.parser;
-
-import java.io.*;
-
-import com.ibm.juno.core.utils.*;
-
-/**
- * Similar to a {@link java.io.PushbackReader} with a pushback buffer of 1 character.
- * <p>
- * 	Code is optimized to work with a 1 character buffer.
- * <p>
- * 	Additionally keeps track of current line and column number, and provides the ability to set
- * 	mark points and capture characters from the previous mark point.
- * <p>
- * 	<b>Warning:</b>  Not thread safe.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class ParserReader extends Reader {
-
-	/** Wrapped reader */
-	protected Reader r;
-
-	private char[] buff;       // Internal character buffer
-	private int line = 1;      // Current line number
-	private int column;        // Current column number
-	private int iCurrent = 0;  // Current pointer into character buffer
-	private int iMark = -1;    // Mark position in buffer
-	private int iEnd = 0;      // The last good character position in the buffer
-	private boolean endReached, holesExist;
-
-	ParserReader() {}
-
-	/**
-	 * Constructor for input from a {@link CharSequence}.
-	 *
-	 * @param in The character sequence being read from.
-	 */
-	public ParserReader(CharSequence in) {
-		this.r = new CharSequenceReader(in);
-		if (in == null)
-			this.buff = new char[0];
-		else
-			this.buff = new char[in.length() < 1024 ? in.length() : 1024];
-	}
-
-	/**
-	 * Constructor for input from a {@link Reader}).
-	 *
-	 * @param r The Reader being wrapped.
-	 * @param buffSize The buffer size to use for the buffered reader.
-	 */
-	public ParserReader(Reader r, int buffSize) {
-		if (r instanceof ParserReader)
-			this.r = ((ParserReader)r).r;
-		else
-			this.r = r;
-		this.buff = new char[buffSize <= 0 ? 1024 : Math.max(buffSize, 20)];
-	}
-
-	/**
-	 * Returns the current line number position in this reader.
-	 *
-	 * @return The current line number.
-	 */
-	public final int getLine() {
-		return line;
-	}
-
-	/**
-	 * Returns the current column number position in this reader.
-	 *
-	 * @return The current column number.
-	 */
-	public final int getColumn() {
-		return column;
-	}
-
-	/**
-	 * Reads a single character.
-	 * Note that this method does NOT process extended unicode characters (i.e. characters
-	 * 	above 0x10000), but rather returns them as two <jk>char</jk>s.
-	 * Use {@link #readCodePoint()} to ensure proper handling of extended unicode.
-	 *
-	 * @return The character read, or -1 if the end of the stream has been reached.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	@Override /* Reader */
-	public final int read() throws IOException {
-		int c = readFromBuff();
-		if (c == -1)
-			return -1;
-		if (c == '\n') {
-			line++;
-			column = 0;
-		} else {
-			column++;
-		}
-		return c;
-	}
-
-	/**
-	 * Same as {@link #read()} but detects and combines extended unicode characters (i.e. characters
-	 * 	above 0x10000).
-	 *
-	 * @return The character read, or -1 if the end of the stream has been reached.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final int readCodePoint() throws IOException {
-		int c = read();
-
-		// Characters that take up 2 chars.
-		if (c >= 0xd800 && c <= 0xdbff) {
-			int low = read();
-			if (low >= 0xdc00 && low <= 0xdfff)
-				c = 0x10000 + ((c - 0xd800) << 10) + (low - 0xdc00);
-		}
-
-		return c;
-	}
-
-	private final int readFromBuff() throws IOException {
-		while (iCurrent >= iEnd) {
-			if (endReached)
-				return -1;
-
-			// If there's still space at the end of this buffer, fill it.
-			// Make sure there's at least 2 character spaces free for extended unicode characters.
-			//if (false) {
-			if (iEnd+1 < buff.length) {
-				int x = read(buff, iCurrent, buff.length-iEnd);
-				if (x == -1) {
-					endReached = true;
-					return -1;
-				}
-				iEnd += x;
-
-			} else {
-				// If we're currently marking, then we want to copy from the current mark point
-				// to the beginning of the buffer and then fill in the remainder of buffer.
-				if (iMark >= 0) {
-
-					// If we're marking from the beginning of the array, we double the size of the
-					// buffer.  This isn't likely to occur often.
-					if (iMark == 0) {
-						char[] buff2 = new char[buff.length<<1];
-						System.arraycopy(buff, 0, buff2, 0, buff.length);
-						buff = buff2;
-
-					// Otherwise, we copy what's currently marked to the beginning of the buffer.
-					} else {
-						int copyBuff = iMark;
-						System.arraycopy(buff, copyBuff, buff, 0, buff.length - copyBuff);
-						iCurrent -= copyBuff;
-						iMark -= copyBuff;
-					}
-					int expected = buff.length - iCurrent;
-
-					int x = read(buff, iCurrent, expected);
-					if (x == -1) {
-						endReached = true;
-						iEnd = iCurrent;
-						return -1;
-					}
-					iEnd = iCurrent + x;
-				} else {
-					// Copy the last 10 chars in the buffer to the beginning of the buffer.
-					int copyBuff = Math.min(iCurrent, 10);
-					System.arraycopy(buff, iCurrent-copyBuff, buff, 0, copyBuff);
-
-					// Number of characters we expect to copy on the next read.
-					int expected = buff.length - copyBuff;
-					int x = read(buff, copyBuff, expected);
-					iCurrent = copyBuff;
-					if (x == -1) {
-						endReached = true;
-						iEnd = iCurrent;
-						return -1;
-					}
-					iEnd = iCurrent + x;
-				}
-			}
-		}
-		return buff[iCurrent++];
-	}
-
-	/**
-	 * Start buffering the calls to read() so that the text can be gathered from the mark
-	 * point on calling {@code getFromMarked()}.
-	 */
-	public final void mark() {
-		iMark = iCurrent;
-	}
-
-
-	/**
-	 * Peeks the next character in the stream.
-	 * <p>
-	 * 	This is equivalent to doing a {@code read()} followed by an {@code unread()}.
-	 *
-	 * @return The peeked character, or (char)-1 if the end of the stream has been reached.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final int peek() throws IOException {
-		int c = read();
-		if (c != -1)
-			unread();
-		return c;
-	}
-
-	/**
-	 * Read the specified number of characters off the stream.
-	 *
-	 * @param num The number of characters to read.
-	 * @return The characters packaged as a String.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final String read(int num) throws IOException {
-		char[] c = new char[num];
-		for (int i = 0; i < num; i++) {
-			int c2 = read();
-			if (c2 == -1)
-				return new String(c, 0, i);
-			c[i] = (char)c2;
-		}
-		return new String(c);
-	}
-
-	/**
-	 * Pushes the last read character back into the stream.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public final ParserReader unread() throws IOException {
-		if (iCurrent <= 0)
-			throw new IOException("Buffer underflow.");
-		iCurrent--;
-		column--;
-		return this;
-	}
-
-	/**
-	 * Close this reader and the underlying reader.
-	 *
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	@Override /* Reader */
-	public void close() throws IOException {
-		r.close();
-	}
-
-	/**
-	 * Returns the contents of the reusable character buffer as a string, and
-	 * resets the buffer for next usage.
-	 *
-	 * @return The contents of the reusable character buffer as a string.
-	 */
-	public final String getMarked() {
-		return getMarked(0, 0);
-	}
-
-	/**
-	 * Same as {@link #getMarked()} except allows you to specify offsets
-	 * 	into the buffer.
-	 * <p>
-	 * For example, to return the marked string, but trim the first and last characters,
-	 * 	call the following:
-	 * <p class='bcode'>
-	 * 	getFromMarked(1, -1);
-	 * </p>
-	 *
-	 * @param offsetStart The offset of the start position.
-	 * @param offsetEnd The offset of the end position.
-	 * @return The contents of the reusable character buffer as a string.
-	 */
-	public final String getMarked(int offsetStart, int offsetEnd) {
-		int offset = 0;
-
-		// Holes are \u00FF 'delete' characters that we need to get rid of now.
-		if (holesExist) {
-			for (int i = iMark; i < iCurrent; i++) {
-				char c = buff[i];
-				if (c == 127)
-					offset++;
-				else
-					buff[i-offset] = c;
-			}
-			holesExist = false;
-		}
-		int start = iMark + offsetStart, len = iCurrent - iMark + offsetEnd - offsetStart - offset;
-		String s = new String(buff, start, len);
-		iMark = -1;
-		return s;
-	}
-
-	/**
-	 * Trims off the last character in the marking buffer.
-	 * Useful for removing escape characters from sequences.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public final ParserReader delete() {
-		return delete(1);
-	}
-
-	/**
-	 * Trims off the specified number of last characters in the marking buffer.
-	 * Useful for removing escape characters from sequences.
-	 *
-	 * @param count The number of characters to delete.
-	 * @return This object (for method chaining).
-	 */
-	public final ParserReader delete(int count) {
-		for (int i = 0; i < count; i++)
-			buff[iCurrent-i-1] = 127;
-		holesExist = true;
-		return this;
-	}
-
-	/**
-	 * Replaces the last character in the marking buffer with the specified character.
-	 * <code>offset</code> must be at least <code>1</code> for normal characters, and
-	 * <code>2</code> for extended unicode characters in order for the replacement
-	 * to fit into the buffer.
-	 *
-	 * @param c The new character.
-	 * @param offset The offset.
-	 * @return This object (for method chaining).
-	 * @throws IOException
-	 */
-	public final ParserReader replace(int c, int offset) throws IOException {
-		if (c < 0x10000) {
-			if (offset < 1)
-				throw new IOException("Buffer underflow.");
-			buff[iCurrent-offset] = (char)c;
-		} else {
-			if (offset < 2)
-				throw new IOException("Buffer underflow.");
-			c -= 0x10000;
-			buff[iCurrent-offset] = (char)(0xd800 + (c >> 10));
-			buff[iCurrent-offset+1] = (char)(0xdc00 + (c & 0x3ff));
-			offset--;
-		}
-		// Fill in the gap with DEL characters.
-		for (int i = 1; i < offset; i++)
-			buff[iCurrent-i] = 127;
-		holesExist |= (offset > 1);
-		return this;
-	}
-
-	/**
-	 * Replace the last read character in the buffer with the specified character.
-	 *
-	 * @param c The new character.
-	 * @return This object (for method chaining).
-	 * @throws IOException
-	 */
-	public final ParserReader replace(char c) throws IOException {
-		return replace(c, 1);
-	}
-
-	/**
-	 * Subclasses can override this method to provide additional filtering (e.g. {#link UrlEncodingParserReader}).
-	 * Default implementation simply calls the same method on the underlying reader.
-	 */
-	@Override /* Reader */
-	public int read(char[] cbuf, int off, int len) throws IOException {
-		return r.read(cbuf, off, len);
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/build.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/build.properties b/com.ibm.team.juno.client/build.properties
index e6fbc0e..fec46c9 100755
--- a/com.ibm.team.juno.client/build.properties
+++ b/com.ibm.team.juno.client/build.properties
@@ -1,15 +1,18 @@
-###############################################################################
-# 
-# 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. 
-#  
-###############################################################################
-source.. = src/
-output.. = bin/
+# ***************************************************************************************************************************
+# * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+# * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+# * with the License.  You may obtain a copy of the License at
+# *  
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *  
+# * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+# * specific language governing permissions and limitations under the License.
+# *
+# ***************************************************************************************************************************
+source.. = src/main/java/
+output.. = target/classes
 bin.includes = META-INF/,\
                .,\
                OSGI-INF/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/AllowAllRedirects.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/AllowAllRedirects.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/AllowAllRedirects.java
deleted file mode 100755
index 7f68ef0..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/AllowAllRedirects.java
+++ /dev/null
@@ -1,27 +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.client;
-
-import org.apache.http.impl.client.*;
-
-/**
- * Redirect strategy that allows for redirects on any request type, not just <code>GET</code> or <code>HEAD</code>.
- * <p>
- * Note:  This class is similar to <code>org.apache.http.impl.client.LaxRedirectStrategy</code>
- * 	in Apache HttpClient 4.2, but also allows for redirects on <code>PUTs</code> and <code>DELETEs</code>.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class AllowAllRedirects extends DefaultRedirectStrategy {
-
-   @Override /* DefaultRedirectStrategy */
-   protected boolean isRedirectable(final String method) {
-   	return true;
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/DateHeader.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/DateHeader.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/DateHeader.java
deleted file mode 100755
index 47247d5..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/DateHeader.java
+++ /dev/null
@@ -1,39 +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.client;
-
-import java.util.*;
-
-import org.apache.http.client.utils.*;
-import org.apache.http.message.*;
-
-/**
- * Convenience class for setting date headers in RFC2616 format.
- * <p>
- * Equivalent to the following code:
- * <p class='bcode'>
- * 	Header h = <jk>new</jk> Header(name, DateUtils.<jsm>formatDate</jsm>(value));
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class DateHeader extends BasicHeader {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Creates a date request property in RFC2616 format.
-	 *
-	 * @param name The header name.
-	 * @param value The header value.
-	 */
-	public DateHeader(String name, Date value) {
-		super(name, DateUtils.formatDate(value));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/HttpMethod.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/HttpMethod.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/HttpMethod.java
deleted file mode 100755
index 773ada1..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/HttpMethod.java
+++ /dev/null
@@ -1,60 +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.client;
-
-/**
- * Enumeration of HTTP methods.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public enum HttpMethod {
-
-	/** HTTP GET */
-	GET(false),
-
-	/** HTTP PUT */
-	PUT(true),
-
-	/** HTTP POST */
-	POST(true),
-
-	/** HTTP DELETE */
-	DELETE(false),
-
-	/** HTTP OPTIONS */
-	OPTIONS(false),
-
-	/** HTTP HEAD */
-	HEAD(false),
-
-	/** HTTP TRACE */
-	TRACE(false),
-
-	/** HTTP CONNECT */
-	CONNECT(false),
-
-	/** HTTP MOVE */
-	MOVE(false);
-
-	private boolean hasContent;
-
-	HttpMethod(boolean hasContent) {
-		this.hasContent = hasContent;
-	}
-
-	/**
-	 * Returns whether this HTTP method normally has content.
-	 *
-	 * @return <jk>true</jk> if this HTTP method normally has content.
-	 */
-	public boolean hasContent() {
-		return hasContent;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/NameValuePairs.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/NameValuePairs.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/NameValuePairs.java
deleted file mode 100755
index 9e6e65b..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/NameValuePairs.java
+++ /dev/null
@@ -1,44 +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.client;
-
-import java.util.*;
-
-import org.apache.http.*;
-import org.apache.http.client.entity.*;
-
-/**
- * Convenience class for constructing instances of <code>List&lt;NameValuePair&gt;</code>
- * 	for the {@link UrlEncodedFormEntity} class.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	NameValuePairs params = <jk>new</jk> NameValuePairs()
- * 		.append(<jk>new</jk> BasicNameValuePair(<js>"j_username"</js>, user))
- * 		.append(<jk>new</jk> BasicNameValuePair(<js>"j_password"</js>, pw));
- * 	request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class NameValuePairs extends LinkedList<NameValuePair> {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Appends the specified pair to the end of this list.
-	 *
-	 * @param pair The pair to append to this list.
-	 * @return This object (for method chaining).
-	 */
-	public NameValuePairs append(NameValuePair pair) {
-		super.add(pair);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/ResponsePattern.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/ResponsePattern.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/ResponsePattern.java
deleted file mode 100755
index a10e939..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/ResponsePattern.java
+++ /dev/null
@@ -1,134 +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.client;
-
-import java.io.*;
-import java.util.regex.*;
-
-/**
- * Used to find regular expression matches in REST responses made through {@link RestCall}.
- * <p>
- * Response patterns are applied to REST calls through the {@link RestCall#addResponsePattern(ResponsePattern)} method.
- * <p>
- * <h6 class='topic'>Example</h6>
- * This example shows how to use a response pattern finder to find and capture patterns for <js>"x=number"</js> and <js>"y=string"</js>
- * 	from a response body.
- * <p>
- * <p class='bcode'>
- * 	<jk>final</jk> List&lt;Number&gt; xList = <jk>new</jk> ArrayList&lt;Number&gt;();
- * 	<jk>final</jk> List&lt;String&gt; yList = <jk>new</jk> ArrayList&lt;String&gt;();
- *
- * 	restClient.doGet(<jsf>URL</jsf>)
- * 		.addResponsePattern(
- * 			<jk>new</jk> ResponsePattern(<js>"x=(\\d+)"</js>) {
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
- * 					xList.add(Integer.<jsm>parseInt</jsm>(m.group(1)));
- * 				}
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
- * 					<jk>throw new</jk> RestCallException(<js>"No X's found!"</js>);
- * 				}
- * 			}
- * 		)
- * 		.addResponsePattern(
- * 			<jk>new</jk> ResponsePattern(<js>"y=(\\S+)"</js>) {
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
- * 					yList.add(m.group(1));
- * 				}
- * 				<ja>@Override</ja>
- * 				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
- * 					<jk>throw new</jk> RestCallException(<js>"No Y's found!"</js>);
- * 				}
- * 			}
- * 		)
- * 		.run();
- * </p>
- * <p>
- * <h5 class='notes'>Important Notes:</h5>
- * <ol class='notes'>
- * 	<li><p>
- * 		Using response patterns does not affect the functionality of any of the other methods
- * 		used to retrieve the response such as {@link RestCall#getResponseAsString()} or {@link RestCall#getResponse(Class)}.<br>
- * 		HOWEVER, if you want to retrieve the entire text of the response from inside the match methods,
- * 		use {@link RestCall#getCapturedResponse()} since this method will not absorb the response for those other methods.
- * 	</p>
- * 	<li><p>
- * 		Response pattern methods are NOT executed if a REST exception occurs during the request.
- * 	</p>
- * 	<li><p>
- * 		The {@link RestCall#successPattern(String)} and {@link RestCall#failurePattern(String)} methods use instances of
- * 		this class to throw {@link RestCallException RestCallExceptions} when success patterns are not found or failure patterns
- * 		are found.
- * 	</p>
- * 	<li><p>
- * 		{@link ResponsePattern} objects are reusable and thread-safe.
- * 	</p>
- * </ol>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class ResponsePattern {
-
-	private Pattern pattern;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param pattern Regular expression pattern.
-	 */
-	public ResponsePattern(String pattern) {
-		this.pattern = Pattern.compile(pattern);
-	}
-
-	void match(RestCall rc) throws RestCallException {
-		try {
-			Matcher m = pattern.matcher(rc.getCapturedResponse());
-			boolean found = false;
-			while (m.find()) {
-				onMatch(rc, m);
-				found = true;
-			}
-			if (! found)
-				onNoMatch(rc);
-		} catch (IOException e) {
-			throw new RestCallException(e);
-		}
-	}
-
-	/**
-	 * Returns the pattern passed in through the constructor.
-	 *
-	 * @return The pattern passed in through the constructor.
-	 */
-	protected String getPattern() {
-		return pattern.pattern();
-	}
-
-	/**
-	 * Instances can override this method to handle when a regular expression pattern matches
-	 * 	on the output.
-	 * <p>
-	 * This method is called once for every pattern match that occurs in the response text.
-	 *
-	 * @param rc The {@link RestCall} that this pattern finder is being used on.
-	 * @param m The regular expression {@link Matcher}.  Can be used to retrieve group matches in the pattern.
-	 * @throws RestCallException Instances can throw an exception if a failure condition is detected.
-	 */
-	public void onMatch(RestCall rc, Matcher m) throws RestCallException {}
-
-	/**
-	 * Instances can override this method to handle when a regular expression pattern doesn't match on the output.
-	 *
-	 * @param rc The {@link RestCall} that this pattern finder is being used on.
-	 * @throws RestCallException Instances can throw an exception if a failure condition is detected.
-	 */
-	public void onNoMatch(RestCall rc) throws RestCallException {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCall.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCall.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCall.java
deleted file mode 100755
index b743965..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCall.java
+++ /dev/null
@@ -1,944 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2016. 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.client;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.logging.*;
-import java.util.regex.*;
-
-import org.apache.http.*;
-import org.apache.http.client.*;
-import org.apache.http.client.config.*;
-import org.apache.http.client.methods.*;
-import org.apache.http.impl.client.*;
-import org.apache.http.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.encoders.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.parser.ParseException;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Represents a connection to a remote REST resource.
- * <p>
- * 	Instances of this class are created by the various {@code doX()} methods on the {@link RestClient} class.
- * <p>
- * 	This class uses only Java standard APIs.  Requests can be built up using a fluent interface with method chaining, like so...
- *
- * <p class='bcode'>
- * 	RestClient client = <jk>new</jk> RestClient();
- * 	RestCall c = client.doPost(<jsf>URL</jsf>).setInput(o).setHeader(x,y);
- * 	MyBean b = c.getResponse(MyBean.<jk>class</jk>);
- * </p>
- * <p>
- * 	The actual connection and request/response transaction occurs when calling one of the <code>getResponseXXX()</code> methods.
- *
- * <h6 class='topic'>Additional Information</h6>
- * <ul>
- * 	<li><a class='doclink' href='package-summary.html#RestClient'>com.ibm.juno.client &gt; REST client API</a> for more information and code examples.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RestCall {
-
-	private final RestClient client;                       // The client that created this call.
-	private final HttpRequestBase request;                 // The request.
-	private HttpResponse response;                         // The response.
-	private List<RestCallInterceptor> interceptors = new ArrayList<RestCallInterceptor>();               // Used for intercepting and altering requests.
-
-	private boolean isConnected = false;                   // connect() has been called.
-	private boolean allowRedirectsOnPosts;
-	private int retries = 1;
-	private int redirectOnPostsTries = 5;
-	private long retryInterval = -1;
-	private RetryOn retryOn = RetryOn.DEFAULT;
-	private boolean ignoreErrors;
-	private boolean byLines = false;
-	private TeeWriter writers = new TeeWriter();
-	private StringWriter capturedResponseWriter;
-	private String capturedResponse;
-	private TeeOutputStream outputStreams = new TeeOutputStream();
-	private boolean isClosed = false;
-	private boolean isFailed = false;
-
-	/**
-	 * Constructs a REST call with the specified method name.
-	 *
-	 * @param client The client that created this request.
-	 * @param request The wrapped Apache HTTP client request object.
-	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
-	 */
-	protected RestCall(RestClient client, HttpRequestBase request) throws RestCallException {
-		this.client = client;
-		this.request = request;
-		for (RestCallInterceptor i : this.client.interceptors)
-			addInterceptor(i);
-	}
-
-	/**
-	 * Sets the input for this REST call.
-	 *
-	 * @param input The input to be sent to the REST resource (only valid for PUT and POST) requests. <br>
-	 * 	Can be of the following types:
-	 * 	<ul>
-	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
-	 * 		<li>{@link HttpEntity} - Bypass Juno serialization and pass HttpEntity directly to HttpClient.
-	 * 	</ul>
-	 * @return This object (for method chaining).
-	 * @throws RestCallException If a retry was attempted, but the entity was not repeatable.
-	 */
-	public RestCall setInput(final Object input) throws RestCallException {
-		if (! (request instanceof HttpEntityEnclosingRequestBase))
-			throw new RestCallException(0, "Method does not support content entity.", request.getMethod(), request.getURI(), null);
-		HttpEntity entity = (input instanceof HttpEntity ? (HttpEntity)input : new RestRequestEntity(input, client.serializer));
-		((HttpEntityEnclosingRequestBase)request).setEntity(entity);
-		if (retries > 1 && ! entity.isRepeatable())
-			throw new RestCallException("Rest call set to retryable, but entity is not repeatable.");
-		return this;
-	}
-
-	/**
-	 * Convenience method for setting a header value on the request.
-	 * <p>
-	 * Equivalent to calling <code>restCall.getRequest().setHeader(name, value.toString())</code>.
-	 *
-	 * @param name The header name.
-	 * @param value The header value.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall setHeader(String name, Object value) {
-		request.setHeader(name, value.toString());
-		return this;
-	}
-
-	/**
-	 * Make this call retryable if an error response (>=400) is received.
-	 *
-	 * @param retries The number of retries to attempt.
-	 * @param interval The time in milliseconds between attempts.
-	 * @param retryOn Optional object used for determining whether a retry should be attempted.
-	 * 	If <jk>null</jk>, uses {@link RetryOn#DEFAULT}.
-	 * @return This object (for method chaining).
-	 * @throws RestCallException If current entity is not repeatable.
-	 */
-	public RestCall setRetryable(int retries, long interval, RetryOn retryOn) throws RestCallException {
-		if (request instanceof HttpEntityEnclosingRequestBase) {
-		HttpEntity e = ((HttpEntityEnclosingRequestBase)request).getEntity();
-		if (e != null && ! e.isRepeatable())
-			throw new RestCallException("Attempt to make call retryable, but entity is not repeatable.");
-		}
-		this.retries = retries;
-		this.retryInterval = interval;
-		this.retryOn = (retryOn == null ? RetryOn.DEFAULT : retryOn);
-		return this;
-
-	}
-
-	/**
-	 * For this call, allow automatic redirects when a 302 or 307 occurs when
-	 * 	performing a POST.
-	 * <p>
-	 * Note that this can be inefficient since the POST body needs to be serialized
-	 * 	twice.
-	 * The preferred approach if possible is to use the {@link LaxRedirectStrategy} strategy
-	 * 	on the underlying HTTP client.  However, this method is provided if you don't
-	 * 	have access to the underlying client.
-	 *
-	 * @param b Redirect flag.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall allowRedirectsOnPosts(boolean b) {
-		this.allowRedirectsOnPosts = b;
-		return this;
-	}
-
-	/**
-	 * Specify the number of redirects to follow before throwing an exception.
-	 *
-	 * @param maxAttempts Allow a redirect to occur this number of times.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall setRedirectMaxAttempts(int maxAttempts) {
-		this.redirectOnPostsTries = maxAttempts;
-		return this;
-	}
-
-	/**
-	 * Add an interceptor for this call only.
-	 *
-	 * @param interceptor The interceptor to add to this call.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall addInterceptor(RestCallInterceptor interceptor) {
-		interceptors.add(interceptor);
-		interceptor.onInit(this);
-		return this;
-	}
-
-	/**
-	 * Pipes the request output to the specified writer when {@link #run()} is called.
-	 * <p>
-	 * The writer is not closed.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple writers.
-	 *
-	 * @param w The writer to pipe the output to.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(Writer w) {
-		return pipeTo(w, false);
-	}
-
-	/**
-	 * Pipe output from response to the specified writer when {@link #run()} is called.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple writers.
-	 *
-	 * @param w The writer to write the output to.
-	 * @param close Close the writer when {@link #close()} is called.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(Writer w, boolean close) {
-		return pipeTo(null, w, close);
-	}
-
-	/**
-	 * Pipe output from response to the specified writer when {@link #run()} is called and associate
-	 * that writer with an ID so it can be retrieved through {@link #getWriter(String)}.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple writers.
-	 *
-	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
-	 * @param w The writer to write the output to.
-	 * @param close Close the writer when {@link #close()} is called.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(String id, Writer w, boolean close) {
-		writers.add(id, w, close);
-		return this;
-	}
-
-	/**
-	 * Retrieves a writer associated with an ID via {@link #pipeTo(String, Writer, boolean)}
-	 *
-	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
-	 * @return The writer, or <jk>null</jk> if no writer is associated with that ID.
-	 */
-	public Writer getWriter(String id) {
-		return writers.getWriter(id);
-	}
-
-	/**
-	 * When output is piped to writers, flush the writers after every line of output.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public RestCall byLines() {
-		this.byLines = true;
-		return this;
-	}
-
-	/**
-	 * Pipes the request output to the specified output stream when {@link #run()} is called.
-	 * <p>
-	 * The output stream is not closed.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple output streams.
-	 *
-	 * @param os The output stream to pipe the output to.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(OutputStream os) {
-		return pipeTo(os, false);
-	}
-
-	/**
-	 * Pipe output from response to the specified output stream when {@link #run()} is called.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple output stream.
-	 *
-	 * @param os The output stream to write the output to.
-	 * @param close Close the output stream when {@link #close()} is called.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(OutputStream os, boolean close) {
-		return pipeTo(null, os, close);
-	}
-
-	/**
-	 * Pipe output from response to the specified output stream when {@link #run()} is called and associate
-	 * that output stream with an ID so it can be retrieved through {@link #getOutputStream(String)}.
-	 * <p>
-	 * This method can be called multiple times to pipe to multiple output stream.
-	 *
-	 * @param id A string identifier that can be used to retrieve the output stream using {@link #getOutputStream(String)}
-	 * @param os The output stream to write the output to.
-	 * @param close Close the output stream when {@link #close()} is called.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall pipeTo(String id, OutputStream os, boolean close) {
-		outputStreams.add(id, os, close);
-		return this;
-	}
-
-	/**
-	 * Retrieves an output stream associated with an ID via {@link #pipeTo(String, OutputStream, boolean)}
-	 *
-	 * @param id A string identifier that can be used to retrieve the writer using {@link #getWriter(String)}
-	 * @return The writer, or <jk>null</jk> if no writer is associated with that ID.
-	 */
-	public OutputStream getOutputStream(String id) {
-		return outputStreams.getOutputStream(id);
-	}
-
-	/**
-	 * Prevent {@link RestCallException RestCallExceptions} from being thrown when HTTP status 400+ is encountered.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall ignoreErrors() {
-		this.ignoreErrors = true;
-		return this;
-	}
-
-	/**
-	 * Stores the response text so that it can later be captured using {@link #getCapturedResponse()}.
-	 * <p>
-	 * This method should only be called once.  Multiple calls to this method are ignored.
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public RestCall captureResponse() {
-		if (capturedResponseWriter == null) {
-			capturedResponseWriter = new StringWriter();
-			writers.add(capturedResponseWriter, false);
-		}
-		return this;
-	}
-
-
-	/**
-	 * Look for the specified regular expression pattern in the response output.
-	 * <p>
-	 * Causes a {@link RestCallException} to be thrown if the specified pattern is found in the output.
-	 * <p>
-	 * This method uses {@link #getCapturedResponse()} to read the response text and so does not affect the other output
-	 * 	methods such as {@link #getResponseAsString()}.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Throw a RestCallException if FAILURE or ERROR is found in the output.</jc>
-	 * 	restClient.doGet(<jsf>URL</jsf>)
-	 * 		.failurePattern(<js>"FAILURE|ERROR"</js>)
-	 * 		.run();
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param errorPattern A regular expression to look for in the response output.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall failurePattern(final String errorPattern) {
-		addResponsePattern(
-			new ResponsePattern(errorPattern) {
-				@Override
-				public void onMatch(RestCall rc, Matcher m) throws RestCallException {
-					throw new RestCallException("Failure pattern detected.");
-				}
-			}
-		);
-		return this;
-	}
-
-	/**
-	 * Look for the specified regular expression pattern in the response output.
-	 * <p>
-	 * Causes a {@link RestCallException} to be thrown if the specified pattern is not found in the output.
-	 * <p>
-	 * This method uses {@link #getCapturedResponse()} to read the response text and so does not affect the other output
-	 * 	methods such as {@link #getResponseAsString()}.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Throw a RestCallException if SUCCESS is not found in the output.</jc>
-	 * 	restClient.doGet(<jsf>URL</jsf>)
-	 * 		.successPattern(<js>"SUCCESS"</js>)
-	 * 		.run();
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param successPattern A regular expression to look for in the response output.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall successPattern(String successPattern) {
-		addResponsePattern(
-			new ResponsePattern(successPattern) {
-				@Override
-				public void onNoMatch(RestCall rc) throws RestCallException {
-					throw new RestCallException("Success pattern not detected.");
-				}
-			}
-		);
-		return this;
-	}
-
-	/**
-	 * Adds a response pattern finder to look for regular expression matches in the response output.
-	 * <p>
-	 * This method can be called multiple times to add multiple response pattern finders.
-	 * <p>
-	 * {@link ResponsePattern ResponsePatterns} use the {@link #getCapturedResponse()} to read the response text and so does not affect the other output
-	 * 	methods such as {@link #getResponseAsString()}.
-	 *
-	 * @param responsePattern The response pattern finder.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall addResponsePattern(final ResponsePattern responsePattern) {
-		captureResponse();
-		addInterceptor(
-			new RestCallInterceptor() {
-				@Override
-				public void onClose(RestCall restCall) throws RestCallException {
-					responsePattern.match(RestCall.this);
-				}
-			}
-		);
-		return this;
-	}
-
-	/**
-	 * Set configuration settings on this request.
-	 * <p>
-	 * Use {@link RequestConfig#custom()} to create configuration parameters for the request.
-	 *
-	 * @param config The new configuration settings for this request.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall setConfig(RequestConfig config) {
-		this.request.setConfig(config);
-		return this;
-	}
-
-	/**
-	 * @return The HTTP response code.
-	 * @throws RestCallException
-	 * @deprecated Use {@link #run()}.
-	 */
-	@Deprecated
-	public int execute() throws RestCallException {
-		return run();
-	}
-
-	/**
-	 * Method used to execute an HTTP response where you're only interested in the HTTP response code.
-	 * <p>
-	 * The response entity is discarded unless one of the pipe methods have been specified to pipe the
-	 * 	 output to an output stream or writer.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jk>try</jk> {
-	 * 		RestClient client = <jk>new</jk> RestClient();
-	 * 		<jk>int</jk> rc = client.doGet(url).execute();
-	 * 		<jc>// Succeeded!</jc>
-	 * 	} <jk>catch</jk> (RestCallException e) {
-	 * 		<jc>// Failed!</jc>
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @return This object (for method chaining).
-	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
-	 */
-	public int run() throws RestCallException {
-		connect();
-		try {
-			StatusLine status = response.getStatusLine();
-			int sc = status.getStatusCode();
-			if (sc >= 400 && ! ignoreErrors)
-				throw new RestCallException(sc, status.getReasonPhrase(), request.getMethod(), request.getURI(), getResponseAsString()).setHttpResponse(response);
-			if (outputStreams.size() > 0 || writers.size() > 0)
-				getReader();
-			return sc;
-		} catch (RestCallException e) {
-			isFailed = true;
-			throw e;
-		} catch (IOException e) {
-			isFailed = true;
-			throw new RestCallException(e).setHttpResponse(response);
-		} finally {
-			close();
-		}
-	}
-
-	/**
-	 * Connects to the REST resource.
-	 * <p>
-	 * 	If this is a <code>PUT</code> or <code>POST</code>, also sends the input to the remote resource.<br>
-	 * <p>
-	 * 	Typically, you would only call this method if you're not interested in retrieving the body of the HTTP response.
-	 * 	Otherwise, you're better off just calling one of the {@link #getReader()}/{@link #getResponse(Class)}/{@link #pipeTo(Writer)}
-	 * 	methods directly which automatically call this method already.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws RestCallException If an exception or <code>400+</code> HTTP status code occurred during the connection attempt.
-	 */
-	public RestCall connect() throws RestCallException {
-
-		if (isConnected)
-			return this;
-		isConnected = true;
-
-		try {
-			int sc = 0;
-			while (retries > 0) {
-				retries--;
-				Exception ex = null;
-				try {
-			response = client.execute(request);
-					sc = (response == null || response.getStatusLine() == null) ? -1 : response.getStatusLine().getStatusCode();
-				} catch (Exception e) {
-					ex = e;
-					sc = -1;
-					if (response != null)
-						EntityUtils.consumeQuietly(response.getEntity());
-				}
-				if (! retryOn.onCode(sc))
-					retries = 0;
-				if (retries > 0) {
-					for (RestCallInterceptor rci : interceptors)
-						rci.onRetry(this, sc, request, response, ex);
-					request.reset();
-					long w = retryInterval;
-					synchronized(this) {
-						wait(w);
-					}
-				} else if (ex != null) {
-					throw ex;
-				}
-			}
-			for (RestCallInterceptor rci : interceptors)
-				rci.onConnect(this, sc, request, response);
-			if (response == null)
-				throw new RestCallException("HttpClient returned a null response");
-			StatusLine sl = response.getStatusLine();
-			String method = request.getMethod();
-			sc = sl.getStatusCode(); // Read it again in case it was changed by one of the interceptors.
-			if (sc >= 400 && ! ignoreErrors)
-				throw new RestCallException(sc, sl.getReasonPhrase(), method, request.getURI(), getResponseAsString()).setHttpResponse(response);
-			if ((sc == 307 || sc == 302) && allowRedirectsOnPosts && method.equalsIgnoreCase("POST")) {
-				if (redirectOnPostsTries-- < 1)
-					throw new RestCallException(sc, "Maximum number of redirects occurred.  Location header: " + response.getFirstHeader("Location"), method, request.getURI(), getResponseAsString());
-				Header h = response.getFirstHeader("Location");
-				if (h != null) {
-					reset();
-					request.setURI(URI.create(h.getValue()));
-					retries++;  // Redirects should affect retries.
-					connect();
-				}
-			}
-
-		} catch (RestCallException e) {
-			isFailed = true;
-			try {
-			close();
-			} catch (RestCallException e2) { /* Ignore */ }
-			throw e;
-		} catch (Exception e) {
-			isFailed = true;
-			close();
-			throw new RestCallException(e).setHttpResponse(response);
-		}
-
-		return this;
-	}
-
-	private void reset() {
-		if (response != null)
-			EntityUtils.consumeQuietly(response.getEntity());
-		request.reset();
-		isConnected = false;
-		isClosed = false;
-		isFailed = false;
-		if (capturedResponseWriter != null)
-			capturedResponseWriter.getBuffer().setLength(0);
-	}
-
-	/**
-	 * Connects to the remote resource (if <code>connect()</code> hasn't already been called) and returns the HTTP response message body as a reader.
-	 * <p>
-	 * 	If an {@link Encoder} has been registered with the {@link RestClient}, then the underlying input stream
-	 * 		will be wrapped in the encoded stream (e.g. a <code>GZIPInputStream</code>).
-	 * <p>
-	 * 	If present, automatically handles the <code>charset</code> value in the <code>Content-Type</code> response header.
-	 * <p>
-	 * 	<b>IMPORTANT:</b>  It is your responsibility to close this reader once you have finished with it.
-	 *
-	 * @return The HTTP response message body reader.  <jk>null</jk> if response was successful but didn't contain a body (e.g. HTTP 204).
-	 * @throws IOException If an exception occurred while streaming was already occurring.
-	 */
-	public Reader getReader() throws IOException {
-		InputStream is = getInputStream();
-		if (is == null)
-			return null;
-
-		// Figure out what the charset of the response is.
-		String cs = null;
-		Header contentType = response.getLastHeader("Content-Type");
-		String ct = contentType == null ? null : contentType.getValue();
-
-		// First look for "charset=" in Content-Type header of response.
-		if (ct != null && ct.contains("charset="))
-			cs = ct.substring(ct.indexOf("charset=")+8).trim();
-
-		if (cs == null)
-			cs = "UTF-8";
-
-		Reader isr = new InputStreamReader(is, cs);
-
-		if (writers.size() > 0) {
-			StringWriter sw = new StringWriter();
-			writers.add(sw, true);
-			IOPipe.create(isr, writers).byLines(byLines).run();
-			return new StringReader(sw.toString());
-		}
-
-		return new InputStreamReader(is, cs);
-	}
-
-	/**
-	 * Returns the response text as a string if {@link #captureResponse()} was called on this object.
-	 * <p>
-	 * Note that while similar to {@link #getResponseAsString()}, this method can be called multiple times
-	 * 	to retrieve the response text multiple times.
-	 * <p>
-	 * Note that this method returns <jk>null</jk> if you have not called one of the methods that cause
-	 * 	the response to be processed.  (e.g. {@link #run()}, {@link #getResponse()}, {@link #getResponseAsString()}.
-	 *
-	 * @return The captured response, or <jk>null</jk> if {@link #captureResponse()} has not been called.
-	 * @throws IllegalStateException If trying to call this method before the response is consumed.
-	 */
-	public String getCapturedResponse() {
-		if (! isClosed)
-			throw new IllegalStateException("This method cannot be called until the response has been consumed.");
-		if (capturedResponse == null && capturedResponseWriter != null && capturedResponseWriter.getBuffer().length() > 0)
-			capturedResponse = capturedResponseWriter.toString();
-		return capturedResponse;
-	}
-
-	/**
-	 * Returns the parser specified on the client to use for parsing HTTP response bodies.
-	 *
-	 * @return The parser.
-	 * @throws RestCallException If no parser was defined on the client.
-	 */
-	protected Parser<?> getParser() throws RestCallException {
-		if (client.parser == null)
-			throw new RestCallException(0, "No parser defined on client", request.getMethod(), request.getURI(), null);
-		return client.parser;
-	}
-
-	/**
-	 * Returns the serializer specified on the client to use for serializing HTTP request bodies.
-	 *
-	 * @return The serializer.
-	 * @throws RestCallException If no serializer was defined on the client.
-	 */
-	protected Serializer<?> getSerializer() throws RestCallException {
-		if (client.serializer == null)
-			throw new RestCallException(0, "No serializer defined on client", request.getMethod(), request.getURI(), null);
-		return client.serializer;
-	}
-
-	/**
-	 * Returns the value of the <code>Content-Length</code> header.
-	 *
-	 * @return The value of the <code>Content-Length</code> header, or <code>-1</code> if header is not present.
-	 * @throws IOException
-	 */
-	public int getContentLength() throws IOException {
-		connect();
-		Header h = response.getLastHeader("Content-Length");
-		if (h == null)
-			return -1;
-		long l = Long.parseLong(h.getValue());
-		if (l > Integer.MAX_VALUE)
-			return Integer.MAX_VALUE;
-		return (int)l;
-	}
-
-	/**
-	 * Connects to the remote resource (if <code>connect()</code> hasn't already been called) and returns the HTTP response message body as an input stream.
-	 * <p>
-	 * 	If an {@link Encoder} has been registered with the {@link RestClient}, then the underlying input stream
-	 * 		will be wrapped in the encoded stream (e.g. a <code>GZIPInputStream</code>).
-	 * <p>
-	 * 	<b>IMPORTANT:</b>  It is your responsibility to close this reader once you have finished with it.
-	 *
-	 * @return The HTTP response message body input stream. <jk>null</jk> if response was successful but didn't contain a body (e.g. HTTP 204).
-	 * @throws IOException If an exception occurred while streaming was already occurring.
-	 * @throws IllegalStateException If an attempt is made to read the response more than once.
-	 */
-	public InputStream getInputStream() throws IOException {
-		if (isClosed)
-			throw new IllegalStateException("Method cannot be called.  Response has already been consumed.");
-		connect();
-		if (response == null)
-			throw new RestCallException("Response was null");
-		if (response.getEntity() == null)  // HTTP 204 results in no content.
-			return null;
-		InputStream is = response.getEntity().getContent();
-
-		if (outputStreams.size() > 0) {
-			ByteArrayInOutStream baios = new ByteArrayInOutStream();
-			outputStreams.add(baios, true);
-			IOPipe.create(is, baios).run();
-			return baios.getInputStream();
-		}
-		return is;
-	}
-
-	/**
-	 * Connects to the remote resource (if {@code connect()} hasn't already been called) and returns the HTTP response message body as plain text.
-	 *
-	 * @return The response as a string.
-	 * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.
-	 * @throws IOException If an exception occurred while streaming was already occurring.
-	 */
-	public String getResponseAsString() throws IOException {
-		try {
-			Reader r = getReader();
-			String s = IOUtils.read(r).toString();
-			return s;
-		} catch (IOException e) {
-			isFailed = true;
-			throw e;
-		} finally {
-			close();
-		}
-	}
-
-	/**
-	 * Converts the output from the connection into an object of the specified class using the registered {@link Parser}.
-	 *
-	 * @param type The class to convert the input to.
-	 * @param <T> The class to convert the input to.
-	 * @return The parsed output.
-	 * @throws IOException If a connection error occurred.
-	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
-	 */
-	public <T> T getResponse(Class<T> type) throws IOException, ParseException {
-		BeanContext bc = getParser().getBeanContext();
-		if (bc == null)
-			bc = BeanContext.DEFAULT;
-		return getResponse(bc.getClassMeta(type));
-	}
-
-	/**
-	 * Parses the output from the connection into the specified type and then wraps that in a {@link PojoRest}.
-	 * <p>
-	 * Useful if you want to quickly retrieve a single value from inside of a larger JSON document.
-	 *
-	 * @param innerType The class type of the POJO being wrapped.
-	 * @return The parsed output wapped in a {@link PojoRest}.
-	 * @throws IOException If a connection error occurred.
-	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
-	 */
-	public PojoRest getResponsePojoRest(Class<?> innerType) throws IOException, ParseException {
-		return new PojoRest(getResponse(innerType));
-	}
-
-	/**
-	 * Converts the output from the connection into an {@link ObjectMap} and then wraps that in a {@link PojoRest}.
-	 * <p>
-	 * Useful if you want to quickly retrieve a single value from inside of a larger JSON document.
-	 *
-	 * @return The parsed output wapped in a {@link PojoRest}.
-	 * @throws IOException If a connection error occurred.
-	 * @throws ParseException If the input contains a syntax error or is malformed for the <code>Content-Type</code> header.
-	 */
-	public PojoRest getResponsePojoRest() throws IOException, ParseException {
-		return getResponsePojoRest(ObjectMap.class);
-	}
-
-	/**
-	 * Convenience method when you want to parse into a Map&lt;K,V&gt; object.
-	 * 
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	Map&lt;String,MyBean&gt; m = client.doGet(url).getResponseMap(LinkedHashMap.<jk>class</jk>, String.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 * </p>
-	 * 		<p>
-	 * A simpler approach is often to just extend the map class you want and just use the normal {@link #getResponse(Class)} method:
-	 * 		</p>
-	 * <p class='bcode'>
-	 * 	<jk>public static class</jk> MyMap <jk>extends</jk> LinkedHashMap&lt;String,MyBean&gt; {}
-	 *
-	 * 	Map&lt;String,MyBean&gt; m = client.doGet(url).getResponse(MyMap.<jk>class</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param mapClass The map class to use (e.g. <code>TreeMap</code>)
-	 * @param keyClass The class type of the keys (e.g. <code>String</code>)
-	 * @param valueClass The class type of the values (e.g. <code>MyBean</code>)
-	 * @return The response parsed as a map.
-	 * @throws ParseException
-	 * @throws IOException
-	 */
-	public final <K,V,T extends Map<K,V>> T getResponseMap(Class<T> mapClass, Class<K> keyClass, Class<V> valueClass) throws ParseException, IOException {
-		ClassMeta<T> cm = getBeanContext().getMapClassMeta(mapClass, keyClass, valueClass);
-		return getResponse(cm);
-	}
-
-	/**
-	 * Convenience method when you want to parse into a Collection&lt;E&gt; object.
-	 * 
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	List&lt;MyBean&gt; l = client.doGet(url).getResponseCollection(LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
-	 * </p>
-	 * 		<p>
-	 * 			A simpler approach is often to just extend the collection class you want and just use the normal {@link #getResponse(Class)} method:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<jk>public static class</jk> MyList <jk>extends</jk> LinkedList&lt;MyBean&gt; {}
-	 *
-	 * 	List&lt;MyBean&gt; l = client.doGet(url).getResponse(MyList.<jk>class</jk>);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param collectionClass The collection class to use (e.g. <code>LinkedList</code>)
-	 * @param entryClass The class type of the values (e.g. <code>MyBean</code>)
-	 * @return The response parsed as a collection.
-	 * @throws ParseException
-	 * @throws IOException
-	 */
-	public final <E,T extends Collection<E>> T getResponseCollection(Class<T> collectionClass, Class<E> entryClass) throws ParseException, IOException {
-		ClassMeta<T> cm = getBeanContext().getCollectionClassMeta(collectionClass, entryClass);
-		return getResponse(cm);
-	}
-
-	<T> T getResponse(ClassMeta<T> type) throws IOException, ParseException {
-		try {
-		Parser<?> p = getParser();
-		T o = null;
-		int contentLength = getContentLength();
-			if (! p.isReaderParser()) {
-			InputStream is = getInputStream();
-			o = ((InputStreamParser)p).parse(is, contentLength, type);
-		} else {
-			Reader r = getReader();
-			o = ((ReaderParser)p).parse(r, contentLength, type);
-			}
-		return o;
-		} catch (ParseException e) {
-			isFailed = true;
-			throw e;
-		} catch (IOException e) {
-			isFailed = true;
-			throw e;
-		} finally {
-			close();
-		}
-	}
-
-	BeanContext getBeanContext() throws RestCallException {
-		BeanContext bc = getParser().getBeanContext();
-		if (bc == null)
-			bc = BeanContext.DEFAULT;
-		return bc;
-	}
-
-	/**
-	 * Returns access to the {@link HttpUriRequest} passed to {@link HttpClient#execute(HttpUriRequest)}.
-	 *
-	 * @return The {@link HttpUriRequest} object.
-	 */
-	public HttpUriRequest getRequest() {
-		return request;
-	}
-
-	/**
-	 * Returns access to the {@link HttpResponse} returned by {@link HttpClient#execute(HttpUriRequest)}.
-	 * Returns <jk>null</jk> if {@link #connect()} has not yet been called.
-	 *
-	 * @return The HTTP response object.
-	 * @throws IOException
-	 */
-	public HttpResponse getResponse() throws IOException {
-		connect();
-		return response;
-	}
-
-	/**
-	 * Shortcut for calling <code>getRequest().setHeader(header)</code>
-	 *
-	 * @param header The header to set on the request.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall setHeader(Header header) {
-		request.setHeader(header);
-		return this;
-	}
-
-	/** Use close() */
-	@Deprecated
-	public void consumeResponse() {
-		if (response != null)
-			EntityUtils.consumeQuietly(response.getEntity());
-	}
-
-	/**
-	 * Cleans up this HTTP call.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws RestCallException Can be thrown by one of the {@link RestCallInterceptor#onClose(RestCall)} calls.
-	 */
-	public RestCall close() throws RestCallException {
-		if (response != null)
-			EntityUtils.consumeQuietly(response.getEntity());
-		isClosed = true;
-		if (! isFailed)
-			for (RestCallInterceptor r : interceptors)
-				r.onClose(this);
-		return this;
-	}
-
-	/**
-	 * Adds a {@link RestCallLogger} to the list of interceptors on this class.
-	 *
-	 * @param level The log level to log events at.
-	 * @param log The logger.
-	 * @return This object (for method chaining).
-	 */
-	public RestCall logTo(Level level, Logger log) {
-		addInterceptor(new RestCallLogger(level, log));
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallException.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallException.java
deleted file mode 100755
index b0129f4..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallException.java
+++ /dev/null
@@ -1,150 +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.client;
-
-import static java.lang.String.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.regex.*;
-
-import org.apache.http.*;
-import org.apache.http.client.*;
-import org.apache.http.util.*;
-
-import com.ibm.juno.core.utils.*;
-
-/**
- * Exception representing a <code>400+</code> HTTP response code against a remote resource.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RestCallException extends IOException {
-
-	private static final long serialVersionUID = 1L;
-
-	private int responseCode;
-	private String response, responseStatusMessage;
-	HttpResponseException e;
-	private HttpResponse httpResponse;
-
-
-	/**
-	 * Constructor.
-	 *
-	 * @param msg The exception message.
-	 */
-	public RestCallException(String msg) {
-		super(msg);
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param e The inner cause of the exception.
-	 */
-	public RestCallException(Exception e) {
-		super(e.getLocalizedMessage(), e);
-		if (e instanceof FileNotFoundException) {
-			responseCode = 404;
-		} else if (e.getMessage() != null) {
-			Pattern p = Pattern.compile("[^\\d](\\d{3})[^\\d]");
-			Matcher m = p.matcher(e.getMessage());
-			if (m.find())
-				responseCode = Integer.parseInt(m.group(1));
-		}
-		setStackTrace(e.getStackTrace());
-	}
-
-	/**
-	 * Create an exception with a simple message and the status code and body of the specified response.
-	 *
-	 * @param msg The exception message.
-	 * @param response The HTTP response object.
-	 * @throws ParseException
-	 * @throws IOException
-	 */
-	public RestCallException(String msg, HttpResponse response) throws ParseException, IOException {
-		super(format("%s%nstatus='%s'%nResponse: %n%s%n", msg, response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity(), IOUtils.UTF8)));
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param responseCode The response code.
-	 * @param responseMsg The response message.
-	 * @param method The HTTP method (for message purposes).
-	 * @param url The HTTP URL (for message purposes).
-	 * @param response The reponse from the server.
-	 */
-	public RestCallException(int responseCode, String responseMsg, String method, URI url, String response) {
-		super(format("HTTP method '%s' call to '%s' caused response code '%s,%s'.%nResponse: %n%s%n", method, url, responseCode, responseMsg, response));
-		this.responseCode = responseCode;
-		this.responseStatusMessage = responseMsg;
-		this.response = response;
-	}
-
-	/**
-	 * Sets the HTTP response object that caused this exception.
-	 *
-	 * @param httpResponse The HTTP respose object.
-	 * @return This object (for method chaining).
-	 */
-	protected RestCallException setHttpResponse(HttpResponse httpResponse) {
-		this.httpResponse = httpResponse;
-		return this;
-	}
-
-	/**
-	 * Returns the HTTP response object that caused this exception.
-	 *
-	 * @return The HTTP response object that caused this exception, or <jk>null</jk> if no response was created yet when the exception was thrown.
-	 */
-	public HttpResponse getHttpResponse() {
-		return this.httpResponse;
-	}
-
-	/**
-	 * Returns the HTTP response status code.
-	 *
-	 * @return The response status code.  If a connection could not be made at all, returns <code>0<code>.
-	 */
-	public int getResponseCode() {
-		return responseCode;
-	}
-
-	/**
-	 * Returns the HTTP response message body text.
-	 *
-	 * @return The response message body text.
-	 */
-	public String getResponseMessage() {
-		return response;
-	}
-
-	/**
-	 * Returns the response status message as a plain string.
-	 *
-	 * @return The response status message.
-	 */
-	public String getResponseStatusMessage() {
-		return responseStatusMessage;
-	}
-
-	/**
-	 * Sets the inner cause for this exception.
-	 * @param cause The inner cause.
-	 * @return This object (for method chaining).
-	 */
-	@Override /* Throwable */
-	public synchronized RestCallException initCause(Throwable cause) {
-		super.initCause(cause);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallInterceptor.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallInterceptor.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallInterceptor.java
deleted file mode 100755
index 52c278b..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallInterceptor.java
+++ /dev/null
@@ -1,56 +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.client;
-
-import org.apache.http.*;
-
-/**
- * Used to intercept http connection responses to allow modification of that response before processing
- * and for listening for call lifecycle events.
- * <p>
- * Useful if you want to prevent {@link RestCallException RestCallExceptions} from being thrown on error conditions.
- */
-public abstract class RestCallInterceptor {
-
-	/**
-	 * Called when {@link RestCall} object is created.
-	 *
-	 * @param restCall The restCall object invoking this method.
-	 */
-	public void onInit(RestCall restCall) {}
-
-	/**
-	 * Called immediately after an HTTP response has been received.
-	 *
-	 * @param statusCode The HTTP status code received.
-	 * @param restCall The restCall object invoking this method.
-	 * @param req The HTTP request object.
-	 * @param res The HTTP response object.
-	 */
-	public void onConnect(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res) {}
-
-	/**
-	 * Called if retry is going to be attempted.
-	 *
-	 * @param statusCode The HTTP status code received.
-	 * @param restCall The restCall object invoking this method.
-	 * @param req The HTTP request object.
-	 * @param res The HTTP response object.
-	 * @param ex The exception thrown from the client.
-	 */
-	public void onRetry(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res, Exception ex) {}
-
-	/**
-	 * Called when {@link RestCall#close()} is called.
-	 *
-	 * @param restCall The restCall object invoking this method.
-	 * @throws RestCallException
-	 */
-	public void onClose(RestCall restCall) throws RestCallException {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallLogger.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallLogger.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallLogger.java
deleted file mode 100755
index a0dc722..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/RestCallLogger.java
+++ /dev/null
@@ -1,116 +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.client;
-
-import java.io.*;
-import java.text.*;
-import java.util.logging.*;
-
-import org.apache.http.*;
-import org.apache.http.client.methods.*;
-import org.apache.http.util.*;
-
-/**
- * Specialized interceptor for logging calls to a log file.
- * <p>
- * Causes a log entry to be created that shows all the request and response headers and content
- * 	at the end of the request.
- * <p>
- * Use the {@link RestClient#logTo(Level, Logger)} and {@link RestCall#logTo(Level, Logger)}
- * <p>
- * methods to create instances of this class.
- */
-public class RestCallLogger extends RestCallInterceptor {
-
-	private Level level;
-	private Logger log;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param level The log level to log messages at.
-	 * @param log The logger to log to.
-	 */
-	protected RestCallLogger(Level level, Logger log) {
-		this.level = level;
-		this.log = log;
-	}
-
-	@Override /* RestCallInterceptor */
-	public void onInit(RestCall restCall) {
-		if (log.isLoggable(level))
-			restCall.captureResponse();
-	}
-
-	@Override /* RestCallInterceptor */
-	public void onConnect(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res) {
-		// Do nothing.
-	}
-
-	@Override /* RestCallInterceptor */
-	public void onRetry(RestCall restCall, int statusCode, HttpRequest req, HttpResponse res, Exception ex) {
-		if (log.isLoggable(level)) {
-			if (ex == null)
-			log.log(level, MessageFormat.format("Call to {0} returned {1}.  Will retry.", req.getRequestLine().getUri(), statusCode)); //$NON-NLS-1$
-			else
-				log.log(level, MessageFormat.format("Call to {0} caused exception {1}.  Will retry.", req.getRequestLine().getUri(), ex.getLocalizedMessage()), ex); //$NON-NLS-1$
-		}
-	}
-
-	@Override /* RestCallInterceptor */
-	public void onClose(RestCall restCall) throws RestCallException {
-		try {
-			if (log.isLoggable(level)) {
-				String output = restCall.getCapturedResponse();
-				StringBuilder sb = new StringBuilder();
-				HttpUriRequest req = restCall.getRequest();
-				HttpResponse res = restCall.getResponse();
-				if (req != null) {
-					sb.append("\n=== HTTP Call ==================================================================");
-
-					sb.append("\n=== REQUEST ===\n").append(req);
-					sb.append("\n---request headers---");
-					for (Header h : req.getAllHeaders())
-						sb.append("\n").append(h);
-					if (req instanceof HttpEntityEnclosingRequestBase) {
-						sb.append("\n---request entity---");
-						HttpEntityEnclosingRequestBase req2 = (HttpEntityEnclosingRequestBase)req;
-						HttpEntity e = req2.getEntity();
-						if (e == null)
-							sb.append("\nEntity is null");
-						else {
-							if (e.getContentType() != null)
-								sb.append("\n").append(e.getContentType());
-							if (e.getContentEncoding() != null)
-								sb.append("\n").append(e.getContentEncoding());
-							if (e.isRepeatable()) {
-								try {
-									sb.append("\n---request content---\n").append(EntityUtils.toString(e));
-								} catch (Exception ex) {
-									throw new RuntimeException(ex);
-								}
-							}
-						}
-					}
-				}
-				if (res != null) {
-					sb.append("\n=== RESPONSE ===\n").append(res.getStatusLine());
-					sb.append("\n---response headers---");
-					for (Header h : res.getAllHeaders())
-						sb.append("\n").append(h);
-					sb.append("\n---response content---\n").append(output);
-					sb.append("\n=== END ========================================================================");
-				}
-				log.log(level, sb.toString());
-			}
-		} catch (IOException e) {
-			log.log(Level.SEVERE, e.getLocalizedMessage(), e);
-		}
-	}
-}


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ConfigResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ConfigResource.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ConfigResource.java
deleted file mode 100755
index 5aa0049..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ConfigResource.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.microservice.resources;
-
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-import static javax.servlet.http.HttpServletResponse.*;
-import static com.ibm.juno.server.annotation.VarCategory.*;
-
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.Map;
-
-import com.ibm.juno.core.ObjectMap;
-import com.ibm.juno.core.ini.*;
-import com.ibm.juno.microservice.Resource;
-import com.ibm.juno.server.*;
-import com.ibm.juno.server.annotation.*;
-
-/**
- * Shows contents of the microservice configuration file.
- */
-@RestResource(
-	path="/config",
-	label="Configuration",
-	description="Contents of configuration file.",
-	properties={
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS',edit:'$R{servletURI}/edit'}"),
-	}
-)
-public class ConfigResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	/** 
-	 * [GET /] - Show contents of config file.
-	 *  
-	 * @return The config file.  
-	 * @throws Exception 
-	 */
-	@RestMethod(name="GET", path="/", description="Show contents of config file.")
-	public ConfigFile getConfigContents() throws Exception {
-		return getConfig();
-	}
-
-	/** 
-	 * [GET /edit] - Show config file edit page. 
-	 * 
-	 * @param req The HTTP request.
-	 * @return The config file as a reader resource.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="GET", path="/edit", description="Show config file edit page.")
-	public ReaderResource getConfigEditPage(RestRequest req) throws Exception {
-		// Note that we don't want variables in the config file to be resolved,
-		// so we need to escape any $ characters we see.
-		req.setAttribute("contents", getConfig().toString().replaceAll("\\$", "\\\\\\$"));
-		return req.getReaderResource("ConfigEdit.html", true);
-	}
-
-	/** 
-	 * [GET /{section}] - Show config file section.
-	 *  
-	 * @param section The section name. 
-	 * @return The config file section.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="GET", path="/{section}",
-		description="Show config file section.",
-		input={
-			@Var(category=ATTR, name="section", description="Section name.")
-		}
-	)
-	public ObjectMap getConfigSection(@Attr("section") String section) throws Exception {
-		return getSection(section);
-	}
-
-	/** 
-	 * [GET /{section}/{key}] - Show config file entry. 
-	 * 
-	 * @param section The section name. 
-	 * @param key The section key.
-	 * @return The value of the config file entry.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="GET", path="/{section}/{key}",
-		description="Show config file entry.",
-		input={
-			@Var(category=ATTR, name="section", description="Section name."),
-			@Var(category=ATTR, name="key", description="Entry name.")
-		}
-	)
-	public String getConfigEntry(@Attr("section") String section, @Attr("key") String key) throws Exception {
-		return getSection(section).getString(key);
-	}
-
-	/** 
-	 * [POST /] - Sets contents of config file from a FORM post. 
-	 * 
-	 * @param contents The new contents of the config file.
-	 * @return The new config file contents.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="POST", path="/",
-		description="Sets contents of config file from a FORM post.",
-		input={
-			@Var(category=PARAM, name="contents", description="New contents in INI file format.")
-		}
-	)
-	public ConfigFile setConfigContentsFormPost(@Param("contents") String contents) throws Exception {
-		return setConfigContents(new StringReader(contents));
-	}
-
-	/** 
-	 * [PUT /] - Sets contents of config file. 
-	 * 
-	 * @param contents The new contents of the config file. 
-	 * @return The new config file contents.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="PUT", path="/",
-		description="Sets contents of config file.",
-		input={
-			@Var(category=CONTENT, description="New contents in INI file format.")
-		}
-	)
-	public ConfigFile setConfigContents(@Content Reader contents) throws Exception {
-		ConfigFile cf2 = ConfigMgr.DEFAULT.create().load(contents);
-		return getConfig().merge(cf2).save();
-	}
-
-	/** 
-	 * [PUT /{section}] - Add or overwrite a config file section. 
-	 * 
-	 * @param section The section name. 
-	 * @param contents The new contents of the config file section.
-	 * @return The new section.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="PUT", path="/{section}",
-		description="Add or overwrite a config file section.",
-		input={
-			@Var(category=ATTR, name="section", description="Section name."),
-			@Var(category=CONTENT, description="New contents for section as a simple map with string keys and values.")
-		}
-	)
-	public ObjectMap setConfigSection(@Attr("section") String section, @Content Map<String,String> contents) throws Exception {
-		getConfig().setSection(section, contents);
-		return getSection(section);
-	}
-
-	/** 
-	 * [PUT /{section}/{key}] - Add or overwrite a config file entry. 
-	 * 
-	 * @param section The section name. 
-	 * @param key The section key.
-	 * @param value The new value.
-	 * @return The new value.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="PUT", path="/{section}/{key}",
-		description="Add or overwrite a config file entry.",
-		input={
-			@Var(category=ATTR, name="section", description="Section name."),
-			@Var(category=ATTR, name="key", description="Entry name."),
-			@Var(category=CONTENT, description="New value as a string.")
-		}
-	)
-	public String setConfigSection(@Attr("section") String section, @Attr("key") String key, @Content String value) throws Exception {
-		getConfig().put(section, key, value, false);
-		return getSection(section).getString(key);
-	}
-
-	private ObjectMap getSection(String name) {
-		ObjectMap m = getConfig().getSectionMap(name);
-		if (m == null)
-			throw new RestException(SC_NOT_FOUND, "Section not found.");
-		return m;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/DirectoryResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/DirectoryResource.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/DirectoryResource.java
deleted file mode 100755
index 961827d..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/DirectoryResource.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.microservice.resources;
-
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-import static com.ibm.juno.core.html.HtmlSerializerProperties.*;
-import static com.ibm.juno.server.RestServletProperties.*;
-import static java.util.logging.Level.*;
-import static javax.servlet.http.HttpServletResponse.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.logging.*;
-
-import javax.servlet.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.BeanProperty;
-import com.ibm.juno.core.filters.DateFilter;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.microservice.*;
-import com.ibm.juno.server.*;
-import com.ibm.juno.server.annotation.*;
-import com.ibm.juno.server.converters.*;
-
-/**
- * REST resource that allows access to a file system directory.
- * <p>
- * 	The root directory is specified in one of two ways:
- * </p>
- * <ul>
- * 	<li>Specifying the location via a <l>DirectoryResource.rootDir</l> property.
- * 	<li>Overriding the {@link #getRootDir()} method.
- * </ul>
- * <p>
- * 	Read/write access control is handled through the following properties:
- * </p>
- * <ul>
- * 	<li><l>DirectoryResource.allowViews</l> - If <jk>true</jk>, allows view and download access to files.
- * 	<li><l>DirectoryResource.allowPuts</l> - If <jk>true</jk>, allows files to be created or overwritten.
- * 	<li><l>DirectoryResource.allowDeletes</l> - If <jk>true</jk>, allows files to be deleted.
- * </ul>
- * <p>
- * 	Access can also be controlled by overriding the {@link #checkAccess(RestRequest)} method.
- * </p>
- */
-@RestResource(
-	label="File System Explorer",
-	description="Contents of $A{path}",
-	messages="nls/DirectoryResource",
-	properties={
-		@Property(name=HTML_uriAnchorText, value=PROPERTY_NAME),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(com.ibm.juno.server.samples.DirectoryResource)'}"),
-		@Property(name=REST_allowMethodParam, value="*"),
-		@Property(name="DirectoryResource.rootDir", value=""),
-		@Property(name="DirectoryResource.allowViews", value="false"),
-		@Property(name="DirectoryResource.allowDeletes", value="false"),
-		@Property(name="DirectoryResource.allowPuts", value="false")
-	}
-)
-public class DirectoryResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	private File rootDir;     // The root directory
-
-	// Settings enabled through servlet init parameters
-	private boolean allowDeletes, allowPuts, allowViews;
-
-	private static Logger logger = Logger.getLogger(DirectoryResource.class.getName());
-
-	@Override /* Servlet */
-	public void init() throws ServletException {
-		ObjectMap p = getProperties();
-		rootDir = new File(p.getString("DirectoryResource.rootDir"));
-		allowViews = p.getBoolean("DirectoryResource.allowViews", false);
-		allowDeletes = p.getBoolean("DirectoryResource.allowDeletes", false);
-		allowPuts = p.getBoolean("DirectoryResource.allowPuts", false);
-	}
-
-	/** 
-	 * Returns the root directory defined by the 'rootDir' init parameter.
-	 * Subclasses can override this method to provide their own root directory. 
-	 * @return The root directory. 
-	 */
-	protected File getRootDir() {
-		if (rootDir == null) {
-			rootDir = new File(getProperties().getString("rootDir"));
-			if (! rootDir.exists())
-				if (! rootDir.mkdirs())
-					throw new RuntimeException("Could not create root dir");
-		}
-		return rootDir;
-	}
-
-	/** 
-	 * [GET /*]
-	 *  On directories, returns a directory listing.
-	 *  On files, returns information about the file.
-	 *  
-	 * @param req - The HTTP request.
-	 * @return Either a FileResource or list of FileResources depending on whether it's a 
-	 * 	file or directory.
-	 * @throws Exception - If file could not be read or access was not granted.
-	 */
-	@RestMethod(name="GET", path="/*", 
-		description="On directories, returns a directory listing.\nOn files, returns information about the file.",
-		converters={Queryable.class}
-	)
-	public Object doGet(RestRequest req) throws Exception {
-		checkAccess(req);
-
-		String pathInfo = req.getPathInfo();
-		File f = pathInfo == null ? rootDir : new File(rootDir.getAbsolutePath() + pathInfo);
-
-		if (!f.exists())
-			throw new RestException(SC_NOT_FOUND, "File not found");
-
-		req.setAttribute("path", f.getAbsolutePath());
-
-		if (f.isDirectory()) {
-			List<FileResource> l = new LinkedList<FileResource>();
-			for (File fc : f.listFiles()) {
-				URL fUrl = new URL(req.getRequestURL().append("/").append(fc.getName()).toString());
-				l.add(new FileResource(fc, fUrl));
-			}
-			return l;
-		}
-
-		return new FileResource(f, new URL(req.getRequestURL().toString()));
-	}
-
-	/** 
-	 * [DELETE /*]
-	 *  Delete a file on the file system.
-	 *  
-	 * @param req - The HTTP request.
-	 * @return The message <js>"File deleted"</js> if successful.
-	 * @throws Exception - If file could not be read or access was not granted.
-	 */
-	@RestMethod(name="DELETE", path="/*",
-		description="Delete a file on the file system."
-	)
-	public Object doDelete(RestRequest req) throws Exception {
-		checkAccess(req);
-
-		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
-		deleteFile(f);
-
-		if (req.getHeader("Accept").contains("text/html"))
-			return new Redirect();
-		return "File deleted";
-	}
-
-	/** 
-	 * [PUT /*]
-	 * Add or overwrite a file on the file system.
-	 *  
-	 * @param req - The HTTP request.
-	 * @return The message <js>"File added"</js> if successful.
-	 * @throws Exception - If file could not be read or access was not granted.
-	 */
-	@RestMethod(name="PUT", path="/*", 
-		description="Add or overwrite a file on the file system."
-	)
-	public Object doPut(RestRequest req) throws Exception {
-		checkAccess(req);
-
-		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
-		String parentSubPath = f.getParentFile().getAbsolutePath().substring(rootDir.getAbsolutePath().length());
-		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f));
-		IOPipe.create(req.getInputStream(), bos).closeOut().run();
-		if (req.getContentType().contains("html"))
-			return new Redirect(parentSubPath);
-		return "File added";
-	}
-
-	/** 
-	 * [VIEW /*]
-	 * 	View the contents of a file.
-	 * 	Applies to files only.
-	 *  
-	 * @param req - The HTTP request.
-	 * @param res - The HTTP response.
-	 * @return A Reader containing the contents of the file.
-	 * @throws Exception - If file could not be read or access was not granted.
-	 */
-	@RestMethod(name="VIEW", path="/*",
-		description="View the contents of a file.\nApplies to files only."
-	)
-	public Reader doView(RestRequest req, RestResponse res) throws Exception {
-		checkAccess(req);
-
-		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
-
-		if (!f.exists())
-			throw new RestException(SC_NOT_FOUND, "File not found");
-
-		if (f.isDirectory())
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "VIEW not available on directories");
-
-		res.setContentType("text/plain");
-		return new FileReader(f);
-	}
-	
-	/** 
-	 * [DOWNLOAD /*]
-	 * 	Download the contents of a file.
-	 * 	Applies to files only.
-	 *  
-	 * @param req - The HTTP request.
-	 * @param res - The HTTP response.
-	 * @return A Reader containing the contents of the file.
-	 * @throws Exception - If file could not be read or access was not granted.
-	 */
-	@RestMethod(name="DOWNLOAD", path="/*",
-		description="Download the contents of a file.\nApplies to files only."
-	)
-	public Reader doDownload(RestRequest req, RestResponse res) throws Exception {
-		checkAccess(req);
-
-		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
-
-		if (!f.exists())
-			throw new RestException(SC_NOT_FOUND, "File not found");
-
-		if (f.isDirectory())
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "DOWNLOAD not available on directories");
-
-		res.setContentType("application");
-		return new FileReader(f);
-	}
-	
-	/**
-	 * Verify that the specified request is allowed.
-	 * Subclasses can override this method to provide customized behavior.
-	 * Method should throw a {@link RestException} if the request should be disallowed.
-	 * 
-	 * @param req The HTTP request.
-	 */
-	protected void checkAccess(RestRequest req) {
-		String method = req.getMethod();
-		if (method.equals("VIEW") && ! allowViews)
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "VIEW not enabled");
-		if (method.equals("PUT") && ! allowPuts)
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "PUT not enabled");
-		if (method.equals("DELETE") && ! allowDeletes)
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "DELETE not enabled");
-		if (method.equals("DOWNLOAD") && ! allowViews)
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "DOWNLOAD not enabled");
-	}
-
-	/** File POJO */
-	public class FileResource {
-		private File f;
-		private URL url;
-
-		/** 
-		 * Constructor.
-		 * @param f - The file.
-		 * @param url - The URL of the file resource. 
-		 */
-		public FileResource(File f, URL url) {
-			this.f = f;
-			this.url = url;
-		}
-
-		// Bean property getters
-
-		/**
-		 * @return The URL of the file resource.
-		 */
-		public URL getUrl() {
-			return url;
-		}
-
-		/**
-		 * @return The file type.
-		 */
-		public String getType() {
-			return (f.isDirectory() ? "dir" : "file");
-		}
-
-		/**
-		 * @return The file name.
-		 */
-		public String getName() {
-			return f.getName();
-		}
-
-		/**
-		 * @return The file size.
-		 */
-		public long getSize() {
-			return f.length();
-		}
-
-		/**
-		 * @return The file last modified timestamp.
-		 */
-		@BeanProperty(filter=DateFilter.ISO8601DTP.class)
-		public Date getLastModified() {
-			return new Date(f.lastModified());
-		}
-
-		/**
-		 * @return A hyperlink to view the contents of the file.
-		 * @throws Exception If access is not allowed.
-		 */
-		public URL getView() throws Exception {
-			if (allowViews && f.canRead() && ! f.isDirectory())
-				return new URL(url + "?method=VIEW");
-			return null;
-		}
-
-		/**
-		 * @return A hyperlink to download the contents of the file.
-		 * @throws Exception If access is not allowed.
-		 */
-		public URL getDownload() throws Exception {
-			if (allowViews && f.canRead() && ! f.isDirectory())
-				return new URL(url + "?method=DOWNLOAD");
-			return null;
-		}
-
-		/**
-		 * @return A hyperlink to delete the file.
-		 * @throws Exception If access is not allowed.
-		 */
-		public URL getDelete() throws Exception {
-			if (allowDeletes && f.canWrite())
-				return new URL(url + "?method=DELETE");
-			return null;
-		}
-	}
-
-	/** Utility method */
-	private void deleteFile(File f) {
-		try {
-			if (f.isDirectory())
-				for (File fc : f.listFiles())
-					deleteFile(fc);
-			f.delete();
-		} catch (Exception e) {
-			logger.log(WARNING, "Cannot delete file '" + f.getAbsolutePath() + "'", e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogEntryFormatter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogEntryFormatter.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogEntryFormatter.java
deleted file mode 100755
index dc612ad..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogEntryFormatter.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.microservice.resources;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Formatter;
-import java.util.logging.LogRecord;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import com.ibm.juno.core.utils.StringUtils;
-
-/**
- * Log entry formatter.
- * <p>
- * 	Uses three simple parameter for configuring log entry formats:
- * 	<ul>
- * 		<li><code>dateFormat</code> - A {@link SimpleDateFormat} string describing the format for dates.
- * 		<li><code>format</code> - A string with <code>{...}</code> replacement variables representing predefined fields.
- * 		<li><code>useStackTraceHashes</code> - A setting that causes duplicate stack traces to be replaced with 8-character hash strings.
- * 	</ul>
- * <p>
- * 	This class converts the format strings into a regular expression that can be used to parse the resulting log file.
- *
- * @author jbognar
- */
-public class LogEntryFormatter extends Formatter {
-
-	private ConcurrentHashMap<String,AtomicInteger> hashes;
-	private DateFormat df;
-	private String format;
-	private Pattern rePattern;
-	private Map<String,Integer> fieldIndexes;
-
-	/**
-	 * Create a new formatter.
-	 * 
-	 * @param format The log entry format.  e.g. <js>"[{date} {level}] {msg}%n"</js>
-	 * 	The string can contain any of the following variables:
-	 * 		<ol>
-	 * 			<li><js>"{date}"</js> - The date, formatted per <js>"Logging/dateFormat"</js>.
-	 * 			<li><js>"{class}"</js> - The class name.
-	 * 			<li><js>"{method}"</js> - The method name.
-	 * 			<li><js>"{logger}"</js> - The logger name.
-	 * 			<li><js>"{level}"</js> - The log level name.
-	 * 			<li><js>"{msg}"</js> - The log message.
-	 * 			<li><js>"{threadid}"</js> - The thread ID.
-	 * 			<li><js>"{exception}"</js> - The localized exception message.
-	 *		</ol>
-	 * @param dateFormat The {@link SimpleDateFormat} format to use for dates.  e.g. <js>"yyyy.MM.dd hh:mm:ss"</js>.
-	 * @param useStackTraceHashes If <jk>true</jk>, only print unique stack traces once and then refer to them by a
-	 * 	simple 8 character hash identifier.
-	 */
-	public LogEntryFormatter(String format, String dateFormat, boolean useStackTraceHashes) {
-		this.df = new SimpleDateFormat(dateFormat);
-		if (useStackTraceHashes)
-			hashes = new ConcurrentHashMap<String,AtomicInteger>();
-
-		fieldIndexes = new HashMap<String,Integer>();
-
-		format = format
-			.replaceAll("\\{date\\}", "%1\\$s")
-			.replaceAll("\\{class\\}", "%2\\$s")
-			.replaceAll("\\{method\\}", "%3\\$s")
-			.replaceAll("\\{logger\\}", "%4\\$s")
-			.replaceAll("\\{level\\}", "%5\\$s")
-			.replaceAll("\\{msg\\}", "%6\\$s")
-			.replaceAll("\\{threadid\\}", "%7\\$s")
-			.replaceAll("\\{exception\\}", "%8\\$s");
-
-		this.format = format;
-
-		// Construct a regular expression to match this log entry.
-		int index = 1;
-		StringBuilder re = new StringBuilder();
-		int S1 = 1; // Looking for %
-		int S2 = 2; // Found %, looking for number.
-		int S3 = 3; // Found number, looking for $.
-		int S4 = 4; // Found $, looking for s.
-		int state = 1;
-		int i1 = 0;
-		for (int i = 0; i < format.length(); i++) {
-			char c = format.charAt(i);
-			if (state == S1) {
-				if (c == '%')
-					state = S2;
-				else {
-					if (! (Character.isLetterOrDigit(c) || Character.isWhitespace(c)))
-						re.append('\\');
-					re.append(c);
-				}
-			} else if (state == S2) {
-				if (Character.isDigit(c)) {
-					i1 = i;
-					state = S3;
-				} else {
-					re.append("\\%").append(c);
-					state = S1;
-				}
-			} else if (state == S3) {
-				if (c == '$') {
-					state = S4;
-				} else {
-					re.append("\\%").append(format.substring(i1, i));
-					state = S1;
-				}
-			} else if (state == S4) {
-				if (c == 's') {
-					int group = Integer.parseInt(format.substring(i1, i-1));
-					switch (group) {
-						case 1:
-							fieldIndexes.put("date", index++);
-							re.append("(" + dateFormat.replaceAll("[mHhsSdMy]", "\\\\d").replaceAll("\\.", "\\\\.") + ")");
-							break;
-						case 2:
-							fieldIndexes.put("class", index++);
-							re.append("([\\p{javaJavaIdentifierPart}\\.]+)");
-							break;
-						case 3:
-							fieldIndexes.put("method", index++);
-							re.append("([\\p{javaJavaIdentifierPart}\\.]+)");
-							break;
-						case 4:
-							fieldIndexes.put("logger", index++);
-							re.append("([\\w\\d\\.\\_]+)");
-							break;
-						case 5:
-							fieldIndexes.put("level", index++);
-							re.append("(SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST)");
-							break;
-						case 6:
-							fieldIndexes.put("msg", index++);
-							re.append("(.*)");
-							break;
-						case 7:
-							fieldIndexes.put("threadid", index++);
-							re.append("(\\\\d+)");
-							break;
-						case 8:
-							fieldIndexes.put("exception", index++);
-							re.append("(.*)");
-							break;
-					}
-				} else {
-					re.append("\\%").append(format.substring(i1, i));
-				}
-				state = S1;
-			}
-		}
-
-		// The log parser
-		String sre = re.toString();
-		if (sre.endsWith("\\%n"))
-			sre = sre.substring(0, sre.length()-3);
-
-		// Replace instances of %n.
-		sre = sre.replaceAll("\\\\%n", "\\\\n");
-
-		rePattern = Pattern.compile(sre);
-		fieldIndexes = Collections.unmodifiableMap(fieldIndexes);
-	}
-
-	/**
-	 * Returns the regular expression pattern used for matching log entries.
-	 * 
-	 * @return The regular expression pattern used for matching log entries.
-	 */
-	public Pattern getLogEntryPattern() {
-		return rePattern;
-	}
-
-	/**
-	 * Returns the {@link DateFormat} used for matching dates.
-	 * 
-	 * @return The {@link DateFormat} used for matching dates.
-	 */
-	public DateFormat getDateFormat() {
-		return df;
-	}
-
-	/**
-	 * Given a matcher that has matched the pattern specified by {@link #getLogEntryPattern()},
-	 * returns the field value from the match.
-	 * 
-	 * @param fieldName The field name.  Possible values are:
-	 * 	<ul>
-	 * 		<li><js>"date"</js>
-	 * 		<li><js>"class"</js>
-	 * 		<li><js>"method"</js>
-	 * 		<li><js>"logger"</js>
-	 * 		<li><js>"level"</js>
-	 * 		<li><js>"msg"</js>
-	 * 		<li><js>"threadid"</js>
-	 * 		<li><js>"exception"</js>
-	 *	</ul>
-	 * @param m The matcher. 
-	 * @return The field value, or <jk>null</jk> if the specified field does not exist.
-	 */
-	public String getField(String fieldName, Matcher m) {
-		Integer i = fieldIndexes.get(fieldName);
-		return (i == null ? null : m.group(i));
-	}
-
-	@Override /* Formatter */
-	public String format(LogRecord r) {
-		String msg = formatMessage(r);
-		Throwable t = r.getThrown();
-		String hash = null;
-		int c = 0;
-		if (hashes != null && t != null) {
-			hash = hashCode(t);
-			hashes.putIfAbsent(hash, new AtomicInteger(0));
-			c = hashes.get(hash).incrementAndGet();
-			if (c == 1) {
-				msg = '[' + hash + '.' + c + "] " + msg;
-			} else {
-				msg = '[' + hash + '.' + c + "] " + msg + ", " + t.getLocalizedMessage();
-				t = null;
-			}
-		}
-		String s = String.format(format,
-			df.format(new Date(r.getMillis())),
-			r.getSourceClassName(),
-			r.getSourceMethodName(),
-			r.getLoggerName(),
-			r.getLevel(),
-			msg,
-			r.getThreadID(),
-			r.getThrown() == null ? "" : r.getThrown().getMessage());
-		if (t != null)
-			s += String.format("%n%s", StringUtils.getStackTrace(r.getThrown()));
-		return s;
-	}
-
-	private String hashCode(Throwable t) {
-		int i = 0;
-		while (t != null) {
-			for (StackTraceElement e : t.getStackTrace())
-				i ^= e.hashCode();
-			t = t.getCause();
-		}
-		return Integer.toHexString(i);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogParser.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogParser.java
deleted file mode 100755
index f5b969b..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogParser.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights:
- * Use, duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.microservice.resources;
-
-import java.io.*;
-import java.nio.charset.*;
-import java.text.*;
-import java.util.*;
-import java.util.regex.*;
-
-
-/**
- * Utility class for reading log files.
- * <p>
- * Provides the capability of returning splices of log files based on dates and filtering based
- * on thread and logger names.
- */
-public class LogParser implements Iterable<LogParser.Entry>, Iterator<LogParser.Entry> {
-	private BufferedReader br;
-	private LogEntryFormatter formatter;
-	private Date start, end;
-	private Set<String> loggerFilter, severityFilter;
-	private String threadFilter;
-	private Entry next;
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param formatter The log entry formatter. 
-	 * @param f The log file.
-	 * @param start Don't return rows before this date.  If <jk>null</jk>, start from the beginning of the file.
-	 * @param end Don't return rows after this date.  If <jk>null</jk>, go to the end of the file.
-	 * @param thread Only return log entries with this thread name.
-	 * @param loggers Only return log entries produced by these loggers (simple class names).
-	 * @param severity Only return log entries with the specified severity.
-	 * @throws IOException
-	 */
-	public LogParser(LogEntryFormatter formatter, File f, Date start, Date end, String thread, String[] loggers, String[] severity) throws IOException {
-		br = new BufferedReader(new InputStreamReader(new FileInputStream(f), Charset.defaultCharset()));
-		this.formatter = formatter;
-		this.start = start;
-		this.end = end;
-		this.threadFilter = thread;
-		if (loggers != null)
-			this.loggerFilter = new HashSet<String>(Arrays.asList(loggers));
-		if (severity != null)
-			this.severityFilter = new HashSet<String>(Arrays.asList(severity));
-
-		// Find the first line.
-		String line;
-		while (next == null && (line = br.readLine()) != null) {
-			Entry e = new Entry(line);
-			if (e.matches())
-				next = e;
-		}
-	}
-
-	@Override /* Iterator */
-	public boolean hasNext() {
-		return next != null;
-	}
-
-	@Override /* Iterator */
-	public Entry next() {
-		Entry current = next;
-		Entry prev = next;
-		try {
-			next = null;
-			String line = null;
-			while (next == null && (line = br.readLine()) != null) {
-				Entry e = new Entry(line);
-				if (e.isRecord) {
-					if (e.matches())
-						next = e;
-					prev = null;
- 				} else {
-					if (prev != null)
-						prev.addText(e.line);
-				}
-			}
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-		return current;
-	}
-
-	@Override /* Iterator */
-	public void remove() {
-		throw new NoSuchMethodError();
-	}
-
-	@Override /* Iterable */
-	public Iterator<Entry> iterator() {
-		return this;
-	}
-
-	/**
-	 * Closes the underlying reader.
-	 * 
-	 * @throws IOException 
-	 */
-	public void close() throws IOException {
-		br.close();
-	}
-
-	/**
-	 * Serializes the contents of the parsed log file to the specified writer
-	 * and then closes the underlying reader.
-	 * 
-	 * @param w The writer to write the log file to. 
-	 * @throws IOException 
-	 */
-	public void writeTo(Writer w) throws IOException {
-		try {
-			if (! hasNext())
-				w.append("[EMPTY]"); //$NON-NLS-1$
-			else for (LogParser.Entry le : this)
-				le.append(w);
-		} finally {
-			close();
-		}
-	}
-
-	/**
-	 * Represents a single line from the log file.
-	 */
-	@SuppressWarnings("javadoc")
-	public class Entry {
-		public Date date;
-		public String severity, logger;
-		protected String line, text;
-		protected String thread;
-		protected List<String> additionalText;
-		protected boolean isRecord;
-
-		Entry(String line) throws IOException {
-			try {
-				this.line = line;
-				Matcher m = formatter.getLogEntryPattern().matcher(line);
-				if (m.matches()) {
-					isRecord = true;
-					String s = formatter.getField("date", m);
-					if (s != null)
-						date = formatter.getDateFormat().parse(s);
-					thread = formatter.getField("thread", m);
-					severity = formatter.getField("level", m);
-					logger = formatter.getField("logger", m);
-					text = formatter.getField("msg", m);
-					if (logger != null && logger.indexOf('.') > -1)
-						logger = logger.substring(logger.lastIndexOf('.')+1);
-				}
-			} catch (ParseException e) {
-				throw new IOException(e);
-			}
-		}
-
-		private void addText(String t) {
-			if (additionalText == null)
-				additionalText = new LinkedList<String>();
-			additionalText.add(t);
-		}
-
-		public String getText() {
-			if (additionalText == null)
-				return text;
-			int i = text.length();
-			for (String s : additionalText)
-				i += s.length() + 1;
-			StringBuilder sb = new StringBuilder(i);
-			sb.append(text);
-			for (String s : additionalText)
-				sb.append('\n').append(s);
-			return sb.toString();
-		}
-
-		public String getThread() {
-			return thread;
-		}
-
-		public Writer appendHtml(Writer w) throws IOException {
-			w.append(toHtml(line)).append("<br>"); //$NON-NLS-1$
-			if (additionalText != null)
-				for (String t : additionalText)
-					w.append(toHtml(t)).append("<br>"); //$NON-NLS-1$
-			return w;
-		}
-
-		protected Writer append(Writer w) throws IOException {
-			w.append(line).append('\n');
-			if (additionalText != null)
-				for (String t : additionalText)
-					w.append(t).append('\n');
-			return w;
-		}
-
-		private boolean matches() {
-			if (! isRecord)
-				return false;
-			if (start != null && date.before(start))
-				return false;
-			if (end != null && date.after(end))
-				return false;
-			if (threadFilter != null && ! threadFilter.equals(thread))
-				return false;
-			if (loggerFilter != null && ! loggerFilter.contains(logger))
-				return false;
-			if (severityFilter != null && ! severityFilter.contains(severity))
-				return false;
-			return true;
-		}
-	}
-
-	private String toHtml(String s) {
-		if (s.indexOf('<') != -1)
-			return s.replaceAll("<", "&lt;");  //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogsResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogsResource.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogsResource.java
deleted file mode 100755
index 8c1a252..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/LogsResource.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.microservice.resources;
-
-import static com.ibm.juno.core.html.HtmlDocSerializerProperties.*;
-import static com.ibm.juno.core.html.HtmlSerializerProperties.*;
-import static com.ibm.juno.server.RestServletProperties.*;
-import static javax.servlet.http.HttpServletResponse.*;
-
-import java.io.*;
-import java.net.*;
-import java.nio.charset.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.dto.*;
-import com.ibm.juno.core.filters.*;
-import com.ibm.juno.core.ini.ConfigFile;
-import com.ibm.juno.core.utils.StringUtils;
-import com.ibm.juno.microservice.Resource;
-import com.ibm.juno.server.*;
-import com.ibm.juno.server.annotation.*;
-import com.ibm.juno.server.annotation.Properties;
-import com.ibm.juno.server.converters.Queryable;
-
-/**
- * REST resource for viewing and accessing log files.
- */
-@RestResource(
-	path="/logs",
-	label="Log files",
-	description="Log files from this service",
-	properties={
-		@Property(name=HTML_uriAnchorText, value=PROPERTY_NAME),
-		@Property(name=REST_allowMethodParam, value="true")
-	},
-	filters={
-		IteratorFilter.class,       // Allows Iterators and Iterables to be serialized.
-		DateFilter.ISO8601DT.class  // Serialize Date objects as ISO8601 strings.
-	}
-)
-@SuppressWarnings("nls")
-public class LogsResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	private ConfigFile cf = getConfig();
-
-	private File logDir = new File(cf.getString("Logging/logDir", "."));
-	private LogEntryFormatter leFormatter = new LogEntryFormatter(
-		cf.getString("Logging/format", "[{date} {level}] {msg}%n"),
-		cf.getString("Logging/dateFormat", "yyyy.MM.dd hh:mm:ss"),
-		cf.getBoolean("Logging/useStackTraceHashes")
-	);
-
-	private final FileFilter filter = new FileFilter() {
-		@Override /* FileFilter */
-		public boolean accept(File f) {
-			return f.isDirectory() || f.getName().endsWith(".log");
-		}
-	};
-
-	/** 
-	 * [GET /*] - Get file details or directory listing. 
-	 * 
-	 * @param req The HTTP request
-	 * @param properties The writable properties for setting the descriptions.
-	 * @param path The log file path.
-	 * @return The log file.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="GET", path="/*", rc={200,404})
-	public Object getFileOrDirectory(RestRequest req, @Properties ObjectMap properties, @PathRemainder String path) throws Exception {
-
-		File f = getFile(path);
-
-		if (f.isDirectory()) {
-			Set<FileResource> l = new TreeSet<FileResource>(new FileResourceComparator());
-			for (File fc : f.listFiles(filter)) {
-				URL fUrl = new URL(req.getTrimmedRequestURL().append('/').append(fc.getName()).toString());
-				l.add(new FileResource(fc, fUrl));
-			}
-			properties.put(HTMLDOC_description, "Contents of " + f.getAbsolutePath());
-			return l;
-		}
-
-		properties.put(HTMLDOC_description, "File details on " + f.getAbsolutePath());
-		return new FileResource(f, new URL(req.getTrimmedRequestURL().toString()));
-	}
-
-	/**
-	 * [VIEW /*] - Retrieve the contents of a log file.
-	 * 
-	 * @param req The HTTP request.
-	 * @param res The HTTP response.
-	 * @param path The log file path.
-	 * @param properties The writable properties for setting the descriptions.
-	 * @param highlight If <code>true</code>, add color highlighting based on severity.
-	 * @param start Optional start timestamp.  Don't print lines logged before the specified timestamp.  Example:  "&start=2014-01-23 11:25:47".
-	 * @param end Optional end timestamp.  Don't print lines logged after the specified timestamp.  Example:  "&end=2014-01-23 11:25:47".
-	 * @param thread Optional thread name filter.  Only show log entries with the specified thread name.  Example: "&thread=pool-33-thread-1".
-	 * @param loggers Optional logger filter.  Only show log entries if they were produced by one of the specified loggers (simple class name).  Example: "&loggers=(LinkIndexService,LinkIndexRestService)".
-	 * @param severity Optional severity filter.  Only show log entries with the specified severity.  Example: "&severity=(ERROR,WARN)".
-	 * @throws Exception 
-	 */
-	@RestMethod(name="VIEW", path="/*", rc={200,404})
-	@SuppressWarnings("nls")
-	public void viewFile(RestRequest req, RestResponse res, @PathRemainder String path, @Properties ObjectMap properties, @Param("highlight") boolean highlight, @Param("start") String start, @Param("end") String end, @Param("thread") String thread, @Param("loggers") String[] loggers, @Param("severity") String[] severity) throws Exception {
-
-		File f = getFile(path);
-		if (f.isDirectory())
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "View not available on directories");
-
-		Date startDate = StringUtils.parseISO8601Date(start), endDate = StringUtils.parseISO8601Date(end);
-
-		if (! highlight) {
-			Object o = getReader(f, startDate, endDate, thread, loggers, severity);
-			res.setContentType("text/plain");
-			if (o instanceof Reader)
-				res.setOutput(o);
-			else {
-				LogParser p = (LogParser)o;
-				Writer w = res.getNegotiatedWriter();
-				try {
-					p.writeTo(w);
-				} finally {
-					w.flush();
-					w.close();
-				}
-			}
-			return;
-		}
-
-		res.setContentType("text/html");
-		PrintWriter w = res.getNegotiatedWriter();
-		try {
-			w.println("<html><body style='font-family:monospace;font-size:8pt;white-space:pre;'>");
-			LogParser lp = getLogParser(f, startDate, endDate, thread, loggers, severity);
-			try {
-				if (! lp.hasNext())
-					w.append("<span style='color:gray'>[EMPTY]</span>");
-				else for (LogParser.Entry le : lp) {
-					char s = le.severity.charAt(0);
-					String color = "black";
-					//SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST
-					if (s == 'I')
-						color = "#006400";
-					else if (s == 'W')
-						color = "#CC8400";
-					else if (s == 'E' || s == 'S')
-						color = "#DD0000";
-					else if (s == 'D' || s == 'F' || s == 'T')
-						color = "#000064";
-					w.append("<span style='color:").append(color).append("'>");
-					le.appendHtml(w).append("</span>");
-				}
-				w.append("</body></html>");
-			} finally {
-				lp.close();
-			}
-		} finally {
-			w.close();
-		}
-	}
-
-	/**
-	 * [VIEW /*] - Retrieve the contents of a log file as parsed entries.
-	 * 
-	 * @param req The HTTP request. 
-	 * @param path The log file path.
-	 * @param start Optional start timestamp.  Don't print lines logged before the specified timestamp.  Example:  "&start=2014-01-23 11:25:47".
-	 * @param end Optional end timestamp.  Don't print lines logged after the specified timestamp.  Example:  "&end=2014-01-23 11:25:47".
-	 * @param thread Optional thread name filter.  Only show log entries with the specified thread name.  Example: "&thread=pool-33-thread-1".
-	 * @param loggers Optional logger filter.  Only show log entries if they were produced by one of the specified loggers (simple class name).  Example: "&loggers=(LinkIndexService,LinkIndexRestService)".
-	 * @param severity Optional severity filter.  Only show log entries with the specified severity.  Example: "&severity=(ERROR,WARN)".
-	 * @return The parsed contents of the log file.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="PARSE", path="/*", converters=Queryable.class, rc={200,404})
-	public LogParser viewParsedEntries(RestRequest req, @PathRemainder String path, @Param("start") String start, @Param("end") String end, @Param("thread") String thread, @Param("loggers") String[] loggers, @Param("severity") String[] severity) throws Exception {
-
-		File f = getFile(path);
-		Date startDate = StringUtils.parseISO8601Date(start), endDate = StringUtils.parseISO8601Date(end);
-
-		if (f.isDirectory())
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "View not available on directories");
-
-		return getLogParser(f, startDate, endDate, thread, loggers, severity);
-	}
-
-	/**
-	 * [DOWNLOAD /*] - Download file.
-	 * 
-	 * @param res The HTTP response. 
-	 * @param path The log file path. 
-	 * @return The contents of the log file.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="DOWNLOAD", path="/*", rc={200,404})
-	public Object downloadFile(RestResponse res, @PathRemainder String path) throws Exception {
-
-		File f = getFile(path);
-
-		if (f.isDirectory())
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "Download not available on directories");
-
-		res.setContentType("application/octet-stream"); //$NON-NLS-1$
-		res.setContentLength((int)f.length());
-		return new FileInputStream(f);
-	}
-
-	/** 
-	 * [DELETE /*] - Delete a file. 
-	 * 
-	 * @param path The log file path. 
-	 * @return A redirect object to the root.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="DELETE", path="/*", rc={200,404})
-	public Object deleteFile(@PathRemainder String path) throws Exception {
-
-		File f = getFile(path);
-
-		if (f.isDirectory())
-			throw new RestException(SC_BAD_REQUEST, "Delete not available on directories.");
-
-		if (f.canWrite())
-			if (! f.delete())
-				throw new RestException(SC_FORBIDDEN, "Could not delete file.");
-
-		return new Redirect(path + "/.."); //$NON-NLS-1$
-	}
-
-	private static BufferedReader getReader(File f) throws IOException {
-		return new BufferedReader(new InputStreamReader(new FileInputStream(f), Charset.defaultCharset()));
-	}
-
-	private File getFile(String path) {
-		if (path != null && path.indexOf("..") != -1)
-			throw new RestException(SC_NOT_FOUND, "File not found.");
-		File f = (path == null ? logDir : new File(logDir.getAbsolutePath() + '/' + path));
-		if (filter.accept(f))
-			return f;
-		throw new RestException(SC_NOT_FOUND, "File not found.");
-	}
-
-	/**
-	 * File bean.
-	 */
-	@SuppressWarnings("javadoc")
-	public static class FileResource {
-		private File f;
-		public String type;
-		public Object name;
-		public Long size;
-		@BeanProperty(filter=DateFilter.Medium.class) public Date lastModified;
-		public URL view, highlighted, parsed, download, delete;
-
-		public FileResource(File f, URL url) throws IOException {
-			this.f = f;
-			this.type = (f.isDirectory() ? "dir" : "file");
-			this.name = f.isDirectory() ? new Link(f.getName(), url.toString()) : f.getName();
-			this.size = f.isDirectory() ? null : f.length();
-			this.lastModified = new Date(f.lastModified());
-			if (f.canRead() && ! f.isDirectory()) {
-				this.view = new URL(url + "?method=VIEW");
-				this.highlighted = new URL(url + "?method=VIEW&highlight=true");
-				this.parsed = new URL(url + "?method=PARSE");
-				this.download = new URL(url + "?method=DOWNLOAD");
-				this.delete = new URL(url + "?method=DELETE");
-			}
-		}
-	}
-
-	private static class FileResourceComparator implements Comparator<FileResource>, Serializable {
-		private static final long serialVersionUID = 1L;
-		@Override /* Comparator */
-		public int compare(FileResource o1, FileResource o2) {
-			int c = o1.type.compareTo(o2.type);
-			return c != 0 ? c : o1.f.getName().compareTo(o2.f.getName());
-		}
-	}
-
-	private Object getReader(File f, final Date start, final Date end, final String thread, final String[] loggers, final String[] severity) throws IOException {
-		if (start == null && end == null && thread == null && loggers == null)
-			return getReader(f);
-		return getLogParser(f, start, end, thread, loggers, severity);
-	}
-
-	private LogParser getLogParser(File f, final Date start, final Date end, final String thread, final String[] loggers, final String[] severity) throws IOException {
-		return new LogParser(leFormatter, f, start, end, thread, loggers, severity);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/SampleRootResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/SampleRootResource.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/SampleRootResource.java
deleted file mode 100755
index 8c60073..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/SampleRootResource.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � 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.microservice.resources;
-
-import com.ibm.juno.microservice.ResourceGroup;
-import com.ibm.juno.server.annotation.RestResource;
-
-/**
- * Sample root REST resource.
- * 
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@RestResource(
-	path="/",
-	label="Sample Root Resource",
-	description="This is a sample router page",
-	children={ConfigResource.class,LogsResource.class}
-)
-public class SampleRootResource extends ResourceGroup {
-	private static final long serialVersionUID = 1L;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ShutdownResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ShutdownResource.java b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ShutdownResource.java
deleted file mode 100755
index e36d51c..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/ShutdownResource.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * � Copyright IBM Corporation 2015. All Rights Reserved.
- * 
- * Note to U.S. Government Users Restricted Rights:
- * Use, duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp. 
- *******************************************************************************/
-package com.ibm.juno.microservice.resources;
-
-import com.ibm.juno.microservice.Resource;
-import com.ibm.juno.server.annotation.RestMethod;
-import com.ibm.juno.server.annotation.RestResource;
-
-/**
- * Provides the capability to shut down this REST microservice through a REST call.
- */
-@RestResource(
-	path="/shutdown",
-	label="Shut down this resource"
-)
-public class ShutdownResource extends Resource {
-	
-	private static final long serialVersionUID = 1L;
-
-	/** 
-	 * [GET /] - Shutdown this resource. 
-	 * 
-	 * @return The string <js>"OK"</js>.
-	 * @throws Exception 
-	 */
-	@RestMethod(name="GET", path="/", description="Show contents of config file.")
-	public String shutdown() throws Exception {
-		new Thread(
-			new Runnable() {
-				@Override /* Runnable */
-				public void run() {
-					try {
-						Thread.sleep(1000);
-					System.exit(0);
-					} catch (InterruptedException e) {
-						e.printStackTrace();
-					}
-				}
-			}
-		).start();
-		return "OK";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/package.html b/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/package.html
deleted file mode 100755
index 770c4f5..0000000
--- a/com.ibm.team.juno.microservice/src/com/ibm/juno/microservice/resources/package.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-    Licensed Materials - Property of IBM
-    (c) Copyright IBM Corporation 2015. 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");
-		body { 
-			margin: 20px; 
-		}	
-	</style>
-</head>
-<body>
-<p>Predefined Microservice Resources</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.microservice/src/main/java/org/apache/juneau/microservice/Microservice.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Microservice.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Microservice.java
new file mode 100755
index 0000000..55fcead
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Microservice.java
@@ -0,0 +1,495 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.jar.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.ini.*;
+import org.apache.juneau.internal.*;
+import org.apache.juneau.svl.*;
+import org.apache.juneau.svl.vars.*;
+import org.apache.juneau.utils.*;
+
+/**
+ * Parent class for all microservices.
+ * <p>
+ * A microservice defines a simple API for starting and stopping simple Java services
+ * 	contained in executable jars.
+ * <p>
+ * The general command for invoking these services is...
+ * <p class='bcode'>
+ * 	java -jar mymicroservice.jar [mymicroservice.cfg]
+ * </p>
+ * <p>
+ * Your microservice class must be specified as the <jk>Main-Class</jk> entry in
+ * 	the manifest file of your microservice jar file.
+ *
+ * <h6 class='topic'>Microservice Configuration</h6>
+ *
+ * This class defines the following method for accessing configuration for your microservice:
+ * <p>
+ * <ul class='spaced-list'>
+ * 	<li>{@link #getArgs()} - The command-line arguments passed to the jar file.
+ * 	<li>{@link #getConfig()} - An external INI-style configuration file.
+ * 	<li>{@link #getManifest()} - The manifest file for the main jar file.
+ * </ul>
+ *
+ * <h6 class='topic'>Entrypoint Method</h6>
+ *
+ * Subclasses must implement a static void main method as the entry point for the microservice.
+ * Typically, this method will simply consist of the following...
+ * <p>
+ * <p class='bcode'>
+ * 	<jk>public static void</jk> main(String[] args) <jk>throws</jk> Exception {
+ * 		<jk>new</jk> MyMicroservice(args).start();
+ * 	}
+ * </p>
+ *
+ * <h6 class='topic'>Lifecycle Methods</h6>
+ *
+ * Subclasses must implement the following lifecycle methods:
+ * <p>
+ * <ul class='spaced-list'>
+ * 	<li>{@link #start()} - Gets executed during startup.
+ * 	<li>{@link #stop()} - Gets executed when 'exit' is typed in the console or an external shutdown signal is received.
+ * 	<li>{@link #kill()} - Can be used to forcibly shut down the service.  Doesn't get called during normal operation.
+ * </ul>
+ *
+ * <h6 class='topic'>Lifecycle Listener Methods</h6>
+ *
+ * Subclasses can optionally implement the following event listener methods:
+ * <p>
+ * <ul class='spaced-list'>
+ * 	<li>{@link #onStart()} - Gets executed before {@link #start()}.
+ * 	<li>{@link #onStop()} - Gets executed before {@link #stop()}.
+ * 	<li>{@link #onConfigSave(ConfigFile)} - Gets executed after a config file has been saved.
+ * 	<li>{@link #onConfigChange(ConfigFile, Set)} - Gets executed after a config file has been modified.
+ * </ul>
+ *
+ * <h6 class='topic'>Other Methods</h6>
+ *
+ * Subclasses can optionally override the following methods to provide customized behavior:
+ * <p>
+ * <ul class='spaced-list'>
+ * 	<li>{@link #createVarResolver()} - Creates the {@link VarResolver} used to resolve variables in the config file returned by {@link #getConfig()}.
+ * </ul>
+ *
+ * @author james.bognar@salesforce.com
+ */
+public abstract class Microservice {
+
+	private static Args args;
+	private static ConfigFile cf;
+	private static ManifestFile mf;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param args2 Command line arguments.
+	 * @throws Exception
+	 */
+	protected Microservice(String[] args2) throws Exception {
+		Microservice.args = new Args(args2);
+
+		// --------------------------------------------------------------------------------
+		// Try to get the manifest file.
+		// --------------------------------------------------------------------------------
+		Manifest m = new Manifest();
+
+		// If running within an eclipse workspace, need to get it from the file system.
+		File f = new File("META-INF/MANIFEST.MF");
+		if (f.exists()) {
+			try {
+				m.read(new FileInputStream(f));
+			} catch (IOException e) {
+				System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + IOUtils.read(f));
+				throw e;
+			}
+		} else {
+			// Otherwise, read from manifest file in the jar file containing the main class.
+			URLClassLoader cl = (URLClassLoader)getClass().getClassLoader();
+			URL url = cl.findResource("META-INF/MANIFEST.MF");
+			if (url != null) {
+				try {
+					m.read(url.openStream());
+				} catch (IOException e) {
+					System.err.println("Problem detected in MANIFEST.MF.  Contents below:\n" + IOUtils.read(url.openStream()));
+					throw e;
+				}
+			}
+		}
+		mf = new ManifestFile(m);
+
+		// --------------------------------------------------------------------------------
+		// Find config file.
+		// Can either be passed in as first parameter, or we discover it using
+		// the 'sun.java.command' system property.
+		// --------------------------------------------------------------------------------
+		String cFile = null;
+		if (args.hasArg(0))
+			cFile = args.getArg(0);
+		else if (mf.containsKey("Main-ConfigFile"))
+			cFile = mf.getString("Main-ConfigFile");
+		else {
+			String cmd = System.getProperty("sun.java.command", "not_found").split("\\s+")[0];
+			if (cmd.endsWith(".jar"))
+				cFile = cmd.replace(".jar", ".cfg");
+		}
+
+		if (cFile == null) {
+			System.err.println("Running class ["+getClass().getSimpleName()+"] without a config file.");
+			cf = ConfigMgr.DEFAULT.create();
+		} else {
+			System.out.println("Running class ["+getClass().getSimpleName()+"] using config file ["+cFile+"]");
+			System.setProperty("juneau.configFile", cFile);
+			cf = ConfigMgr.DEFAULT.get(cFile).getResolving(createVarResolver());
+		}
+
+		// --------------------------------------------------------------------------------
+		// Set system properties.
+		// --------------------------------------------------------------------------------
+		Set<String> spKeys = cf.getSectionKeys("SystemProperties");
+		if (spKeys != null)
+			for (String key : spKeys)
+				System.setProperty(key, cf.get("SystemProperties", key));
+
+		// --------------------------------------------------------------------------------
+		// Add a config file change listener.
+		// --------------------------------------------------------------------------------
+		cf.addListener(new ConfigFileListener() {
+			@Override /* ConfigFileListener */
+			public void onSave(ConfigFile cf) {
+				onConfigSave(cf);
+			}
+			@Override /* ConfigFileListener */
+			public void onChange(ConfigFile cf, Set<String> changes) {
+				onConfigChange(cf, changes);
+			}
+		});
+
+		// --------------------------------------------------------------------------------
+		// Add exit listeners.
+		// --------------------------------------------------------------------------------
+		new Thread() {
+			@Override /* Thread */
+			public void run() {
+				Console c = System.console();
+				if (c == null)
+					System.out.println("No available console.");
+				else {
+					while (true) {
+						String l = c.readLine("\nEnter 'exit' to exit.\n");
+						if (l == null || l.equals("exit")) {
+							Microservice.this.stop();
+							break;
+						}
+					}
+				}
+			}
+		}.start();
+		Runtime.getRuntime().addShutdownHook(
+			new Thread() {
+				@Override /* Thread */
+				public void run() {
+					Microservice.this.stop();
+				}
+			}
+		);
+	}
+
+	/**
+	 * Creates the {@link VarResolver} used to resolve variables in the
+	 * config file returned by {@link #getConfig()}.
+	 * <p>
+	 * The default implementation resolves the following variables:
+	 * <ul>
+	 * 	<li><code>$S{key}</code>, <code>$S{key,default}</code> - System properties.
+	 * 	<li><code>$E{key}</code>, <code>$E{key,default}</code> - Environment variables.
+	 * 	<li><code>$C{key}</code>, <code>$C{key,default}</code> - Config file entries.
+	 * 	<li><code>$MF{key}</code>, <code>$MF{key,default}</code> - Manifest file entries.
+	 * 	<li><code>$ARG{key}</code>, <code>$ARG{key,default}</code> - Command-line arguments.
+	 * </ul>
+	 * <p>
+	 * Subclasses can override this method to provide their own variables.
+	 * <dl>
+	 * 	<dt>Examples:</dt>
+	 * 	<dd>
+	 * 		<p class='bcode'>
+	 * 	<jd>/**
+	 * 	 * Augment default var resolver with a custom $B{...} variable that simply wraps strings inside square brackets.
+	 * 	 * /</jd>
+	 * 	<ja>@Override</ja> <jc>// Microservice</jc>
+	 * 	<jk>protected</jk> StringVarResolver createVarResolver() {
+	 * 		<jk>return super</jk>.createVarResolver()
+	 * 			.addVar(<js>"B"</js>,
+	 * 				<jk>new</jk> StringVarWithDefault() {
+	 * 					<ja>@Override</ja> <jc>// StringVar</jc>
+	 * 					<jk>public</jk> String resolve(String varVal) {
+	 * 						<jk>return</jk> <js>'['</js> + varVal + <js>']'</js>;
+	 * 					}
+	 * 				}
+	 * 			);
+	 * 	}
+	 * 		</p>
+	 * 		<p class='bcode'>
+	 * 	<cc># Example config file</cc>
+	 * 	<cs>[MySection]</cs>
+	 * 	<ck>myEntry</ck> = $B{foo}
+	 * 		</p>
+	 * 		<p class='bcode'>
+	 * 	<jc>// Example java code</jc>
+	 * 	String myentry = getConfig().getString(<js>"MySection/myEntry"</js>); <jc>// == "[foo]"</js>
+	 * 		</p>
+	 * 	</dd>
+	 * </dl>
+	 *
+	 * @return A new {@link VarResolver}.
+	 */
+	protected VarResolver createVarResolver() {
+		return new VarResolver()
+			.addVars(SystemPropertiesVar.class, EnvVariablesVar.class, ConfigFileVar.class, ManifestFileVar.class, ArgsVar.class)
+			.setContextObject(ConfigFileVar.SESSION_config, cf)
+			.setContextObject(ManifestFileVar.SESSION_manifest, mf)
+			.setContextObject(ArgsVar.SESSION_args, args);
+	}
+
+	/**
+	 * Returns the command-line arguments passed into the application.
+	 * <p>
+	 * This method can be called from the class constructor.
+	 * <p>
+	 * See {@link Args} for details on using this method.
+	 *
+	 * @return The command-line arguments passed into the application.
+	 */
+	protected static Args getArgs() {
+		return args;
+	}
+
+	/**
+	 * Overrides the value returned by {@link #getArgs()}.
+	 *
+	 * @param args The new arguments.
+	 * @return This object (for method chaining).
+	 */
+	protected Microservice setArgs(String[] args) {
+		Microservice.args = new Args(args);
+		return this;
+	}
+
+	/**
+	 * Returns the external INI-style configuration file that can be used to configure your microservice.
+	 * <p>
+	 * The config file location is determined in the following order:
+	 * <ol class='spaced-list'>
+	 * 	<li>The first argument passed to the microservice jar.
+	 * 	<li>The <code>Main-ConfigFile</code> entry in the microservice jar manifest file.
+	 * 	<li>The name of the microservice jar with a <js>".cfg"</js> suffix (e.g. <js>"mymicroservice.jar"</js>-&gt;<js>"mymicroservice.cfg"</js>).
+	 * </ol>
+	 * <p>
+	 * If all methods for locating the config file fail, then this method returns <jk>null</jk>.
+	 * <p>
+	 * Subclasses can set their own config file by calling the {@link #setConfig(ConfigFile)} method.
+	 * <p>
+	 * String variables defined by {@link #createVarResolver()} are automatically resolved when using this method.
+	 * <p>
+	 * This method can be called from the class constructor.
+	 * <dl>
+	 * 	<dt>Examples:</dt>
+	 * 	<dd>
+	 * 		<p class='bcode'>
+	 * 	<cc>#--------------------------</cc>
+	 * 	<cc># My section</cc>
+	 * 	<cc>#--------------------------</cc>
+	 * 	<cs>[MySection]</cs>
+	 *
+	 * 	<cc># An integer</cc>
+	 * 	<ck>anInt</ck> = 1
+	 *
+	 * 	<cc># A boolean</cc>
+	 * 	<ck>aBoolean</ck> = true
+	 *
+	 * 	<cc># An int array</cc>
+	 * 	<ck>anIntArray</ck> = 1,2,3
+	 *
+	 * 	<cc># A POJO that can be converted from a String</cc>
+	 * 	<ck>aURL</ck> = http://foo
+	 *
+	 * 	<cc># A POJO that can be converted from JSON</cc>
+	 * 	<ck>aBean</ck> = {foo:'bar',baz:123}
+	 *
+	 * 	<cc># A system property</cc>
+	 * 	<ck>locale</ck> = $S{java.locale, en_US}
+	 *
+	 * 	<cc># An environment variable</cc>
+	 * 	<ck>path</ck> = $E{PATH, unknown}
+	 *
+	 * 	<cc># A manifest file entry</cc>
+	 * 	<ck>mainClass</ck> = $MF{Main-Class}
+	 *
+	 * 	<cc># Another value in this config file</cc>
+	 * 	<ck>sameAsAnInt</ck> = $C{MySection/anInt}
+	 *
+	 * 	<cc># A command-line argument in the form "myarg=foo"</cc>
+	 * 	<ck>myArg</ck> = $ARG{myarg}
+	 *
+	 * 	<cc># The first command-line argument</cc>
+	 * 	<ck>firstArg</ck> = $ARG{0}
+	 *
+	 * 	<cc># Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.</cc>
+	 * 	<ck>nested</ck> = $S{mySystemProperty,$E{MY_ENV_VAR,$ARG{0}}}
+	 *
+	 * 	<cc># A POJO with embedded variables</cc>
+	 * 	<ck>aBean2</ck> = {foo:'$ARG{0}',baz:$C{MySection/anInt}}
+	 *
+	 * 		</p>
+	 * 		<p class='bcode'>
+	 * 	<jc>// Java code for accessing config entries above.</jc>
+	 * 	ConfigFile cf = getConfig();
+	 *
+	 * 	<jk>int</jk> anInt = cf.getInt(<js>"MySection/anInt"</js>);
+	 * 	<jk>boolean</jk> aBoolean = cf.getBoolean(<js>"MySection/aBoolean"</js>);
+	 * 	<jk>int</jk>[] anIntArray = cf.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"MySection/anIntArray"</js>);
+	 * 	URL aURL = cf.getObject(URL.<jk>class</jk>, <js>"MySection/aURL"</js>);
+	 * 	MyBean aBean = cf.getObject(MyBean.<jk>class</jk>, <js>"MySection/aBean"</js>);
+	 * 	Locale locale = cf.getObject(Locale.<jk>class</jk>, <js>"MySection/locale"</js>);
+	 * 	String path = cf.getString(<js>"MySection/path"</js>);
+	 * 	String mainClass = cf.getString(<js>"MySection/mainClass"</js>);
+	 * 	<jk>int</jk> sameAsAnInt = cf.getInt(<js>"MySection/sameAsAnInt"</js>);
+	 * 	String myArg = cf.getString(<js>"MySection/myArg"</js>);
+	 * 	String firstArg = cf.getString(<js>"MySection/firstArg"</js>);
+	 * 		</p>
+	 * 	</dd>
+	 * </dl>
+	 *
+	 * @return The config file for this application, or <jk>null</jk> if no config file is configured.
+	 */
+	protected static ConfigFile getConfig() {
+		return cf;
+	}
+
+	/**
+	 * Overrides the value returned by {@link #getConfig()}.
+	 *
+	 * @param cf The config file for this application, or <jk>null</jk> if no config file is configured.
+	 * @return This object (for method chaining).
+	 */
+	protected Microservice setConfig(ConfigFile cf) {
+		Microservice.cf = cf;
+		return this;
+	}
+
+	/**
+	 * Returns the main jar manifest file contents as a simple {@link ObjectMap}.
+	 * <p>
+	 * This map consists of the contents of {@link Manifest#getMainAttributes()} with the keys
+	 * 	and entries converted to simple strings.
+	 * <p>
+	 * This method can be called from the class constructor.
+	 * <dl>
+	 * 	<dt>Examples:</dt>
+	 * 	<dd>
+	 * 		<p class='bcode'>
+	 * 	<jc>// Get Main-Class from manifest file.</jc>
+	 * 	String mainClass = Microservice.<jsm>getManifest</jsm>().getString(<js>"Main-Class"</js>, <js>"unknown"</js>);
+	 *
+	 * 	<jc>// Get Rest-Resources from manifest file.</jc>
+	 * 	String[] restResources = Microservice.<jsm>getManifest</jsm>().getStringArray(<js>"Rest-Resources"</js>);
+	 * 		</p>
+	 * 	</dd>
+	 * </dl>
+	 *
+	 * @return The manifest file from the main jar, or <jk>null</jk> if the manifest file could not be retrieved.
+	 */
+	protected static ManifestFile getManifest() {
+		return mf;
+	}
+
+	//--------------------------------------------------------------------------------
+	// Abstract lifecycle methods.
+	//--------------------------------------------------------------------------------
+
+	/**
+	 * Start this application.
+	 * <p>
+	 * Default implementation simply calls {@link #onStart()}.
+	 * <p>
+	 * Overridden methods MUST call this method FIRST so that the {@link #onStart()} method is called.
+	 *
+	 * @throws Exception
+	 */
+	protected void start() throws Exception {
+		onStart();
+	}
+
+	/**
+	 * Stop this application.
+	 * <p>
+	 * Default implementation simply calls {@link #onStop()}.
+	 * <p>
+	 * Overridden methods MUST call this method LAST so that the {@link #onStop()} method is called.
+	 */
+	protected void stop() {
+		onStop();
+	}
+
+	/**
+	 * Kill the JVM by calling <code>System.exit(2);</code>.
+	 */
+	protected void kill() {
+		// This triggers the shutdown hook.
+		System.exit(2);
+	}
+
+	//--------------------------------------------------------------------------------
+	// Lifecycle listener methods.
+	// Subclasses can override these methods to run code on certain events.
+	//--------------------------------------------------------------------------------
+
+	/**
+	 * Called at the beginning of the {@link #start()} call.
+	 * <p>
+	 * Subclasses can override this method to hook into the lifecycle of this application.
+	 */
+	protected void onStart() {}
+
+	/**
+	 * Called at the end of the {@link #stop()} call.
+	 * <p>
+	 * Subclasses can override this method to hook into the lifecycle of this application.
+	 */
+	protected void onStop() {}
+
+	/**
+	 * Called if the {@link ConfigFile#save()} is called on the config file.
+	 * <p>
+	 * Subclasses can override this method to listen for config file changes.
+	 *
+	 * @param cf The config file.
+	 */
+	protected void onConfigSave(ConfigFile cf) {}
+
+	/**
+	 * Called if one or more changes occur in the config file.
+	 * <p>
+	 * Subclasses can override this method to listen for config file changes.
+	 *
+	 * @param cf The config file.
+	 * @param changes The list of keys in the config file being changed.
+	 */
+	protected void onConfigChange(ConfigFile cf, Set<String> changes) {}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Resource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Resource.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Resource.java
new file mode 100755
index 0000000..ccfc967
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Resource.java
@@ -0,0 +1,63 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice;
+
+import static org.apache.juneau.html.HtmlDocSerializerContext.*;
+
+import org.apache.juneau.server.*;
+import org.apache.juneau.server.annotation.*;
+import org.apache.juneau.svl.*;
+import org.apache.juneau.svl.vars.*;
+
+/**
+ * Superclass for all REST resources.
+ * <p>
+ * In additional to the functionality of the {@link RestServletDefault} group,
+ * augments the {@link #createVarResolver()} method with the following additional variable types:
+ * <ul class='spaced-list'>
+ * 	<li><code class='snippet'>$ARG{...}</code> - Command line arguments pulled from {@link Microservice#getArgs()}.<br>
+ * 		<h6 class='figure'>Example:</h6>
+ * 		<p class='bcode'>
+ * 			String firstArg = request.getVarResolver().resolve(<js>"$ARG{0}"</js>);  <jc>// First argument.</jc>
+ * 			String namedArg = request.getVarResolver().resolve(<js>"$ARG{myarg}"</js>);  <jc>// Named argument (e.g. "myarg=foo"). </jc>
+ * 		</p>
+ * 	<li><code class='snippet'>$MF{...}</code> - Manifest file entries pulled from {@link Microservice#getManifest()}.<br>
+ * 		<h6 class='figure'>Example:</h6>
+ * 		<p class='bcode'>
+ * 			String mainClass = request.getVarResolver().resolve(<js>"$MF{Main-Class}"</js>);  <jc>// Main class. </jc>
+ * 		</p>
+ * </ul>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+@SuppressWarnings("serial")
+@RestResource(
+	properties={
+		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS'}")
+	},
+	config="$S{juneau.configFile}",
+	stylesheet="$C{REST/stylesheet,styles/juneau.css}"
+)
+public abstract class Resource extends RestServletDefault {
+
+	/**
+	 * Adds $ARG and $MF variables to variable resolver defined on {@link RestServlet#createVarResolver()}.
+	 */
+	@Override
+	protected VarResolver createVarResolver() {
+		return super.createVarResolver()
+			.addVars(ArgsVar.class, ManifestFileVar.class)
+			.setContextObject(ArgsVar.SESSION_args, Microservice.getArgs())
+			.setContextObject(ManifestFileVar.SESSION_manifest, Microservice.getManifest());
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceGroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceGroup.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceGroup.java
new file mode 100755
index 0000000..c6e0d6b
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceGroup.java
@@ -0,0 +1,64 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice;
+
+import static org.apache.juneau.html.HtmlDocSerializerContext.*;
+
+import org.apache.juneau.server.*;
+import org.apache.juneau.server.annotation.*;
+import org.apache.juneau.svl.*;
+import org.apache.juneau.svl.vars.*;
+
+/**
+ * Superclass for all REST resource groups.
+ * <p>
+ * In additional to the functionality of the {@link RestServletGroupDefault} group,
+ * augments the {@link #createVarResolver()} method with the following additional variable types:
+ * <ul class='spaced-list'>
+ * 	<li><jk>$ARG{...}</jk> - Command line arguments.<br>
+ * 		Resolves values from {@link Microservice#getArgs()}.<br>
+ * 		<h6>Example:</h6>
+ * 		<p class='bcode'>
+ * 			String firstArg = request.getVarResolver().resolve(<js>"$ARG{0}"</js>);  <jc>// First argument.</jc>
+ * 			String namedArg = request.getVarResolver().resolve(<js>"$ARG{myarg}"</js>);  <jc>// Named argument (e.g. "myarg=foo"). </jc>
+ * 		</p>
+ * 	<li><jk>$MF{...}</jk> - Manifest file entries.
+ * 		<h6>Example:</h6>
+ * 		<p class='bcode'>
+ * 			String mainClass = request.getVarResolver().resolve(<js>"$MF{Main-Class}"</js>);  <jc>// Main class. </jc>
+ * 		</p>
+ * </ul>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+@SuppressWarnings("serial")
+@RestResource(
+	properties={
+		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS'}"),
+	},
+	config="$S{juneau.configFile}",
+	stylesheet="$C{REST/stylesheet,styles/juneau.css}"
+)
+public abstract class ResourceGroup extends RestServletGroupDefault {
+
+	/**
+	 * Adds $ARG and $MF variables to variable resolver defined on {@link RestServlet#createVarResolver()}.
+	 */
+	@Override
+	protected VarResolver createVarResolver() {
+		return super.createVarResolver()
+			.addVars(ArgsVar.class, ManifestFileVar.class)
+			.setContextObject(ArgsVar.SESSION_args, Microservice.getArgs())
+			.setContextObject(ManifestFileVar.SESSION_manifest, Microservice.getManifest());
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceJena.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceJena.java b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceJena.java
new file mode 100755
index 0000000..43cf2c6
--- /dev/null
+++ b/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceJena.java
@@ -0,0 +1,33 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.microservice;
+
+import static org.apache.juneau.html.HtmlDocSerializerContext.*;
+
+import org.apache.juneau.server.annotation.*;
+import org.apache.juneau.server.jena.*;
+
+/**
+ * Superclass for all REST resources with RDF support.
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+@SuppressWarnings("serial")
+@RestResource(
+	properties={
+		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS'}")
+	},
+	config="$S{juneau.configFile}",
+	stylesheet="$C{REST/stylesheet,styles/juneau.css}"
+)
+public abstract class ResourceJena extends RestServletJenaDefault {}


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/jazz/JazzRestClient.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/jazz/JazzRestClient.java b/com.ibm.team.juno.client/src/com/ibm/juno/client/jazz/JazzRestClient.java
deleted file mode 100755
index e578b0d..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/jazz/JazzRestClient.java
+++ /dev/null
@@ -1,392 +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.client.jazz;
-
-import static org.apache.http.HttpStatus.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.apache.http.*;
-import org.apache.http.auth.*;
-import org.apache.http.client.*;
-import org.apache.http.client.config.*;
-import org.apache.http.client.entity.*;
-import org.apache.http.client.methods.*;
-import org.apache.http.impl.client.*;
-import org.apache.http.message.*;
-import org.apache.http.util.*;
-
-import com.ibm.juno.client.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Specialized {@link RestClient} for working with Jazz servers.
- * <p>
- * Provides support for BASIC, FORM, and OIDC authentication against Jazz servers and simple SSL certificate validation.
- *
- * <h6 class='topic'>Additional Information</h6>
- * <ul>
- * 	<li><a class='doclink' href='package-summary.html#RestClient'>com.ibm.juno.client.jazz &gt; Jazz REST client API</a> for more information and code examples.
- * </ul>
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class JazzRestClient extends RestClient {
-
-	private String user, pw;
-	private URI jazzUri;
-	private SSLOpts sslOpts;
-	private String cookie = null;
-
-	/**
-	 * Create a new client with no serializer or parser.
-	 *
-	 * @param jazzUrl The URL of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param sslOpts SSL options.
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 */
-	public JazzRestClient(String jazzUrl, SSLOpts sslOpts, String user, String pw) throws IOException {
-		super();
-		this.user = user;
-		this.pw = pw;
-		if (! jazzUrl.endsWith("/"))
-			jazzUrl = jazzUrl + "/";
-		this.sslOpts = sslOpts;
-		jazzUri = URI.create(jazzUrl);
-	}
-
-	/**
-	 * Create a new client with no serializer or parser, and LAX SSL support.
-	 *
-	 * @param jazzUrl The URL of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @throws IOException
-	 */
-	public JazzRestClient(String jazzUrl, String user, String pw) throws IOException {
-		this(jazzUrl, SSLOpts.LAX, user, pw);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser instances.
-	 *
-	 * @param jazzUri The URI of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param sslOpts SSL options.
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 */
-	public JazzRestClient(String jazzUri, SSLOpts sslOpts, String user, String pw, Serializer<?> s, Parser<?> p) throws IOException {
-		this(jazzUri, sslOpts, user, pw);
-		setParser(p);
-		setSerializer(s);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser instances and LAX SSL support.
-	 *
-	 * @param jazzUri The URI of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 */
-	public JazzRestClient(String jazzUri, String user, String pw, Serializer<?> s, Parser<?> p) throws IOException {
-		this(jazzUri, SSLOpts.LAX, user, pw);
-		setParser(p);
-		setSerializer(s);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser classes.
-	 *
-	 * @param jazzUri The URI of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param sslOpts SSL options.
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 * @throws InstantiationException If serializer or parser could not be instantiated.
-	 */
-	public JazzRestClient(String jazzUri, SSLOpts sslOpts, String user, String pw, Class<? extends Serializer<?>> s, Class<? extends Parser<?>> p) throws InstantiationException, IOException {
-		this(jazzUri, sslOpts, user, pw);
-		setParser(p);
-		setSerializer(s);
-	}
-
-	/**
-	 * Create a new client with the specified serializer and parser classes and LAX SSL support.
-	 *
-	 * @param jazzUri The URI of the Jazz server being connected to (e.g. <js>"https://localhost:9443/jazz"</js>)
-	 * @param user The Jazz username.
-	 * @param pw The Jazz password.
-	 * @param s The serializer for converting POJOs to HTTP request message body text.
-	 * @param p The parser for converting HTTP response message body text to POJOs.
-	 * @throws IOException If a problem occurred trying to authenticate against the Jazz server.
-	 * @throws InstantiationException If serializer or parser could not be instantiated.
-	 */
-	public JazzRestClient(String jazzUri, String user, String pw, Class<? extends Serializer<?>> s, Class<? extends Parser<?>> p) throws InstantiationException, IOException {
-		this(jazzUri, SSLOpts.LAX, user, pw);
-		setParser(p);
-		setSerializer(s);
-	}
-
-	@Override /* RestClient */
-	protected CloseableHttpClient createHttpClient() throws Exception {
-		try {
-			if (jazzUri.getScheme().equals("https"))
-				enableSSL(sslOpts);
-
-			httpClientBuilder.setConnectionManager(createConnectionManager());
-
-			setRedirectStrategy(new AllowAllRedirects());
-
-			// See wi 368181. The PublicSuffixDomainFilter uses a default PublicSuffixMatcher
-			// that rejects hostnames lacking a dot, such as "ccmserver", so needed
-			// cookies don't get put on outgoing requests.
-			// Here, we create a cookie spec registry with handlers that don't have a PublicSuffixMatcher.
-			if (! Boolean.getBoolean("com.ibm.team.repository.transport.client.useDefaultPublicSuffixMatcher")) { //$NON-NLS-1$
-				// use a lenient PublicSuffixDomainFilter
-				setDefaultCookieSpecRegistry(CookieSpecRegistries.createDefault(null));
-			}
-
-			// We want to use a fresh HttpClientBuilder since the default implementation
-			// uses an unshared PoolingConnectionManager, and if you close the client
-			// and create a new one, can cause a "java.lang.IllegalStateException: Connection pool shut down"
-			CloseableHttpClient client = httpClientBuilder.build();
-
-			// Tomcat will respond with SC_BAD_REQUEST (or SC_REQUEST_TIMEOUT?) when the
-			// j_security_check URL is visited before an authenticated URL has been visited.
-			visitAuthenticatedURL(client);
-
-			// Authenticate against the server.
-			String authMethod = determineAuthMethod(client);
-			if (authMethod.equals("FORM")) {
-				formBasedAuthenticate(client);
-				visitAuthenticatedURL(client);
-			} else if (authMethod.equals("BASIC")) {
-				AuthScope scope = new AuthScope(jazzUri.getHost(), jazzUri.getPort());
-				Credentials up = new UsernamePasswordCredentials(user, pw);
-				CredentialsProvider p = new BasicCredentialsProvider();
-				p.setCredentials(scope, up);
-				setDefaultCredentialsProvider(p);
-				client.close();
-				client = httpClientBuilder.build();
-			} else if (authMethod.equals("OIDC")) {
-				oidcAuthenticate(client);
-				client.close();
-				client = httpClientBuilder.build();
-			}
-
-			return client;
-		} catch (Exception e) {
-			throw e;
-		} catch (Throwable e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	@Override /* RestClient */
-	protected HttpClientBuilder createHttpClientBuilder() {
-		HttpClientBuilder b = super.createHttpClientBuilder();
-
-		// See wi 368181. The PublicSuffixDomainFilter uses a default PublicSuffixMatcher
-		// that rejects hostnames lacking a dot, such as "ccmserver", so needed
-		// cookies don't get put on outgoing requests.
-		// Here, we create a cookie spec registry with handlers that don't have a PublicSuffixMatcher.
-		if (! Boolean.getBoolean("com.ibm.team.repository.transport.client.useDefaultPublicSuffixMatcher"))
-			b.setDefaultCookieSpecRegistry(CookieSpecRegistries.createDefault(null));
-
-		return b;
-	}
-
-
-	/**
-	 * Performs form-based authentication against the Jazz server.
-	 */
-	private void formBasedAuthenticate(HttpClient client) throws IOException {
-
-		URI uri2 = jazzUri.resolve("j_security_check");
-		HttpPost request = new HttpPost(uri2);
-		request.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build());
-		 // Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.
-		request.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
-
-		NameValuePairs params = new NameValuePairs()
-			.append(new BasicNameValuePair("j_username", user))
-			.append(new BasicNameValuePair("j_password", pw));
-		request.setEntity(new UrlEncodedFormEntity(params));
-
-		HttpResponse response = client.execute(request);
-		try {
-			int rc = response.getStatusLine().getStatusCode();
-
-			Header authMsg = response.getFirstHeader("X-com-ibm-team-repository-web-auth-msg");
-			if (authMsg != null)
-				throw new IOException(authMsg.getValue());
-
-			// The form auth request should always respond with a 200 ok or 302 redirect code
-			if (rc == SC_MOVED_TEMPORARILY) {
-				if (response.getFirstHeader("Location").getValue().matches("^.*/auth/authfailed.*$"))
-					throw new IOException("Invalid credentials.");
-			} else if (rc != SC_OK) {
-				throw new IOException("Unexpected HTTP status: " + rc);
-			}
-		} finally {
-			EntityUtils.consume(response.getEntity());
-		}
-	}
-
-	private void oidcAuthenticate(HttpClient client) throws IOException {
-
-		HttpGet request = new HttpGet(jazzUri);
-		request.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build());
-
-		 // Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.
-		request.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
-
-		HttpResponse response = client.execute(request);
-		try {
-			int code = response.getStatusLine().getStatusCode();
-
-			// Already authenticated
-			if (code == SC_OK)
-				return;
-
-			if (code != SC_UNAUTHORIZED)
-				throw new RestCallException("Unexpected response during OIDC authentication: " + response.getStatusLine());
-
-			//'x-jsa-authorization-redirect'
-			String redirectUri = getHeader(response, "X-JSA-AUTHORIZATION-REDIRECT");
-
-			if (redirectUri == null)
-				throw new RestCallException("Excpected a redirect URI during OIDC authentication: " + response.getStatusLine());
-
-			// Handle Bearer Challenge
-			HttpGet method = new HttpGet(redirectUri + "&prompt=none");
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			if (code != SC_OK)
-				throw new RestCallException("Unexpected response during OIDC authentication phase 2: " + response.getStatusLine());
-
-			String loginRequired = getHeader(response, "X-JSA-LOGIN-REQUIRED");
-
-			if (! "true".equals(loginRequired))
-				throw new RestCallException("X-JSA-LOGIN-REQUIRED header not found on response during OIDC authentication phase 2: " + response.getStatusLine());
-
-			method = new HttpGet(redirectUri + "&prompt=none");
-
-			addDefaultOidcHeaders(method);
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			if (code != SC_OK)
-				throw new RestCallException("Unexpected response during OIDC authentication phase 3: " + response.getStatusLine());
-
-			// Handle JAS Challenge
-			method = new HttpGet(redirectUri);
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			if (code != SC_OK)
-				throw new RestCallException("Unexpected response during OIDC authentication phase 4: " + response.getStatusLine());
-
-			cookie = getHeader(response, "Set-Cookie");
-
-			Header[] defaultHeaders = new Header[] {
-				new BasicHeader("User-Agent", "Jazz Native Client"),
-				new BasicHeader("X-com-ibm-team-configuration-versions", "com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"),
-				new BasicHeader("Accept", "text/json"),
-				new BasicHeader("Authorization", "Basic " + StringUtils.base64EncodeToString(this.user + ":" + this.pw)),
-				new BasicHeader("Cookie", cookie)
-			};
-
-			setDefaultHeaders(Arrays.asList(defaultHeaders));
-
-		} finally {
-			EntityUtils.consume(response.getEntity());
-		}
-	}
-
-	/*
-	 * This is needed for Tomcat because it responds with SC_BAD_REQUEST when the j_security_check URL is visited before an
-	 * authenticated URL has been visited. This same URL must also be visited after authenticating with j_security_check
-	 * otherwise tomcat will not consider the session authenticated
-	 */
-	private int visitAuthenticatedURL(HttpClient httpClient) throws IOException {
-		HttpGet authenticatedURL = new HttpGet(jazzUri.resolve("authenticated/identity"));
-		HttpResponse response = httpClient.execute(authenticatedURL);
-		try {
-			return response.getStatusLine().getStatusCode();
-		} finally {
-			EntityUtils.consume(response.getEntity());
-		}
-	}
-
-	/*
-	 * @return Returns "FORM" for form-based authenication, "BASIC" for basic auth, "OIDC" for OIDC.  Never <code>null</code>.
-	 */
-	private String determineAuthMethod(HttpClient client) throws IOException {
-
-		HttpGet request = new HttpGet(jazzUri.resolve("authenticated/identity"));
-		request.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build());
-
-		// if the FORM_AUTH_URI path exists, then we know we are using FORM auth
-		HttpResponse response = client.execute(request);
-		try {				//'x-jsa-authorization-redirect'
-			Header redirectUri = response.getFirstHeader("X-JSA-AUTHORIZATION-REDIRECT");
-			if (redirectUri != null)
-				return "OIDC";
-
-			int rc = response.getStatusLine().getStatusCode();
-			// Tomcat and Jetty return a status code 200 if the server is using FORM auth
-			if (rc == SC_OK)
-				return "FORM";
-			else if (rc == SC_MOVED_TEMPORARILY && response.getFirstHeader("Location").getValue().matches("^.*(/auth/authrequired|/authenticated/identity).*$"))
-				return "FORM";
-			return "BASIC";
-
-		} finally {
-			EntityUtils.consume(response.getEntity());
-		}
-	}
-
-	private String getHeader(HttpResponse response, String key) {
-		Header h = response.getFirstHeader(key);
-		return (h == null ? null : h.getValue());
-	}
-
-	private void addDefaultOidcHeaders(HttpRequestBase method) {
-		method.addHeader("User-Agent", "Jazz Native Client");
-		method.addHeader("X-com-ibm-team-configuration-versions", "com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0");
-		method.addHeader("Accept", "text/json");
-
-		if (cookie != null) {
-			method.addHeader("Authorization", "Basic " + StringUtils.base64EncodeToString(user + ":" + pw));
-			method.addHeader("Cookie", cookie);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/com/ibm/juno/client/jazz/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/jazz/package.html b/com.ibm.team.juno.client/src/com/ibm/juno/client/jazz/package.html
deleted file mode 100755
index fce9248..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/jazz/package.html
+++ /dev/null
@@ -1,187 +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>Jazz REST client 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='#RestClient'>Jazz REST client API</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="RestClient"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Jazz REST client API</h2>
-<div class='topic'>
-	<p>
-		Juno provides a default REST client implementation for working with Jazz servers. 
-		The client automatically detects and handles BASIC and FORM authentication and basic certificate authentication.
-	</p>
-	<p>
-		The following code shows the Jazz REST client being used for querying and creating server messages on 
-			a Jazz server.  The <code>ServerMessage</code> and <code>CreateServerMessage</code> classes
-			are nothing more than simple beans that get serialized over the connection and reconstituted on 
-			the server.
-	</p>
-	<p class='bcode'>
-	System.<jsf>out</jsf>.println(<js>"Adding sample messages"</js>);
-
-	DateFormat df = <jk>new</jk> SimpleDateFormat(<js>"yyyy-MM-dd'T'HH:mm:ssZ"</js>);
-	String url = <js>"https://localhost:9443/jazz"</js>;
-	String sms = url + <js>"/serverMessages"</js>;
-	CreateServerMessage m;
-	ServerMessage m2;
-	String s1;
-	ServerMessage[] messages;
-	
-	<jc>// Serializer for debug messages.</jc>
-	WriterSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>;
-	
-	<jc>// Create clients to handle JSON and XML requests and responses.</jc>
-	RestClient jsonClient = <jk>new</jk> JazzRestClient(url, <js>"ADMIN"</js>, <js>"ADMIN"</js>)
-		.setSerializer(JsonSerializer.<jk>class</jk>)
-		.setParser(<jk>new</jk> JsonParser().addFilters(DateFilter.<jsf>ISO8601DTZ</jsf>.<jk>class</jk>));
-	
-	RestClient xmlClient = <jk>new</jk> JazzRestClient(url, <js>"ADMIN"</js>, <js>"ADMIN"</js>, XmlSerializer.<jk>class</jk>, XmlParser.<jk>class</jk>);
-	
-	<jc>// Delete any existing messages.</jc>
-	messages = jsonClient
-		.doGet(sms)
-		.getResponse(ServerMessage[].<jk>class</jk>);
-	
-	<jk>for</jk> (ServerMessage message : messages) {
-		<jk>int</jk> rc = jsonClient
-			.doDelete(message.getUri())
-			.execute();
-		System.<jsf>out</jsf>.println(rc);	<jc>// Prints 200.</jc>
-	}
-	
-	<jc>// Create an active server message.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #1"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2012-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>));
-	
-	<jc>// POST the message, get response as string.</jc>
-	s1 = jsonClient
-		.doPost(sms, m)
-		.getResponseAsString(); 
-	System.<jsf>out</jsf>.println(<js>"TEST1: response="</js> + s1);
-
-	<jc>// POST another message, get response as ServerMessage</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #2"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2012-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>));
-
-	m2 = jsonClient
-		.doPost(sms, m)
-		.getResponse(ServerMessage.<jk>class</jk>); 
-	System.<jsf>out</jsf>.println(<js>"TEST2: response="</js> + serializer.serialize(m2));
-	
-	<jc>// Create a future server message.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #3"</js>,
-		<js>"subTypeFoo"</js>,
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2014-01-01T12:34:56EST"</js>));
-	
-	m2 = jsonClient
-		.doPost(sms, m)
-		.getResponse(ServerMessage.<jk>class</jk>); 
-	System.<jsf>out</jsf>.println(<js>"TEST3: response="</js> + serializer.serialize(m2));
-	System.<jsf>out</jsf>.println(<js>"TEST3: id="</js> + m2.getItemId().getUuidValue());
-
-	<jc>// Create a future server message using XML on both request and response.</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #4"</js>,
-		<js>"subTypeFoo"</js>,                                  
-		df.parse(<js>"2013-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2014-01-01T12:34:56EST"</js>));
-	
-	s1 = xmlClient
-		.doPost(sms, m)
-		.getResponseAsString();
-	System.<jsf>out</jsf>.println(<js>"TEST4: response="</js> + s1);
-
-	<jc>// Get all the messages</jc>
-	messages = jsonClient
-		.doGet(sms)
-		.getResponse(ServerMessage[].<jk>class</jk>);
-	System.<jsf>out</jsf>.println(<js>"TEST5: response="</js> + serializer.serialize(messages)); 
-
-	<jc>// Get the first ID</jc>
-	URI firstMessageUrl = messages[0].getUri();
-	
-	System.<jsf>out</jsf>.println(<js>"firstMessageUrl=["</js>+firstMessageUrl+<js>"]"</js>);
-	
-	<jc>// Get the Date of the first ID.</jc>
-	Date startDate = jsonClient
-		.doGet(firstMessageUrl + <js>"/startDate"</js>)
-		.getResponse(Date.<jk>class</jk>);  
-	System.<jsf>out</jsf>.println(<js>"TEST5: response.startDate="</js>+startDate);
-	
-	<jc>// Change the start and end dates on first message</jc>
-	m = <jk>new</jk> CreateServerMessage(
-		<jsf>INFO</jsf>,
-		<js>"Test message #3 overwritten"</js>,
-		<js>"subTypeFooBar"</js>,
-		df.parse(<js>"2023-01-01T12:34:56EST"</js>),
-		df.parse(<js>"2024-01-01T12:34:56EST"</js>));
-	s1 = jsonClient.doPut(firstMessageUrl, m).getResponseAsString();
-	System.<jsf>out</jsf>.println(<js>"TEST6: response="</js>+s1);
-	</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.client/src/com/ibm/juno/client/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/com/ibm/juno/client/package.html b/com.ibm.team.juno.client/src/com/ibm/juno/client/package.html
deleted file mode 100755
index 407ef7c..0000000
--- a/com.ibm.team.juno.client/src/com/ibm/juno/client/package.html
+++ /dev/null
@@ -1,850 +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>REST client 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='#RestClient'>REST Client API</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#SSL'>SSL Support</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#SSLOpts'>SSLOpts Bean</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#Authentication'>Authentication</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#BASIC'>BASIC Authentication</a></p>
-			<li><p><a class='doclink' href='#FORM'>FORM-based Authentication</a></p>
-			<li><p><a class='doclink' href='#OIDC'>OIDC Authentication</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#ResponsePatterns'>Using Response Patterns</a></p>
-		<li><p><a class='doclink' href='#PipingOutput'>Piping Response Output</a></p>
-		<li><p><a class='doclink' href='#Logging'>Logging</a></p>
-		<li><p><a class='doclink' href='#Interceptors'>Interceptors</a></p>
-		<li><p><a class='doclink' href='#Remoteable'>Remoteable Proxies</a></p>
-		<li><p><a class='doclink' href='#Other'>Other Useful Methods</a></p>
-	</ol>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="RestClient"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - REST Client API</h2>
-<div class='topic'>
-	<p>
-		Juno provides an HTTP client API that makes it extremely simple to connect to remote REST interfaces and 
-		seemlessly send and receive serialized POJOs in requests and responses.  
-	</p>
-	<h6 class='notes'>Features:</h6>
-	<ul class='notes'>
-		<li>Converts POJOs directly to HTTP request message bodies using {@link com.ibm.juno.core.serializer.Serializer} classes.
-	 	<li>Converts HTTP response message bodies directly to POJOs using {@link com.ibm.juno.core.parser.Parser} classes.
-		<li>Exposes the full functionality of the Apache HttpClient API by exposing all methods defined on the 
-			{@link org.apache.http.impl.client.HttpClientBuilder} class.
-		<li>Provides various convenience methods for setting up common SSL and authentication methods.
-		<li>Provides a fluent interface that allows you to make complex REST calls in a single line of code.
-	</ul>	
-	<p>
-		The client API is designed to work as a thin layer on top of the proven Apache HttpClient API.  
-		By leveraging the HttpClient library, details such as SSL certificate negotiation, proxies, encoding, etc...
-			are all handled in Apache code. 
-	</p>
-	<p>
-		The Juno client API prereq's Apache HttpClient 4.1.2+. 
-		At a mimimum, the following jars are required:
-	</p>
-	<ul>
-		<li><code>httpclient-4.5.jar</code>
-		<li><code>httpcore-4.4.1.jar</code>
-		<li><code>httpmime-4.5.jar</code>
-	</ul>
-	<h6 class='topic'>Examples</h6>
-	<p class='bcode'>
-	<jc>// Examples below use the Juno Address Book resource example</jc>
-
-	<jc>// Create a reusable client with JSON support</jc>
-	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>);
-	
-	<jc>// GET request, ignoring output</jc>
-	<jk>try</jk> {
-		<jk>int</jk> rc = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>).execute();
-		<jc>// Succeeded!</jc>
-	} <jk>catch</jk> (RestCallException e) {
-		<jc>// Failed!</jc>
-		System.<jsf>err</jsf>.println(
-			String.<jsm>format</jsm>(<js>"status=%s, message=%s"</js>, e.getResponseStatus(), e.getResponseMessage())
-		);
-	}
-			
-	<jc>// Remaining examples ignore thrown exceptions.</jc>		
-			
-	<jc>// GET request, secure, ignoring output</jc>
-	client.doGet(<js>"https://localhost:9443/sample/addressBook"</js>).execute();
-			
-	<jc>// GET request, getting output as a String.  No POJO parsing is performed.
-	// Note that when calling one of the getX() methods, you don't need to call connect() or disconnect(), since
-	//	it's automatically called for you.</jc>
-	String output = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponseAsString();
-			
-	<jc>// GET request, getting output as a Reader</jc>
-	Reader r = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getReader();
-			
-	<jc>// GET request, getting output as an ObjectMap</jc>
-	<jc>// Input must be an object (e.g. "{...}")</jc>
-	ObjectMap m = client.doGet(<js>"http://localhost:9080/sample/addressBook/0"</js>)
-		.getResponse(ObjectMap.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a ObjectList</jc>
-	<jc>// Input must be an array (e.g. "[...]")</jc>
-	ObjectList l = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(ObjectList.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed bean</jc>
-	<jc>// Input must be an object (e.g. "{...}")</jc>
-	<jc>// Note that you don't have to do any casting!</jc>
-	Person p = client.doGet(<js>"http://localhost:9080/sample/addressBook/0"</js>)
-		.getResponse(Person.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed bean</jc>
-	<jc>// Input must be an array of objects (e.g. "[{...},{...}]")</jc>
-	Person[] pa = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(Person[].<jk>class</jk>);
-			
-	<jc>// Same as above, except as a List&lt;Person&gt;</jc>
-	ClassMeta cm = BeanContext.<jsf>DEFAULT</jsf>.getCollectionClassMeta(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
-	List&lt;Person&gt; pl = client.doGet(<js>"http://localhost:9080/sample/addressBook"</js>)
-		.getResponse(cm);
-			
-	<jc>// GET request, getting output as a parsed string</jc>
-	<jc>// Input must be a string (e.g. "&lt;string&gt;foo&lt;/string&gt;" or "'foo'")</jc>
-	String name = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/name"</js>)
-		.getResponse(String.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed number</jc>
-	<jc>// Input must be a number (e.g. "&lt;number&gt;123&lt;/number&gt;" or "123")</jc>
-	<jk>int</jk> age = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/age"</js>)
-		.getResponse(Integer.<jk>class</jk>);
-			
-	<jc>// GET request, getting output as a parsed boolean</jc>
-	<jc>// Input must be a boolean (e.g. "&lt;boolean&gt;true&lt;/boolean&gt;" or "true")</jc>
-	<jk>boolean</jk> isCurrent = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/addresses/0/isCurrent"</js>)
-		.getResponse(Boolean.<jk>class</jk>);
-			
-	<jc>// GET request, getting a filtered object</jc>
-	client.getParser().addFilters(CalendarFilter.<jsf>ISO8601</jsf>.<jk>class</jk>);
-	Calendar birthDate = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>)
-		.getResponse(GregorianCalendar.<jk>class</jk>);
-
-	<jc>// PUT request on regular field</jc>
-	String newName = <js>"John Smith"</js>;
-	<jk>int</jk> rc = client.doPut(<js>"http://localhost:9080/addressBook/0/name"</js>, newName).execute();
-	
-	<jc>// PUT request on filtered field</jc>
-	Calendar newBirthDate = <jk>new</jk> GregorianCalendar(1, 2, 3, 4, 5, 6);
-	rc = client.doPut(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>, newBirthDate).execute();
-	
-	<jc>// POST of a new entry to a list</jc>
-	Address newAddress = <jk>new</jk> Address(<js>"101 Main St"</js>, <js>"Anywhere"</js>, <js>"NY"</js>, 12121, <jk>false</jk>);
-	rc = client.doPost(<js>"http://localhost:9080/addressBook/0/addresses"</js>, newAddress).execute();	
-	</p>
-	
-	<h6 class='notes'>Notes:</h6>
-	<ul class='notes'>
-		<li><p>The {@link com.ibm.juno.client.RestClient} class exposes all the builder methods on the Apache HttpClient {@link org.apache.http.impl.client.HttpClientBuilder} class.
-			Use these methods to provide any customized HTTP client behavior..</p>
-	</ul>
-	
-	<!-- ======================================================================================================== -->
-	<a id="SSL"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - SSL Support</h3>
-	<div class='topic'>
-		<p>
-			The simplest way to enable SSL support in the client is to use the {@link com.ibm.juno.client.RestClient#enableSSL(SSLOpts)} method
-			and one of the predefined {@link com.ibm.juno.client.SSLOpts} instances:
-			<ul>
-				<li>{@link com.ibm.juno.client.SSLOpts#DEFAULT} - Normal certificate and hostname validation.
-				<li>{@link com.ibm.juno.client.SSLOpts#LAX} - Allows for self-signed certificates.
-			</ul>
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Create a client that ignores self-signed or otherwise invalid certificates.</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.enableSSL(SSLOpts.<jsf>LAX</jsf>);
-		
-	<jc>// ...or...</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.enableLaxSSL();
-		</p>
-		<p>
-			This is functionally equivalent to the following:
-		</p>
-		<p class='bcode'>
-	RestClient restClient = <jk>new</jk> RestClient();
-	
-	HostnameVerifier hv = <jk>new</jk> NoopHostnameVerifier();
-	TrustManager tm = <jk>new</jk> SimpleX509TrustManager(<jk>true</jk>);
-
-	<jk>for</jk> (String p : <jk>new</jk> String[]{<js>"SSL"</js>,<js>"TLS"</js>,<js>"SSL_TLS"</js>}) {
-		SSLContext ctx = SSLContext.<jsm>getInstance</jsm>(p);
-		ctx.init(<jk>null</jk>, <jk>new</jk> TrustManager[] { tm }, <jk>null</jk>);
-		SSLConnectionSocketFactory sf = <jk>new</jk> SSLConnectionSocketFactory(ctx, hv);
-		restClient.setSSLSocketFactory(sf);
-		Registry&lt;ConnectionSocketFactory&gt; r = RegistryBuilder.&lt;ConnectionSocketFactory&gt;<jsm>.create</jsm>().register(<js>"https"</js>, sf).build();
-		restClient.setConnectionManager(<jk>new</jk> PoolingHttpClientConnectionManager(r));
-	}
-		</p>
-		<p>
-			More complex SSL support can be enabled through the various {@link org.apache.http.impl.client.HttpClientBuilder} methods defined on the class.
-		</p>
-		
-		<!-- ======================================================================================================== -->
-		<a id="SSLOpts"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.1.1 - SSLOpts Bean</h4>
-		<div class='topic'>
-	<p>
-				The {@link com.ibm.juno.client.SSLOpts} class itself is a bean that can be created by the parsers.
-				For example, SSL options can be specified in a config file and retrieved as a bean using the {@link com.ibm.juno.core.ini.ConfigFile} class.
-	</p>
-			<h6 class='figure'>Contents of <code>MyConfig.cfg</code></h6>
-			<p class='bcode'>
-		<jc>#================================================================================
-		# My Connection Settings
-		#================================================================================</jc>
-		[Connection]
-		url = https://myremotehost:9443
-		ssl = {certValidate:'LAX',hostVerify:'LAX'}
-			</p>
-			<h6 class='figure'>Code that reads an <code>SSLOpts</code> bean from the config file</h6>
-			<p class='bcode'>
-		<jc>// Read config file and set SSL options based on what's in that file.</jc>
-		ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.get(<js>"MyConfig.cfg"</js>);
-		SSLOpts ssl = cf.getObject(SSLOpts.<jk>class</jk>, <js>"Connection/ssl"</js>);
-		RestClient rc = <jk>new</jk> RestClient().enableSSL(ssl);
-			</p>
-		</div>
-	</div>	
-
-	<!-- ======================================================================================================== -->
-	<a id="Authentication"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.2 - Authentication</h3>
-	<div class='topic'>
-
-		<!-- ======================================================================================================== -->
-		<a id="BASIC"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.1 - BASIC Authentication</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.client.RestClient#setBasicAuth(String,int,String,String)} method can be used to quickly enable
-				BASIC authentication support.
-			</p>
-			<h6 class='topic'>Example:</h6>
-			<p class='bcode'>
-	<jc>// Create a client that performs BASIC authentication using the specified user/pw.</jc>
-	RestClient restClient = <jk>new</jk> RestClient() 
-		.setBasicAuth(<jsf>HOST</jsf>, <jsf>PORT</jsf>, <jsf>USER</jsf>, <jsf>PW</jsf>);
-		</p>
-		<p>
-			This is functionally equivalent to the following:
-		</p>
-		<p class='bcode'>
-	RestClient restClient = <jk>new</jk> RestClient();
-	AuthScope scope = <jk>new</jk> AuthScope(<jsf>HOST</jsf>, <jsf>PORT</jsf>);
-	Credentials up = <jk>new</jk> UsernamePasswordCredentials(<jsf>USER</jsf>, <jsf>PW</jsf>);
-	CredentialsProvider p = <jk>new</jk> BasicCredentialsProvider();
-	p.setCredentials(scope, up);
-	restClient.setDefaultCredentialsProvider(p);
-			</p>
-		</div>
-	
-		<!-- ======================================================================================================== -->
-		<a id="FORM"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.2 - FORM-based Authentication</h4>
-		<div class='topic'>
-			<p>
-				The {@link com.ibm.juno.client.RestClient} class does not itself provide FORM-based authentication since there
-				is no standard way of providing such support. 
-				Typically, to perform FORM-based or other types of authentication, you'll want to create your own
-				subclass of {@link com.ibm.juno.client.RestClient} and override the {@link com.ibm.juno.client.RestClient#createHttpClient()}
-				method to provide an authenticated client.
-			</p>
-			<p>
-				The following example shows how the {@link com.ibm.juno.client.jazz.JazzRestClient} class provides
-				FORM-based authentication support.
-			</p>
-			<p class='bcode'>
-	<jd>/**
-	 * Constructor.
-	 */</jd>
-	<jk>public</jk> JazzRestClient(URI jazzUri, String user, String pw) <jk>throws</jk> IOException {
-		...
-	}
-
-	<jd>/**
-	 * Override the createHttpClient() method to return an authenticated client.
-	 */</jd>
-	<ja>@Override</ja> <jc>/* RestClient */</jc>
-	<jk>protected</jk> CloseableHttpClient createHttpClient() <jk>throws</jk> Exception {
-		CloseableHttpClient client = <jk>super</jk>.createHttpClient();
-		formBasedAuthenticate(client);
-		visitAuthenticatedURL(client);
-		<jk>return</jk> client;
-	}
-
-	<jc>/*
-	 * Performs form-based authentication against the Jazz server.
-	 */</jc>
-	<jk>private void</jk> formBasedAuthenticate(HttpClient client) <jk>throws</jk> IOException {
-
-		URI uri2 = <jf>jazzUri</jf>.resolve(<js>"j_security_check"</js>);
-		HttpPost request = <jk>new</jk> HttpPost(uri2);
-		request.setConfig(RequestConfig.<jsm>custom</jsm>().setRedirectsEnabled(<jk>false</jk>).build());
-		
-		<jc>// Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.</jc>
-		request.addHeader(<js>"Content-Type"</js>, <js>"application/x-www-form-urlencoded; charset=utf-8"</js>);
-
-		NameValuePairs params = <jk>new</jk> NameValuePairs()
-			.append(<jk>new</jk> BasicNameValuePair(<js>"j_username""</js>, <jf>user</jf>))
-			.append(<jk>new</jk> BasicNameValuePair(<js>"j_password"</js>, <jf>pw</jf>));
-		request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
-
-		HttpResponse response = client.execute(request);
-		<jk>try</jk> {
-			<jk>int</jk> rc = response.getStatusLine().getStatusCode();
-
-			Header authMsg = response.getFirstHeader(<js>"X-com-ibm-team-repository-web-auth-msg"</js>);
-			<jk>if</jk> (authMsg != <jk>null</jk>)
-				<jk>throw new</jk> IOException(authMsg.getValue());
-
-			<jc>// The form auth request should always respond with a 200 ok or 302 redirect code</jc>
-			<jk>if</jk> (rc == <jsf>SC_MOVED_TEMPORARILY</jsf>) {
-				<jk>if</jk> (response.getFirstHeader(<js>"Location"</js>).getValue().matches(<js>"^.*/auth/authfailed.*$"</js>))
-					<jk>throw new</jk> IOException(<js>"Invalid credentials."</js>);
-			} <jk>else if</jk> (rc != <jsf>SC_OK</jsf>) {
-				<jk>throw new</jk> IOException(<js>"Unexpected HTTP status: "</js> + rc);
-			}
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-
-	<jc>/*
-	 * This is needed for Tomcat because it responds with SC_BAD_REQUEST when the j_security_check URL is visited before an
-	 * authenticated URL has been visited. This same URL must also be visited after authenticating with j_security_check
-	 * otherwise tomcat will not consider the session authenticated
-	 */</jc>
-	<jk>private int</jk> visitAuthenticatedURL(HttpClient httpClient) <jk>throws</jk> IOException {
-		HttpGet authenticatedURL = <jk>new</jk> HttpGet(<jf>jazzUri</jf>.resolve(<js>"authenticated/identity"</js>));
-		HttpResponse response = httpClient.execute(authenticatedURL);
-		<jk>try</jk> {
-			<jk>return</jk> response.getStatusLine().getStatusCode();
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-			</p>
-		</div>
-		
-		<!-- ======================================================================================================== -->
-		<a id="OIDC"></a>
-		<h4 class='topic' onclick='toggle(this)'>1.2.3 - OIDC Authentication</h4>
-		<div class='topic'>
-			<p>
-				The following example shows how the {@link com.ibm.juno.client.jazz.JazzRestClient} class provides
-				OIDC authentication support.
-			</p>
-	<p class='bcode'>
-	<jd>/**
-	 * Constructor.
-	 */</jd>
-	<jk>public</jk> JazzRestClient(URI jazzUri, String user, String pw) <jk>throws</jk> IOException {
-		...
-	}
-
-	<jd>/**
-	 * Override the createHttpClient() method to return an authenticated client.
-	 */</jd>
-	<ja>@Override</ja> <jc>/* RestClient */</jc>
-	<jk>protected</jk> CloseableHttpClient createHttpClient() <jk>throws</jk> Exception {
-		CloseableHttpClient client = <jk>super</jk>.createHttpClient();
-		oidcAuthenticate(client);
-			<jk>return</jk> client;
-		}
-
-	<jk>private void</jk> oidcAuthenticate(HttpClient client) <jk>throws</jk> IOException {
-
-		HttpGet request = <jk>new</jk> HttpGet(<jf>jazzUri</jf>);
-		request.setConfig(RequestConfig.<jsm>custom</jsm>().setRedirectsEnabled(<jk>false</jk>).build());
-		
-		<jc>// Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.</jc>
-		request.addHeader(<js>"Content-Type"</js>, <js>"application/x-www-form-urlencoded; charset=utf-8"</js>);
-
-		HttpResponse response = client.execute(request);
-		<jk>try</jk> {
-			<jk>int</jk> code = response.getStatusLine().getStatusCode();
-
-			<jc>// Already authenticated</jc>
-			<jk>if</jk> (code == <jsf>SC_OK</jsf>)
-				<jk>return</jk>;
-
-			<jk>if</jk> (code != <jsf>SC_UNAUTHORIZED</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication: "</js> + response.getStatusLine());
-
-			<jc>// x-jsa-authorization-redirect</jc>
-			String redirectUri = getHeader(response, <js>"X-JSA-AUTHORIZATION-REDIRECT"</js>);
-
-			<jk>if</jk> (redirectUri == <jk>null</jk>)
-				<jk>throw new</jk> RestCallException(<js>"Expected a redirect URI during OIDC authentication: "</js> + response.getStatusLine());
-
-			<jc>// Handle Bearer Challenge</jc>
-			HttpGet method = <jk>new</jk> HttpGet(redirectUri + <js>"&prompt=none"</js>);
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 2: "</js> + response.getStatusLine());
-
-			String loginRequired = getHeader(response, <js>"X-JSA-LOGIN-REQUIRED"</js>);
-
-			<jk>if</jk> (! <js>"true"</js>.equals(loginRequired))
-				<jk>throw new</jk> RestCallException(<js>"X-JSA-LOGIN-REQUIRED header not found on response during OIDC authentication phase 2: "</js> + response.getStatusLine());
-
-			method = <jk>new</jk> HttpGet(redirectUri + <js>"&prompt=none"</js>);
-
-			addDefaultOidcHeaders(method);
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 3: "</js> + response.getStatusLine());
-
-			<jc>// Handle JAS Challenge</jc>
-			method = <jk>new</jk> HttpGet(redirectUri);
-			addDefaultOidcHeaders(method);
-
-			response = client.execute(method);
-
-			code = response.getStatusLine().getStatusCode();
-
-			<jk>if</jk> (code != <jsf>SC_OK</jsf>)
-				<jk>throw new</jk> RestCallException(<js>"Unexpected response during OIDC authentication phase 4: "</js> + response.getStatusLine());
-
-			<jf>cookie</jf> = getHeader(response, <js>"Set-Cookie"</js>);
-
-			Header[] defaultHeaders = <jk>new</jk> Header[] {
-				<jk>new</jk> BasicHeader(<js>"User-Agent"</js>, <js>"Jazz Native Client"</js>),
-				<jk>new</jk> BasicHeader(<js>"X-com-ibm-team-configuration-versions"</js>, <js>"com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"</js>),
-				<jk>new</jk> BasicHeader(<js>"Accept"</js>, <js>"text/json"</js>),
-				<jk>new</jk> BasicHeader(<js>"Authorization"</js>, <js>"Basic "</js> + StringUtils.<jsm>base64EncodeToString</jsm>(<jf>user</jf> + <js>":"</js> + <jf>pw</jf>)),
-				<jk>new</jk> BasicHeader(<js>"Cookie"</js>, cookie)
-	};
-
-			setDefaultHeaders(Arrays.<jsm>asList</jsm>(defaultHeaders));
-
-		} <jk>finally</jk> {
-			EntityUtils.<jsm>consume</jsm>(response.getEntity());
-		}
-	}
-
-	<jk>private void</jk> addDefaultOidcHeaders(HttpRequestBase method) {
-		method.addHeader(<js>"User-Agent"</js>, <js>"Jazz Native Client"</js>);
-		method.addHeader(<js>"X-com-ibm-team-configuration-versions"</js>, <js>"com.ibm.team.rtc=6.0.0,com.ibm.team.jazz.foundation=6.0"</js>);
-		method.addHeader(<js>"Accept"</js>, <js>"text/json"</js>);
-
-		<jk>if</jk> (<jf>cookie</jf> != <jk>null</jk>) {
-			method.addHeader(<js>"Authorization"</js>, <js>"Basic "</js> + StringUtils.<jsm>base64EncodeToString</jsm>(<jf>user</jf> + <js>":"</js> + <jf>pw</jf>));
-			method.addHeader(<js>"Cookie"</js>, cookie);
-		}
-	}
-			</p>	
-		</div>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="ResponsePatterns"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.3 - Using Response Patterns</h3>
-	<div class='topic'>
-		<p>
-			One issue with REST (and HTTP in general) is that the HTTP response code must be set as a header before the 
-			body of the request is sent.  This can be problematic when REST calls invoke long-running processes, pipes
-			the results through the connection, and then fails after an HTTP 200 has already been sent.
-		</p>
-		<p>
-			One common solution is to serialize some text at the end to indicate whether the long-running process succeeded (e.g. <js>"FAILED"</js> or <js>"SUCCEEDED"</js>).
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestClient} class has convenience methods for scanning the response without
-			interfering with the other methods used for retrieving output.  
-		</p>
-		<p>
-			The following example shows how the {@link com.ibm.juno.client.RestCall#successPattern(String)} method can be used
-			to look for a SUCCESS message in the output:
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Throw a RestCallException if SUCCESS is not found in the output.</jc>
-	restClient.doPost(<jsf>URL</jsf>)
-		.successPattern(<js>"SUCCESS"</js>)
-		.run();
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCall#failurePattern(String)} method does the opposite.  
-			It throws an exception if a failure message is detected.
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Throw a RestCallException if FAILURE or ERROR is found in the output.</jc>
-	restClient.doPost(<jsf>URL</jsf>)
-		.failurePattern(<js>"FAILURE|ERROR"</js>)
-		.run();
-		</p>
-		<p>
-			These convenience methods are specialized methods that use the {@link com.ibm.juno.client.RestCall#addResponsePattern(ResponsePattern)}
-				method which uses regular expression matching against the response body.
-			This method can be used to search for arbitrary patterns in the response body.
-		</p>
-		<p>
-			The following example shows how to use a response pattern finder to find and capture patterns for <js>"x=number"</js> and <js>"y=string"</js>
-				from a response body.
-		</p>	
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jk>final</jk> List&lt;Number&gt; xList = <jk>new</jk> ArrayList&lt;Number&gt;();
-	<jk>final</jk> List&lt;String&gt; yList = <jk>new</jk> ArrayList&lt;String&gt;();
-	
-	String responseText = restClient.doGet(<jsf>URL</jsf>)
-		.addResponsePattern(
-			<jk>new</jk> ResponsePattern(<js>"x=(\\d+)"</js>) {
-				<ja>@Override</ja>
-				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
-					xList.add(Integer.<jsm>parseInt</jsm>(m.group(1)));
-				}
-				<ja>@Override</ja>
-				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
-					<jk>throw new</jk> RestCallException(<js>"No X's found!"</js>);
-				}
-			}
-		)
-		.addResponsePattern(
-			<jk>new</jk> ResponsePattern(<js>"y=(\\S+)"</js>) {
-				<ja>@Override</ja>
-				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
-					yList.add(m.group(1));
-				}
-				<ja>@Override</ja>
-				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
-					<jk>throw new</jk> RestCallException(<js>"No Y's found!"</js>);
-				}
-			}
-		)
-		.getResponseAsString();
-		</p>
-		<p>
-			Using response patterns does not affect the functionality of any of the other methods
-			used to retrieve the response such as {@link com.ibm.juno.client.RestCall#getResponseAsString()} or {@link com.ibm.juno.client.RestCall#getResponse(Class)}.<br>
-			HOWEVER, if you want to retrieve the entire text of the response from inside the match methods,
-			use {@link com.ibm.juno.client.RestCall#getCapturedResponse()} since this method will not absorb the response for those other methods.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="#PipingOutput"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.4 - Piping Response Output</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestCall} class provides various convenience <code>pipeTo()</code> methods 
-			to pipe output to output streams and writers.
-		</p>
-		<p>
-			If you want to pipe output without any intermediate buffering, you can use the {@link com.ibm.juno.client.RestCall#byLines()} method.  
-			This will cause the output to be piped and flushed after every line.  
-			This can be useful if you want to display the results in real-time from a long running process producing
-				output on a REST call.
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Pipe output from REST call to System.out in real-time.</jc>
-	restClient.doPost(<jsf>URL</jsf>).byLines().pipeTo(<jk>new</jk> PrintWriter(System.<jk>out</jk>)).run();
-		</p>
-	</div>	
-	
-	<!-- ======================================================================================================== -->
-	<a id="Logging"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.5 - Logging</h3>
-	<div class='topic'>
-		<p>
-			Use the {@link com.ibm.juno.client.RestClient#logTo(Level,Logger)} and {@link com.ibm.juno.client.RestCall#logTo(Level,Logger)} methods
-			to log HTTP calls.
-			These methods will cause the HTTP request and response headers and body to be logged to the specified logger.  
-		</p>
-		<h6 class='topic'>Example:</h6>
-		<p class='bcode'>
-	<jc>// Log the HTTP request/response to the specified logger.</jc>
-	<jk>int</jk> rc = restClient.doGet(<jsf>URL</jsf>).logTo(<jsf>INFO</jsf>, getLogger()).run();
-		</p>
-		<p>
-			The method call is ignored if the logger level is below the specified level.
-		</p>
-		<p>
-			Customized logging can be handled by subclassing the {@link com.ibm.juno.client.RestCallLogger} class and using the 
-			{@link com.ibm.juno.client.RestCall#addInterceptor(RestCallInterceptor)} method.
-		</p>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="Interceptors"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.6 - Interceptors</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#addInterceptor(RestCallInterceptor)} and {@link com.ibm.juno.client.RestCall#addInterceptor(RestCallInterceptor)} methods
-			can be used to intercept responses during specific connection lifecycle events.
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCallLogger} class is an example of an interceptor that uses the various lifecycle methods
-				to log HTTP requests.
-		</p>
-		<p class='bcode'>
-	<jd>/**
-	 * Specialized interceptor for logging calls to a log file.
-	 */</jd>
-	<jk>public class</jk> RestCallLogger <jk>extends</jk> RestCallInterceptor {
-	
-		<jk>private</jk> Level <jf>level</jf>;
-		<jk>private</jk> Logger <jf>log</jf>;
-	
-		<jd>/**
-		 * Constructor.
-		 *
-		 * <ja>@param</ja> level The log level to log messages at.
-		 * <ja>@param</ja> log The logger to log to.
-		 */</jd>
-		<jk>protected</jk> RestCallLogger(Level level, Logger log) {
-			<jk>this</jk>.<jf>level</jf> = level;
-			<jk>this</jk>.<jf>log</jf> = log;
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onInit(RestCall restCall) {
-			<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>))
-				restCall.captureResponse();
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onConnect(RestCall restCall, <jk>int</jk> statusCode, HttpRequest req, HttpResponse res) {
-			<jc>// Do nothing.</jc>
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onRetry(RestCall restCall, <jk>int</jk> statusCode, HttpRequest req, HttpResponse res) {
-			<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>))
-				<jf>log</jf>.log(level, MessageFormat.<jsm>format</jsm>(<js>"Call to {0} returned {1}.  Will retry."</js>, req.getRequestLine().getUri(), statusCode)); 
-		}
-	
-		<ja>@Override</ja> <jc>/* RestCallInterceptor */</jc>
-		<jk>public void</jk> onClose(RestCall restCall) <jk>throws</jk> RestCallException {
-			<jk>try</jk> {
-				<jk>if</jk> (<jf>log</jf>.isLoggable(<jf>level</jf>)) {
-					String output = restCall.getCapturedResponse();
-					StringBuilder sb = <jk>new</jk> StringBuilder();
-					HttpUriRequest req = restCall.getRequest();
-					HttpResponse res = restCall.getResponse();
-					<jk>if</jk> (req != <jk>null</jk>) {
-						sb.append(<js>"\n=== HTTP Call =================================================================="</js>);
-	
-						sb.append(<js>"\n=== REQUEST ===\n"</js>).append(req);
-						sb.append(<js>"\n---request headers---"</js>);
-						<jk>for</jk> (Header h : req.getAllHeaders())
-							sb.append(<js>"\n"</js>).append(h);
-						<jk>if</jk> (req <jk>instanceof</jk> HttpEntityEnclosingRequestBase) {
-							sb.append(<js>"\n---request entity---"</js>);
-							HttpEntityEnclosingRequestBase req2 = (HttpEntityEnclosingRequestBase)req;
-							HttpEntity e = req2.getEntity();
-							<jk>if</jk> (e == <jk>null</jk>)
-								sb.append(<js>"\nEntity is null"</js>);
-							<jk>else</jk> {
-								<jk>if</jk> (e.getContentType() != <jk>null</jk>)
-									sb.append(<js>"\n"</js>).append(e.getContentType());
-								<jk>if</jk> (e.getContentEncoding() != <jk>null</jk>)
-									sb.append(<js>"\n"</js>).append(e.getContentEncoding());
-								<jk>if</jk> (e.isRepeatable()) {
-									<jk>try</jk> {
-										sb.append(<js>"\n---request content---\n"</js>).append(EntityUtils.<jsm>toString</jsm>(e));
-									} <jk>catch</jk> (Exception ex) {
-										<jk>throw new</jk> RuntimeException(ex);
-									}
-								}
-							}
-						}
-					}
-					<jk>if</jk> (res != <jk>null</jk>) {
-						sb.append(<js>"\n=== RESPONSE ===\n"</js>).append(res.getStatusLine());
-						sb.append(<js>"\n---response headers---"</js>);
-						<jk>for</jk> (Header h : res.getAllHeaders())
-							sb.append(<js>"\n"</js>).append(h);
-						sb.append(<js>"\n---response content---\n"</js>).append(output);
-						sb.append(<js>"\n=== END ========================================================================"</js>);
-					}
-					<jf>log</jf>.log(<jf>level</jf>, sb.toString());
-				}
-			} <jk>catch</jk> (IOException e) {
-				<jf>log</jf>.log(Level.<jsf>SEVERE</jsf>, e.getLocalizedMessage(), e);
-			}
-		}
-	}
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="Remoteable"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.7 - Remotable Proxies</h3>
-	<div class='topic'>
-		<p>
-			Juno provides the capability of calling methods on POJOs on a server through client-side proxy interfaces.
-			It offers a number of advantages over other similar remote proxy interfaces, such as being much simpler to 
-				use and allowing much more flexibility.
-		</p>
-		<p>
-			Proxy interfaces are retrieved using the {@link com.ibm.juno.client.RestClient#getRemoteableProxy(Class)} method.
-			The {@link com.ibm.juno.client.RestClient#setRemoteableServletUri(String)} method is used to specify the location
-				of the remoteable services servlet running on the server.
-			The remoteable servlet is a specialized subclass of {@link com.ibm.juno.server.RestServlet} that provides a full-blown
-				REST interface for calling interfaces remotely. 
-		</p>
-		<p>
-			In this example, we have the following interface defined that we want to call from the client side against
-				a POJO on the server side (i.e. a Remoteable Service)...
-		<p class='bcode'>
-	<jk>public interface</jk> IAddressBook {
-		Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
-	}
-		</p>			
-		<p>
-			The client side code for invoking this method is shown below...
-		</p>
-		<p class='bcode'>
-	<jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
-	RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>)
-		.setRemoteableServletUri(<js>"https://localhost:9080/juno/sample/remoteable"</js>);
-	
-	<jc>// Create a proxy interface.</jc>
-	IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
-	
-	<jc>// Invoke a method on the server side and get the returned result.</jc>
-	Person p = ab.createPerson(
-		<jk>new</jk> CreatePerson(<js>"Test Person"</js>,
-			AddressBook.<jsm>toCalendar</jsm>(<js>"Aug 1, 1999"</js>),
-			<jk>new</jk> CreateAddress(<js>"Test street"</js>, <js>"Test city"</js>, <js>"Test state"</js>, 12345, <jk>true</jk>))
-	);
-		</p>
-		<p>
-			The requirements for a method to be callable through a remoteable service are:
-			<ul>
-				<li>The method must be public.
-				<li>The parameter and return types must be <a href='../../../../com/ibm/juno/core/package-summary.html#PojoCategories'><u>serializable and parsable</u></a>.
-			</ul>
-		</p>
-		<p>
-			One significant feature is that the remoteable services servlet is a full-blown REST interface.  
-			Therefore, in cases where the interface classes are not available on the client side,
-				the same method calls can be made through pure REST calls.  
-			This can also aid significantly in debugging since calls to the remoteable service
-				can be called directly from a browser with no code involved.
-		</p>
-		<p>
-			See {@link com.ibm.juno.server.remoteable} for more information.
-		</p> 
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="Other"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.8 - Other Useful Methods</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#setRootUrl(String)} method can be used to specify a root URL on 
-				all requests so that you don't have to use absolute paths on individual calls.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest client with a root URL</jc>
-	RestClient rc = <jk>new</jk> RestClient().setRootUrl(<js>"http://localhost:9080/foobar"</js>);
-	String r = rc.doGet(<js>"/baz"</js>).getResponseAsString();  <jc>// Gets "http://localhost:9080/foobar/baz"</jc>
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestClient#setProperty(String,Object)} method can be used to set serializer
-			and parser properties.
-			For example, if you're parsing a response into POJOs and you want to ignore fields that aren't on the
-			POJOs, you can use the {@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownBeanProperties} property.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest client that ignores unknown fields in the response</jc>
-	RestClient rc = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>)
-		.setProperty(<jsf>BEAN_ignoreUnknownBeanProperties</jsf>, <jk>true</jk>);
-	MyPojo myPojo = rc.doGet(<jsf>URL</jsf>).getResponse(MyPojo.<jk>class</jk>);
-		</p>
-		<p>
-			The {@link com.ibm.juno.client.RestCall#setRetryable(int,long,RetryOn)} method can be used to automatically
-				retry requests on failures.
-			This can be particularly useful if you're attempting to connect to a REST resource that may be in
-				the process of still initializing.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a rest call that retries every 10 seconds for up to 30 minutes as long as a connection fails
-	// or a 400+ is received.</jc>
-	restClient.doGet(<jsf>URL</jsf>)
-		.setRetryable(180, 10000, RetryOn.<jsf>DEFAULT</jsf>)
-		.run();
-	</p>
-	</div>
-</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.client/src/main/java/org/apache/juneau/client/AllowAllRedirects.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/AllowAllRedirects.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/AllowAllRedirects.java
new file mode 100755
index 0000000..2d6c85e
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/AllowAllRedirects.java
@@ -0,0 +1,31 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import org.apache.http.impl.client.*;
+
+/**
+ * Redirect strategy that allows for redirects on any request type, not just <code>GET</code> or <code>HEAD</code>.
+ * <p>
+ * Note:  This class is similar to <code>org.apache.http.impl.client.LaxRedirectStrategy</code>
+ * 	in Apache HttpClient 4.2, but also allows for redirects on <code>PUTs</code> and <code>DELETEs</code>.
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public class AllowAllRedirects extends DefaultRedirectStrategy {
+
+   @Override /* DefaultRedirectStrategy */
+   protected boolean isRedirectable(final String method) {
+   	return true;
+   }
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/DateHeader.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/DateHeader.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/DateHeader.java
new file mode 100755
index 0000000..98cb1fd
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/DateHeader.java
@@ -0,0 +1,43 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import java.util.*;
+
+import org.apache.http.client.utils.*;
+import org.apache.http.message.*;
+
+/**
+ * Convenience class for setting date headers in RFC2616 format.
+ * <p>
+ * Equivalent to the following code:
+ * <p class='bcode'>
+ * 	Header h = <jk>new</jk> Header(name, DateUtils.<jsm>formatDate</jsm>(value));
+ * </p>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public final class DateHeader extends BasicHeader {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Creates a date request property in RFC2616 format.
+	 *
+	 * @param name The header name.
+	 * @param value The header value.
+	 */
+	public DateHeader(String name, Date value) {
+		super(name, DateUtils.formatDate(value));
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/HttpMethod.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/HttpMethod.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/HttpMethod.java
new file mode 100755
index 0000000..c3d068f
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/HttpMethod.java
@@ -0,0 +1,64 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+/**
+ * Enumeration of HTTP methods.
+ * <p>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public enum HttpMethod {
+
+	/** HTTP GET */
+	GET(false),
+
+	/** HTTP PUT */
+	PUT(true),
+
+	/** HTTP POST */
+	POST(true),
+
+	/** HTTP DELETE */
+	DELETE(false),
+
+	/** HTTP OPTIONS */
+	OPTIONS(false),
+
+	/** HTTP HEAD */
+	HEAD(false),
+
+	/** HTTP TRACE */
+	TRACE(false),
+
+	/** HTTP CONNECT */
+	CONNECT(false),
+
+	/** HTTP MOVE */
+	MOVE(false);
+
+	private boolean hasContent;
+
+	HttpMethod(boolean hasContent) {
+		this.hasContent = hasContent;
+	}
+
+	/**
+	 * Returns whether this HTTP method normally has content.
+	 *
+	 * @return <jk>true</jk> if this HTTP method normally has content.
+	 */
+	public boolean hasContent() {
+		return hasContent;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/NameValuePairs.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/NameValuePairs.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/NameValuePairs.java
new file mode 100755
index 0000000..bbd6a1f
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/NameValuePairs.java
@@ -0,0 +1,48 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import java.util.*;
+
+import org.apache.http.*;
+import org.apache.http.client.entity.*;
+
+/**
+ * Convenience class for constructing instances of <code>List&lt;NameValuePair&gt;</code>
+ * 	for the {@link UrlEncodedFormEntity} class.
+ *
+ * <h6 class='topic'>Example</h6>
+ * <p class='bcode'>
+ * 	NameValuePairs params = <jk>new</jk> NameValuePairs()
+ * 		.append(<jk>new</jk> BasicNameValuePair(<js>"j_username"</js>, user))
+ * 		.append(<jk>new</jk> BasicNameValuePair(<js>"j_password"</js>, pw));
+ * 	request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
+ * </p>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public final class NameValuePairs extends LinkedList<NameValuePair> {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Appends the specified pair to the end of this list.
+	 *
+	 * @param pair The pair to append to this list.
+	 * @return This object (for method chaining).
+	 */
+	public NameValuePairs append(NameValuePair pair) {
+		super.add(pair);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/ResponsePattern.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/ResponsePattern.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/ResponsePattern.java
new file mode 100755
index 0000000..4ba7717
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/ResponsePattern.java
@@ -0,0 +1,138 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import java.io.*;
+import java.util.regex.*;
+
+/**
+ * Used to find regular expression matches in REST responses made through {@link RestCall}.
+ * <p>
+ * Response patterns are applied to REST calls through the {@link RestCall#addResponsePattern(ResponsePattern)} method.
+ * <p>
+ * <h6 class='topic'>Example</h6>
+ * This example shows how to use a response pattern finder to find and capture patterns for <js>"x=number"</js> and <js>"y=string"</js>
+ * 	from a response body.
+ * <p>
+ * <p class='bcode'>
+ * 	<jk>final</jk> List&lt;Number&gt; xList = <jk>new</jk> ArrayList&lt;Number&gt;();
+ * 	<jk>final</jk> List&lt;String&gt; yList = <jk>new</jk> ArrayList&lt;String&gt;();
+ *
+ * 	restClient.doGet(<jsf>URL</jsf>)
+ * 		.addResponsePattern(
+ * 			<jk>new</jk> ResponsePattern(<js>"x=(\\d+)"</js>) {
+ * 				<ja>@Override</ja>
+ * 				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
+ * 					xList.add(Integer.<jsm>parseInt</jsm>(m.group(1)));
+ * 				}
+ * 				<ja>@Override</ja>
+ * 				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
+ * 					<jk>throw new</jk> RestCallException(<js>"No X's found!"</js>);
+ * 				}
+ * 			}
+ * 		)
+ * 		.addResponsePattern(
+ * 			<jk>new</jk> ResponsePattern(<js>"y=(\\S+)"</js>) {
+ * 				<ja>@Override</ja>
+ * 				<jk>public void</jk> onMatch(RestCall restCall, Matcher m) <jk>throws</jk> RestCallException {
+ * 					yList.add(m.group(1));
+ * 				}
+ * 				<ja>@Override</ja>
+ * 				<jk>public void</jk> onNoMatch(RestCall restCall) <jk>throws</jk> RestCallException {
+ * 					<jk>throw new</jk> RestCallException(<js>"No Y's found!"</js>);
+ * 				}
+ * 			}
+ * 		)
+ * 		.run();
+ * </p>
+ * <p>
+ * <h5 class='notes'>Important Notes:</h5>
+ * <ol class='notes'>
+ * 	<li><p>
+ * 		Using response patterns does not affect the functionality of any of the other methods
+ * 		used to retrieve the response such as {@link RestCall#getResponseAsString()} or {@link RestCall#getResponse(Class)}.<br>
+ * 		HOWEVER, if you want to retrieve the entire text of the response from inside the match methods,
+ * 		use {@link RestCall#getCapturedResponse()} since this method will not absorb the response for those other methods.
+ * 	</p>
+ * 	<li><p>
+ * 		Response pattern methods are NOT executed if a REST exception occurs during the request.
+ * 	</p>
+ * 	<li><p>
+ * 		The {@link RestCall#successPattern(String)} and {@link RestCall#failurePattern(String)} methods use instances of
+ * 		this class to throw {@link RestCallException RestCallExceptions} when success patterns are not found or failure patterns
+ * 		are found.
+ * 	</p>
+ * 	<li><p>
+ * 		{@link ResponsePattern} objects are reusable and thread-safe.
+ * 	</p>
+ * </ol>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public abstract class ResponsePattern {
+
+	private Pattern pattern;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param pattern Regular expression pattern.
+	 */
+	public ResponsePattern(String pattern) {
+		this.pattern = Pattern.compile(pattern);
+	}
+
+	void match(RestCall rc) throws RestCallException {
+		try {
+			Matcher m = pattern.matcher(rc.getCapturedResponse());
+			boolean found = false;
+			while (m.find()) {
+				onMatch(rc, m);
+				found = true;
+			}
+			if (! found)
+				onNoMatch(rc);
+		} catch (IOException e) {
+			throw new RestCallException(e);
+		}
+	}
+
+	/**
+	 * Returns the pattern passed in through the constructor.
+	 *
+	 * @return The pattern passed in through the constructor.
+	 */
+	protected String getPattern() {
+		return pattern.pattern();
+	}
+
+	/**
+	 * Instances can override this method to handle when a regular expression pattern matches
+	 * 	on the output.
+	 * <p>
+	 * This method is called once for every pattern match that occurs in the response text.
+	 *
+	 * @param rc The {@link RestCall} that this pattern finder is being used on.
+	 * @param m The regular expression {@link Matcher}.  Can be used to retrieve group matches in the pattern.
+	 * @throws RestCallException Instances can throw an exception if a failure condition is detected.
+	 */
+	public void onMatch(RestCall rc, Matcher m) throws RestCallException {}
+
+	/**
+	 * Instances can override this method to handle when a regular expression pattern doesn't match on the output.
+	 *
+	 * @param rc The {@link RestCall} that this pattern finder is being used on.
+	 * @throws RestCallException Instances can throw an exception if a failure condition is detected.
+	 */
+	public void onNoMatch(RestCall rc) throws RestCallException {}
+}


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestClient.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestClient.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestClient.java
new file mode 100755
index 0000000..ebd0b8a
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestClient.java
@@ -0,0 +1,1423 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import static org.apache.juneau.internal.ThrowableUtils.*;
+
+import java.io.*;
+import java.lang.reflect.*;
+import java.lang.reflect.Proxy;
+import java.net.*;
+import java.security.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.logging.*;
+import java.util.regex.*;
+
+import javax.net.ssl.*;
+
+import org.apache.http.*;
+import org.apache.http.auth.*;
+import org.apache.http.client.*;
+import org.apache.http.client.CookieStore;
+import org.apache.http.client.config.*;
+import org.apache.http.client.entity.*;
+import org.apache.http.client.methods.*;
+import org.apache.http.config.*;
+import org.apache.http.conn.*;
+import org.apache.http.conn.routing.*;
+import org.apache.http.conn.socket.*;
+import org.apache.http.conn.ssl.*;
+import org.apache.http.conn.util.*;
+import org.apache.http.cookie.*;
+import org.apache.http.entity.*;
+import org.apache.http.impl.client.*;
+import org.apache.http.impl.conn.*;
+import org.apache.http.protocol.*;
+import org.apache.juneau.*;
+import org.apache.juneau.internal.*;
+import org.apache.juneau.json.*;
+import org.apache.juneau.parser.*;
+import org.apache.juneau.serializer.*;
+import org.apache.juneau.urlencoding.*;
+
+/**
+ * Utility class for interfacing with remote REST interfaces.
+ *
+ *
+ * <h6 class='topic'>Features</h6>
+ * <ul class='spaced-list'>
+ * 	<li>Convert POJOs directly to HTTP request message bodies using {@link Serializer} class.
+ * 	<li>Convert HTTP response message bodies directly to POJOs using {@link Parser} class.
+ * 	<li>Fluent interface.
+ * 	<li>Thread safe.
+ * 	<li>API for interacting with remoteable services.
+ * </ul>
+ *
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul>
+ * 	<li><a class='doclink' href='package-summary.html#RestClient'>org.apache.juneau.client &gt; REST client API</a> for more information and code examples.
+ * </ul>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public class RestClient extends CoreApi {
+
+	Map<String,Object> headers = new TreeMap<String,Object>(String.CASE_INSENSITIVE_ORDER);
+	volatile CloseableHttpClient httpClient;
+	HttpClientConnectionManager httpClientConnectionManager;
+	Serializer serializer;
+	UrlEncodingSerializer urlEncodingSerializer = new UrlEncodingSerializer();  // Used for form posts only.
+	Parser parser;
+	String accept, contentType;
+	List<RestCallInterceptor> interceptors = new ArrayList<RestCallInterceptor>();
+	String remoteableServletUri;
+	private Map<Method,String> remoteableServiceUriMap = new ConcurrentHashMap<Method,String>();
+	private String rootUrl;
+	private SSLOpts sslOpts;
+	private boolean pooled;
+	private volatile boolean isClosed = false;
+	private StackTraceElement[] creationStack;
+
+	/**
+	 * The {@link HttpClientBuilder} returned by {@link #createHttpClientBuilder()}.
+	 */
+	protected HttpClientBuilder httpClientBuilder;
+
+	/**
+	 * Create a new client with no serializer, parser, or HTTP client.
+	 * <p>
+	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
+	 * 	will be created using the {@link #createHttpClient()} method.
+	 */
+	public RestClient() {
+		httpClientBuilder = createHttpClientBuilder();
+		if (Boolean.getBoolean("org.apache.juneau.client.RestClient.trackCreation"))
+			creationStack = Thread.currentThread().getStackTrace();
+	}
+
+	/**
+	 * Create a new client with the specified HTTP client.
+	 * <p>
+	 * Equivalent to calling the following:
+	 * <p class='bcode'>
+	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient);
+	 * </p>
+	 *
+	 * @param httpClient The HTTP client to use for communicating with remote server.
+	 */
+	public RestClient(CloseableHttpClient httpClient) {
+		this();
+		setHttpClient(httpClient);
+	}
+
+	/**
+	 * Create a new client with the specified serializer and parser instances.
+	 * <p>
+	 * Equivalent to calling the following:
+	 * <p class='bcode'>
+	 * 	RestClient rc = <jk>new</jk> RestClient().setSerializer(s).setParser(p);
+	 * </p>
+	 * <p>
+	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
+	 * 	will be created using the {@link #createHttpClient()} method.
+	 *
+	 * @param s The serializer for converting POJOs to HTTP request message body text.
+	 * @param p The parser for converting HTTP response message body text to POJOs.
+	 */
+	public RestClient(Serializer s, Parser p) {
+		this();
+		setSerializer(s);
+		setParser(p);
+	}
+
+	/**
+	 * Create a new client with the specified serializer and parser instances.
+	 * <p>
+	 * Equivalent to calling the following:
+	 * <p class='bcode'>
+	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient).setSerializer(s).setParser(p);
+	 * </p>
+	 *
+	 * @param httpClient The HTTP client to use for communicating with remote server.
+	 * @param s The serializer for converting POJOs to HTTP request message body text.
+	 * @param p The parser for converting HTTP response message body text to POJOs.
+	 */
+	public RestClient(CloseableHttpClient httpClient, Serializer s, Parser p) {
+		this();
+		setHttpClient(httpClient);
+		setSerializer(s);
+		setParser(p);
+	}
+
+	/**
+	 * Create a new client with the specified serializer and parser classes.
+	 * <p>
+	 * Equivalent to calling the following:
+	 * <p class='bcode'>
+	 * 	RestClient rc = <jk>new</jk> RestClient().setSerializer(s).setParser(p);
+	 * </p>
+	 * <p>
+	 * If you do not specify an {@link HttpClient} via the {@link #setHttpClient(CloseableHttpClient)}, one
+	 * 	will be created using the {@link #createHttpClient()} method.
+	 *
+	 * @param s The serializer for converting POJOs to HTTP request message body text.
+	 * @param p The parser for converting HTTP response message body text to POJOs.
+	 * @throws InstantiationException If serializer or parser could not be instantiated.
+	 */
+	public RestClient(Class<? extends Serializer> s, Class<? extends Parser> p) throws InstantiationException {
+		this();
+		setSerializer(s);
+		setParser(p);
+	}
+
+	/**
+	 * Create a new client with the specified serializer and parser classes.
+	 * <p>
+	 * Equivalent to calling the following:
+	 * <p class='bcode'>
+	 * 	RestClient rc = <jk>new</jk> RestClient().setHttpClient(httpClient).setSerializer(s).setParser(p);
+	 * </p>
+	 *
+	 * @param httpClient The HTTP client to use for communicating with remote server.
+	 * @param s The serializer for converting POJOs to HTTP request message body text.
+	 * @param p The parser for converting HTTP response message body text to POJOs.
+	 * @throws InstantiationException If serializer or parser could not be instantiated.
+	 */
+	public RestClient(CloseableHttpClient httpClient, Class<? extends Serializer> s, Class<? extends Parser> p) throws InstantiationException {
+		this();
+		setHttpClient(httpClient);
+		setSerializer(s);
+		setParser(p);
+	}
+
+	/**
+	 * Creates an instance of an {@link HttpClient} to be used to handle all HTTP communications with the target server.
+	 * <p>
+	 * This HTTP client is used when the HTTP client is not specified through one of the constructors or the
+	 * 	{@link #setHttpClient(CloseableHttpClient)} method.
+	 * <p>
+	 * Subclasses can override this method to provide specially-configured HTTP clients to handle
+	 * 	stuff such as SSL/TLS certificate handling, authentication, etc.
+	 * <p>
+	 * The default implementation returns an instance of {@link HttpClient} using the client builder
+	 * 	returned by {@link #createHttpClientBuilder()}.
+	 *
+	 * @return The HTTP client to use.
+	 * @throws Exception
+	 */
+	protected CloseableHttpClient createHttpClient() throws Exception {
+		// Don't call createConnectionManager() if RestClient.setConnectionManager() was called.
+		if (httpClientConnectionManager == null)
+			httpClientBuilder.setConnectionManager(createConnectionManager());
+		return httpClientBuilder.build();
+	}
+
+	/**
+	 * Creates an instance of an {@link HttpClientBuilder} to be used to create
+	 * 	the {@link HttpClient}.
+	 * <p>
+	 * 	Subclasses can override this method to provide their own client builder.
+	 * </p>
+	 * <p>
+	 * 	The predefined method returns an {@link HttpClientBuilder} with the following settings:
+	 * </p>
+	 * <ul>
+	 * 	<li>Lax redirect strategy.
+	 * 	<li>The connection manager returned by {@link #createConnectionManager()}.
+	 * </ul>
+	 *
+	 * @return The HTTP client builder to use to create the HTTP client.
+	 */
+	protected HttpClientBuilder createHttpClientBuilder() {
+		HttpClientBuilder b = HttpClientBuilder.create();
+		b.setRedirectStrategy(new AllowAllRedirects());
+		return b;
+	}
+
+	/**
+	 * Creates the {@link HttpClientConnectionManager} returned by {@link #createConnectionManager()}.
+	 * <p>
+	 * 	Subclasses can override this method to provide their own connection manager.
+	 * </p>
+	 * <p>
+	 * 	The default implementation returns an instance of a {@link PoolingHttpClientConnectionManager}.
+	 * </p>
+	 *
+	 * @return The HTTP client builder to use to create the HTTP client.
+	 */
+	protected HttpClientConnectionManager createConnectionManager() {
+		if (sslOpts != null) {
+			HostnameVerifier hv = null;
+			switch (sslOpts.getHostVerify()) {
+				case LAX: hv = new NoopHostnameVerifier(); break;
+				case DEFAULT: hv = new DefaultHostnameVerifier(); break;
+			}
+
+			for (String p : StringUtils.split(sslOpts.getProtocols(), ',')) {
+				try {
+					TrustManager tm = new SimpleX509TrustManager(sslOpts.getCertValidate() == SSLOpts.CertValidate.LAX);
+
+					SSLContext ctx = SSLContext.getInstance(p);
+					ctx.init(null, new TrustManager[] { tm }, null);
+
+					// Create a socket to ensure this algorithm is acceptable.
+					// This will correctly disallow certain configurations (such as SSL_TLS under FIPS)
+					ctx.getSocketFactory().createSocket().close();
+					SSLConnectionSocketFactory sf = new SSLConnectionSocketFactory(ctx, hv);
+					setSSLSocketFactory(sf);
+
+					Registry<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory> create().register("https", sf).build();
+
+					return (pooled ? new PoolingHttpClientConnectionManager(r) : new BasicHttpClientConnectionManager(r));
+				} catch (Throwable t) {}
+			}
+		}
+
+			// Using pooling connection so that this client is threadsafe.
+		return (pooled ? new PoolingHttpClientConnectionManager() : new BasicHttpClientConnectionManager());
+	}
+
+	/**
+	 * Set up this client to use BASIC auth.
+	 *
+	 * @param host The auth scope hostname.
+	 * @param port The auth scope port.
+	 * @param user The username.
+	 * @param pw The password.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setBasicAuth(String host, int port, String user, String pw) {
+		AuthScope scope = new AuthScope(host, port);
+		Credentials up = new UsernamePasswordCredentials(user, pw);
+		CredentialsProvider p = new BasicCredentialsProvider();
+		p.setCredentials(scope, up);
+		setDefaultCredentialsProvider(p);
+		return this;
+	}
+
+	/**
+	 * When called, the {@link #createConnectionManager()} method will return a {@link PoolingHttpClientConnectionManager}
+	 * 	instead of a {@link BasicHttpClientConnectionManager}.
+	 *
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setPooled() {
+		this.pooled = true;
+		return this;
+	}
+
+	/**
+	 * Calls {@link CloseableHttpClient#close()} on the underlying {@link CloseableHttpClient}.
+	 * It's good practice to call this method after the client is no longer used.
+	 *
+	 * @throws IOException
+	 */
+	public void close() throws IOException {
+		isClosed = true;
+		if (httpClient != null)
+			httpClient.close();
+	}
+
+	/**
+	 * Same as {@link #close()}, but ignores any exceptions.
+	 */
+	public void closeQuietly() {
+		isClosed = true;
+		try {
+			if (httpClient != null)
+				httpClient.close();
+		} catch (Throwable t) {}
+	}
+
+	/**
+	 * Specifies a request header property to add to all requests created by this client.
+	 *
+	 * @param name The HTTP header name.
+	 * @param value The HTTP header value.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setHeader(String name, Object value) {
+		this.headers.put(name, value);
+		return this;
+	}
+
+	/**
+	 * Sets the serializer used for serializing POJOs to the HTTP request message body.
+	 *
+	 * @param serializer The serializer.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setSerializer(Serializer serializer) {
+		this.serializer = serializer;
+		return this;
+	}
+
+	/**
+	 * Same as {@link #setSerializer(Serializer)}, except takes in a serializer class that
+	 * 	will be instantiated through a no-arg constructor.
+	 *
+	 * @param c The serializer class.
+	 * @return This object (for method chaining).
+	 * @throws InstantiationException If serializer could not be instantiated.
+	 */
+	public RestClient setSerializer(Class<? extends Serializer> c) throws InstantiationException {
+		try {
+			return setSerializer(c.newInstance());
+		} catch (IllegalAccessException e) {
+			throw new InstantiationException(e.getLocalizedMessage());
+		}
+	}
+
+	/**
+	 * Sets the parser used for parsing POJOs from the HTTP response message body.
+	 *
+	 * @param parser The parser.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setParser(Parser parser) {
+		this.parser = parser;
+		this.accept = parser.getMediaTypes()[0];
+		return this;
+	}
+
+	/**
+	 * Same as {@link #setParser(Parser)}, except takes in a parser class that
+	 * 	will be instantiated through a no-arg constructor.
+	 *
+	 * @param c The parser class.
+	 * @return This object (for method chaining).
+	 * @throws InstantiationException If parser could not be instantiated.
+	 */
+	public RestClient setParser(Class<? extends Parser> c) throws InstantiationException {
+		try {
+			return setParser(c.newInstance());
+		} catch (IllegalAccessException e) {
+			throw new InstantiationException(e.getLocalizedMessage());
+		}
+	}
+
+	/**
+	 * Sets the internal {@link HttpClient} to use for handling HTTP communications.
+	 *
+	 * @param httpClient The HTTP client.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setHttpClient(CloseableHttpClient httpClient) {
+		this.httpClient = httpClient;
+		return this;
+	}
+
+	/**
+	 * Sets the client version by setting the value for the <js>"X-Client-Version"</js> header.
+	 *
+	 * @param version The version string (e.g. <js>"1.2.3"</js>)
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setClientVersion(String version) {
+		return setHeader("X-Client-Version", version);
+	}
+
+	/**
+	 * Adds an interceptor that gets called immediately after a connection is made.
+	 *
+	 * @param interceptor The interceptor.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient addInterceptor(RestCallInterceptor interceptor) {
+		interceptors.add(interceptor);
+		return this;
+	}
+
+	/**
+	 * Adds a {@link RestCallLogger} to the list of interceptors on this class.
+	 *
+	 * @param level The log level to log messsages at.
+	 * @param log The logger to log messages to.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient logTo(Level level, Logger log) {
+		addInterceptor(new RestCallLogger(level, log));
+		return this;
+	}
+
+	/**
+	 * Returns the serializer currently associated with this client.
+	 *
+	 * @return The serializer currently associated with this client, or <jk>null</jk> if no serializer is currently associated.
+	 */
+	public Serializer getSerializer() {
+		return serializer;
+	}
+
+	/**
+	 * Returns the parser currently associated with this client.
+	 *
+	 * @return The parser currently associated with this client, or <jk>null</jk> if no parser is currently associated.
+	 */
+	public Parser getParser() {
+		return parser;
+	}
+
+	/**
+	 * Returns the {@link HttpClient} currently associated with this client.
+	 *
+	 * @return The HTTP client currently associated with this client.
+	 * @throws Exception
+	 */
+	public HttpClient getHttpClient() throws Exception {
+		if (httpClient == null)
+			httpClient = createHttpClient();
+		return httpClient;
+	}
+
+	/**
+	 * Execute the specified request.
+	 * Subclasses can override this method to provide specialized handling.
+	 *
+	 * @param req The HTTP request.
+	 * @return The HTTP response.
+	 * @throws Exception
+	 */
+	protected HttpResponse execute(HttpUriRequest req) throws Exception {
+		return getHttpClient().execute(req);
+	}
+
+	/**
+	 * Sets the value for the <code>Accept</code> request header.
+	 * <p>
+	 * 	This overrides the media type specified on the parser, but is overridden by calling <code>setHeader(<js>"Accept"</js>, newvalue);</code>
+	 *
+	 * @param accept The new header value.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setAccept(String accept) {
+		this.accept = accept;
+		return this;
+	}
+
+	/**
+	 * Sets the value for the <code>Content-Type</code> request header.
+	 * <p>
+	 * 	This overrides the media type specified on the serializer, but is overridden by calling <code>setHeader(<js>"Content-Type"</js>, newvalue);</code>
+	 *
+	 * @param contentType The new header value.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setContentType(String contentType) {
+		this.contentType = contentType;
+		return this;
+	}
+
+	/**
+	 * Sets the URI of the remoteable services REST servlet for invoking remoteable services.
+	 *
+	 * @param remoteableServletUri The URI of the REST resource implementing a remoteable services servlet.
+	 *		(typically an instance of <code>RemoteableServlet</code>).
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setRemoteableServletUri(String remoteableServletUri) {
+		this.remoteableServletUri = remoteableServletUri;
+		return this;
+	}
+
+	/**
+	 * Set a root URL for this client.
+	 * <p>
+	 * When set, URL strings passed in through the various rest call methods (e.g. {@link #doGet(Object)}
+	 * 	will be prefixed with the specified root.
+	 * This root URL is ignored on those methods if you pass in a {@link URL}, {@link URI}, or an absolute URL string.
+	 *
+	 * @param rootUrl The root URL to prefix to relative URL strings.  Trailing slashes are trimmed.
+	 * @return This object (for method chaining).
+	 */
+	public RestClient setRootUrl(String rootUrl) {
+		if (rootUrl.endsWith("/"))
+			rootUrl = rootUrl.replaceAll("\\/$", "");
+		this.rootUrl = rootUrl;
+		return this;
+	}
+
+	/**
+	 * Enable SSL support on this client.
+	 *
+	 * @param opts The SSL configuration options.  See {@link SSLOpts} for details.
+	 * 	This method is a no-op if <code>sslConfig</code> is <jk>null</jk>.
+	 * @return This object (for method chaining).
+	 * @throws KeyStoreException
+	 * @throws NoSuchAlgorithmException
+	 */
+	public RestClient enableSSL(SSLOpts opts) throws KeyStoreException, NoSuchAlgorithmException {
+		this.sslOpts = opts;
+		return this;
+	}
+
+	/**
+	 * Enable LAX SSL support.
+	 * <p>
+	 * Certificate chain validation and hostname verification is disabled.
+	 *
+	 * @return This object (for method chaining).
+	 * @throws KeyStoreException
+	 * @throws NoSuchAlgorithmException
+	 */
+	public RestClient enableLaxSSL() throws KeyStoreException, NoSuchAlgorithmException {
+		return enableSSL(SSLOpts.LAX);
+	}
+
+	/**
+	 * Perform a <code>GET</code> request against the specified URL.
+	 *
+	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException If any authentication errors occurred.
+	 */
+	public RestCall doGet(Object url) throws RestCallException {
+		return doCall("GET", url, false);
+	}
+
+	/**
+	 * Perform a <code>PUT</code> request against the specified URL.
+	 *
+	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
+	 * @param o The object to serialize and transmit to the URL as the body of the request.
+	 * 	Can be of the following types:
+	 * 	<ul class='spaced-list'>
+	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
+	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
+	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
+	 * 		<li>{@link HttpEntity} - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
+	 * 	</ul>
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException If any authentication errors occurred.
+	 */
+	public RestCall doPut(Object url, Object o) throws RestCallException {
+		return doCall("PUT", url, true).setInput(o);
+	}
+
+	/**
+	 * Perform a <code>POST</code> request against the specified URL.
+	 *
+	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
+	 * @param o The object to serialize and transmit to the URL as the body of the request.
+	 * 	Can be of the following types:
+	 * 	<ul class='spaced-list'>
+	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
+	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
+	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
+	 * 		<li>{@link HttpEntity} - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
+	 * 	</ul>
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException If any authentication errors occurred.
+	 */
+	public RestCall doPost(Object url, Object o) throws RestCallException {
+		return doCall("POST", url, true).setInput(o);
+	}
+
+	/**
+	 * Perform a <code>DELETE</code> request against the specified URL.
+	 *
+	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException If any authentication errors occurred.
+	 */
+	public RestCall doDelete(Object url) throws RestCallException {
+		return doCall("DELETE", url, false);
+	}
+
+	/**
+	 * Perform an <code>OPTIONS</code> request against the specified URL.
+	 *
+	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException If any authentication errors occurred.
+	 */
+	public RestCall doOptions(Object url) throws RestCallException {
+		return doCall("OPTIONS", url, true);
+	}
+
+	/**
+	 * Perform a <code>POST</code> request with a content type of <code>application/x-www-form-urlencoded</code> against the specified URL.
+	 *
+	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
+	 * @param o The object to serialize and transmit to the URL as the body of the request, serialized as a form post
+	 * 	using the {@link UrlEncodingSerializer#DEFAULT} serializer.
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException If any authentication errors occurred.
+	 */
+	public RestCall doFormPost(Object url, Object o) throws RestCallException {
+		return doCall("POST", url, true)
+			.setInput(o instanceof HttpEntity ? o : new RestRequestEntity(o, urlEncodingSerializer));
+	}
+
+	/**
+	 * Performs a REST call where the entire call is specified in a simple string.
+	 * <p>
+	 * This method is useful for performing callbacks when the target of a callback is passed in
+	 * on an initial request, for example to signal when a long-running process has completed.
+	 * <p>
+	 * The call string can be any of the following formats:
+	 * <ul class='spaced-list'>
+	 * 	<li><js>"[method] [url]"</js> - e.g. <js>"GET http://localhost/callback"</js>
+	 * 	<li><js>"[method] [url] [payload]"</js> - e.g. <js>"POST http://localhost/callback some text payload"</js>
+	 * 	<li><js>"[method] [headers] [url] [payload]"</js> - e.g. <js>"POST {'Content-Type':'text/json'} http://localhost/callback {'some':'json'}"</js>
+	 * </ul>
+	 * <p>
+	 * The payload will always be sent using a simple {@link StringEntity}.
+	 *
+	 * @param callString The call string.
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException
+	 */
+	public RestCall doCallback(String callString) throws RestCallException {
+		String s = callString;
+		try {
+			RestCall rc = null;
+			String method = null, uri = null, content = null;
+			ObjectMap h = null;
+			int i = s.indexOf(' ');
+			if (i != -1) {
+				method = s.substring(0, i).trim();
+				s = s.substring(i).trim();
+				if (s.length() > 0) {
+					if (s.charAt(0) == '{') {
+						i = s.indexOf('}');
+						if (i != -1) {
+							String json = s.substring(0, i+1);
+							h = JsonParser.DEFAULT.parse(json, ObjectMap.class);
+							s = s.substring(i+1).trim();
+						}
+					}
+					if (s.length() > 0) {
+						i = s.indexOf(' ');
+						if (i == -1)
+							uri = s;
+						else {
+							uri = s.substring(0, i).trim();
+							s = s.substring(i).trim();
+							if (s.length() > 0)
+								content = s;
+						}
+					}
+				}
+			}
+			if (method != null && uri != null) {
+				rc = doCall(method, uri, content != null);
+				if (content != null)
+					rc.setInput(new StringEntity(content));
+				if (h != null)
+					for (Map.Entry<String,Object> e : h.entrySet())
+						rc.setHeader(e.getKey(), e.getValue());
+				return rc;
+			}
+		} catch (Exception e) {
+			throw new RestCallException(e);
+		}
+		throw new RestCallException("Invalid format for call string.");
+	}
+
+	/**
+	 * Perform a generic REST call.
+	 *
+	 * @param method The HTTP method.
+	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
+	 * @param content The HTTP body content.
+	 * 	Can be of the following types:
+	 * 	<ul class='spaced-list'>
+	 * 		<li>{@link Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
+	 * 		<li>{@link InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
+	 * 		<li>{@link Object} - POJO to be converted to text using the {@link Serializer} registered with the {@link RestClient}.
+	 * 		<li>{@link HttpEntity} - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
+	 * 	</ul>
+	 * 	This parameter is IGNORED if {@link HttpMethod#hasContent()} is <jk>false</jk>.
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException If any authentication errors occurred.
+	 */
+	public RestCall doCall(HttpMethod method, Object url, Object content) throws RestCallException {
+		RestCall rc = doCall(method.name(), url, method.hasContent());
+		if (method.hasContent())
+			rc.setInput(content);
+		return rc;
+	}
+
+	/**
+	 * Perform a generic REST call.
+	 *
+	 * @param method The method name (e.g. <js>"GET"</js>, <js>"OPTIONS"</js>).
+	 * @param url The URL of the remote REST resource.  Can be any of the following:  {@link String}, {@link URI}, {@link URL}.
+	 * @param hasContent Boolean flag indicating if the specified request has content associated with it.
+	 * @return A {@link RestCall} object that can be further tailored before executing the request
+	 * 	and getting the response as a parsed object.
+	 * @throws RestCallException If any authentication errors occurred.
+	 */
+	public RestCall doCall(String method, Object url, boolean hasContent) throws RestCallException {
+		HttpRequestBase req = null;
+		RestCall restCall = null;
+		final String methodUC = method.toUpperCase(Locale.ENGLISH);
+		if (hasContent) {
+			req = new HttpEntityEnclosingRequestBase() {
+				@Override /* HttpRequest */
+				public String getMethod() {
+					return methodUC;
+				}
+			};
+			restCall = new RestCall(this, req);
+			if (contentType != null)
+				restCall.setHeader("Content-Type", contentType);
+		} else {
+			req = new HttpRequestBase() {
+				@Override /* HttpRequest */
+				public String getMethod() {
+					return methodUC;
+				}
+			};
+			restCall = new RestCall(this, req);
+		}
+		try {
+			req.setURI(toURI(url));
+		} catch (URISyntaxException e) {
+			throw new RestCallException(e);
+		}
+		if (accept != null)
+			restCall.setHeader("Accept", accept);
+		for (Map.Entry<String,? extends Object> e : headers.entrySet())
+			restCall.setHeader(e.getKey(), e.getValue());
+		return restCall;
+	}
+
+	/**
+	 * Create a new proxy interface for the specified remoteable service interface.
+	 *
+	 * @param interfaceClass The interface to create a proxy for.
+	 * @return The new proxy interface.
+	 * @throws RuntimeException If the Remotable service URI has not been specified on this
+	 * 	client by calling {@link #setRemoteableServletUri(String)}.
+	 */
+	@SuppressWarnings("unchecked")
+	public <T> T getRemoteableProxy(final Class<T> interfaceClass) {
+		if (remoteableServletUri == null)
+			throw new RuntimeException("Remoteable service URI has not been specified.");
+		return (T)Proxy.newProxyInstance(
+			interfaceClass.getClassLoader(),
+			new Class[] { interfaceClass },
+			new InvocationHandler() {
+				@Override /* InvocationHandler */
+				public Object invoke(Object proxy, Method method, Object[] args) {
+					try {
+						String uri = remoteableServiceUriMap.get(method);
+						if (uri == null) {
+							// Constructing this string each time can be time consuming, so cache it.
+							uri = remoteableServletUri + '/' + interfaceClass.getName() + '/' + ClassUtils.getMethodSignature(method);
+							remoteableServiceUriMap.put(method, uri);
+						}
+						return doPost(uri, args).getResponse(method.getReturnType());
+					} catch (Exception e) {
+						throw new RuntimeException(e);
+					}
+				}
+		});
+	}
+
+	private Pattern absUrlPattern = Pattern.compile("^\\w+\\:\\/\\/.*");
+
+	private URI toURI(Object url) throws URISyntaxException {
+		assertFieldNotNull(url, "url");
+		if (url instanceof URI)
+			return (URI)url;
+		if (url instanceof URL)
+			((URL)url).toURI();
+		String s = url.toString();
+		if (rootUrl != null && ! absUrlPattern.matcher(s).matches()) {
+			if (s.isEmpty())
+				s = rootUrl;
+			else {
+				StringBuilder sb = new StringBuilder(rootUrl);
+				if (! s.startsWith("/"))
+					sb.append('/');
+				sb.append(s);
+				s = sb.toString();
+			}
+		}
+		return new URI(s);
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* CoreAPI */
+	public RestClient setProperty(String property, Object value) throws LockedException {
+		super.setProperty(property, value);
+		if (serializer != null)
+			serializer.setProperty(property, value);
+		if (parser != null)
+			parser.setProperty(property, value);
+		if (urlEncodingSerializer != null)
+			urlEncodingSerializer.setProperty(property, value);
+		return this;
+	}
+
+	@Override /* CoreAPI */
+	public RestClient setProperties(ObjectMap properties) throws LockedException {
+		super.setProperties(properties);
+		if (serializer != null)
+			serializer.setProperties(properties);
+		if (parser != null)
+			parser.setProperties(properties);
+		if (urlEncodingSerializer != null)
+			urlEncodingSerializer.setProperties(properties);
+		return this;
+	}
+
+	@Override /* CoreAPI */
+	public RestClient addNotBeanClasses(Class<?>...classes) throws LockedException {
+		super.addNotBeanClasses(classes);
+		if (serializer != null)
+			serializer.addNotBeanClasses(classes);
+		if (parser != null)
+			parser.addNotBeanClasses(classes);
+		if (urlEncodingSerializer != null)
+			urlEncodingSerializer.addNotBeanClasses(classes);
+		return this;
+	}
+
+	@Override /* CoreAPI */
+	public RestClient addTransforms(Class<?>...classes) throws LockedException {
+		super.addTransforms(classes);
+		if (serializer != null)
+			serializer.addTransforms(classes);
+		if (parser != null)
+			parser.addTransforms(classes);
+		if (urlEncodingSerializer != null)
+			urlEncodingSerializer.addTransforms(classes);
+		return this;
+	}
+
+	@Override /* CoreAPI */
+	public <T> RestClient addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
+		super.addImplClass(interfaceClass, implClass);
+		if (serializer != null)
+			serializer.addImplClass(interfaceClass, implClass);
+		if (parser != null)
+			parser.addImplClass(interfaceClass, implClass);
+		if (urlEncodingSerializer != null)
+			urlEncodingSerializer.addImplClass(interfaceClass, implClass);
+		return this;
+	}
+
+	@Override /* CoreAPI */
+	public RestClient setClassLoader(ClassLoader classLoader) throws LockedException {
+		super.setClassLoader(classLoader);
+		if (serializer != null)
+			serializer.setClassLoader(classLoader);
+		if (parser != null)
+			parser.setClassLoader(classLoader);
+		if (urlEncodingSerializer != null)
+			urlEncodingSerializer.setClassLoader(classLoader);
+		return this;
+	}
+
+
+	//------------------------------------------------------------------------------------------------
+	// Passthrough methods for HttpClientBuilder.
+	//------------------------------------------------------------------------------------------------
+
+	/**
+	 * @param redirectStrategy
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setRedirectStrategy(RedirectStrategy)
+	 */
+	public RestClient setRedirectStrategy(RedirectStrategy redirectStrategy) {
+		httpClientBuilder.setRedirectStrategy(redirectStrategy);
+		return this;
+	}
+
+	/**
+	 * @param cookieSpecRegistry
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setDefaultCookieSpecRegistry(Lookup)
+	 */
+	public RestClient setDefaultCookieSpecRegistry(Lookup<CookieSpecProvider> cookieSpecRegistry) {
+		httpClientBuilder.setDefaultCookieSpecRegistry(cookieSpecRegistry);
+		return this;
+	}
+
+	/**
+	 * @param requestExec
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setRequestExecutor(HttpRequestExecutor)
+	 */
+	public RestClient setRequestExecutor(HttpRequestExecutor requestExec) {
+		httpClientBuilder.setRequestExecutor(requestExec);
+		return this;
+	}
+
+	/**
+	 * @param hostnameVerifier
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setSSLHostnameVerifier(HostnameVerifier)
+	 */
+	public RestClient setSSLHostnameVerifier(HostnameVerifier hostnameVerifier) {
+		httpClientBuilder.setSSLHostnameVerifier(hostnameVerifier);
+		return this;
+	}
+
+	/**
+	 * @param publicSuffixMatcher
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setPublicSuffixMatcher(PublicSuffixMatcher)
+	 */
+	public RestClient setPublicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher) {
+		httpClientBuilder.setPublicSuffixMatcher(publicSuffixMatcher);
+		return this;
+	}
+
+	/**
+	 * @param sslContext
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setSSLContext(SSLContext)
+	 */
+	public RestClient setSSLContext(SSLContext sslContext) {
+		httpClientBuilder.setSSLContext(sslContext);
+		return this;
+	}
+
+	/**
+	 * @param sslSocketFactory
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setSSLSocketFactory(LayeredConnectionSocketFactory)
+	 */
+	public RestClient setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory) {
+		httpClientBuilder.setSSLSocketFactory(sslSocketFactory);
+		return this;
+	}
+
+	/**
+	 * @param maxConnTotal
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setMaxConnTotal(int)
+	 */
+	public RestClient setMaxConnTotal(int maxConnTotal) {
+		httpClientBuilder.setMaxConnTotal(maxConnTotal);
+		return this;
+	}
+
+	/**
+	 * @param maxConnPerRoute
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setMaxConnPerRoute(int)
+	 */
+	public RestClient setMaxConnPerRoute(int maxConnPerRoute) {
+		httpClientBuilder.setMaxConnPerRoute(maxConnPerRoute);
+		return this;
+	}
+
+	/**
+	 * @param config
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setDefaultSocketConfig(SocketConfig)
+	 */
+	public RestClient setDefaultSocketConfig(SocketConfig config) {
+		httpClientBuilder.setDefaultSocketConfig(config);
+		return this;
+	}
+
+	/**
+	 * @param config
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setDefaultConnectionConfig(ConnectionConfig)
+	 */
+	public RestClient setDefaultConnectionConfig(ConnectionConfig config) {
+		httpClientBuilder.setDefaultConnectionConfig(config);
+		return this;
+	}
+
+	/**
+	 * @param connTimeToLive
+	 * @param connTimeToLiveTimeUnit
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setConnectionTimeToLive(long,TimeUnit)
+	 */
+	public RestClient setConnectionTimeToLive(long connTimeToLive, TimeUnit connTimeToLiveTimeUnit) {
+		httpClientBuilder.setConnectionTimeToLive(connTimeToLive, connTimeToLiveTimeUnit);
+		return this;
+	}
+
+	/**
+	 * @param connManager
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)
+	 */
+	public RestClient setConnectionManager(HttpClientConnectionManager connManager) {
+		this.httpClientConnectionManager = connManager;
+		httpClientBuilder.setConnectionManager(connManager);
+		return this;
+	}
+
+	/**
+	 * @param shared
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setConnectionManagerShared(boolean)
+	 */
+	public RestClient setConnectionManagerShared(boolean shared) {
+		httpClientBuilder.setConnectionManagerShared(shared);
+		return this;
+	}
+
+	/**
+	 * @param reuseStrategy
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setConnectionReuseStrategy(ConnectionReuseStrategy)
+	 */
+	public RestClient setConnectionReuseStrategy(ConnectionReuseStrategy reuseStrategy) {
+		httpClientBuilder.setConnectionReuseStrategy(reuseStrategy);
+		return this;
+	}
+
+	/**
+	 * @param keepAliveStrategy
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setKeepAliveStrategy(ConnectionKeepAliveStrategy)
+	 */
+	public RestClient setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy) {
+		httpClientBuilder.setKeepAliveStrategy(keepAliveStrategy);
+		return this;
+	}
+
+	/**
+	 * @param targetAuthStrategy
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setTargetAuthenticationStrategy(AuthenticationStrategy)
+	 */
+	public RestClient setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy) {
+		httpClientBuilder.setTargetAuthenticationStrategy(targetAuthStrategy);
+		return this;
+	}
+
+	/**
+	 * @param proxyAuthStrategy
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setProxyAuthenticationStrategy(AuthenticationStrategy)
+	 */
+	public RestClient setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy) {
+		httpClientBuilder.setProxyAuthenticationStrategy(proxyAuthStrategy);
+		return this;
+	}
+
+	/**
+	 * @param userTokenHandler
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setUserTokenHandler(UserTokenHandler)
+	 */
+	public RestClient setUserTokenHandler(UserTokenHandler userTokenHandler) {
+		httpClientBuilder.setUserTokenHandler(userTokenHandler);
+		return this;
+	}
+
+	/**
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#disableConnectionState()
+	 */
+	public RestClient disableConnectionState() {
+		httpClientBuilder.disableConnectionState();
+		return this;
+	}
+
+	/**
+	 * @param schemePortResolver
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setSchemePortResolver(SchemePortResolver)
+	 */
+	public RestClient setSchemePortResolver(SchemePortResolver schemePortResolver) {
+		httpClientBuilder.setSchemePortResolver(schemePortResolver);
+		return this;
+	}
+
+	/**
+	 * @param userAgent
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setUserAgent(String)
+	 */
+	public RestClient setUserAgent(String userAgent) {
+		httpClientBuilder.setUserAgent(userAgent);
+		return this;
+	}
+
+	/**
+	 * @param defaultHeaders
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setDefaultHeaders(Collection)
+	 */
+	public RestClient setDefaultHeaders(Collection<? extends Header> defaultHeaders) {
+		httpClientBuilder.setDefaultHeaders(defaultHeaders);
+		return this;
+	}
+
+	/**
+	 * @param itcp
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#addInterceptorFirst(HttpResponseInterceptor)
+	 */
+	public RestClient addInterceptorFirst(HttpResponseInterceptor itcp) {
+		httpClientBuilder.addInterceptorFirst(itcp);
+		return this;
+	}
+
+	/**
+	 * @param itcp
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#addInterceptorLast(HttpResponseInterceptor)
+	 */
+	public RestClient addInterceptorLast(HttpResponseInterceptor itcp) {
+		httpClientBuilder.addInterceptorLast(itcp);
+		return this;
+	}
+
+	/**
+	 * @param itcp
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#addInterceptorFirst(HttpRequestInterceptor)
+	 */
+	public RestClient addInterceptorFirst(HttpRequestInterceptor itcp) {
+		httpClientBuilder.addInterceptorFirst(itcp);
+		return this;
+	}
+
+	/**
+	 * @param itcp
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#addInterceptorLast(HttpRequestInterceptor)
+	 */
+	public RestClient addInterceptorLast(HttpRequestInterceptor itcp) {
+		httpClientBuilder.addInterceptorLast(itcp);
+		return this;
+	}
+
+	/**
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#disableCookieManagement()
+	 */
+	public RestClient disableCookieManagement() {
+		httpClientBuilder.disableCookieManagement();
+		return this;
+	}
+
+	/**
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#disableContentCompression()
+	 */
+	public RestClient disableContentCompression() {
+		httpClientBuilder.disableContentCompression();
+		return this;
+	}
+
+	/**
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#disableAuthCaching()
+	 */
+	public RestClient disableAuthCaching() {
+		httpClientBuilder.disableAuthCaching();
+		return this;
+	}
+
+	/**
+	 * @param httpprocessor
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setHttpProcessor(HttpProcessor)
+	 */
+	public RestClient setHttpProcessor(HttpProcessor httpprocessor) {
+		httpClientBuilder.setHttpProcessor(httpprocessor);
+		return this;
+	}
+
+	/**
+	 * @param retryHandler
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setRetryHandler(HttpRequestRetryHandler)
+	 */
+	public RestClient setRetryHandler(HttpRequestRetryHandler retryHandler) {
+		httpClientBuilder.setRetryHandler(retryHandler);
+		return this;
+	}
+
+	/**
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#disableAutomaticRetries()
+	 */
+	public RestClient disableAutomaticRetries() {
+		httpClientBuilder.disableAutomaticRetries();
+		return this;
+	}
+
+	/**
+	 * @param proxy
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setProxy(HttpHost)
+	 */
+	public RestClient setProxy(HttpHost proxy) {
+		httpClientBuilder.setProxy(proxy);
+		return this;
+	}
+
+	/**
+	 * @param routePlanner
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setRoutePlanner(HttpRoutePlanner)
+	 */
+	public RestClient setRoutePlanner(HttpRoutePlanner routePlanner) {
+		httpClientBuilder.setRoutePlanner(routePlanner);
+		return this;
+	}
+
+	/**
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#disableRedirectHandling()
+	 */
+	public RestClient disableRedirectHandling() {
+		httpClientBuilder.disableRedirectHandling();
+		return this;
+	}
+
+	/**
+	 * @param connectionBackoffStrategy
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setConnectionBackoffStrategy(ConnectionBackoffStrategy)
+	 */
+	public RestClient setConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy) {
+		httpClientBuilder.setConnectionBackoffStrategy(connectionBackoffStrategy);
+		return this;
+	}
+
+	/**
+	 * @param backoffManager
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setBackoffManager(BackoffManager)
+	 */
+	public RestClient setBackoffManager(BackoffManager backoffManager) {
+		httpClientBuilder.setBackoffManager(backoffManager);
+		return this;
+	}
+
+	/**
+	 * @param serviceUnavailStrategy
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy)
+	 */
+	public RestClient setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy) {
+		httpClientBuilder.setServiceUnavailableRetryStrategy(serviceUnavailStrategy);
+		return this;
+	}
+
+	/**
+	 * @param cookieStore
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setDefaultCookieStore(CookieStore)
+	 */
+	public RestClient setDefaultCookieStore(CookieStore cookieStore) {
+		httpClientBuilder.setDefaultCookieStore(cookieStore);
+		return this;
+	}
+
+	/**
+	 * @param credentialsProvider
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setDefaultCredentialsProvider(CredentialsProvider)
+	 */
+	public RestClient setDefaultCredentialsProvider(CredentialsProvider credentialsProvider) {
+		httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
+		return this;
+	}
+
+	/**
+	 * @param authSchemeRegistry
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setDefaultAuthSchemeRegistry(Lookup)
+	 */
+	public RestClient setDefaultAuthSchemeRegistry(Lookup<AuthSchemeProvider> authSchemeRegistry) {
+		httpClientBuilder.setDefaultAuthSchemeRegistry(authSchemeRegistry);
+		return this;
+	}
+
+	/**
+	 * @param contentDecoderMap
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setContentDecoderRegistry(Map)
+	 */
+	public RestClient setContentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap) {
+		httpClientBuilder.setContentDecoderRegistry(contentDecoderMap);
+		return this;
+	}
+
+	/**
+	 * @param config
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#setDefaultRequestConfig(RequestConfig)
+	 */
+	public RestClient setDefaultRequestConfig(RequestConfig config) {
+		httpClientBuilder.setDefaultRequestConfig(config);
+		return this;
+	}
+
+	/**
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#useSystemProperties()
+	 */
+	public RestClient useSystemProperties() {
+		httpClientBuilder.useSystemProperties();
+		return this;
+	}
+
+	/**
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#evictExpiredConnections()
+	 */
+	public RestClient evictExpiredConnections() {
+		httpClientBuilder.evictExpiredConnections();
+		return this;
+	}
+
+	/**
+	 * @param maxIdleTime
+	 * @param maxIdleTimeUnit
+	 * @return This object (for method chaining).
+	 * @see HttpClientBuilder#evictIdleConnections(long,TimeUnit)
+	 */
+	public RestClient evictIdleConnections(long maxIdleTime, TimeUnit maxIdleTimeUnit) {
+		httpClientBuilder.evictIdleConnections(maxIdleTime, maxIdleTimeUnit);
+		return this;
+	}
+
+	@Override
+	protected void finalize() throws Throwable {
+		if (! isClosed) {
+			System.err.println("WARNING:  RestClient garbage collected before it was finalized.");
+			if (creationStack != null) {
+				System.err.println("Creation Stack:");
+				for (StackTraceElement e : creationStack)
+					System.err.println(e);
+			} else {
+				System.err.println("Creation stack traces can be displayed by setting the system property 'org.apache.juneau.client.RestClient.trackCreation' to true.");
+			}
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestRequestEntity.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestRequestEntity.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestRequestEntity.java
new file mode 100755
index 0000000..143027c
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestRequestEntity.java
@@ -0,0 +1,90 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import java.io.*;
+
+import org.apache.http.entity.*;
+import org.apache.http.message.*;
+import org.apache.juneau.internal.*;
+import org.apache.juneau.serializer.*;
+import org.apache.juneau.utils.*;
+
+/**
+ * HttpEntity for serializing POJOs as the body of HTTP requests.
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public final class RestRequestEntity extends BasicHttpEntity {
+	final Object output;
+	final Serializer serializer;
+	byte[] outputBytes;
+
+	/**
+	 * Constructor.
+	 * @param input The POJO to serialize.  Can also be a {@link Reader} or {@link InputStream}.
+	 * @param serializer The serializer to use to serialize this response.
+	 */
+	public RestRequestEntity(Object input, Serializer serializer) {
+		this.output = input;
+		this.serializer = serializer;
+		if (serializer != null)
+			setContentType(new BasicHeader("Content-Type", serializer.getResponseContentType()));
+	}
+
+	@Override /* BasicHttpEntity */
+	public void writeTo(OutputStream os) throws IOException {
+		if (output instanceof InputStream) {
+			IOPipe.create(output, os).closeOut().run();
+		} else if (output instanceof Reader) {
+			IOPipe.create(output, new OutputStreamWriter(os, IOUtils.UTF8)).closeOut().run();
+		} else {
+			try {
+				if (serializer == null) {
+					// If no serializer specified, just close the stream.
+					os.close();
+				} else if (! serializer.isWriterSerializer()) {
+					OutputStreamSerializer s2 = (OutputStreamSerializer)serializer;
+					s2.serialize(output, os);
+					os.close();
+				} else {
+					Writer w = new OutputStreamWriter(os, IOUtils.UTF8);
+					WriterSerializer s2 = (WriterSerializer)serializer;
+					s2.serialize(output, w);
+					w.close();
+				}
+			} catch (SerializeException e) {
+				throw new org.apache.juneau.client.RestCallException(e);
+			}
+		}
+	}
+
+	@Override /* BasicHttpEntity */
+	public boolean isRepeatable() {
+		return true;
+	}
+
+	@Override /* BasicHttpEntity */
+	public InputStream getContent() {
+		if (outputBytes == null) {
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			try {
+				writeTo(baos);
+				outputBytes = baos.toByteArray();
+			} catch (IOException e) {
+				throw new RuntimeException(e);
+			}
+		}
+		return new ByteArrayInputStream(outputBytes);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RetryOn.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RetryOn.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RetryOn.java
new file mode 100755
index 0000000..7317bf6
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RetryOn.java
@@ -0,0 +1,39 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+/**
+ * Used to determine whether a request should be retried based on the HTTP response code.
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public interface RetryOn {
+
+	/**
+	 * Default RetryOn that returns <jk>true</jk> of any HTTP response &gt;= 400 is received.
+	 */
+	public static final RetryOn DEFAULT = new RetryOn() {
+		@Override /* RetryOn */
+		public boolean onCode(int httpResponseCode) {
+			return httpResponseCode <= 0 || httpResponseCode >= 400;
+		}
+	};
+
+	/**
+	 * Subclasses should override this method to determine whether the HTTP response is retryable.
+	 *
+	 * @param httpResponseCode The HTTP response code.
+	 * @return <jk>true</jk> if the specified response code is retryable.
+	 */
+	boolean onCode(int httpResponseCode);
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SSLOpts.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SSLOpts.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SSLOpts.java
new file mode 100755
index 0000000..05909a4
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SSLOpts.java
@@ -0,0 +1,189 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import org.apache.juneau.internal.*;
+
+/**
+ * SSL configuration options that get passed to {@link RestClient#enableSSL(SSLOpts)}.
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public class SSLOpts {
+
+	private String protocols = getDefaultProtocols();
+	private CertValidate certValidate = CertValidate.DEFAULT;
+	private HostVerify hostVerify = HostVerify.DEFAULT;
+
+	/**
+	 * Reusable SSL options for lenient SSL (no cert validation or hostname verification).
+	 */
+	public static final SSLOpts LAX = new SSLOpts(null, CertValidate.LAX, HostVerify.LAX);
+
+	/**
+	 * Reusable SSL options for normal SSL (default cert validation and hostname verification).
+	 */
+	public static final SSLOpts DEFAULT = new SSLOpts(null, CertValidate.DEFAULT, HostVerify.DEFAULT);
+
+	/**
+	 * Constructor.
+	 */
+	public SSLOpts() {}
+
+	/**
+	 * Constructor.
+	 *
+	 * @param protocols A comma-delimited list of supported SSL protocols.
+	 * 	If <jk>null</jk>, uses the value returned by {@link #getDefaultProtocols()}.
+	 * @param certValidate Certificate validation setting.
+	 * @param hostVerify Host verification setting.
+	 */
+	public SSLOpts(String protocols, CertValidate certValidate, HostVerify hostVerify) {
+		if (protocols != null)
+			this.protocols = protocols;
+		this.certValidate = certValidate;
+		this.hostVerify = hostVerify;
+	}
+
+	/**
+	 * Returns the default list of SSL protocols to support when the <code>protocols</code>
+	 * 	parameter on the constructor is <jk>null</jk>.
+	 * <p>
+	 * The default value is <jk>"SSL_TLS,TLS,SSL"</js> unless overridden by one of the following
+	 * 	system properties:
+	 * <ul>
+	 * 	<li><js>"com.ibm.team.repository.transport.client.protocol"</js>
+	 * 	<li><js>"transport.client.protocol"</js>
+	 * </ul>
+	 * <p>
+	 * Subclasses can override this method to provide their own logic for determining default supported protocols.
+	 *
+	 * @return The comma-delimited list of supported protocols.
+	 */
+	protected String getDefaultProtocols() {
+		String sp = System.getProperty("com.ibm.team.repository.transport.client.protocol");
+		if (StringUtils.isEmpty(sp))
+			sp = System.getProperty("transport.client.protocol");
+		if (StringUtils.isEmpty(sp))
+			sp = "SSL_TLS,TLS,SSL";
+		return sp;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Bean properties
+	//--------------------------------------------------------------------------------
+
+	/**
+	 * Bean property getter:  <property>protocols</property>.
+	 *
+	 * @return The value of the <property>protocols</property> property on this bean, or <jk>null</jk> if it is not set.
+	 */
+	public String getProtocols() {
+		return protocols;
+	}
+
+	/**
+	 * Bean property setter:  <property>protocols</property>.
+	 *
+	 * @param protocols The new value for the <property>properties</property> property on this bean.
+	 * @return This object (for method chaining).
+	 */
+	public SSLOpts setProtocols(String protocols) {
+		this.protocols = protocols;
+		return this;
+	}
+
+	/**
+	 * Bean property getter:  <property>certValidate</property>.
+	 *
+	 * @return The value of the <property>certValidate</property> property on this bean, or <jk>null</jk> if it is not set.
+	 */
+	public CertValidate getCertValidate() {
+		return certValidate;
+	}
+
+	/**
+	 * Bean property setter:  <property>certValidate</property>.
+	 *
+	 * @param certValidate The new value for the <property>properties</property> property on this bean.
+	 * @return This object (for method chaining).
+	 */
+	public SSLOpts setCertValidate(CertValidate certValidate) {
+		this.certValidate = certValidate;
+		return this;
+	}
+
+	/**
+	 * Bean property getter:  <property>hostVerify</property>.
+	 *
+	 * @return The value of the <property>hostVerify</property> property on this bean, or <jk>null</jk> if it is not set.
+	 */
+	public HostVerify getHostVerify() {
+		return hostVerify;
+	}
+
+	/**
+	 * Bean property setter:  <property>hostVerify</property>.
+	 *
+	 * @param hostVerify The new value for the <property>properties</property> property on this bean.
+	 * @return This object (for method chaining).
+	 */
+	public SSLOpts setHostVerify(HostVerify hostVerify) {
+		this.hostVerify = hostVerify;
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Enums
+	//--------------------------------------------------------------------------------
+
+	/**
+	 * Certificate validation options.
+	 * <p>
+	 * Used as enum for {@link SSLOpts#getCertValidate()} property.
+	 */
+	@SuppressWarnings("hiding")
+	public static enum CertValidate {
+
+		/**
+		 * Verify that the certificate is valid, but allow for self-signed certificates.
+		 */
+		LAX,
+
+		/**
+		 * Do normal certificate chain validation.
+		 */
+		DEFAULT
+	}
+
+	/**
+	 * Certificate host verification options.
+	 * <p>
+	 * Used as enum for {@link SSLOpts#getHostVerify()} property.
+	 */
+	@SuppressWarnings("hiding")
+	public enum HostVerify {
+
+		/**
+		 * Don't verify the hostname in the certificate.
+		 */
+		LAX,
+
+		/**
+		 * Do normal hostname verification.
+		 */
+		DEFAULT
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SerializedNameValuePair.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SerializedNameValuePair.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SerializedNameValuePair.java
new file mode 100755
index 0000000..b4977c8
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SerializedNameValuePair.java
@@ -0,0 +1,85 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import static org.apache.juneau.urlencoding.UonSerializerContext.*;
+
+import java.io.*;
+
+import org.apache.http.*;
+import org.apache.juneau.*;
+import org.apache.juneau.urlencoding.*;
+
+/**
+ * Subclass of {@link NameValuePair} for serializing POJOs as URL-encoded form post entries
+ * 	using the {@link UrlEncodingSerializer class}.
+ * <p>
+ * Example:
+ * <p class='bcode'>
+ * 	NameValuePairs params = <jk>new</jk> NameValuePairs()
+ * 		.append(<jk>new</jk> SerializedNameValuePair(<js>"myPojo"</js>, pojo, UrlEncodingSerializer.<jsf>DEFAULT_SIMPLE</jsf>))
+ * 		.append(<jk>new</jk> BasicNameValuePair(<js>"someOtherParam"</js>, <js>"foobar"</js>));
+ * 	request.setEntity(<jk>new</jk> UrlEncodedFormEntity(params));
+ * </p>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public final class SerializedNameValuePair implements NameValuePair {
+	private String name;
+	private Object value;
+	private UrlEncodingSerializer serializer;
+
+	// We must be sure to disable character encoding since it's done in the http client layer.
+	private static final ObjectMap op = new ObjectMap().append(UON_encodeChars, false);
+
+	/**
+	 * Constructor.
+	 *
+	 * @param name The parameter name.
+	 * @param value The POJO to serialize to the parameter value.
+	 * @param serializer The serializer to use to convert the value to a string.
+	 */
+	public SerializedNameValuePair(String name, Object value, UrlEncodingSerializer serializer) {
+		this.name = name;
+		this.value = value;
+		this.serializer = serializer;
+	}
+
+	@Override /* NameValuePair */
+	public String getName() {
+		if (name != null && name.length() > 0) {
+			char c = name.charAt(0);
+			if (c == '$' || c == '(') {
+				try {
+					UonSerializerSession s = serializer.createSession(new StringWriter(), op, null);
+					serializer.serialize(s, name);
+					return s.getWriter().toString();
+				} catch (Exception e) {
+					throw new RuntimeException(e);
+				}
+			}
+		}
+		return name;
+	}
+
+	@Override /* NameValuePair */
+	public String getValue() {
+		try {
+			UonSerializerSession s = serializer.createSession(new StringWriter(), op, null);
+			serializer.serialize(s, value);
+			return s.getWriter().toString();
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SimpleX509TrustManager.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SimpleX509TrustManager.java b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SimpleX509TrustManager.java
new file mode 100755
index 0000000..1608da0
--- /dev/null
+++ b/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SimpleX509TrustManager.java
@@ -0,0 +1,66 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+package org.apache.juneau.client;
+
+import java.security.*;
+import java.security.cert.*;
+
+import javax.net.ssl.*;
+
+/**
+ * A trust manager that optionally allows for self-signed certificates.
+ */
+public final class SimpleX509TrustManager implements X509TrustManager {
+
+	private X509TrustManager baseTrustManager;  // The JRE-provided trust manager used to validate certificates presented by a server.
+
+	/**
+	 * Constructor.
+	 *
+	 * @param lax If <jk>true</jk>, allow self-signed and expired certificates.
+	 * @throws KeyStoreException
+	 * @throws NoSuchAlgorithmException
+	 */
+	public SimpleX509TrustManager(boolean lax) throws KeyStoreException, NoSuchAlgorithmException {
+		if (! lax) {
+			// Find the JRE-provided X509 trust manager.
+			KeyStore ks = KeyStore.getInstance("jks");
+			TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+			factory.init(ks);
+			for (TrustManager tm : factory.getTrustManagers()) {
+				if (tm instanceof X509TrustManager) {
+					baseTrustManager = (X509TrustManager)tm; // Take the first X509TrustManager we find
+					return;
+				}
+			}
+			throw new IllegalStateException("Couldn't find JRE's X509TrustManager"); //$NON-NLS-1$
+		}
+	}
+
+	@Override /* X509TrustManager */
+	public X509Certificate[] getAcceptedIssuers() {
+		return baseTrustManager == null ? new X509Certificate[0] : baseTrustManager.getAcceptedIssuers();
+	}
+
+	@Override /* X509TrustManager */
+	public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
+		if (baseTrustManager != null)
+			baseTrustManager.checkClientTrusted(chain, authType);
+	}
+
+	@Override /* X509TrustManager */
+	public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
+		if (baseTrustManager != null)
+			baseTrustManager.checkServerTrusted(chain, authType);
+	}
+}


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.java
deleted file mode 100755
index 3b107b5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.java
+++ /dev/null
@@ -1,188 +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.dto.cognos;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents a Cognos dataset.
- * <p>
- * 	When serialized to XML, creates the following construct (example pulled from <code>AddressBookResource</code>):
- * <p class='bcode'>
- * 	<xt>&lt;?xml</xt> <xa>version</xa>=<xs>'1.0'</xs> <xa>encoding</xa>=<xs>'UTF-8'</xs><xt>?&gt;</xt>
- * 	<xt>&lt;c:dataset <xa>xmlns:c</xa>=<xs>'http://developer.cognos.com/schemas/xmldata/1/'</xs>&gt;</xt>
- * 		<xt>&lt;c:metadata&gt;</xt>
- * 			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs> <xa>length</xa>=<xs>'255'</xs><xt>/&gt;</xt>
- * 			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'age'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/&gt;</xt>
- * 			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'numAddresses'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/&gt;</xt>
- * 		<xt>&lt;/c:metadata&gt;</xt>
- * 		<xt>&lt;c:data&gt;</xt>
- * 			<xt>&lt;c:row&gt;</xt>
- * 				<xt>&lt;c:value&gt;</xt>Barack Obama<xt>&lt;/c:value&gt;</xt>
- * 				<xt>&lt;c:value&gt;</xt>52<xt>&lt;/c:value&gt;</xt>
- * 				<xt>&lt;c:value&gt;</xt>2<xt>&lt;/c:value&gt;</xt>
- * 			<xt>&lt;/c:row&gt;</xt>
- * 			<xt>&lt;c:row&gt;</xt>
- * 				<xt>&lt;c:value&gt;</xt>George Walker Bush<xt>&lt;/c:value&gt;</xt>
- * 				<xt>&lt;c:value&gt;</xt>67<xt>&lt;/c:value&gt;</xt>
- * 				<xt>&lt;c:value&gt;</xt>2<xt>&lt;/c:value&gt;</xt>
- * 			<xt>&lt;/c:row&gt;</xt>
- * 		<xt>&lt;/c:data&gt;</xt>
- * 	<xt>&lt;/c:dataset&gt;</xt>
- * </p>
- * <p>
- * 	Only 2-dimentional POJOs (arrays or collections of maps or beans) can be serialized to Cognos.
- *
- * <h6 class='topic'>Example</h6>
- * <p>
- * 	The construct shown above is a serialized <code>AddressBook</code> object which is a subclass of <code>LinkedList&lt;Person&gt;</code>.
- * 	The code for generating the XML is as follows...
- * </p>
- * <p class='bcode'>
- * 	Column[] items = {
- * 		<jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255),
- * 		<jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>),
- * 		<jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
- * 			.addFilter(
- * 				<jk>new</jk> PojoFilter&ltPerson,Integer&gt;() {
- * 					<ja>@Override</ja>
- * 					<jk>public</jk> Integer filter(Person p) {
- * 						<jk>return</jk> p.<jf>addresses</jf>.size();
- * 					}
- * 				}
- * 			)
- * 	};
- *
- * 	DataSet ds = <jk>new</jk> DataSet(items, <jsf>addressBook</jsf>, BeanContext.<jsf>DEFAULT</jsf>);
- *
- * 	String xml = XmlSerializer.<jsf>DEFAULT_SQ</jsf>.serialize(ds);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="dataset")
-@SuppressWarnings("unchecked")
-public class DataSet {
-
-	private Column[] metaData;
-	private List<Row> data;
-
-	/** Bean constructor. */
-	public DataSet() {}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param columns The meta-data that represents the columns in the dataset.
-	 * @param o The POJO being serialized to Cognos.
-	 * 	Must be an array/collection of beans/maps.
-	 * @param beanContext The bean context used to convert POJOs to strings.
-	 * @throws Exception An error occurred trying to serialize the POJO.
-	 */
-	public DataSet(Column[] columns, Object o, BeanContext beanContext) throws Exception {
-		metaData = columns;
-		data = new LinkedList<Row>();
-		if (o != null) {
-			if (o.getClass().isArray())
-				o = Arrays.asList((Object[])o);
-			if (o instanceof Collection) {
-				Collection<?> c = (Collection<?>)o;
-				for (Object o2 : c) {
-					Row r = new Row();
-					Map<?,?> m = null;
-					if (o2 instanceof Map)
-						m = (Map<?,?>)o2;
-					else
-						m = beanContext.forBean(o2);
-					for (Column col : columns) {
-						Object v;
-						if (col.filter != null)
-							v = col.filter.filter(o2);
-						else
-							v = m.get(col.getName());
-						r.add(v == null ? null : v.toString());
-					}
-					data.add(r);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Represents a row of data.
-	 * <p>
-	 * 	When serialized to XML, creates the following construct (example pulled from <code>AddressBookResource</code>):
-	 * <p class='bcode'>
-	 * 	<xt>&lt;row&gt;</xt>
-	 * 		<xt>&lt;value&gt;</xt>Barack Obama<xt>&lt;/value&gt;</xt>
-	 * 		<xt>&lt;value&gt;</xt>52<xt>&lt;/value&gt;</xt>
-	 * 		<xt>&lt;value&gt;</xt>2<xt>&lt;/value&gt;</xt>
-	 * 	<xt>&lt;/row&gt;</xt>
-	 * </p>
-	 *
-	 * @author James Bognar (jbognar@us.ibm.com)
-	 */
-	@Xml(name="row", childName="value")
-	public static class Row extends LinkedList<String> {
-		private static final long serialVersionUID = 1L;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Bean property getter:  <property>metadata</property>.
-	 *
-	 * @return The value of the <property>metadata</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	@BeanProperty(name="metadata")
-	public Column[] getMetaData() {
-		return metaData;
-	}
-
-	/**
-	 * Bean property setter:  <property>metadata</property>.
-	 *
-	 * @param metaData The new value for the <property>metadata</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	@BeanProperty(name="metadata")
-	public DataSet setMetaData(Column[] metaData) {
-		this.metaData = metaData;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>data</property>.
-	 *
-	 * @return The value of the <property>data</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	@BeanProperty(name="data")
-	public List<Row> getData() {
-		return data;
-	}
-
-	/**
-	 * Bean property setter:  <property>data</property>.
-	 *
-	 * @param data The new value for the <property>data</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	@BeanProperty(name="data")
-	public DataSet setData(List<Row> data) {
-		this.data = data;
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/HTML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/HTML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/HTML.png
deleted file mode 100755
index fd63c23..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/HTML.png 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/dto/cognos/doc-files/JSON.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/JSON.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/JSON.png
deleted file mode 100755
index 44785ad..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/JSON.png 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/dto/cognos/doc-files/RDFXML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/RDFXML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/RDFXML.png
deleted file mode 100755
index 081e949..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/RDFXML.png 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/dto/cognos/package-info.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.class
deleted file mode 100755
index 76e935c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.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/dto/cognos/package-info.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.java
deleted file mode 100755
index 9919e9b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/* *****************************************************************************
- * 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.
- *******************************************************************************/
-// XML namespaces used in this package
-@XmlSchema(prefix="cognos", namespace="http://developer.cognos.com/schemas/xmldata/1/")
-package com.ibm.juno.core.dto.cognos;
-import com.ibm.juno.core.xml.annotation.*;
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package.html
deleted file mode 100755
index 2b7cf71..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package.html
+++ /dev/null
@@ -1,170 +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>Cognos Data Transfer Objects</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='#CognosSerializer'>Cognos serialization support</a></p>
-	<li><p><a class='doclink' href='#CognosParser'>Cognos parsing support</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="CognosSerializer"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Cognos serialization support</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.core.dto.cognos.DataSet} class is a DTO used to convert POJO models directly to Cognos-XML.
-	</p>
-	<p>
-		Because of the nature of the Cognos XML syntax, only <i>2-dimensional</i> POJO data structures can be serialized to Cognos-XML.
-	</p>
-	<p>
-		For example...
-	</p>
-	<ul class='normal'>
-		<li><code>Collection&lt;Bean&gt;</code>
-		<li><code>Collection&lt;Map&gt;</code>
-		<li>{@code MyBean[]}
-		<li>{@code HashMap[]}
-	</ul>
-	<h6 class='topic'>Example</h6>
-	<p>
-		The following example shows how to generate Cognos-XML from a POJO.  
-		The example uses the <a class='doclink' href='../../doc-files/AddressBook.html'>AddressBook</a> sample POJO.
-		It should be noted that since the {@code AddressBook} class is a subclass of {@code LinkedList}, it fulfills
-			the requirement of being a tabular data structure.  
-	</p>
-	<p class='bcode'>
-	<jc>// Create our POJO with some entries.</jc>
-	AddressBook addressBook = <jk>new</jk> AddressBook();
-	addressBook.add(
-		<jk>new</jk> Person(<js>"Barack Obama"</js>, <js>"Aug 4, 1961"</js>,
-			<jk>new</jk> Address(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>true</jk>),
-			<jk>new</jk> Address(<js>"5046 S Greenwood Ave"</js>, <js>"Chicago"</js>, <js>"IL"</js>, 60615, <jk>false</jk>)
-		)
-	);
-	addressBook.add(
-		<jk>new</jk> Person(<js>"George Walker Bush"</js>, <js>"Jul 6, 1946"</js>,
-			<jk>new</jk> Address(<js>"43 Prairie Chapel Rd"</js>, <js>"Crawford"</js>, <js>"TX"</js>, 76638, <jk>true</jk>),
-			<jk>new</jk> Address(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>false</jk>)
-		)
-	);
-
-	<jc>// Define the Cognos metadata</jc>
-	Column[] items = {
-		<jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255),
-		<jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>),
-		<jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
-			.addFilter(
-				<jk>new</jk> PojoFilter&ltPerson,Integer&gt;() {
-					<ja>@Override</ja>
-					<jk>public</jk> Integer filter(Person p) {
-						<jk>return</jk> p.<jf>addresses</jf>.size();
-					}
-				}
-			)
-	};
-	
-	<jc>// Create the Cognos DataSet object</jc>
-	DataSet ds = <jk>new</jk> DataSet(items, <jsf>addressBook</jsf>, BeanContext.<jsf>DEFAULT</jsf>);
-	
-	<jc>// Serialize it to XML</jc>
-	String xml = XmlSerializer.<jsf>DEFAULT_SQ</jsf>.serialize(ds);
-	</p>
-	<p>
-		When run, this code produces the following XML...
-	</p>
-	<p class='bcode'>
-	<xt>&lt;?xml</xt> <xa>version</xa>=<xs>'1.0'</xs> <xa>encoding</xa>=<xs>'UTF-8'</xs><xt>?&gt;</xt>
-	<xt>&lt;c:dataset <xa>xmlns:c</xa>=<xs>'http://developer.cognos.com/schemas/xmldata/1/'</xs>&gt;</xt>
-		<xt>&lt;c:metadata&gt;</xt>
-			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs> <xa>length</xa>=<xs>'255'</xs><xt>/&gt;</xt>
-			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'age'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/&gt;</xt>
-			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'numAddresses'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/&gt;</xt>
-		<xt>&lt;/c:metadata&gt;</xt>
-		<xt>&lt;c:data&gt;</xt>
-			<xt>&lt;c:row&gt;</xt>
-				<xt>&lt;c:value&gt;</xt>Barack Obama<xt>&lt;/c:value&gt;</xt>
-				<xt>&lt;c:value&gt;</xt>52<xt>&lt;/c:value&gt;</xt>
-				<xt>&lt;c:value&gt;</xt>2<xt>&lt;/c:value&gt;</xt>
-			<xt>&lt;/c:row&gt;</xt>
-			<xt>&lt;c:row&gt;</xt>
-				<xt>&lt;c:value&gt;</xt>George Walker Bush<xt>&lt;/c:value&gt;</xt>
-				<xt>&lt;c:value&gt;</xt>67<xt>&lt;/c:value&gt;</xt>
-				<xt>&lt;c:value&gt;</xt>2<xt>&lt;/c:value&gt;</xt>
-			<xt>&lt;/c:row&gt;</xt>
-		<xt>&lt;/c:data&gt;</xt>
-	<xt>&lt;/c:dataset&gt;</xt>
-	</p>
-	<h6 class='topic'>Other data formats</h6>
-	<p>
-		The following shows examples of what this data structure looks like when serialized to other formats:
-	</p>
-	<h6 class='figure'>HTML</h6>
-	<img class='bordered' src='doc-files/HTML.png'>
-	<h6 class='figure'>JSON</h6>
-	<img class='bordered' src='doc-files/JSON.png'>
-	<h6 class='figure'>RDF/XML</h6>
-	<img class='bordered' src='doc-files/RDFXML.png'>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="CognosParser"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Cognos parsing support</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.core.dto.cognos.DataSet} class can be reconstructed from Cognos/XML using one of the standard XML parsers.
-	</p>
-	<h6 class='topic'>Example</h6>
-	<p class='bcode'>
-	<jc>// Parse XML back into original DataSet</jc> 
-	DataSet ds = XmlParser.<jsf>DEFAULT</jsf>.parse(xml, DataSet.<jk>class</jk>);
-	</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/dto/jsonschema/JsonType.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.class
deleted file mode 100755
index 0ad6388..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.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/dto/jsonschema/JsonType.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.java
deleted file mode 100755
index c9daf4c..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.java
+++ /dev/null
@@ -1,103 +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.dto.jsonschema;
-
-/**
- * Represents possible JSON types in the JSON-Schema core specification.
- * <p>
- * 	Implements custom <code>toString()</code> and <code>fromString(String)</code> methods
- * 		that override the default serialization/parsing behavior of <code>Enum</code> types
- * 		so that they are represented in lowercase form (as per the specification).
- *
- * <h6 class='figure'>Example</h6>
- * <p class='bcode'>
- * 	// Produces 'number', not 'NUMBER'.
- * 	String json = JsonSerializer.DEFAULT.serialize(JsonType.NUMBER);
- * </p>
- *
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public enum JsonType {
-
-	/** array */
-	ARRAY("array"),
-
-	/** boolean */
-	BOOLEAN("boolean"),
-
-	/** integer */
-	INTEGER("integer"),
-
-	/** null */
-	NULL("null"),
-
-	/** number */
-	NUMBER("number"),
-
-	/** object */
-	OBJECT("object"),
-
-	/** string */
-	STRING("string"),
-
-	/** any */
-	ANY("any");
-
-	private final String value;	// The serialized format of the enum.
-
-	private JsonType(String value) {
-		this.value = value;
-	}
-
-	/**
-	 * Returns the lowercase form of this enum that's compatible with the JSON-Schema specification.
-	 */
-	@Override /* Object */
-	public String toString() {
-		return value;
-	}
-
-	/**
-	 * Converts the specified lowercase form of the enum back into an <code>Enum</code>.
-	 *
-	 * @param value The lowercase form of the enum (e.g. <js>"array"</js>).
-	 * @return The matching <code>Enum</code>, or <jk>null</jk> if no match found.
-	 */
-	public static JsonType fromString(String value) {
-		if (value == null || value.length() < 4)
-			return null;
-		char c = value.charAt(0);
-		if (c == 'a') {
-			if (value.equals("array"))
-			return ARRAY;
-			if (value.equals("any"))
-				return ANY;
-		}
-		if (c == 'b' && value.equals("boolean"))
-			return BOOLEAN;
-		if (c == 'i' && value.equals("integer"))
-			return INTEGER;
-		if (c == 'n') {
-			c = value.charAt(2);
-			if (c == 'l' && value.equals("null"))
-				return NULL;
-			if (c == 'm' && value.equals("number"))
-				return NUMBER;
-			return null;
-		}
-		if (c == 'o' && value.equals("object"))
-			return OBJECT;
-		if (c == 's' && value.equals("string"))
-			return STRING;
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.class
deleted file mode 100755
index 5a10330..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.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/dto/jsonschema/JsonTypeArray.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.java
deleted file mode 100755
index d383162..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.java
+++ /dev/null
@@ -1,50 +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.dto.jsonschema;
-
-import java.util.*;
-
-/**
- * Represents a list of {@link JsonType} objects.
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class JsonTypeArray extends LinkedList<JsonType> {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public JsonTypeArray() {}
-
-	/**
-	 * Constructor with predefined types to add to this list.
-	 *
-	 * @param types The list of types to add to the list.
-	 */
-	public JsonTypeArray(JsonType...types) {
-		addAll(types);
-	}
-
-	/**
-	 * Convenience method for adding one or more {@link JsonType} objects to
-	 * 	this array.
-	 *
-	 * @param types The {@link JsonType} objects to add to this array.
-	 * @return This object (for method chaining).
-	 */
-	public JsonTypeArray addAll(JsonType...types) {
-		for (JsonType t : types)
-			add(t);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample$1.class
deleted file mode 100755
index d967e1c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample$1.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/dto/jsonschema/Sample.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.class
deleted file mode 100755
index 375479e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.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/dto/jsonschema/Sample.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.java
deleted file mode 100755
index 636755d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.java
+++ /dev/null
@@ -1,63 +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.dto.jsonschema;
-
-import java.io.*;
-import java.net.*;
-
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.utils.*;
-
-@SuppressWarnings("serial")
-class Sample {
-
-	public static void main(String[] args) {
-
-		// Create a SchemaMap for looking up schemas.
-		SchemaMap schemaMap = new SchemaMap() {
-
-			@Override /* SchemaMap */
-			public Schema load(URI uri) {
-				Reader r = null;
-				try {
-					r = new InputStreamReader(uri.toURL().openStream(), IOUtils.UTF8);
-					Schema s = JsonParser.DEFAULT.parse(r, -1, Schema.class);
-					return s;
-				} catch (Exception e) {
-					throw new RuntimeException(e);
-				} finally {
-					if (r != null) {
-						try {
-							r.close();
-						} catch (IOException e) {
-						}
-					}
-				}
-			}
-		};
-
-		// Get schema from the schema map.
-		Schema purchaseOrderSchema = schemaMap.get("http://www.ibm.com/purchase-order/PurchaseOrder#");
-
-		JsonType streetType = purchaseOrderSchema
-			.getProperty("address",true)                         // Get "address" property, resolved to Address schema.
-			.getProperty("street")                               // Get "street" property.
-			.getTypeAsJsonType();                                // Get data type.
-		System.err.println("streetType=" + streetType);         // Prints "streetType=string"
-
-		JsonType productIdType = purchaseOrderSchema
-			.getProperty("product")                              // Get "product" property
-			.getItemsAsSchemaArray()                             // Get "items".
-			.get(0)                                              // Get first entry.
-			.resolve()                                           // Resolve to Product schema.
-			.getProperty("productId")                            // Get "productId" property.
-			.getTypeAsJsonType();                                // Get data type.
-		System.err.println("productIdType=" + productIdType);   // Prints "productIdType=number"
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaArrayFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaArrayFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaArrayFilter.class
deleted file mode 100755
index 740164b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaArrayFilter.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/dto/jsonschema/Schema$BooleanOrSchemaFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaFilter.class
deleted file mode 100755
index f3f9e32..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaFilter.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/dto/jsonschema/Schema$JsonTypeOrJsonTypeArrayFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$JsonTypeOrJsonTypeArrayFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$JsonTypeOrJsonTypeArrayFilter.class
deleted file mode 100755
index df1cabb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$JsonTypeOrJsonTypeArrayFilter.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/dto/jsonschema/Schema$SchemaOrSchemaArrayFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$SchemaOrSchemaArrayFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$SchemaOrSchemaArrayFilter.class
deleted file mode 100755
index 6000f8b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$SchemaOrSchemaArrayFilter.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/dto/jsonschema/Schema.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.class
deleted file mode 100755
index 496ead5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.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/dto/jsonschema/Schema.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.java
deleted file mode 100755
index 7772f05..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.java
+++ /dev/null
@@ -1,1392 +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.dto.jsonschema;
-
-import java.net.URI;
-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.serializer.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents a top-level schema object bean in the JSON-Schema core specification.
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="schema")
-@SuppressWarnings("hiding")
-public class Schema {
-	private String name;                                   // Property name.  Not serialized.
-	private URI id;
-	private URI schemaVersion;
-	private String title;
-	private String description;
-	private JsonType typeJsonType;                         // JsonType representation of type
-	private JsonTypeArray typeJsonTypeArray;               // JsonTypeArray representation of type
-	private Map<String,Schema> definitions;
-	private Map<String,Schema> properties;
-	private Map<String,Schema> patternProperties;
-	private Map<String,Schema> dependencies;
-	private Schema itemsSchema;                            // Schema representation of items
-	private SchemaArray itemsSchemaArray;                  // SchemaArray representation of items
-	private Number multipleOf;
-	private Number maximum;
-	private Boolean exclusiveMaximum;
-	private Number minimum;
-	private Boolean exclusiveMinimum;
-	private Integer maxLength;
-	private Integer minLength;
-	private String pattern;
-	private Boolean additionalItemsBoolean;                // Boolean representation of additionalItems
-	private SchemaArray additionalItemsSchemaArray;        // SchemaArray representation of additionalItems
-	private Integer maxItems;
-	private Integer minItems;
-	private Boolean uniqueItems;
-	private Integer maxProperties;
-	private Integer minProperties;
-	private List<String> required;
-	private Boolean additionalPropertiesBoolean;           // Boolean representation of additionalProperties
-	private Schema additionalPropertiesSchema;             // Schema representation of additionalProperties
-	private List<String> _enum;
-	private List<Schema> allOf;
-	private List<Schema> anyOf;
-	private List<Schema> oneOf;
-	private Schema not;
-	private URI ref;
-	private SchemaMap schemaMap;
-	private Schema master = this;
-
-	/**
-	 * Default constructor.
-	 */
-	public Schema() {}
-
-	//--------------------------------------------------------------------------------
-	// Bean properties
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Bean property getter:  <property>name</property>.
-	 *
-	 * @return The value of the <property>name</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	@BeanIgnore
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Bean property setter:  <property>name</property>.
-	 *
-	 * @param name The new value for the <property>name</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	@BeanIgnore
-	public Schema setName(String name) {
-		this.name = name;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>id</property>.
-	 *
-	 * @return The value of the <property>id</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public URI getId() {
-		return id;
-	}
-
-	/**
-	 * Bean property setter:  <property>id</property>.
-	 *
-	 * @param id The new value for the <property>id</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setId(URI id) {
-		this.id = id;
-		return this;
-	}
-
-	/**
-	 * Bean property setter:  <property>id</property>.
-	 *
-	 * @param id The new value for the <property>id</property> property on this bean.
-	 * The parameter must be a valid URI.  It can be <jk>null</jk>.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setId(String id) {
-		return setId(id == null ? null : URI.create(id));
-	}
-
-	/**
-	 * Bean property getter:  <property>$schema</property>.
-	 *
-	 * @return The value of the <property>$schema</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	@BeanProperty(name="$schema")
-	public URI getSchemaVersionUri() {
-		return schemaVersion;
-	}
-
-	/**
-	 * Bean property setter:  <property>$schema</property>.
-	 *
-	 * @param schemaVersion The new value for the <property>schemaVersion</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	@BeanProperty(name="$schema")
-	public Schema setSchemaVersionUri(URI schemaVersion) {
-		this.schemaVersion = schemaVersion;
-		return this;
-	}
-
-	/**
-	 * Bean property setter:  <property>schemaVersion</property>.
-	 *
-	 * @param schemaVersion The new value for the <property>schemaVersion</property> property on this bean.
-	 * The parameter must be a valid URI.  It can be <jk>null</jk>.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setSchemaVersionUri(String schemaVersion) {
-		return setSchemaVersionUri(schemaVersion == null ? null : URI.create(schemaVersion));
-	}
-
-	/**
-	 * Bean property getter:  <property>title</property>.
-	 *
-	 * @return The value of the <property>title</property> property, or <jk>null</jk> if it is not set.
-	 */
-	public String getTitle() {
-		return title;
-	}
-
-	/**
-	 * Bean property setter:  <property>title</property>.
-	 *
-	 * @param title The new value for the <property>title</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setTitle(String title) {
-		this.title = title;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>description</property>.
-	 *
-	 * @return The value of the <property>description</property> property, or <jk>null</jk> if it is not set.
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Bean property setter:  <property>description</property>.
-	 *
-	 * @param description The new value for the <property>description</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setDescription(String description) {
-		this.description = description;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>type</property>.
-	 *
-	 * @return The value of the <property>type</property> property on this bean, or <jk>null</jk> if it is not set.
-	 * Can be either a {@link JsonType} or {@link JsonTypeArray} depending on what value was used to set it.
-	 */
-	@BeanProperty(filter=JsonTypeOrJsonTypeArrayFilter.class)
-	public Object getType() {
-		if (typeJsonType != null)
-			return typeJsonType;
-		return typeJsonTypeArray;
-	}
-
-	/**
-	 * Bean property getter:  <property>type</property>.
-	 * <p>
-	 * Convenience method for returning the <property>type</property> property when it is a {@link JsonType} value.
-	 *
-	 * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link JsonTypeArray}.
-	 */
-	@BeanIgnore
-	public JsonType getTypeAsJsonType() {
-		return typeJsonType;
-	}
-
-	/**
-	 * Bean property getter:  <property>type</property>.
-	 * <p>
-	 * Convenience method for returning the <property>type</property> property when it is a {@link JsonTypeArray} value.
-	 *
-	 * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link JsonType}.
-	 */
-	@BeanIgnore
-	public JsonTypeArray getTypeAsJsonTypeArray() {
-		return typeJsonTypeArray;
-	}
-
-	/**
-	 * Bean property setter:  <property>type</property>.
-	 *
-	 * @param type The new value for the <property>type</property> property on this bean.
-	 * This object must be of type {@link JsonType} or {@link JsonTypeArray}.
-	 * @return This object (for method chaining).
-	 * @throws BeanRuntimeException If invalid object type passed in.
-	 */
-	public Schema setType(Object type) {
-		this.typeJsonType = null;
-		this.typeJsonTypeArray = null;
-		if (type != null) {
-			if (type instanceof JsonType)
-				this.typeJsonType = (JsonType)type;
-			else if (type instanceof JsonTypeArray)
-				this.typeJsonTypeArray = (JsonTypeArray)type;
-			else
-				throw new BeanRuntimeException(SchemaProperty.class, "Invalid attribute type ''{0}'' passed in.  Must be one of the following:  SimpleType, SimpleTypeArray", type.getClass().getName());
-		}
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>type</property>.
-	 *
-	 * @param types The list of items to append to the <property>type</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addTypes(JsonType...types) {
-		if (this.typeJsonTypeArray == null)
-			this.typeJsonTypeArray = new JsonTypeArray();
-		this.typeJsonTypeArray.addAll(types);
-		return this;
-	}
-
-	/**
-	 * Used during parsing to convert the <property>type</property> property to the correct class type.
-	 * <ul>
-	 * 	<li>If parsing a JSON-array, converts to a {@link JsonTypeArray}.
-	 * 	<li>If parsing a JSON-object, converts to a {@link JsonType}.
-	 * </ul>
-	 * Serialization method is a no-op.
-	 */
-	public static class JsonTypeOrJsonTypeArrayFilter extends PojoFilter<Object,Object> {
-
-		@Override /* PojoFilter */
-		public Object filter(Object o) throws SerializeException {
-			return o;
-		}
-
-		@Override /* PojoFilter */
-		public Object unfilter(Object o, ClassMeta<?> hint) throws ParseException {
-			BeanContext bc = getBeanContext();
-			ClassMeta<?> cm = (o instanceof Collection ? bc.getClassMeta(JsonTypeArray.class) : bc.getClassMeta(JsonType.class));
-			return bc.convertToType(o, cm);
-		}
-	}
-
-	/**
-	 * Bean property getter:  <property>definitions</property>.
-	 *
-	 * @return The value of the <property>definitions</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Map<String,Schema> getDefinitions() {
-		return definitions;
-	}
-
-	/**
-	 * Bean property setter:  <property>definitions</property>.
-	 *
-	 * @param definitions The new value for the <property>definitions</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setDefinitions(Map<String,Schema> definitions) {
-		this.definitions = definitions;
-		if (definitions != null)
-			setMasterOn(definitions.values());
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>definitions</property>.
-	 *
-	 * @param name The key in the definitions map entry.
-	 * @param definition The value in the definitions map entry.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addDefinition(String name, Schema definition) {
-		if (this.definitions == null)
-			this.definitions = new LinkedHashMap<String,Schema>();
-		this.definitions.put(name, definition);
-		setMasterOn(definition);
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>properties</property>.
-	 *
-	 * @return The value of the <property>properties</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Map<String,Schema> getProperties() {
-		return properties;
-	}
-
-	/**
-	 * Returns the property with the specified name.
-	 * This is equivalent to calling <property>getProperty(name, <jk>false</jk>)</property>.
-	 *
-	 * @param name The property name.
-	 * @return The property with the specified name, or <jk>null</jk> if no property is specified.
-	 */
-	public Schema getProperty(String name) {
-		return getProperty(name, false);
-	}
-
-	/**
-	 * Returns the property with the specified name.
-	 * If <property>resolve</property> is <jk>true</jk>, the property object will automatically be
-	 * 	resolved by calling {@link #resolve()}.
-	 * Therefore, <property>getProperty(name, <jk>true</jk>)</property> is equivalent to calling
-	 * 	<property>getProperty(name).resolve()</property>, except it's safe from a potential <property>NullPointerException</property>.
-	 *
-	 * @param name The property name.
-	 * @param resolve If <jk>true</jk>, calls {@link #resolve()} on object before returning.
-	 * @return The property with the specified name, or <jk>null</jk> if no property is specified.
-	 */
-	public Schema getProperty(String name, boolean resolve) {
-		if (properties == null)
-			return null;
-		Schema s = properties.get(name);
-		if (s == null)
-			return null;
-		if (resolve)
-			s = s.resolve();
-		return s;
-	}
-
-	/**
-	 * Bean property setter:  <property>properties</property>.
-	 *
-	 * @param properties The new value for the <property>properties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setProperties(Map<String,Schema> properties) {
-		this.properties = properties;
-		if (properties != null)
-			for (Map.Entry<String,Schema> e : properties.entrySet()) {
-				Schema value = e.getValue();
-				setMasterOn(value);
-				value.setName(e.getKey());
-			}
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>properties</property>.
-	 * <p>
-	 * Properties must have their <property>name</property> property set on them when using this method.
-	 *
-	 * @param properties The list of items to append to the <property>properties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 * @throws BeanRuntimeException If property is found without a set <property>name</property> property.
-	 */
-	public Schema addProperties(Schema...properties) {
-		if (this.properties == null)
-			this.properties = new LinkedHashMap<String,Schema>();
-		for (Schema p : properties) {
-			if (p.getName() == null)
-				throw new BeanRuntimeException(Schema.class, "Invalid property passed to Schema.addProperties().  Property name was null.");
-			setMasterOn(p);
-			this.properties.put(p.getName(), p);
-		}
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>patternProperties</property>.
-	 *
-	 * @return The value of the <property>patternProperties</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Map<String,Schema> getPatternProperties() {
-		return patternProperties;
-	}
-
-	/**
-	 * Bean property setter:  <property>patternProperties</property>.
-	 *
-	 * @param patternProperties The new value for the <property>patternProperties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setPatternProperties(Map<String,Schema> patternProperties) {
-		this.patternProperties = patternProperties;
-		if (patternProperties != null)
-			for (Map.Entry<String,Schema> e : patternProperties.entrySet()) {
-				Schema s = e.getValue();
-				setMasterOn(s);
-				s.setName(e.getKey());
-			}
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>patternProperties</property>.
-	 * <p>
-	 * Properties must have their <property>name</property> property set to the pattern string when using this method.
-	 *
-	 * @param properties The list of items to append to the <property>patternProperties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 * @throws BeanRuntimeException If property is found without a set <property>name</property> property.
-	 */
-	public Schema addPatternProperties(SchemaProperty...properties) {
-		if (this.patternProperties == null)
-			this.patternProperties = new LinkedHashMap<String,Schema>();
-		for (Schema p : properties) {
-			if (p.getName() == null)
-				throw new BeanRuntimeException(Schema.class, "Invalid property passed to Schema.addProperties().  Property name was null.");
-			setMasterOn(p);
-			this.patternProperties.put(p.getName(), p);
-		}
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>dependencies</property>.
-	 *
-	 * @return The value of the <property>dependencies</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Map<String,Schema> getDependencies() {
-		return dependencies;
-	}
-
-	/**
-	 * Bean property setter:  <property>dependencies</property>.
-	 *
-	 * @param dependencies The new value for the <property>dependencies</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setDependencies(Map<String,Schema> dependencies) {
-		this.dependencies = dependencies;
-		if (dependencies != null)
-			setMasterOn(dependencies.values());
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>dependencies</property>.
-	 *
-	 * @param name The key of the entry in the dependencies map.
-	 * @param dependency The value of the entry in the dependencies map.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addDependency(String name, Schema dependency) {
-		if (this.dependencies == null)
-			this.dependencies = new LinkedHashMap<String,Schema>();
-		this.dependencies.put(name, dependency);
-		setMasterOn(dependency);
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>items</property>.
-	 *
-	 * @return The value of the <property>items</property> property on this bean, or <jk>null</jk> if it is not set.
-	 * Can be either a {@link Schema} or {@link SchemaArray} depending on what value was used to set it.
-	 */
-	@BeanProperty(filter=SchemaOrSchemaArrayFilter.class)
-	public Object getItems() {
-		if (itemsSchema != null)
-			return itemsSchema;
-		return itemsSchemaArray;
-	}
-
-	/**
-	 * Bean property getter:  <property>items</property>.
-	 * <p>
-	 * Convenience method for returning the <property>items</property> property when it is a {@link Schema} value.
-	 *
-	 * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link SchemaArray}.
-	 */
-	@BeanIgnore
-	public Schema getItemsAsSchema() {
-		return itemsSchema;
-	}
-
-	/**
-	 * Bean property getter:  <property>items</property>.
-	 * <p>
-	 * Convenience method for returning the <property>items</property> property when it is a {@link SchemaArray} value.
-	 *
-	 * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link Schema}.
-	 */
-	@BeanIgnore
-	public SchemaArray getItemsAsSchemaArray() {
-		return itemsSchemaArray;
-	}
-
-	/**
-	 * Used during parsing to convert the <property>items</property> property to the correct class type.
-	 * <ul>
-	 * 	<li>If parsing a JSON-array, converts to a {@link SchemaArray}.
-	 * 	<li>If parsing a JSON-object, converts to a {@link Schema}.
-	 * </ul>
-	 * Serialization method is a no-op.
-	 */
-	public static class SchemaOrSchemaArrayFilter extends PojoFilter<Object,Object> {
-
-		@Override /* PojoFilter */
-		public Object filter(Object o) throws SerializeException {
-			return o;
-		}
-
-		@Override /* PojoFilter */
-		public Object unfilter(Object o, ClassMeta<?> hint) throws ParseException {
-			BeanContext bc = getBeanContext();
-			ClassMeta<?> cm = (o instanceof Collection ? bc.getClassMeta(SchemaArray.class) : bc.getClassMeta(Schema.class));
-			return bc.convertToType(o, cm);
-		}
-	}
-
-	/**
-	 * Bean property setter:  <property>items</property>.
-	 *
-	 * @param items The new value for the <property>items</property> property on this bean.
-	 * This object must be of type {@link Schema} or {@link SchemaArray}.
-	 * @return This object (for method chaining).
-	 * @throws BeanRuntimeException If invalid object type passed in.
-	 */
-	public Schema setItems(Object items) {
-		this.itemsSchema = null;
-		this.itemsSchemaArray = null;
-		if (items != null) {
-			if (items instanceof Schema) {
-				this.itemsSchema = (Schema)items;
-				setMasterOn(this.itemsSchema);
-			} else if (items instanceof SchemaArray) {
-				this.itemsSchemaArray = (SchemaArray)items;
-				setMasterOn(this.itemsSchemaArray);
-			} else
-				throw new BeanRuntimeException(SchemaProperty.class, "Invalid attribute type ''{0}'' passed in.  Must be one of the following:  Schema, SchemaArray", items.getClass().getName());
-		}
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>items</property>.
-	 *
-	 * @param items The list of items to append to the <property>items</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addItems(Schema...items) {
-		if (this.itemsSchemaArray == null)
-			this.itemsSchemaArray = new SchemaArray();
-		this.itemsSchemaArray.addAll(items);
-		setMasterOn(items);
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>multipleOf</property>.
-	 *
-	 * @return The value of the <property>multipleOf</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Number getMultipleOf() {
-		return multipleOf;
-	}
-
-	/**
-	 * Bean property setter:  <property>multipleOf</property>.
-	 *
-	 * @param multipleOf The new value for the <property>multipleOf</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMultipleOf(Number multipleOf) {
-		this.multipleOf = multipleOf;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>maximum</property>.
-	 *
-	 * @return The value of the <property>maximum</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Number getMaximum() {
-		return maximum;
-	}
-
-	/**
-	 * Bean property setter:  <property>maximum</property>.
-	 *
-	 * @param maximum The new value for the <property>maximum</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMaximum(Number maximum) {
-		this.maximum = maximum;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>exclusiveMaximum</property>.
-	 *
-	 * @return The value of the <property>exclusiveMaximum</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Boolean isExclusiveMaximum() {
-		return exclusiveMaximum;
-	}
-
-	/**
-	 * Bean property setter:  <property>exclusiveMaximum</property>.
-	 *
-	 * @param exclusiveMaximum The new value for the <property>exclusiveMaximum</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setExclusiveMaximum(Boolean exclusiveMaximum) {
-		this.exclusiveMaximum = exclusiveMaximum;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>minimum</property>.
-	 *
-	 * @return The value of the <property>minimum</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Number getMinimum() {
-		return minimum;
-	}
-
-	/**
-	 * Bean property setter:  <property>minimum</property>.
-	 *
-	 * @param minimum The new value for the <property>minimum</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMinimum(Number minimum) {
-		this.minimum = minimum;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>exclusiveMinimum</property>.
-	 *
-	 * @return The value of the <property>exclusiveMinimum</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Boolean isExclusiveMinimum() {
-		return exclusiveMinimum;
-	}
-
-	/**
-	 * Bean property setter:  <property>exclusiveMinimum</property>.
-	 *
-	 * @param exclusiveMinimum The new value for the <property>exclusiveMinimum</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setExclusiveMinimum(Boolean exclusiveMinimum) {
-		this.exclusiveMinimum = exclusiveMinimum;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>maxLength</property>.
-	 *
-	 * @return The value of the <property>maxLength</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Integer getMaxLength() {
-		return maxLength;
-	}
-
-	/**
-	 * Bean property setter:  <property>maxLength</property>.
-	 *
-	 * @param maxLength The new value for the <property>maxLength</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMaxLength(Integer maxLength) {
-		this.maxLength = maxLength;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>minLength</property>.
-	 *
-	 * @return The value of the <property>minLength</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Integer getMinLength() {
-		return minLength;
-	}
-
-	/**
-	 * Bean property setter:  <property>minLength</property>.
-	 *
-	 * @param minLength The new value for the <property>minLength</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMinLength(Integer minLength) {
-		this.minLength = minLength;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>pattern</property>.
-	 *
-	 * @return The value of the <property>pattern</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public String getPattern() {
-		return pattern;
-	}
-
-	/**
-	 * Bean property setter:  <property>pattern</property>.
-	 *
-	 * @param pattern The new value for the <property>pattern</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setPattern(String pattern) {
-		this.pattern = pattern;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>additionalItems</property>.
-	 *
-	 * @return The value of the <property>additionalItems</property> property on this bean, or <jk>null</jk> if it is not set.
-	 * Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.
-	 */
-	@BeanProperty(filter=BooleanOrSchemaArrayFilter.class)
-	public Object getAdditionalItems() {
-		if (additionalItemsBoolean != null)
-			return additionalItemsBoolean;
-		return additionalItemsSchemaArray;
-	}
-
-	/**
-	 * Bean property getter:  <property>additionalItems</property>.
-	 * <p>
-	 * Convenience method for returning the <property>additionalItems</property> property when it is a {@link Boolean} value.
-	 *
-	 * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link SchemaArray}.
-	 */
-	@BeanIgnore
-	public Boolean getAdditionalItemsAsBoolean() {
-		return additionalItemsBoolean;
-	}
-
-	/**
-	 * Bean property getter:  <property>additionalItems</property>.
-	 * <p>
-	 * Convenience method for returning the <property>additionalItems</property> property when it is a {@link SchemaArray} value.
-	 *
-	 * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link Boolean}.
-	 */
-	@BeanIgnore
-	public List<Schema> getAdditionalItemsAsSchemaArray() {
-		return additionalItemsSchemaArray;
-	}
-
-	/**
-	 * Bean property setter:  <property>additionalItems</property>.
-	 *
-	 * @param additionalItems The new value for the <property>additionalItems</property> property on this bean.
-	 * This object must be of type {@link Boolean} or {@link SchemaArray}.
-	 * @return This object (for method chaining).
-	 * @throws BeanRuntimeException If invalid object type passed in.
-	 */
-	public Schema setAdditionalItems(Object additionalItems) {
-		this.additionalItemsBoolean = null;
-		this.additionalItemsSchemaArray = null;
-		if (additionalItems != null) {
-			if (additionalItems instanceof Boolean)
-				this.additionalItemsBoolean = (Boolean)additionalItems;
-			else if (additionalItems instanceof SchemaArray) {
-				this.additionalItemsSchemaArray = (SchemaArray)additionalItems;
-				setMasterOn(this.additionalItemsSchemaArray);
-			} else
-				throw new BeanRuntimeException(SchemaProperty.class, "Invalid attribute type ''{0}'' passed in.  Must be one of the following:  Boolean, SchemaArray", additionalItems.getClass().getName());
-		}
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>additionalItems</property>.
-	 *
-	 * @param additionalItems The list of items to append to the <property>additionalItems</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addAdditionalItems(Schema...additionalItems) {
-		if (this.additionalItemsSchemaArray == null)
-			this.additionalItemsSchemaArray = new SchemaArray();
-		this.additionalItemsSchemaArray.addAll(additionalItems);
-		setMasterOn(additionalItems);
-		return this;
-	}
-
-	/**
-	 * Used during parsing to convert the <property>additionalItems</property> property to the correct class type.
-	 * <ul>
-	 * 	<li>If parsing a JSON-array, converts to a {@link SchemaArray}.
-	 * 	<li>If parsing a JSON-boolean, converts to a {@link Boolean}.
-	 * </ul>
-	 * Serialization method is a no-op.
-	 */
-	public static class BooleanOrSchemaArrayFilter extends PojoFilter<Object,Object> {
-
-		@Override /* PojoFilter */
-		public Object filter(Object o) throws SerializeException {
-			return o;
-		}
-
-		@Override /* PojoFilter */
-		public Object unfilter(Object o, ClassMeta<?> hint) throws ParseException {
-			BeanContext bc = getBeanContext();
-			ClassMeta<?> cm = (o instanceof Collection ? bc.getClassMeta(SchemaArray.class) : bc.getClassMeta(Boolean.class));
-			return bc.convertToType(o, cm);
-		}
-	}
-
-	/**
-	 * Bean property getter:  <property>maxItems</property>.
-	 *
-	 * @return The value of the <property>maxItems</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Integer getMaxItems() {
-		return maxItems;
-	}
-
-	/**
-	 * Bean property setter:  <property>maxItems</property>.
-	 *
-	 * @param maxItems The new value for the <property>maxItems</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMaxItems(Integer maxItems) {
-		this.maxItems = maxItems;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>minItems</property>.
-	 *
-	 * @return The value of the <property>minItems</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Integer getMinItems() {
-		return minItems;
-	}
-
-	/**
-	 * Bean property setter:  <property>minItems</property>.
-	 *
-	 * @param minItems The new value for the <property>minItems</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMinItems(Integer minItems) {
-		this.minItems = minItems;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>uniqueItems</property>.
-	 *
-	 * @return The value of the <property>uniqueItems</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Boolean getUniqueItems() {
-		return uniqueItems;
-	}
-
-	/**
-	 * Bean property setter:  <property>uniqueItems</property>.
-	 *
-	 * @param uniqueItems The new value for the <property>uniqueItems</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setUniqueItems(Boolean uniqueItems) {
-		this.uniqueItems = uniqueItems;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>maxProperties</property>.
-	 *
-	 * @return The value of the <property>maxProperties</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Integer getMaxProperties() {
-		return maxProperties;
-	}
-
-	/**
-	 * Bean property setter:  <property>maxProperties</property>.
-	 *
-	 * @param maxProperties The new value for the <property>maxProperties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMaxProperties(Integer maxProperties) {
-		this.maxProperties = maxProperties;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>minProperties</property>.
-	 *
-	 * @return The value of the <property>minProperties</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Integer getMinProperties() {
-		return minProperties;
-	}
-
-	/**
-	 * Bean property setter:  <property>minProperties</property>.
-	 *
-	 * @param minProperties The new value for the <property>minProperties</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setMinProperties(Integer minProperties) {
-		this.minProperties = minProperties;
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>required</property>.
-	 *
-	 * @return The value of the <property>required</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public List<String> getRequired() {
-		return required;
-	}
-
-	/**
-	 * Bean property setter:  <property>required</property>.
-	 *
-	 * @param required The new value for the <property>required</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setRequired(List<String> required) {
-		this.required = required;
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>required</property>.
-	 *
-	 * @param required The list of items to append to the <property>required</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addRequired(List<String> required) {
-		if (this.required == null)
-			this.required = new LinkedList<String>();
-		for (String r : required)
-			this.required.add(r);
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>required</property>.
-	 *
-	 * @param required The list of items to append to the <property>required</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addRequired(String...required) {
-		if (this.required == null)
-			this.required = new LinkedList<String>();
-		for (String r : required)
-			this.required.add(r);
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>required</property>.
-	 *
-	 * @param properties The list of items to append to the <property>required</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addRequired(SchemaProperty...properties) {
-		if (this.required == null)
-			this.required = new LinkedList<String>();
-		for (SchemaProperty p : properties)
-			this.required.add(p.getName());
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>additionalProperties</property>.
-	 *
-	 * @return The value of the <property>additionalProperties</property> property on this bean, or <jk>null</jk> if it is not set.
-	 * Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.
-	 */
-	@BeanProperty(filter=BooleanOrSchemaFilter.class)
-	public Object getAdditionalProperties() {
-		if (additionalPropertiesBoolean != null)
-			return additionalItemsBoolean;
-		return additionalPropertiesSchema;
-	}
-
-	/**
-	 * Bean property getter:  <property>additionalProperties</property>.
-	 * <p>
-	 * Convenience method for returning the <property>additionalProperties</property> property when it is a {@link Boolean} value.
-	 *
-	 * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link Schema}.
-	 */
-	@BeanIgnore
-	public Boolean getAdditionalPropertiesAsBoolean() {
-		return additionalPropertiesBoolean;
-	}
-
-	/**
-	 * Bean property getter:  <property>additionalProperties</property>.
-	 * <p>
-	 * Convenience method for returning the <property>additionalProperties</property> property when it is a {@link Schema} value.
-	 *
-	 * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link Boolean}.
-	 */
-	@BeanIgnore
-	public Schema getAdditionalPropertiesAsSchema() {
-		return additionalPropertiesSchema;
-	}
-
-	/**
-	 * Bean property setter:  <property>additionalProperties</property>.
-	 *
-	 * @param additionalProperties The new value for the <property>additionalProperties</property> property on this bean.
-	 * This object must be of type {@link Boolean} or {@link Schema}.
-	 * @return This object (for method chaining).
-	 * @throws BeanRuntimeException If invalid object type passed in.
-	 */
-	public Schema setAdditionalProperties(Object additionalProperties) {
-		this.additionalPropertiesBoolean = null;
-		this.additionalPropertiesSchema = null;
-		if (additionalProperties != null) {
-			if (additionalProperties instanceof Boolean)
-				this.additionalPropertiesBoolean = (Boolean)additionalProperties;
-			else if (additionalProperties instanceof Schema) {
-				this.additionalPropertiesSchema = (Schema)additionalProperties;
-				setMasterOn(this.additionalPropertiesSchema);
-			} else
-				throw new BeanRuntimeException(SchemaProperty.class, "Invalid attribute type ''{0}'' passed in.  Must be one of the following:  Boolean, Schema", additionalProperties.getClass().getName());
-		}
-		return this;
-	}
-
-	/**
-	 * Used during parsing to convert the <property>additionalProperties</property> property to the correct class type.
-	 * <ul>
-	 * 	<li>If parsing a JSON-object, converts to a {@link Schema}.
-	 * 	<li>If parsing a JSON-boolean, converts to a {@link Boolean}.
-	 * </ul>
-	 * Serialization method is a no-op.
-	 */
-	public static class BooleanOrSchemaFilter extends PojoFilter<Object,Object> {
-
-		@Override /* PojoFilter */
-		public Object filter(Object o) throws SerializeException {
-			return o;
-		}
-
-		@Override /* PojoFilter */
-		public Object unfilter(Object o, ClassMeta<?> hint) throws ParseException {
-			BeanContext bc = getBeanContext();
-			ClassMeta<?> cm = (o instanceof Boolean ? bc.getClassMeta(Boolean.class) : bc.getClassMeta(Schema.class));
-			return bc.convertToType(o, cm);
-		}
-	}
-
-	/**
-	 * Bean property getter:  <property>enum</property>.
-	 *
-	 * @return The value of the <property>enum</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public List<String> getEnum() {
-		return _enum;
-	}
-
-	/**
-	 * Bean property setter:  <property>enum</property>.
-	 *
-	 * @param _enum The new value for the <property>enum</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setEnum(List<String> _enum) {
-		this._enum = _enum;
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>enum</property>.
-	 *
-	 * @param _enum The list of items to append to the <property>enum</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addEnum(String..._enum) {
-		if (this._enum == null)
-			this._enum = new LinkedList<String>();
-		for (String e : _enum)
-			this._enum.add(e);
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>allOf</property>.
-	 *
-	 * @return The value of the <property>allOf</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public List<Schema> getAllOf() {
-		return allOf;
-	}
-
-	/**
-	 * Bean property setter:  <property>allOf</property>.
-	 *
-	 * @param allOf The new value for the <property>allOf</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setAllOf(List<Schema> allOf) {
-		this.allOf = allOf;
-		setMasterOn(allOf);
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>allOf</property>.
-	 *
-	 * @param allOf The list of items to append to the <property>allOf</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addAllOf(Schema...allOf) {
-		if (this.allOf == null)
-			this.allOf = new LinkedList<Schema>();
-		setMasterOn(allOf);
-		for (Schema s : allOf)
-			this.allOf.add(s);
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>anyOf</property>.
-	 *
-	 * @return The value of the <property>anyOf</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public List<Schema> getAnyOf() {
-		return anyOf;
-	}
-
-	/**
-	 * Bean property setter:  <property>anyOf</property>.
-	 *
-	 * @param anyOf The new value of the <property>anyOf</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setAnyOf(List<Schema> anyOf) {
-		this.anyOf = anyOf;
-		setMasterOn(anyOf);
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>anyOf</property>.
-	 *
-	 * @param anyOf The list of items to append to the <property>anyOf</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addAnyOf(Schema...anyOf) {
-		if (this.anyOf == null)
-			this.anyOf = new LinkedList<Schema>();
-		setMasterOn(anyOf);
-		for (Schema s : anyOf)
-			this.anyOf.add(s);
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>oneOf</property>.
-	 *
-	 * @return The value of the <property>oneOf</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public List<Schema> getOneOf() {
-		return oneOf;
-	}
-
-	/**
-	 * Bean property setter:  <property>oneOf</property>.
-	 *
-	 * @param oneOf The new value for the <property>oneOf</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setOneOf(List<Schema> oneOf) {
-		this.oneOf = oneOf;
-		setMasterOn(oneOf);
-		return this;
-	}
-
-	/**
-	 * Bean property appender:  <property>oneOf</property>.
-	 *
-	 * @param oneOf The list of items to append to the <property>oneOf</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema addOneOf(Schema...oneOf) {
-		if (this.oneOf == null)
-			this.oneOf = new LinkedList<Schema>();
-		setMasterOn(oneOf);
-		for (Schema s : oneOf)
-			this.oneOf.add(s);
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>not</property>.
-	 *
-	 * @return The value of the <property>not</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	public Schema getNot() {
-		return not;
-	}
-
-	/**
-	 * Bean property setter:  <property>not</property>.
-	 *
-	 * @param not The new value for the <property>not</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setNot(Schema not) {
-		this.not = not;
-		setMasterOn(not);
-		return this;
-	}
-
-	/**
-	 * Bean property getter:  <property>$ref</property>.
-	 *
-	 * @return The value of the <property>$ref</property> property on this bean, or <jk>null</jk> if it is not set.
-	 */
-	@BeanProperty(name="$ref")
-	public URI getRef() {
-		return ref;
-	}
-
-	/**
-	 * Bean property setter:  <property>$ref</property>.
-	 *
-	 * @param ref The new value for the <property>$ref</property> property on this bean.
-	 * @return This object (for method chaining).
-	 */
-	@BeanProperty(name="$ref")
-	public Schema setRef(URI ref) {
-		this.ref = ref;
-		return this;
-	}
-
-	private void setMasterOn(Schema s) {
-		if (s != null)
-			s.setMaster(this);
-	}
-
-	private void setMasterOn(Schema[] ss) {
-		if (ss != null)
-			for (Schema s : ss)
-				setMasterOn(s);
-	}
-
-	private void setMasterOn(Collection<Schema> ss) {
-		if (ss != null)
-			for (Schema s : ss)
-				setMasterOn(s);
-	}
-
-	private void setMasterOn(SchemaArray ss) {
-		if (ss != null)
-			for (Schema s : ss)
-				setMasterOn(s);
-	}
-
-	/**
-	 * Sets the master schema for this schema and all child schema objects.
-	 * <p>
-	 * All child elements in a schema should point to a single "master" schema in order to
-	 * 	locate registered SchemaMap objects for resolving external schemas.
-	 *
-	 * @param master The master schema to associate on this and all children.  Can be <jk>null</jk>.
-	 */
-	protected void setMaster(Schema master) {
-		this.master = master;
-		if (definitions != null)
-			for (Schema s : definitions.values())
-				s.setMaster(master);
-		if (properties != null)
-			for (Schema s : properties.values())
-				s.setMaster(master);
-		if (patternProperties != null)
-			for (Schema s : patternProperties.values())
-				s.setMaster(master);
-		if (dependencies != null)
-			for (Schema s : dependencies.values())
-				s.setMaster(master);
-		if (itemsSchema != null)
-			itemsSchema.setMaster(master);
-		if (itemsSchemaArray != null)
-			for (Schema s : itemsSchemaArray)
-				s.setMaster(master);
-		if (additionalItemsSchemaArray != null)
-			for (Schema s : additionalItemsSchemaArray)
-				s.setMaster(master);
-		if (additionalPropertiesSchema != null)
-			additionalPropertiesSchema.setMaster(master);
-		if (allOf != null)
-			for (Schema s : allOf)
-				s.setMaster(master);
-		if (anyOf != null)
-			for (Schema s : anyOf)
-				s.setMaster(master);
-		if (oneOf != null)
-			for (Schema s : oneOf)
-				s.setMaster(master);
-		if (not != null)
-			not.setMaster(master);
-	}
-
-
-	/**
-	 * Bean property setter:  <property>$ref</property>.
-	 *
-	 * @param ref The new value for the <property>$ref</property> property on this bean.
-	 * The parameter must be a valid URI.  It can be <jk>null</jk>.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setRef(String ref) {
-		return setRef(ref == null ? null : URI.create(ref));
-	}
-
-	/**
-	 * If this schema is a reference to another schema (i.e. has its <property>$ref</property> property set),
-	 * 	this method will retrieve the referenced schema from the schema map registered with this schema.
-	 * If this schema is not a reference, or no schema map is registered with this schema, this method
-	 * 	is a no-op and simply returns this object.
-	 *
-	 * @return The referenced schema, or <jk>null</jk>.
-	 */
-	public Schema resolve() {
-		if (ref == null || master.schemaMap == null)
-			return this;
-		return master.schemaMap.get(ref);
-	}
-
-	/**
-	 * Associates a schema map with this schema for resolving other schemas identified
-	 * 	through <property>$ref</property> properties.
-	 *
-	 * @param schemaMap The schema map to associate with this schema.  Can be <jk>null</jk>.
-	 * @return This object (for method chaining).
-	 */
-	public Schema setSchemaMap(SchemaMap schemaMap) {
-		this.schemaMap = schemaMap;
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.class
deleted file mode 100755
index 3ca3475..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.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/dto/jsonschema/SchemaArray.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.java
deleted file mode 100755
index a789d1b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.java
+++ /dev/null
@@ -1,50 +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.dto.jsonschema;
-
-import java.util.*;
-
-/**
- * Represents a list of {@link Schema} objects.
- * <p>
- * 	Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SchemaArray extends LinkedList<Schema> {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public SchemaArray() {}
-
-	/**
-	 * Constructor with predefined types to add to this list.
-	 *
-	 * @param schemas The list of schemas in this array.
-	 */
-	public SchemaArray(Schema...schemas) {
-		addAll(schemas);
-	}
-
-	/**
-	 * Convenience method for adding one or more {@link Schema} objects to
-	 * 	this array.
-	 *
-	 * @param schemas The {@link Schema} objects to add to this array.
-	 * @return This object (for method chaining).
-	 */
-	public SchemaArray addAll(Schema...schemas) {
-		for (Schema s : schemas)
-			add(s);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.class
deleted file mode 100755
index 6af7a4e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.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/dto/jsonschema/SchemaMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.java
deleted file mode 100755
index 225cd2f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.java
+++ /dev/null
@@ -1,119 +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.dto.jsonschema;
-
-import java.io.*;
-import java.net.*;
-import java.util.concurrent.*;
-
-import com.ibm.juno.core.json.*;
-
-/**
- * A container for retrieving JSON {@link Schema} objects by URI.
- * <p>
- * 	Subclasses must implement one of the following methods to load schemas from external sources:
- * <ul>
- * 	<li>{@link #getReader(URI)} - If schemas should be loaded from readers and automatically parsed.
- * 	<li>{@link #load(URI)} - If you want control over construction of {@link Schema} objects.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class SchemaMap extends ConcurrentHashMap<URI,Schema> {
-
-	private static final long serialVersionUID = 1L;
-
-	@Override /* Map */
-	public Schema get(Object uri) {
-		if (uri == null)
-			return null;
-		return get(URI.create(uri.toString()));
-	}
-
-	/**
-	 * Return the {@link Schema} object at the specified URI.
-	 * If this schema object has not been loaded yet, calls {@link #load(URI)}.
-	 *
-	 * @param uri The URI of the schema to retrieve.
-	 * @return The Schema, or <jk>null</jk> if schema was not located and could not be loaded.
-	 */
-	public Schema get(URI uri) {
-		Schema s = super.get(uri);
-		if (s != null)
-			return s;
-		synchronized(this) {
-			s = load(uri);
-			if (s != null) {
-				// Note:  Can't use add(Schema...) since the ID property may not be set.
-				s.setSchemaMap(this);
-				put(uri, s);
-			}
-			return s;
-		}
-	}
-
-	/**
-	 * Convenience method for prepopulating this map with the specified schemas.
-	 * <p>
-	 * The schemas passed in through this method MUST have their ID properties set.
-	 *
-	 * @param schemas The set of schemas to add to this map.
-	 * @return This object (for method chaining).
-	 * @throws RuntimeException If one or more schema objects did not have their ID property set.
-	 */
-	public SchemaMap add(Schema...schemas) {
-		for (Schema schema : schemas) {
-			if (schema.getId() == null)
-				throw new RuntimeException("Schema with no ID passed to SchemaMap.add(Schema...)");
-			put(schema.getId(), schema);
-			schema.setSchemaMap(this);
-		}
-		return this;
-	}
-
-	/**
-	 * Subclasses must implement either this method or {@link #getReader(URI)} to load the schema with the specified URI.
-	 * It's up to the implementer to decide where these come from.
-	 * <p>
-	 * The default implementation calls {@link #getReader(URI)} and parses the schema document.
-	 * If {@link #getReader(URI)} returns <jk>null</jk>, this method returns <jk>null</jk> indicating this is an unreachable document.
-	 *
-	 * @param uri The URI to load the schema from.
-	 * @return The parsed schema.
-	 */
-	public Schema load(URI uri) {
-		Reader r = getReader(uri);
-		if (r == null)
-			return null;
-		try {
-			return JsonParser.DEFAULT.parse(r, -1, Schema.class);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		} finally {
-			try {
-				r.close();
-			} catch (IOException e) {
-				// Ignore
-			}
-		}
-	}
-
-	/**
-	 * Subclasses must implement either this method or {@link #load(URI)} to load the schema with the specified URI.
-	 * It's up to the implementer to decide where these come from.
-	 * <p>
-	 * The default implementation returns <jk>null</jk>.
-	 *
-	 * @param uri The URI to connect to and retrieve the contents.
-	 * @return The reader from reading the specified URI.
-	 */
-	public Reader getReader(URI uri) {
-		return null;
-	}
-}

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


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

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/package.html
deleted file mode 100755
index 0e707c9..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/package.html
+++ /dev/null
@@ -1,1687 +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>Jena-based RDF serialization and parsing support</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='#RdfOverview'>RDF support overview</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#RdfOverviewExample'>Example</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#RdfSerializer'>RdfSerializer class</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#Namespaces'>Namespaces</a></p>
-		<li><p><a class='doclink' href='#UriProperties'>URI properties</a></p>
-		<li><p><a class='doclink' href='#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
-		<li><p><a class='doclink' href='#Collections'>Collections</a></p>
-		<li><p><a class='doclink' href='#RootProperty'>Root property</a></p>
-		<li><p><a class='doclink' href='#TypedLiterals'>Typed literals</a></p>
-		<li><p><a class='doclink' href='#Recursion'>Non-tree models and recursion detection</a></p>
-		<li><p><a class='doclink' href='#SerializerConfigurableProperties'>Configurable properties</a></p>
-		<li><p><a class='doclink' href='#SerializerOtherNotes'>Other notes</a></p>
-	</ol>	
-	<li><p><a class='doclink' href='#RdfParser'>RdfParser class</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#GenericParsing'>Parsing into generic POJO models</a></p>
-		<li><p><a class='doclink' href='#ParserConfigurableProperties'>Configurable properties</a></p>
-		<li><p><a class='doclink' href='#ParserOtherNotes'>Other notes</a></p>
-	</ol>	
-	<li><p><a class='doclink' href='#RestApiSupport'>REST API support</a></p> 
-	<ol>
-		<li><p><a class='doclink' href='#RestServerSupport'>REST server support</a></p>
-		<ol>
-		<li><p><a class='doclink' href='#RestServletJenaDefault'>Using RestServletJenaDefault</a></p>
-		<li><p><a class='doclink' href='#RestServlet'>Using RestServlet with annotations</a></p>
-		<li><p><a class='doclink' href='#DefaultJenaProvider'>Using JAX-RS DefaultJenaProvider</a></p>
-		<li><p><a class='doclink' href='#BaseProvider'>Using JAX-RS BaseProvider with annotations</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#RestClientSupport'>REST client support</a></p>
-	</ol>	
-</ol>
-
-
-<!-- ======================================================================================================== -->
-<a id="RdfOverview"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - RDF support overview</h2>
-<div class='topic'>
-	<p>
-		Juno supports serializing and parsing arbitrary POJOs to and from the following RDF formats:
-	</p>
-	<ul>
-		<li>RDF/XML
-		<li>Abbreviated RDF/XML
-		<li>N-Triple
-		<li>Turtle
-		<li>N3
-	</ul>
-	<p>
-		Juno can serialize and parse instances of any of the following POJO types:
-	</p>
-	<ul>
-		<li>Java primitive objects (e.g. <code>String</code>, <code>Integer</code>, <code>Boolean</code>, <code>Float</code>).
-		<li>Java collections framework objects (e.g. <code>HashSet</code>, <code>TreeMap</code>) containing anything on this list.
-		<li>Multi-dimensional arrays of any type on this list.
-		<li>Java Beans with properties of any type on this list.
-		<li>Classes with standard transformations to and from <code>Strings</code> (e.g. classes containing <code>toString()</code>, 
-			<code>fromString()</code>, <code>valueOf()</code>, <code>constructor(String)</code>).
-	</ul>
-	<p>
-		In addition to the types shown above, Juno includes the ability to define filters to transform non-standard object and 
-			property types to serializable forms (e.g. to transform <code>Calendars</code> to and from <code>ISO8601</code> strings, 
-			or <code>byte[]</code> arrays to and from base-64 encoded strings).<br>
-		These filters can be associated with serializers/parsers, or can be associated with classes or bean properties through type and method annotations.
-	</p>
-	<p>
-		Refer to <a href='../package-summary.html#PojoCategories' class='doclink'>POJO Categories</a> for a complete definition of supported POJOs.
-	</p>
-	<h6 class='topic'>Prerequisites</h6>
-	<p>
-		Juno uses the Jena library for these formats.  <br>
-		The predefined serializers and parsers convert POJOs to and from RDF models and then uses Jena to convert them to and from the various RDF languages.	
-	</p>
-	<p>
-		Since Juno is 100% pure IBM code, the Jena libraries must be provided on the classpath separately if you plan on making use of the RDF support.
-	</p>
-		The minimum list of required jars are:
-	</p>
-	<ul>
-		<li><code>jena-core-2.7.1.jar</code> 	
-		<li><code>jena-iri-0.9.2.jar</code> 	
-		<li><code>log4j-1.2.16.jar</code> 	
-		<li><code>slf4j-api-1.6.4.jar</code> 	
-		<li><code>slf4j-log4j12-1.6.4.jar</code> 	
-	</ul>
-
-	<!-- ======================================================================================================== -->
-	<a id="RdfOverviewExample"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - RDF support overview - example</h3>
-	<div class='topic'>
-		<p>
-			The example shown here is from the Address Book resource located in the <code>com.ibm.juno.sample.war</code> application.
-		</p>
-		<p>
-			The POJO model consists of a <code>List</code> of <code>Person</code> beans, with each <code>Person</code> containing
-				zero or more <code>Address</code> beans.
-		</p>
-		<p>
-			When you point a browser at <code>/sample/addressBook</code>, the POJO is rendered as HTML:
-		</p>
-		<img class='bordered' src="doc-files/Example_HTML.png">
-		<p>
-			By appending <code>?Accept=<i>mediaType</i>&plainText=true</code> to the URL, you can view the data in the various RDF supported formats.
-		</p>
-		
-		<h6 class='figure'>RDF/XML</h6>
-		<img class='bordered' src="doc-files/Example_RDFXML.png">
-		
-		<h6 class='figure'>Abbreviated RDF/XML</h6>
-		<img class='bordered' src="doc-files/Example_RDFXMLABBREV.png">
-
-		<h6 class='figure'>N-Triple</h6>
-		<img class='bordered' src="doc-files/Example_NTriple.png">
-
-		<h6 class='figure'>Turtle</h6>
-		<img class='bordered' src="doc-files/Example_Turtle.png">
-		
-		<h6 class='figure'>N3</h6>
-		<img class='bordered' src="doc-files/Example_N3.png">
-	</div>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="RdfSerializer"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - RdfSerializer class</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.core.jena.RdfSerializer} class is the top-level class for all Jena-based serializers.<br>
-		Language-specific serializers are defined as inner subclasses of the <code>RdfSerializer</code> class:
-	</p>	
-	<ul>
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer.Xml}
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer.XmlAbbrev}
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer.NTriple}
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer.Turtle}
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer.N3}
-	</ul>
-	<p>
-		Static reusable instances of serializers are also provided with default settings:
-	</p>
-	<ul>
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer#DEFAULT_XML}
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer#DEFAULT_XMLABBREV}
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer#DEFAULT_TURTLE}
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer#DEFAULT_NTRIPLE}
-		<li>{@link com.ibm.juno.core.jena.RdfSerializer#DEFAULT_N3}
-	</ul>
-	<p>
-		Abbreviated RDF/XML is currently the most widely accepted and readable RDF syntax, so the examples shown here will use that format.
-	</p>
-	<p>
-		For brevity, the examples will use public fields instead of getters/setters to reduce the size of the examples.<br>
-		In the real world, you'll typically want to use standard bean getters and setters.
-	</p>
-	<p>
-		To start off simple, we'll begin with the following simplified bean and build it up.
-	</p>
-	<p class='bcode'>
-	<jk>public class</jk> Person {
-		<jc>// Bean properties</jc>
-		<jk>public int</jk> <jf>id</jf>;
-		<jk>public</jk> String <jf>name</jf>;
-
-		<jc>// Bean constructor (needed by parser)</jc>
-		<jk>public</jk> Person() {}
-
-		<jc>// Normal constructor</jc>
-		<jk>public</jk> Person(<jk>int</jk> id, String name) {
-			<jk>this</jk>.<jf>id</jf> = id;
-			<jk>this</jk>.<jf>name</jf> = name;
-		}
-	}
-	</p>
-	<p>
-		The following code shows how to convert this to abbreviated RDF/XML:
-	</p>
-	<p class='bcode'>
-	<jc>// Create a new serializer with readable output.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev().setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3);
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>);
-
-	<jc>// Serialize the bean to RDF/XML.</jc>
-	String rdfXml = s.serialize(p);
-	</p>
-	<p>
-		It should be noted that serializers can also be created by cloning existing serializers:
-	</p>
-	<p class='bcode'>
-	<jc>// Create a new serializer with readable output by cloning an existing serializer.</jc>
-	RdfSerializer s = RdfSerializer.<jsf>DEFAULT_XMLABBREV</jsf>.clone().setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3);
-	</p>
-	<p>
-		This code produces the following output:
-	</p>
-	<p class='bcode'>
-	<xt>&lt;rdf:RDF</xt>
-	    <xa>xmlns:rdf</xa>=<xs>"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</xs>
-	    <xa>xmlns:j</xa>=<xs>"http://www.ibm.com/juno/"</xs>
-	    <xa>xmlns:jp</xa>=<xs>"http://www.ibm.com/junobp/"</xs><xt>&gt;</xt>
-	   <xt>&lt;rdf:Description&gt;</xt>
-	      <xt>&lt;jp:id&gt;</xt>1<xt>&lt;/jp:id&gt;</xt>
-	      <xt>&lt;jp:name&gt;</xt>John Smith<xt>&lt;/jp:name&gt;</xt>
-	   <xt>&lt;/rdf:Description&gt;</xt>
-	<xt>&lt;/rdf:RDF&gt;</xt>
-	</p>
-	<p>
-		Notice that we've taken an arbitrary POJO and converted it to RDF.<br>
-		The Juno serializers and parsers are designed to work with arbitrary POJOs without requiring 
-			any annotations.<br>
-		That being said, several annotations are provided to customize how POJOs are handled to produce usable RDF.
-	</p>
-	
-	<!-- ======================================================================================================== -->
-	<a id="Namespaces"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.1 - Namespaces</h3>
-	<div class='topic'>
-		<p>
-			You'll notice in the previous example that Juno namespaces are used to represent bean property names.<br>
-			These are used by default when namespaces are not explicitly specified.
-		</p>
-		<p>
-			The <code>juno</code> namespace is used for generic names for objects that don't have namespaces associated with them.
-		</p>
-		<p>
-			The <code>junobp</code> namespace is used on bean properties that don't have namespaces associated with them.
-		</p>
-		<p>
-			The easiest way to specify namespaces is through annotations.<br>
-			In this example, we're going to associate the prefix <code>'per'</code> to our bean class and all
-				properties of this class.<br>
-			We do this by adding the following annotation to our class:
-		</p>
-		<p class='bcode'>
-	<ja>@Rdf</ja>(prefix=<js>"per"</js>)
-	<jk>public class</jk> Person {
-	</p>
-	<p>
-		In general, the best approach is to define the namespace URIs at the package level using a <code>package-info.java</code>
-			class, like so:
-	</p>
-	<p class='bcode'>
-	<jc>// RDF namespaces used in this package</jc>
-	<ja>@RdfSchema</ja>(
-		prefix=<js>"ab"</js>,
-		rdfNs={
-			<ja>@RdfNs</ja>(prefix=<js>"ab"</js>, namespaceURI=<js>"http://www.ibm.com/addressBook/"</js>),
-			<ja>@RdfNs</ja>(prefix=<js>"per"</js>, namespaceURI=<js>"http://www.ibm.com/person/"</js>),
-			<ja>@RdfNs</ja>(prefix=<js>"addr"</js>, namespaceURI=<js>"http://www.ibm.com/address/"</js>),
-			<ja>@RdfNs</ja>(prefix=<js>"mail"</js>, namespaceURI=<js>"http://www.ibm.com/mail/"</js>)
-		}
-	)
-	<jk>package</jk> com.ibm.sample.addressbook;
-	<jk>import</jk> com.ibm.juno.core.xml.annotation.*;
-		</p>
-		<p>
-			This assigns a default prefix of <js>"ab"</js> for all classes and properties within the project, 
-				and specifies various other prefixes used within this project.
-		</p>
-		<p>
-			Now when we rerun the sample code, we'll get the following:
-		</p>
-		<p class='bcode'>
-	<xt>&lt;rdf:RDF</xt>
-	    <xa>xmlns:rdf</xa>=<xs>"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</xs>
-	    <xa>xmlns:j</xa>=<xs>"http://www.ibm.com/juno/"</xs>
-	    <xa>xmlns:jp</xa>=<xs>"http://www.ibm.com/junobp/"</xs>
-	    <xa>xmlns:per</xa>=<xs>"http://www.ibm.com/person/"</xs><xt>&gt;</xt>
-	   <xt>&lt;rdf:Description&gt;</xt>
-	      <xt>&lt;per:id&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-	      <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-	   <xt>&lt;/rdf:Description&gt;</xt>
-	<xt>&lt;/rdf:RDF&gt;</xt>
-		</p>
-		<p>
-			Namespace auto-detection ({@link com.ibm.juno.core.xml.XmlSerializerProperties#XML_autoDetectNamespaces}) is enabled
-				on serializers by default.<br>
-			This causes the serializer to make a first-pass over the data structure to look for namespaces.<br>
-			In high-performance environments, you may want to consider disabling auto-detection and providing an explicit list of namespaces to the serializer
-				to avoid this scanning step.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a new serializer, but manually specify the namespaces.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev()
-		.setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3)
-		.setProperty(XmlSerializerProperties.<jsf>XML_autoDetectNamespaces</jsf>, <jk>false</jk>)
-		.setProperty(XmlSerializerProperties.<jsf>XML_namespaces</jsf>, <js>"{per:'http://www.ibm.com/person/'}"</js>);
-	</p>
-		<p>
-			This code change will produce the same output as before, but will perform slightly better since it doesn't have to crawl the POJO tree before serializing the result.
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="UriProperties"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.2 - URI properties</h3>
-	<div class='topic'>
-		<p>
-			Bean properties of type <code>java.net.URI</code> or <code>java.net.URL</code> have special meaning to the RDF serializer.<br>
-			They are interpreted as resource identifiers.
-		</p>
-		<p>
-			In the following code, we're adding 2 new properties.<br>
-			The first property is annotated with <ja>@BeanProperty</ja> to identify that this property is the
-				resource identifier for this bean.<br>
-			The second unannotated property is interpreted as a reference to another resource.
-		</p>
-		<p class='bcode'>	
-	<jk>public class</jk> Person {
-		
-		<jc>// Bean properties</jc>
-		<ja>@BeanProperty</ja>(beanUri=<jk>true</jk>) 
-		<jk>public</jk> URI <jf>uri</jf>;
-		
-		<jk>public</jk> URI <jf>addressBookUri</jf>;
-	
-		...
-		
-		<jc>// Normal constructor</jc>
-		<jk>public</jk> Person(<jk>int</jk> id, String name, String uri, String addressBookUri) <jk>throws</jk> URISyntaxException {
-			<jk>this</jk>.<jf>id</jf> = id;
-			<jk>this</jk>.<jf>name</jf> = name;
-			<jk>this</jk>.<jf>uri</jf> = <jk>new</jk> URI(uri);
-			<jk>this</jk>.<jf>addressBookUri</jf> = <jk>new</jk> URI(addressBookUri);
-		}
-	}
-		</p>
-		<p>
-			We alter our code to pass in values for these new properties.
-		</p>
-		<p class='bcode'>
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>);
-		</p>
-		<p>
-			Now when we run the sample code, we get the following:
-		</p>
-		<p class='bcode'>
-	<xt>&lt;rdf:RDF</xt>
-	    <xa>xmlns:rdf</xa>=<xs>"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</xs>
-	    <xa>xmlns:j</xa>=<xs>"http://www.ibm.com/juno/"</xs>
-	    <xa>xmlns:jp</xa>=<xs>"http://www.ibm.com/junobp/"</xs>
-	    <xa>xmlns:per</xa>=<xs>"http://www.ibm.com/person/"</xs><xt>&gt;</xt>
-	   <xt>&lt;rdf:Description <b><xa>rdf:about</xa>=<xs>"http://sample/addressBook/person/1"</xs></b>&gt;</xt>
-	      <xt><b>&lt;per:addressBookUri</xt> <xa>rdf:resource</xa>=<xs>"http://sample/addressBook"</xs><xt>/&gt;</b></xt>
-	      <xt>&lt;per:id&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-	      <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-	   <xt>&lt;/rdf:Description&gt;</xt>
-	<xt>&lt;/rdf:RDF&gt;</xt>
-		</p>
-		<p>
-			The {@link com.ibm.juno.core.annotation.URI} annotation can also be used on classes and properties 
-				to identify them as URLs when they're not instances of <code>java.net.URI</code> or <code>java.net.URL</code> 
-				(not needed if <code><ja>@BeanProperty</ja>(beanUri=<jk>true</jk>)</code> is already specified).
-		</p>
-		<p>
-			The following properties would have produced the same output as before.  Note that the <ja>@URI</ja> annotation is only needed
-				on the second property.
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> Person {
-		
-		<jc>// Bean properties</jc>
-		<ja>@BeanProperty</ja>(beanUri=<jk>true</jk>) <jk>public</jk> String <jf>uri</jf>;
-		
-		<ja>@URI</ja> <jk>public</jk> String <jf>addressBookUri</jf>;
-		</p>
-		<p>
-			Also take note of the {@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_relativeUriBase} and {@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_absolutePathUriBase}
-				settings that can be specified on the serializer to resolve relative and context-root-relative URIs to fully-qualfied URIs.
-		</p>
-		<p>
-			This can be useful if you want to keep the URI authority and context root information out of the bean logic layer.
-		</p>
-		<p>
-			The following code produces the same output as before, but the URIs on the beans are relative.
-		</p>
-		<p class='bcode'>
-	<jc>// Create a new serializer with readable output.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev()
-		.setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3);
-		.setProperty(SerializerProperties.<jsf>SERIALIZER_relativeUriBase</jsf>, <js>"http://myhost/sample"</js>);
-		.setProperty(SerializerProperties.<jsf>SERIALIZER_absolutePathUriBase</jsf>, <js>"http://myhost"</js>);
-		
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"person/1"</js>, <js>"/"</js>);
-
-	<jc>// Serialize the bean to RDF/XML.</jc>
-	String rdfXml = s.serialize(p);
-		</p>		
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a id="BeanAnnotations"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.3 - @Bean and @BeanProperty annotations</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.core.annotation.Bean} and {@link com.ibm.juno.core.annotation.BeanProperty} annotations
-				are used to customize the behavior of beans across the entire framework.<br>
-			In addition to using them to identify the resource URI for the bean shown above, they have various other uses:
-		</p>
-		<ul>
-			<li>Hiding bean properties.
-			<li>Specifying the ordering of bean properties.
-			<li>Overriding the names of bean properties.
-			<li>Associating filters at both the class and property level (to convert non-serializable POJOs to serializable forms).
-		</ul>
-		<p>
-			For example, we now add a <code>birthDate</code> property, and associate a filter with it to transform
-				it to an ISO8601 date-time string in GMT time.<br>
-			By default, <code>Calendars</code> are treated as beans by the framework, which is usually not how you want them serialized.<br>
-			Using filters, we can convert them to standardized string forms.
-		</p>
-		<p class='bcode'>	
-	<jk>public class</jk> Person {
-		
-		<jc>// Bean properties</jc>
-		<ja>@BeanProperty</ja>(filter=CalendarFilter.ISO8601DTZ.<jk>class</jk>) <jk>public</jk> Calendar birthDate;
-		...
-		
-		<jc>// Normal constructor</jc>
-		<jk>public</jk> Person(<jk>int</jk> id, String name, String uri, String addressBookUri, String birthDate) <jk>throws</jk> Exception {
-			...
-			<jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> GregorianCalendar();
-			<jk>this</jk>.<jf>birthDate</jf>.setTime(DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
-		}
-	}
-		</p>
-		<p>
-			And we alter our code to pass in the birthdate.
-		</p>
-		<p class='bcode'>
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-		</p>
-		<p>
-			Now when we rerun the sample code, we'll get the following:
-		</p>
-		<p class='bcode'>
-	<xt>&lt;rdf:RDF</xt>
-	    <xa>xmlns:rdf</xa>=<xs>"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</xs>
-	    <xa>xmlns:j</xa>=<xs>"http://www.ibm.com/juno/"</xs>
-	    <xa>xmlns:jp</xa>=<xs>"http://www.ibm.com/junobp/"</xs>
-	    <xa>xmlns:per</xa>=<xs>"http://www.ibm.com/person/"</xs><xt>&gt;</xt>
-	   <xt>&lt;rdf:Description <xa>rdf:about</xa>=<xs>"http://sample/addressBook/person/1"</xs>&gt;</xt>
-	      <xt>&lt;per:addressBookUri</xt> <xa>rdf:resource</xa>=<xs>"http://sample/addressBook"</xs><xt>/&gt;</xt>
-	      <xt>&lt;per:id&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-	      <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-	      <xt><b>&lt;per:birthDate&gt;</xt>1946-08-12T00:00:00Z<xt>&lt;/per:birthDate&gt;</b></xt>
-	   <xt>&lt;/rdf:Description&gt;</xt>
-	<xt>&lt;/rdf:RDF&gt;</xt>
-		</p>
-	</div>
-	
-		
-	<!-- ======================================================================================================== -->
-	<a id="Collections"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.4 - Collections</h3>
-	<div class='topic'>
-		<p>
-			Collections and arrays are converted to RDF sequences.<br>
-			In our example, let's add a list-of-beans property to our sample class:
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> Person {
-		
-		<jc>// Bean properties</jc>
-		<jk>public</jk> LinkedList&lt;Address&gt; <jf>addresses</jf> = <jk>new</jk> LinkedList&lt;Address&gt;();
-		...
-	}
-		</p>
-		<p>
-			The <code>Address</code> class has the following properties defined:
-		</p>
-		<p class='bcode'>
-	<ja>@Rdf</ja>(prefix=<js>"addr"</js>)
-	<jk>public class</jk> Address {
-
-		<jc>// Bean properties</jc>
-		<ja>@BeanProperty</ja>(beanUri=<jk>true</jk>) <jk>public</jk> URI <jf>uri</jf>;
-		<jk>public</jk> URI <jf>personUri</jf>;
-		
-		<jk>public int</jk> <jf>id</jf>;
-		
-		<ja>@Rdf</ja>(prefix=<js>"mail"</js>) 
-		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>, <jf>state</jf>;
-		
-		<ja>@Rdf</ja>(prefix=<js>"mail"</js>) 
-		<jk>public int</jk> <jf>zip</jf>;
-		
-		<jk>public boolean</jk> <jf>isCurrent</jf>;
-	}
-		</p>
-		<p>
-			Next, add some quick-and-dirty code to add an address to our person bean:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a new serializer (revert back to namespace autodetection).</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev().setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3);
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-	Address a = <jk>new</jk> Address();
-	a.<jf>uri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/address/1"</js>);
-	a.<jf>personUri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/person/1"</js>);
-	a.<jf>id</jf> = 1;
-	a.<jf>street</jf> = <js>"100 Main Street"</js>;
-	a.<jf>city</jf> = <js>"Anywhereville"</js>;
-	a.<jf>state</jf> = <js>"NY"</js>;
-	a.<jf>zip</jf> = 12345;
-	a.<jf>isCurrent</jf> = <jk>true</jk>;
-	p.<jf>addresses</jf>.add(a);	
-		</p>
-		<p>
-			Now when we run the sample code, we get the following:
-		</p>
-		<p class='bcode'>
-	<xt>&lt;rdf:RDF</xt>
-	    <xa>xmlns:rdf</xa>=<xs>"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</xs>
-	    <xa>xmlns:j</xa>=<xs>"http://www.ibm.com/juno/"</xs>
-	    <xa>xmlns:jp</xa>=<xs>"http://www.ibm.com/junobp/"</xs>
-	    <xa>xmlns:per</xa>=<xs>"http://www.ibm.com/person/"</xs>
-	    <b><xa>xmlns:mail</xa>=<xs>"http://www.ibm.com/mail/"</xs></b>
-	    <b><xa>xmlns:addr</xa>=<xs>"http://www.ibm.com/address/"</xs></b><xt>&gt;</xt>
-	   <xt>&lt;rdf:Description <xa>rdf:about</xa>=<xs>"http://sample/addressBook/person/1"</xs>&gt;</xt>
-	      <xt>&lt;per:addressBookUri</xt> <xa>rdf:resource</xa>=<xs>"http://sample/addressBook"</xs><xt>/&gt;</xt>
-	      <xt>&lt;per:id&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-	      <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-	      <b><xt>&lt;per:addresses&gt;</xt>
-	         <xt>&lt;rdf:Seq&gt;</xt>
-	            <xt>&lt;rdf:li&gt;</xt>
-	               <xt>&lt;rdf:Description <xa>rdf:about</xa>=<xs>"http://sample/addressBook/address/1"</xs>&gt;</xt>
-	                  <xt>&lt;addr:personUri <xa>rdf:resource</xa>=<xs>"http://sample/addressBook/person/1"</xs>/&gt;</xt>
-	                  <xt>&lt;addr:id&gt;</xt>1<xt>&lt;/addr:id&gt;</xt>
-	                  <xt>&lt;mail:street&gt;</xt>100 Main Street<xt>&lt;/mail:street&gt;</xt>
-	                  <xt>&lt;mail:city&gt;</xt>Anywhereville<xt>&lt;/mail:city&gt;</xt>
-	                  <xt>&lt;mail:state&gt;</xt>NY<xt>&lt;/mail:state&gt;</xt>
-	                  <xt>&lt;mail:zip&gt;</xt>12345<xt>&lt;/mail:zip&gt;</xt>
-	                  <xt>&lt;addr:isCurrent&gt;</xt>true<xt>&lt;/addr:isCurrent&gt;</xt>
-	               <xt>&lt;/rdf:Description&gt;</xt>
-	            <xt>&lt;/rdf:li&gt;</xt>
-	         <xt>&lt;/rdf:Seq&gt;</xt>
-	      <xt>&lt;/per:addresses&gt;</xt></b>
-	   <xt>&lt;/rdf:Description&gt;</xt>
-	<xt>&lt;/rdf:RDF&gt;</xt>
-		</p>
-	</div>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="RootProperty"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.5 - Root property</h3>
-	<div class='topic'>
-		<p>
-			For all RDF languages, the POJO objects get broken down into simple triplets.<br>
-			Unfortunately, for tree-structured data like the POJOs shown above, this causes the root node of the tree to become lost.<br>
-			There is no easy way to identify that <code>person/1</code> is the root node in our tree once in triplet form, and in
-				some cases it's impossible.
-		</p>
-		<p>
-			By default, the {@link com.ibm.juno.core.jena.RdfParser} class handles this by scanning
-				all the nodes and identifying the nodes without incoming references.<br>
-			However, this is inefficient, especially for large models.<br>
-			And in cases where the root node is referenced by another node in the model by URL, it's not possible to locate the root at all.
-		</p>
-		<p>
-			To resolve this issue, the property {@link com.ibm.juno.core.jena.RdfSerializerProperties#RDF_addRootProperty} was introduced.<br>
-			When enabled, this adds a special <code>root</code> attribute to the root node to make it easy to locate by the parser.
-		</p>
-		<p>
-			To enable, set the <jsf>RDF_addRootProperty</jsf> property to <jk>true</jk> on the serializer:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a new serializer.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev()
-		.setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3),
-		.setProperty(RdfSerializerProperties.<jsf>RDF_addRootProperty</jsf>, <jk>true</jk>);
-		</p>	
-		<p>
-			Now when we rerun the sample code, we'll see the added <code>root</code> attribute on the root resource.
-		</p>
-		<p class='bcode'>
-	<xt>&lt;rdf:RDF</xt>
-	    <xa>xmlns:rdf</xa>=<xs>"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</xs>
-	    <xa>xmlns:j</xa>=<xs>"http://www.ibm.com/juno/"</xs>
-	    <xa>xmlns:jp</xa>=<xs>"http://www.ibm.com/junobp/"</xs>
-	    <xa>xmlns:per</xa>=<xs>"http://www.ibm.com/person/"</xs>
-	    <xa>xmlns:mail</xa>=<xs>"http://www.ibm.com/mail/"</xs>
-	    <xa>xmlns:addr</xa>=<xs>"http://www.ibm.com/address/"</xs><xt>&gt;</xt>
-	   <xt>&lt;rdf:Description <xa>rdf:about</xa>=<xs>"http://sample/addressBook/person/1"</xs>&gt;</xt>
-  	      <b><xt>&lt;j:root&gt;</xt>true<xt>&lt;/j:root&gt;</xt></b>
-  	      <xt>&lt;per:addressBookUri</xt> <xa>rdf:resource</xa>=<xs>"http://sample/addressBook"</xs><xt>/&gt;</xt>
-	      <xt>&lt;per:id&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-	      <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-	      <xt>&lt;per:addresses&gt;</xt>
-	         <xt>&lt;rdf:Seq&gt;</xt>
-	            <xt>&lt;rdf:li&gt;</xt>
-	               <xt>&lt;rdf:Description <xa>rdf:about</xa>=<xs>"http://sample/addressBook/address/1"</xs>&gt;</xt>
-	                  <xt>&lt;addr:personUri <xa>rdf:resource</xa>=<xs>"http://sample/addressBook/person/1"</xs>/&gt;</xt>
-	                  <xt>&lt;addr:id&gt;</xt>1<xt>&lt;/addr:id&gt;</xt>
-	                  <xt>&lt;mail:street&gt;</xt>100 Main Street<xt>&lt;/mail:street&gt;</xt>
-	                  <xt>&lt;mail:city&gt;</xt>Anywhereville<xt>&lt;/mail:city&gt;</xt>
-	                  <xt>&lt;mail:state&gt;</xt>NY<xt>&lt;/mail:state&gt;</xt>
-	                  <xt>&lt;mail:zip&gt;</xt>12345<xt>&lt;/mail:zip&gt;</xt>
-	                  <xt>&lt;addr:isCurrent&gt;</xt>true<xt>&lt;/addr:isCurrent&gt;</xt>
-	               <xt>&lt;/rdf:Description&gt;</xt>
-	            <xt>&lt;/rdf:li&gt;</xt>
-	         <xt>&lt;/rdf:Seq&gt;</xt>
-	      <xt>&lt;/per:addresses&gt;</xt>
-	   <xt>&lt;/rdf:Description&gt;</xt>
-	<xt>&lt;/rdf:RDF&gt;</xt>
-		</p>
-	</div>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="TypedLiterals"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.6 - Typed literals</h3>
-	<div class='topic'>
-		<p>
-			XML-Schema datatypes can be added to non-<code>String</code> literals through the {@link com.ibm.juno.core.jena.RdfSerializerProperties#RDF_addLiteralTypes}
-				setting.
-		</p>
-		<p>
-			To enable, set the <jsf>RDF_addLiteralTypes</jsf> property to <jk>true</jk> on the serializer:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a new serializer (revert back to namespace autodetection).</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev()
-		.setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3),
-		.setProperty(RdfSerializerProperties.<jsf>RDF_addLiteralTypes</jsf>, <jk>true</jk>);
-		</p>	
-		<p>
-			Now when we rerun the sample code, we'll see the added <code>root</code> attribute on the root resource.
-		</p>
-		<p class='bcode'>
-	<xt>&lt;rdf:RDF</xt>
-	    <xa>xmlns:rdf</xa>=<xs>"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</xs>
-	    <xa>xmlns:j</xa>=<xs>"http://www.ibm.com/juno/"</xs>
-	    <xa>xmlns:jp</xa>=<xs>"http://www.ibm.com/junobp/"</xs>
-	    <xa>xmlns:per</xa>=<xs>"http://www.ibm.com/person/"</xs>
-	    <xa>xmlns:mail</xa>=<xs>"http://www.ibm.com/mail/"</xs>
-	    <xa>xmlns:addr</xa>=<xs>"http://www.ibm.com/address/"</xs><xt>&gt;</xt>
-	   <xt>&lt;rdf:Description <xa>rdf:about</xa>=<xs>"http://sample/addressBook/person/1"</xs>&gt;</xt>
-  	      <xt>&lt;per:addressBookUri</xt> <xa>rdf:resource</xa>=<xs>"http://sample/addressBook"</xs><xt>/&gt;</xt>
-	      <xt>&lt;per:id</xt> <b><xa>rdf:datatype</xa>=<xs>"http://www.w3.org/2001/XMLSchema#int"</xs></b><xt>&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-	      <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-	      <xt>&lt;per:addresses&gt;</xt>
-	         <xt>&lt;rdf:Seq&gt;</xt>
-	            <xt>&lt;rdf:li&gt;</xt>
-	               <xt>&lt;rdf:Description <xa>rdf:about</xa>=<xs>"http://sample/addressBook/address/1"</xs>&gt;</xt>
-	                  <xt>&lt;addr:personUri <xa>rdf:resource</xa>=<xs>"http://sample/addressBook/person/1"</xs>/&gt;</xt>
-	                  <xt>&lt;addr:id</xt> <b><xa>rdf:datatype</xa>=<xs>"http://www.w3.org/2001/XMLSchema#int"</xs></b>&gt;</xt>1<xt>&lt;/addr:id&gt;</xt>
-	                  <xt>&lt;mail:street&gt;</xt>100 Main Street<xt>&lt;/mail:street&gt;</xt>
-	                  <xt>&lt;mail:city&gt;</xt>Anywhereville<xt>&lt;/mail:city&gt;</xt>
-	                  <xt>&lt;mail:state&gt;</xt>NY<xt>&lt;/mail:state&gt;</xt>
-	                  <xt>&lt;mail:zip</xt> <b><xa>rdf:datatype</xa>=<xs>"http://www.w3.org/2001/XMLSchema#int"</xs></b>&gt;</xt>12345<xt>&lt;/mail:zip&gt;</xt>
-	                  <xt>&lt;addr:isCurrent</xt> <b><xa>rdf:datatype</xa>=<xs>"http://www.w3.org/2001/XMLSchema#boolean"</xs></b>&gt;</xt>true<xt>&lt;/addr:isCurrent&gt;</xt>
-	               <xt>&lt;/rdf:Description&gt;</xt>
-	            <xt>&lt;/rdf:li&gt;</xt>
-	         <xt>&lt;/rdf:Seq&gt;</xt>
-	      <xt>&lt;/per:addresses&gt;</xt>
-	   <xt>&lt;/rdf:Description&gt;</xt>
-	<xt>&lt;/rdf:RDF&gt;</xt>
-		</p>
-	</div>
-
-
-	<!-- ======================================================================================================== -->
-	<a id="Recursion"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.7 - Non-tree models and recursion detection</h3>
-	<div class='topic'>
-		<p>
-			The RDF serializer is designed to be used against tree structures.<br>  
-			It expects that there not be loops in the POJO model (e.g. children with references to parents, etc...).<br>
-			If you try to serialize models with loops, you will usually cause a <code>StackOverflowError</code> to 
-				be thrown (if {@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_maxDepth} is not reached first).
-		</p>
-		<p>
-			If you still want to use the XML serializer on such models, Juno provides the 
-				{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_detectRecursions} setting.<br>
-			It tells the serializer to look for instances of an object in the current branch of the tree and
-				skip serialization when a duplicate is encountered.
-		</p>
-		<p>
-			Recursion detection introduces a performance penalty of around 20%.<br>
-			For this reason the setting is disabled by default.
-		</p>
-	</div>
-
-
-	<!-- ======================================================================================================== -->
-	<a id="SerializerConfigurableProperties"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.8 - Configurable properties</h3>
-	<div class='topic'>
-		<p>
-			The full list of configurable settings applicable to the <code>RdfSerializer</code> class is shown below:
-		</p>
-		<table class='styled' style='border-collapse: collapse;'>
-			<tr><th>Property</th><th>Short Description</th></tr>
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfSerializerProperties#RDF_addLiteralTypes}</td>
-				<td>Add XSI data types to non-<code>String</code> literals</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfSerializerProperties#RDF_addRootProperty}</td>
-				<td>Add RDF root identifier property to root node</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_junoNs}</td>
-				<td>The XML namespace for Juno properties</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_junoBpNs}</td>
-				<td>The default XML namespace for bean properties</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_iriRules}</td>
-				<td>Set the engine for checking and resolving</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_errorMode}</td>
-				<td>Allows a coarse-grained approach to control of error handling</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_embedding}</td>
-				<td>Sets ARP to look for RDF embedded within an enclosing XML document</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_err_}</td>
-				<td>Provides fine-grained control over detected error conditions</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_warn_}</td>
-				<td>Provides fine-grained control over detected warning conditions</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_ign_}</td>
-				<td>Provides fine-grained control over ignoring conditions</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_xmlBase}</td>
-				<td>The value to be included for an <xa>xml:base</xa> attribute on the root element in the file</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_longId}</td>
-				<td>Whether to use long IDs for anon resources</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_allowBadUris}</td>
-				<td>URIs in the graph are, by default, checked prior to serialization</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_relativeUris}</td>
-				<td>What sort of relative URIs should be used</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_showXmlDeclaration}</td>
-				<td>Options for XML declaration in output</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_showDoctypeDeclaration}</td>
-				<td>Show XML declaration in output</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_tab}</td>
-				<td>The number of spaces with which to indent XML child elements</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_attributeQuoteChar}</td>
-				<td>The XML attribute quote character</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_rdfxml_blockRules}</td>
-				<td>Indicates grammar rules that will not be used</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_minGap}</td>
-				<td>Minimum gap between items on a line</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_objectLists}</td>
-				<td>Print object lists as comma separated lists</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_subjectColumn}</td>
-				<td>If the subject is shorter than this value, the first property may go on the same line</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_propertyColumn}</td>
-				<td>Width of the property column</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_indentProperty}</td>
-				<td>Width to indent properties</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_widePropertyLen}</td>
-				<td>Width of the property column</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_abbrevBaseUri}</td>
-				<td>Control whether to use abbreviations <code>&lt;&gt;</code> or <code>&lt;#&gt;</code></td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_usePropertySymbols}</td>
-				<td>Control whether to use <code>a</code>, <code>=</code> and <code>=&gt;</code> in output</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_useTripleQuotedStrings}</td>
-				<td>Allow the use of <code>"""</code> to delimit long strings</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_n3_useDoubles}</td>
-				<td>Allow the use doubles as <code>123.456</code></td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.xml.XmlSerializerProperties#XML_autoDetectNamespaces}</td>
-				<td>Auto-detect namespace usage</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.xml.XmlSerializerProperties#XML_namespaces}</td>
-				<td>Namespaces used</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_maxDepth}</td>
-				<td>Maximum serialization depth</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_detectRecursions}</td>
-				<td>Automatically detect POJO recursions</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_useIndentation}</td>
-				<td>Use indentation in output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_quoteChar}</td>
-				<td>Quote character</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimNullProperties}</td>
-				<td>Trim null bean property values from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimEmptyLists}</td>
-				<td>Trim empty lists and arrays from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_trimEmptyMaps}</td>
-				<td>Trim empty maps from output</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_relativeUriBase}</td>
-				<td>URI context root for relative URIs</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.serializer.SerializerProperties#SERIALIZER_absolutePathUriBase}</td>
-				<td>URI authority for absolute path relative URIs</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireDefaultConstructor}</td>
-				<td>Beans require no-arg constructors</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSerializable}</td>
-				<td>Beans require <code>Serializable</code> interface</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSettersForGetters}</td>
-				<td>Beans require setters for getters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beansRequireSomeProperties}</td>
-				<td>Beans require some properties</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanConstructorVisibility}</td>
-				<td>Look for bean constructors with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanClassVisibility}</td>
-				<td>Look for bean classes with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_beanFieldVisibility}</td>
-				<td>Look for bean fields with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_methodVisibility}</td>
-				<td>Look for bean methods with the specified minimum visibility</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_useJavaBeanIntrospector}</td>
-				<td>Use Java {@link java.beans.Introspector} for determining bean properties</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_useInterfaceProxies}</td>
-				<td>Use interface proxies</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownBeanProperties}</td>
-				<td>Ignore unknown properties</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreUnknownNullBeanProperties}</td>
-				<td>Ignore unknown properties with null values</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreInvocationExceptionsOnGetters}</td>
-				<td>Ignore invocation errors when calling getters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_ignoreInvocationExceptionsOnSetters}</td>
-				<td>Ignore invocation errors when calling setters</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_addNotBeanPackages}</td>
-				<td>Add to the list of packages whose classes should not be considered beans</td>
-			</tr>	
-			<tr>
-				<td>{@link com.ibm.juno.core.BeanContextProperties#BEAN_removeNotBeanPackages}</td>
-				<td>Remove from the list of packages whose classes should not be considered beans</td>
-			</tr>	
-		</table>	
-	</div>		
-
-
-	<!-- ======================================================================================================== -->
-	<a id="SerializerOtherNotes"></a>
-	<h3 class='topic' onclick='toggle(this)'>2.9 - Other notes</h3>
-	<div class='topic'>
-		<ul>
-			<li>Like all other Juno serializers, the RDF serializer is thread safe and maintains an internal cache of bean classes encountered.
-				For performance reasons, it's recommended that serializers be reused whenever possible instead of always creating new instances.
-		</ul>
-	</div>
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="RdfParser"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - RdfParser class</h2>
-<div class='topic'>
-	<p>
-		The {@link com.ibm.juno.core.jena.RdfParser} class is the top-level class for all Jena-based parsers.<br>
-		Language-specific parsers are defined as inner subclasses of the <code>RdfParser</code> class:
-	</p>	
-	<ul>
-		<li>{@link com.ibm.juno.core.jena.RdfParser.Xml}
-		<li>{@link com.ibm.juno.core.jena.RdfParser.NTriple}
-		<li>{@link com.ibm.juno.core.jena.RdfParser.Turtle}
-		<li>{@link com.ibm.juno.core.jena.RdfParser.N3}
-	</ul>
-	<p>
-		The <code>RdfParser.Xml</code> parser handles both regular and abbreviated RDF/XML.
-	</p>
-	<p>
-		Static reusable instances of parsers are also provided with default settings:
-	</p>
-	<ul>
-		<li>{@link com.ibm.juno.core.jena.RdfParser#DEFAULT_XML}
-		<li>{@link com.ibm.juno.core.jena.RdfParser#DEFAULT_TURTLE}
-		<li>{@link com.ibm.juno.core.jena.RdfParser#DEFAULT_NTRIPLE}
-		<li>{@link com.ibm.juno.core.jena.RdfParser#DEFAULT_N3}
-	</ul>
-	<p>
-		For an example, we will build upon the previous example and parse the generated RDF/XML back into the original bean.
-	</p>
-		<p class='bcode'>
-	<jc>// Create a new serializer with readable output.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev()
-		.setProperty(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3)
-		.setProperty(RdfSerializerProperties.<jsf>RDF_addRootProperty</jsf>, <jk>true</jk>);
-
-	<jc>// Create our bean.</jc>
-	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
-	Address a = <jk>new</jk> Address();
-	a.<jf>uri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/address/1"</js>);
-	a.<jf>personUri</jf> = <jk>new</jk> URI(<js>"http://sample/addressBook/person/1"</js>);
-	a.<jf>id</jf> = 1;
-	a.<jf>street</jf> = <js>"100 Main Street"</js>;
-	a.<jf>city</jf> = <js>"Anywhereville"</js>;
-	a.<jf>state</jf> = <js>"NY"</js>;
-	a.<jf>zip</jf> = 12345;
-	a.<jf>isCurrent</jf> = <jk>true</jk>;
-	p.<jf>addresses</jf>.add(a);	
-
-	<jc>// Serialize the bean to RDF/XML.</jc>
-	String rdfXml = s.serialize(p);
-	
-	<jc>// Parse it back into a bean using the reusable XML parser.</jc>
-	p = RdfParser.<jsf>DEFAULT_XML</jsf>.parse(rdfXml, Person.<jk>class</jk>);
-
-	<jc>// Render it as JSON.</jc>
-	String json = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(p);
-	System.<jsm>err</jsm>.println(json);
-	</p>
-	<p>
-		We print it out to JSON to show that all the data has been preserved:
-	</p>
-	<p class='bcode'>
-	{
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		id: 1, 
-		name: <js>'John Smith'</js>, 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>, 
-				id: 1, 
-				street: <js>'100 Main Street'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				state: <js>'NY'</js>, 
-				zip: 12345, 
-				isCurrent: <jk>true</jk>
-			}
-		]
-	}	
-	</p>
-	
-
-	<!-- ======================================================================================================== -->
-	<a id="GenericParsing"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.1 - Parsing into generic POJO models</h3>
-	<div class='topic'>
-		<p>
-			The RDF parser is not limited to parsing back into the original bean classes.<br>  
-			If the bean classes are not available on the parsing side, the parser can also be used to 
-				parse into a generic model consisting of <code>Maps</code>, <code>Collections</code>, and primitive
-				objects.
-		</p>
-		<p>
-			You can parse into any <code>Map</code> type (e.g. <code>HashMap</code>, <code>TreeMap</code>), but
-				using {@link com.ibm.juno.core.ObjectMap} is recommended since it has many convenience methods
-				for converting values to various types. <br> 
-			The same is true when parsing collections.  You can use any Collection (e.g. <code>HashSet</code>, <code>LinkedList</code>)
-				or array (e.g. <code>Object[]</code>, <code>String[]</code>, <code>String[][]</code>), but using 
-				{@link com.ibm.juno.core.ObjectList} is recommended.
-		</p>
-		<p>
-			When the map or list type is not specified, or is the abstract <code>Map</code>, <code>Collection</code>, or <code>List</code> types, 
-				the parser will use <code>ObjectMap</code> and <code>ObjectList</code> by default.
-		</p>
-		<p>
-			In the following example, we parse into an <code>ObjectMap</code> and use the convenience methods for performing data conversion on values in the map.
-		</p>
-		<p class='bcode'>	
-	<jc>// Parse RDF into a generic POJO model.</jc>
-	ObjectMap m = RdfParser.<jsf>DEFAULT_XML</jsf>.parse(rdfXml, ObjectMap.<jk>class</jk>);
-
-	<jc>// Get some simple values.</jc>
-	String name = m.getString(<js>"name"</js>);
-	<jk>int</jk> id = m.getInt(<js>"id"</js>);
-
-	<jc>// Get a value convertable from a String.</jc>
-	URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
-
-	<jc>// Get a value using a filter.</jc>
-	CalendarFilter filter = <jk>new</jk> CalendarFilter.ISO8601DTZ();
-	Calendar birthDate = m.get(filter, <js>"birthDate"</js>);
-
-	<jc>// Get the addresses.</jc>
-	ObjectList addresses = m.getObjectList(<js>"addresses"</js>);
-
-	<jc>// Get the first address and convert it to a bean.</jc>
-	Address address = addresses.get(Address.<jk>class</jk>, 0);
-		</p>
-		
-		<p>
-			However, there are caveats when parsing into generic models due to the nature of RDF.<br>
-			Watch out for the following:
-		</p>
-		<ul>
-			<li>The ordering of entries are going to be inconsistent.<br><br>
-			<li>Bean URIs are always going to be denoted with the key <js>"uri"</js>.<br>
-				Therefore, you cannot have a bean with a URI property and a separate property named <js>"uri"</js>.<br>
-				The latter will overwrite the former.<br>
-				This isn't a problem when parsing into beans instead of generic POJO models.<br><br>
-			<li>All values are strings.<br>
-				This normally isn't a problem when using <code>ObjectMap</code> and <code>ObjectList</code> since 
-					various methods are provided for converting to the correct type anyway.<br><br>	
-			<li>The results may not be what is expected if there are lots of URL reference loops in the RDF model.<br>
-				As nodes are processed from the root node down through the child nodes, the parser keeps
-					track of previously processed parent URIs and handles them accordingly.<br>
-				If it finds that the URI has previously been processed, it handles it as a normal URI string and doesn't 
-					process further.<br>
-				However, depending on how complex the reference loops are, the parsed data may end up having the
-					same data in it, but structured differently from the original POJO.
-		</ul>
-		<p>
-			We can see some of these when we render the <code>ObjectMap</code> back to JSON.
-		</p>
-		<p class='bcode'>
-	System.<jsm>err</jsm>.println(JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(m));
-		</p>
-		<p>
-			This is what's produced:
-		</p>
-		<p class='bcode'>
-	{
-		uri: <js>'http://sample/addressBook/person/1'</js>, 
-		addresses: [
-			{
-				uri: <js>'http://sample/addressBook/address/1'</js>, 
-				isCurrent: <js>'true'</js>, 
-				zip: <js>'12345'</js>, 
-				state: <js>'NY'</js>, 
-				city: <js>'Anywhereville'</js>, 
-				street: <js>'100 Main Street'</js>, 
-				id: <js>'1'</js>, 
-				personUri: <js>'http://sample/addressBook/person/1'</js>
-			}
-		], 
-		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		addressBookUri: <js>'http://sample/addressBook'</js>, 
-		name: <js>'John Smith'</js>, 
-		id: <js>'1'</js>, 
-		root: <js>'true'</js>
-	}		
-		</p>
-		<p>
-			As a general rule, parsing into beans is often more efficient than parsing into generic models.<br>
-			And working with beans is often less error prone than working with generic models.
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="ParserConfigurableProperties"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.2 - Configurable properties</h3>
-	<div class='topic'>
-		<p>
-			The full list of configurable settings applicable to the <code>RdfParser</code> class is shown below:
-		</p>
-		<table class='styled' style='border-collapse: collapse;'>
-			<tr><th>Property</th><th>Short Description</th></tr>
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfParserProperties#RDF_trimWhitespace}</td>
-				<td>Trim whitespace from text elements</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_iriRules}</td>
-				<td>Set the engine for checking and resolving</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_errorMode}</td>
-				<td>Allows a coarse-grained approach to control of error handling</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_embedding}</td>
-				<td>Sets ARP to look for RDF embedded within an enclosing XML document</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_err_}</td>
-				<td>Provides fine-grained control over detected error conditions</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_warn_}</td>
-				<td>Provides fine-grained control over detected warning conditions</td>
-			</tr>		
-			<tr>
-				<td>{@link com.ibm.juno.core.jena.RdfProperties#RDF_arp_ign_}</td>
-				<td>Provides fine-grained control over ignoring conditions</td>
-			</tr>		
-		</table>	
-	</div>		
-
-
-	<!-- ======================================================================================================== -->
-	<a id="ParserOtherNotes"></a>
-	<h3 class='topic' onclick='toggle(this)'>3.3 - Other notes</h3>
-	<div class='topic'>
-		<ul>
-			<li>Like all other Juno parsers, the RDF parser is thread safe and maintains an internal cache of bean classes encountered.
-				For performance reasons, it's recommended that parser be reused whenever possible instead of always creating new instances.
-		</ul>
-	</div>
-	
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="RestApiSupport"></a>
-<h2 class='topic' onclick='toggle(this)'>4 - REST API support</h2>
-<div class='topic'>
-	<p>
-		Juno provides fully-integrated support for RDF serialization/parsing in the REST server and client APIs.
-	</p>
-	<p>
-		The next two sections describe these in detail.
-	</p>
-
-	<!-- ======================================================================================================== -->
-	<a id="RestServerSupport"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.1 - REST server support</h3>
-	<div class='topic'>
-		<p>
-			There are four general ways of defining REST interfaces with support for RDF media types.<br>
-			Two using the built-in Juno Server API, and two using the JAX-RS integration component.
-		</p>
-		<ul>
-			<li>Create a servlet that subclasses from {@link com.ibm.juno.server.jena.RestServletJenaDefault}.<br>
-				This includes serialization and parsing for all Jena supported types, including all supported flavors of RDF.<br><br>
-			<li>Create a servlet that subclasses from {@link com.ibm.juno.server.RestServlet} and specify the
-					RDF serializers and parsers using the {@link com.ibm.juno.server.annotation.RestResource#serializers()} and
-					{@link com.ibm.juno.server.annotation.RestResource#parsers()} on the entire servlet class, or 
-					the {@link com.ibm.juno.server.annotation.RestMethod#serializers()} and {@link com.ibm.juno.server.annotation.RestMethod#parsers()}
-					annotations on individual methods within the class.<br><br>
-			<li>Register {@link com.ibm.juno.server.jaxrs.rdf.DefaultJenaProvider} with JAX-RS to provide support RDF support for all JAX-RS resource.<br>
-				This includes serialization and parsing for all Juno supported types (JSON, XML, HTML...), including all supported flavors of RDF.<br><br>
-			<li>Create and register a subclass of {@link com.ibm.juno.server.jaxrs.BaseProvider} and specify the serializers and parsers to use on JAX-RS resources.
-		</ul>
-		<p>
-			In general, the Juno REST server API is much more configurable and easier to use than JAX-RS, but beware that the author may be slightly biased in this statement.
-		</p>
-
-		<!-- ======================================================================================================== -->
-		<a id="RestServletJenaDefault"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.1 - Using RestServletJenaDefault</h4>
-		<div class='topic'>
-			<p>
-				The quickest way to implement a REST resource with RDF support is to create a subclass of {@link com.ibm.juno.server.jena.RestServletJenaDefault}.<br>
-				This class provides support for all the RDF flavors in addition to JSON, XML, HTML, and URL-Encoding.
-			</p>
-			<p>
-				The reason why RDF support was not added to {@link com.ibm.juno.server.RestServletDefault} directly was to keep the Jena prerequisites
-					out of the <code>com.ibm.juno.server</code> package.
-			</p>
-			<p>
-				The <code>AddressBookResource</code> example shown in the first chapter uses the <code>RestServletJenaDefault</code> class.<br>
-				The start of the class definition is shown below:
-			</p>
-			<p class='bcode'>
-	<jc>// Proof-of-concept resource that shows off the capabilities of working with POJO resources.
-	// Consists of an in-memory address book repository.</jc>
-	<ja>@RestResource</ja>(
-		messages=<js>"nls/AddressBookResource"</js>,
-		properties={
-			<ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>),
-			<ja>@Property</ja>(name=RdfSerializerProperties.<jsf>RDF_addRootProperty</jsf>, value=<js>"true"</js>),
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>),
-			<ja>@Property</ja>(name=HtmlSerializerProperties.<jsf>HTML_uriAnchorText</jsf>, value=<jsf>TO_STRING</jsf>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, value=<js>"$L{title}"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_description</jsf>, value=<js>"$L{description}"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerProperties.<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'?method=OPTIONS',doc:'doc'}"</js>)
-		},
-		encoders=GzipEncoder.<jk>class</jk>
-	)
-	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {
-			</p>
-			<p>
-				Notice how serializer and parser properties can be specified using the <code>@RestResource.properties()</code> annotation.<br>
-				The <jsf>RDF_rdfxml_tab</jsf> and <jsf>RDF_addRootProperty</jsf> are properties on the RDF serializers.<br>
-				The <jsf>SERIALIZER_quoteChar</jsf> property is common to all serializers.<br>
-				The remaining properties are specific to the HTML serializer.
-			</p>
-			<p>
- 				The <code>$L{...}</code> variable represent localized strings pulled from the resource bundle identified by the <code>messages</code> annotation.
- 				These variables are replaced at runtime based on the HTTP request locale.
-				Several built-in runtime variable types are defined, and the API can be extended to include user-defined variables.
-				See {@link com.ibm.juno.server.RestServlet#getVarResolver()} for more information.
-			</p>
-			<p>
-				This document won't go into all the details of the Juno <code>RestServlet</code> class.<br>
-				Refer to the {@link com.ibm.juno.server} documentation for more information on the REST servlet class in general.
-			</p>
-			<p>
-				The rest of the code in the resource class consists of REST methods that simply accept and return POJOs.<br>
-				The framework takes care of all content negotiation, serialization/parsing, and error handling.<br>
-				Below are 3 of those methods to give you a general idea of the concept:
-			</p>
-			<p class='bcode'>
-	<jc>// GET person request handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>, rc={200,404})
-	<jk>public</jk> Person getPerson(RestRequest req, <ja>@Attr</ja> <jk>int</jk> id) throws Exception {
-		properties.put(HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, req.getPathInfo());
-		<jk>return</jk> findPerson(id);
-	}
-	
-	<jc>// POST person handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/people"</js>, guards=AdminGuard.<jk>class</jk>, rc={307,404})
-	<jk>public void</jk> createPerson(RestResponse res, <ja>@Content</ja> CreatePerson cp) <jk>throws</jk> Exception {
-		Person p = addressBook.createPerson(cp);
-		res.sendRedirect(p.<jf>uri</jf>);
-	}
-
-	<jc>// DELETE person handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"DELETE"</js>, path=<js>"/people/{id}"</js>, guards=AdminGuard.<jk>class</jk>, rc={200,404})
-	<jk>public</jk> String deletePerson(RestResponse res, <ja>@Attr</ja> <jk>int</jk> id) <jk>throws</jk> Exception {
-		Person p = findPerson(id);
-		addressBook.remove(p);
-		<jk>return</jk> <js>"DELETE successful"</js>;			
-	}	
-			</p>
-			<p>
-				The resource class can be registered with the web application like any other servlet, or can be 
-					defined as a child of another resource through the {@link com.ibm.juno.server.annotation.RestResource#children()} annotation.
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="RestServlet"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.2 - Using RestServlet with annotations</h4>
-		<div class='topic'>
-			<p>
-				For fine-tuned control of media types, the {@link com.ibm.juno.server.RestServlet} class 
-					can be subclassed directly.<br>
-				The serializers/parsers can be specified through annotations at the class and/or method levels.
-			</p>
-			<p>
-				An equivalent <code>AddressBookResource</code> class could be defined to only support RDF/XML using
-					the following definition:
-			</p>
-			<p class='bcode'>
-	<ja>@RestResource</ja>(
-		serializers={RdfSerializer.XmlAbbrev.<jk>class</jk>},
-		parsers={RdfParser.Xml.<jk>class</jk>},
-		properties={
-			<ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>),
-			<ja>@Property</ja>(name=RdfSerializerProperties.<jsf>RDF_addRootProperty</jsf>, value=<js>"true"</js>),
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		}
-	)
-	<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServlet {
-			</p>
-			<p>
-				Likewise, serializers and parsers can be specified/augmented/overridden at the method level like so:
-			</p>
-			<p class='bcode'>
-	<jc>// GET person request handler</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>, rc={200,404},
-		serializers={RdfSerializer.XmlAbbrev.<jk>class</jk>},
-		parsers={RdfParser.Xml.<jk>class</jk>},
-		properties={
-			<ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>),
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		}
-	)
-	<jk>public</jk> Person getPerson(RestRequest req, <ja>@Attr</ja> <jk>int</jk> id) throws Exception {
-		properties.put(HtmlDocSerializerProperties.<jsf>HTMLDOC_title</jsf>, req.getPathInfo());
-		<jk>return</jk> findPerson(id);
-	}
-			</p>
-			<p>
-				The {@link com.ibm.juno.server.annotation.RestMethod#serializersInherit()} and 
-					{@link com.ibm.juno.server.annotation.RestMethod#parsersInherit()} control how various artifacts
-					are inherited from the parent class.<br>
-				Refer to {@link com.ibm.juno.server} for additional information on using these annotations.
-			</p>
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="DefaultJenaProvider"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.3 - Using JAX-RS DefaultJenaProvider</h4>
-		<div class='topic'>
-			<p>
-				RDF media type support in JAX-RS can be achieved by using the {@link com.ibm.juno.server.jaxrs.rdf.DefaultJenaProvider} class.<br>
-				It implements the JAX-RS <code>MessageBodyReader</code> and <code>MessageBodyWriter</code> interfaces for all Juno supported media types.
-			</p>
-			<p>
-				The <code>DefaultJenaProvider</code> class definition is shown below:
-			</p>
-			<p class='bcode'>
-	<ja>@Provider</ja>
-	<ja>@Produces</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>,                 <jc>// JsonSerializer</jc>
-		<js>"application/json+simple"</js>,<js>"text/json+simple"</js>,    <jc>// JsonSerializer.Simple</jc>
-		<js>"application/json+schema"</js>,<js>"text/json+schema"</js>,    <jc>// JsonSchemaSerializer</jc>
-		<js>"text/xml"</js>,                                      <jc>// XmlDocSerializer</jc>
-		<js>"text/xml+simple"</js>,                               <jc>// XmlDocSerializer.Simple</jc>
-		<js>"text/xml+schema"</js>,                               <jc>// XmlSchemaDocSerializer</jc>
-		<js>"text/html"</js>,                                     <jc>// HtmlDocSerializer</jc>
-		<js>"application/x-www-form-urlencoded"</js>,             <jc>// UrlEncodingSerializer</jc>
-		<js>"text/xml+soap"</js>,                                 <jc>// SoapXmlSerializer</jc>
-		<js>"text/xml+rdf"</js>,                                  <jc>// RdfSerializer.Xml</jc>
-		<js>"text/xml+rdf+abbrev"</js>,                           <jc>// RdfSerializer.XmlAbbrev</jc>
-		<js>"text/n-triple"</js>,                                 <jc>// RdfSerializer.NTriple</jc>
-		<js>"text/turtle"</js>,                                   <jc>// RdfSerializer.Turtle</jc>
-		<js>"text/n3"</js>,                                       <jc>// RdfSerializer.N3</jc>
-		<js>"application/x-java-serialized-object"</js>           <jc>// JavaSerializedObjectSerializer</jc>
-	})
-	<ja>@Consumes</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>,                 <jc>// JsonParser</jc>
-		<js>"text/xml"</js>,                                      <jc>// XmlParser</jc>
-		<js>"text/html"</js>,                                     <jc>// HtmlParser</jc>
-		<js>"application/x-www-form-urlencoded"</js>,             <jc>// UrlEncodingParser</jc>
-		<js>"text/xml+rdf"</js>,                                  <jc>// RdfParser.Xml</jc>
-		<js>"text/n-triple"</js>,                                 <jc>// RdfParser.NTriple</jc>
-		<js>"text/turtle"</js>,                                   <jc>// RdfParser.Turtle</jc>
-		<js>"text/n3"</js>,                                       <jc>// RdfParser.N3</jc>
-		<js>"application/x-java-serialized-object"</js>           <jc>// JavaSerializedObjectParser</jc>
-	})
-	<ja>@JunoProvider</ja>(
-		serializers={
-			JsonSerializer.<jk>class</jk>,
-			JsonSerializer.Simple.<jk>class</jk>,
-			JsonSchemaSerializer.<jk>class</jk>,
-			XmlDocSerializer.<jk>class</jk>,
-			XmlDocSerializer.Simple.<jk>class</jk>,
-			XmlSchemaDocSerializer.<jk>class</jk>,
-			HtmlDocSerializer.<jk>class</jk>,
-			UrlEncodingSerializer.<jk>class</jk>,
-			SoapXmlSerializer.<jk>class</jk>,
-			RdfSerializer.Xml.<jk>class</jk>,
-			RdfSerializer.XmlAbbrev.<jk>class</jk>,
-			RdfSerializer.NTriple.<jk>class</jk>,
-			RdfSerializer.Turtle.<jk>class</jk>,
-			RdfSerializer.N3.<jk>class</jk>,
-			JavaSerializedObjectSerializer.<jk>class</jk>
-		},
-		parsers={
-			JsonParser.<jk>class</jk>,
-			XmlParser.<jk>class</jk>,
-			HtmlParser.<jk>class</jk>,
-			UrlEncodingParser.<jk>class</jk>,
-			RdfParser.Xml.<jk>class</jk>,
-			RdfParser.NTriple.<jk>class</jk>,
-			RdfParser.Turtle.<jk>class</jk>,
-			RdfParser.N3.<jk>class</jk>,
-			JavaSerializedObjectParser.<jk>class</jk>,
-		}
-	)
-	<jk>public final class</jk> DefaultJenaProvider <jk>extends</jk> BaseProvider {}
-			</p>
-			<p>
-				That's the entire class.  It consists of only annotations to hook up media types to Juno serializers and parsers.<br>
-				The <ja>@Provider</ja>, <ja>@Produces</ja>, and <ja>@Consumes</ja> annotations are standard JAX-RS annotations, and the <ja>@JunoProvider</ja> annotation is from Juno.
-			</p>
-			<p>
-				To enable the provider, you need to make the JAX-RS environment aware of it.<br>
-				In Wink, this is accomplished by adding an entry to a config file.
-			</p>
-			<p class='bcode'>
-	<xt>&lt;web-app</xt> <xa>version</xa>=<xs>"2.3"</xs><xt>&gt;</xt>
-		<xt>&lt;servlet&gt;</xt>
-			<xt>&lt;servlet-name&gt;</xt>WinkService<xt>&lt;/servlet-name&gt;</xt>
-			<xt>&lt;servlet-class&gt;</xt>org.apache.wink.server.internal.servlet.RestServlet<xt>&lt;/servlet-class&gt;</xt>
-			<xt>&lt;init-param&gt;</xt>
-				<xt>&lt;param-name&gt;</xt>applicationConfigLocation<xt>&lt;/param-name&gt;</xt>
-				<xt>&lt;param-value&gt;</xt>/WEB-INF/wink.cfg<xt>&lt;/param-value&gt;</xt>
-			<xt>&lt;/init-param&gt;</xt>
-		<xt>&lt;/servlet&gt;</xt>
-			</p>
-			<p>
-				Simply include a reference to the provider in the configuration file.
-			<p class='bcode'>
-	com.ibm.juno.server.jaxrs.DefaultJenaProvider
-			</p>
-			<p>
-				Properties can be specified on providers through the {@link com.ibm.juno.server.jaxrs.JunoProvider#properties()} annotation.
-			</p>
-			<p>
-				Properties can also be specified at the method level by using the {@link com.ibm.juno.server.annotation.RestMethod#properties} annotation, like so:
-			</p>
-			<p class='bcode'>
-	<ja>@GET</ja>
-	<ja>@Produces</ja>(<js>"*/*"</js>)
-	<ja>@RestMethod</ja>( <jc>/* Override some properties */</jc>
-		properties={
-			<ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>),
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		}
-	)
-	<jk>public</jk> Message getMessage() {
-		<jk>return</jk> message;
-	}
-			</p>
-			<h6 class='topic'>Limitations</h6>
-			<p>
-				In general, the Juno REST API is considerably more flexible than the JAX-RS API, since you can specify and override
-					serializers, parsers, properties, filters, converters, guards, etc... at both the class and method levels.<br>
-				Therefore, the JAX-RS API has the following limitations that the Juno Server API does not:
-			</p>
-			<ul>
-				<li>The ability to specify different media type providers at the class and method levels.<br> 
-					For example, you may want to use <code>RdfSerializer.Xml</code> with one set of properties on 
-						one class, and another instance with different properties on another class.<br>
-					There is currently no way to define this at the class level.<br>
-					You can override properties at the method level, but this can be cumbersome since it would have to be
-						done for all methods in the resource.<br><br>
-				<li>The Juno Server API allows you to manipulate properties programatically through the {@link com.ibm.juno.server.RestResponse#setProperty(String,Object)}
-					method, and through the {@link com.ibm.juno.server.annotation.Properties} annotation.<br>
-					There is no equivalent in JAX-RS.
-			</ul>
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a id="BaseProvider"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.4 - Using JAX-RS BaseProvider with annotations</h4>
-		<div class='topic'>
-			<p>
-				To provide support for only RDF media types, you can define your own provider class, like so:
-			</p>
-			<p class='bcode'>
-	<ja>@Provider</ja>
-	<ja>@Produces</ja>({
-		<js>"text/xml+rdf"</js>,                                  <jc>// RdfSerializer.Xml</jc>
-		<js>"text/xml+rdf+abbrev"</js>,                           <jc>// RdfSerializer.XmlAbbrev</jc>
-		<js>"text/n-triple"</js>,                                 <jc>// RdfSerializer.NTriple</jc>
-		<js>"text/turtle"</js>,                                   <jc>// RdfSerializer.Turtle</jc>
-		<js>"text/n3"</js>,                                       <jc>// RdfSerializer.N3</jc>
-	})
-	<ja>@Consumes</ja>({
-		<js>"text/xml+rdf"</js>,                                  <jc>// RdfParser.Xml</jc>
-		<js>"text/n-triple"</js>,                                 <jc>// RdfParser.NTriple</jc>
-		<js>"text/turtle"</js>,                                   <jc>// RdfParser.Turtle</jc>
-		<js>"text/n3"</js>,                                       <jc>// RdfParser.N3</jc>
-	})
-	<ja>@JunoProvider</ja>(
-		serializers={
-			RdfSerializer.Xml.<jk>class</jk>,
-			RdfSerializer.XmlAbbrev.<jk>class</jk>,
-			RdfSerializer.NTriple.<jk>class</jk>,
-			RdfSerializer.Turtle.<jk>class</jk>,
-			RdfSerializer.N3.<jk>class</jk>,
-		},
-		parsers={
-			RdfParser.Xml.<jk>class</jk>,
-			RdfParser.NTriple.<jk>class</jk>,
-			RdfParser.Turtle.<jk>class</jk>,
-			RdfParser.N3.<jk>class</jk>,
-		},
-		properties={
-			<ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>),
-			<ja>@Property</ja>(name=SerializerProperties.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		}
-	)
-	<jk>public final class</jk> MyRdfProvider <jk>extends</jk> BaseProvider {}
-			</p>
-			<p>
-				Then register it with Wink the same way as <code>DefaultJenaProvider</code>.
-			</p>
-		</div>
-
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a id="RestClientSupport"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.2 - REST client support</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.client.RestClient} class provides an easy-to-use REST client interface with 
-				pluggable media type handling using any of the Juno serializers and parsers.
-		</p>
-		<p>
-			Defining a client to support RDF media types on HTTP requests and responses can be done in one line of code:
-		</p>
-		<p class='bcode'>
-	<jc>// Create a client to handle RDF/XML requests and responses.</jc>
-	RestClient client = <jk>new</jk> RestClient(RdfSerializer.XmlAbbrev.<jk>class</jk>, RdfParser.Xml.<jk>class</jk>);
-		</p>
-		<p>
-			The client handles all content negotiation based on the registered serializers and parsers.
-		</p>
-		<p>
-			The following code is pulled from the main method of the <code>ClientTest</code> class in the sample web application, and
-				is run against the <code>AddressBookResource</code> class running within the sample app.
-			It shows how the client can be used to interact with the REST API while completely hiding the negotiated content type and working with nothing more than beans.
-		</p>
-		<p class='bcode'>
-	String root = <js>"http://localhost:9080/sample/addressBook"</js>;
-	
-	<jc>// Get the current contents of the address book</jc>
-	AddressBook ab = client.doGet(root).getResponse(AddressBook.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Number of entries = "</js> + ab.size());
-	
-	<jc>// Delete the existing entries</jc>
-	<jk>for</jk> (Person p : ab) {
-		String r = client.doDelete(p.<jf>uri</jf>).getResponse(String.<jk>class</jk>);
-		System.<jsm>out</jsm>.println(<js>"Deleted person "</js> + p.<jf>name</jf> + <js>", response = "</js> + r);
-	}
-	
-	<jc>// Make sure they're gone</jc>
-	ab = client.doGet(root).getResponse(AddressBook.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Number of entries = "</js> + ab.size());
-	
-	<jc>// Add 1st person again</jc>
-	CreatePerson cp = <jk>new</jk> CreatePerson(
-		<js>"Barack Obama"</js>, 
-		<jsm>toCalendar</jsm>(<js>"Aug 4, 1961"</js>),
-		<jk>new</jk> CreateAddress(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>true</jk>),
-		<jk>new</jk> CreateAddress(<js>"5046 S Greenwood Ave"</js>, <js>"Chicago"</js>, <js>"IL"</js>, 60615, <jk>false</jk>)
-	); 
-	Person p = client.doPost(root + <js>"/people"</js>, cp).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created person "</js> + p.<jf>name</jf> + <js>", uri = "</js> + p.<jf>uri</jf>);
-	
-	<jc>// Add 2nd person again, but add addresses separately</jc>
-	cp = <jk>new</jk> CreatePerson(
-		<js>"George Walker Bush"</js>, 
-		toCalendar(<js>"Jul 6, 1946"</js>)
-	);
-	p = client.doPost(root + <js>"/people"</js>, cp).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created person "</js> + p.<jf>name</jf> + <js>", uri = "</js> + p.<jf>uri</jf>);
-	
-	<jc>// Add addresses to 2nd person</jc>
-	CreateAddress ca = <jk>new</jk> CreateAddress(<js>"43 Prairie Chapel Rd"</js>, <js>"Crawford"</js>, <js>"TX"</js>, 76638, <jk>true</jk>);
-	Address a = client.doPost(p.<jf>uri</jf> + <js>"/addresses"</js>, ca).getResponse(Address.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created address "</js> + a.<jf>uri</jf>);
-				
-	ca = <jk>new</jk> CreateAddress(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>false</jk>);
-	a = client.doPost(p.<jf>uri</jf> + "/addresses"</js>, ca).getResponse(Address.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Created address "</js> + a.<jf>uri</jf>);
-	
-	<jc>// Find 1st person, and change name</jc>
-	Person[] pp = client.doGet(root + <js>"?q={name:\"'Barack+Obama'\"}"</js>).getResponse(Person[].<jk>class</jk>);
-	String r = client.doPut(pp[0].<jf>uri</jf> + <js>"/name"</js>, <js>"Barack Hussein Obama"</js>).getResponse(String.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"Changed name, response = "</js> + r);
-	p = client.doGet(pp[0].<jf>uri</jf>).getResponse(Person.<jk>class</jk>);
-	System.<jsm>out</jsm>.println(<js>"New name = "</js> + p.<jf>name</jf>);
-		</p>
-		<p>
-			The code above produces the following output.
-		</p>
-		<p class='bcode'>
-	Number of entries = 2
-	Deleted person Barack Obama, response = DELETE successful
-	Deleted person George Walker Bush, response = DELETE successful
-	Number of entries = 0
-	Created person Barack Obama, uri = http://localhost:9080/sample/addressBook/people/3
-	Created person George Walker Bush, uri = http://localhost:9080/sample/addressBook/people/4
-	Created address http://localhost:9080/sample/addressBook/addresses/7
-	Created address http://localhost:9080/sample/addressBook/addresses/8
-	Changed name, response = PUT successful
-	New name = Barack Hussein Obama
-		</p>
-	</div>
-</div>
-<p align="center"><i><b>*** f�n ***</b></i></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/jso/JavaSerializedObjectParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectParser.class
deleted file mode 100755
index 2cf8314..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectParser.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/jso/JavaSerializedObjectParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectParser.java
deleted file mode 100755
index 90308ef..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectParser.java
+++ /dev/null
@@ -1,55 +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.jso;
-
-import java.io.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Parses POJOs from HTTP responses as Java {@link ObjectInputStream ObjectInputStreams}.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Consumes <code>Content-Type</code> types: <code>application/x-java-serialized-object</code>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Consumes("application/x-java-serialized-object")
-public final class JavaSerializedObjectParser extends InputStreamParser {
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@SuppressWarnings("unchecked")
-	@Override /* InputStreamParser */
-	protected <T> T doParse(InputStream in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException {
-		try {
-			ObjectInputStream ois = new ObjectInputStream(in);
-			return (T)ois.readObject();
-		} catch (ClassNotFoundException e) {
-			throw new ParseException(e);
-		}
-	}
-
-
-	@Override /* Lockable */
-	public JavaSerializedObjectParser clone() {
-		try {
-			return (JavaSerializedObjectParser)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/jso/JavaSerializedObjectSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectSerializer.class
deleted file mode 100755
index 39933b5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectSerializer.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/jso/JavaSerializedObjectSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectSerializer.java
deleted file mode 100755
index 8f59b48..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jso/JavaSerializedObjectSerializer.java
+++ /dev/null
@@ -1,52 +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.jso;
-
-import java.io.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Serializes POJOs to HTTP responses as Java {@link ObjectOutputStream ObjectOutputStreams}.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>application/x-java-serialized-object</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>application/x-java-serialized-object</code>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces("application/x-java-serialized-object")
-public final class JavaSerializedObjectSerializer extends OutputStreamSerializer {
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* OutputStreamSerializer */
-	protected void doSerialize(Object o, OutputStream out, SerializerContext ctx) throws IOException, SerializeException {
-		ObjectOutputStream oos = new ObjectOutputStream(out);
-		oos.writeObject(o);
-		oos.flush();
-		oos.close();
-	}
-
-	@Override /* Serializer */
-	public JavaSerializedObjectSerializer clone() {
-		try {
-			return (JavaSerializedObjectSerializer)super.clone();
-		} catch (CloneNotSupportedException e) {
-			throw new RuntimeException(e); // Shouldn't happen
-		}
-	}
-}


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

Posted by ja...@apache.org.
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


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

Posted by ja...@apache.org.
Merge changes from GitHub repo.

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

Branch: refs/heads/master
Commit: 30947fd7ae323b963fcf31f7f283f481033a3395
Parents: 7e4f63e
Author: jamesbognar <ja...@gmail.com>
Authored: Mon Aug 1 11:48:53 2016 -0400
Committer: jamesbognar <ja...@gmail.com>
Committed: Mon Aug 1 11:48:53 2016 -0400

----------------------------------------------------------------------
 com.ibm.team.juno.client/.classpath             |    31 +-
 com.ibm.team.juno.client/.project               |     8 +-
 .../.settings/org.eclipse.core.resources.prefs  |     2 -
 .../.settings/org.eclipse.jdt.core.prefs        |     1 +
 .../.settings/org.eclipse.jdt.ui.prefs          |     6 +-
 .../.settings/org.eclipse.wst.common.component  |    10 +-
 ...rg.eclipse.wst.common.project.facet.core.xml |    21 +-
 com.ibm.team.juno.client/META-INF/MANIFEST.MF   |     9 +-
 .../OSGI-INF/l10n/plugin.properties             |    23 +-
 .../com/ibm/juno/client/AllowAllRedirects.class |   Bin 490 -> 0 bytes
 .../bin/com/ibm/juno/client/DateHeader.class    |   Bin 644 -> 0 bytes
 .../bin/com/ibm/juno/client/HttpMethod.class    |   Bin 1596 -> 0 bytes
 .../com/ibm/juno/client/NameValuePairs.class    |   Bin 693 -> 0 bytes
 .../com/ibm/juno/client/ResponsePattern.class   |   Bin 1633 -> 0 bytes
 .../bin/com/ibm/juno/client/RestCall$1.class    |   Bin 963 -> 0 bytes
 .../bin/com/ibm/juno/client/RestCall$2.class    |   Bin 902 -> 0 bytes
 .../bin/com/ibm/juno/client/RestCall$3.class    |   Bin 998 -> 0 bytes
 .../bin/com/ibm/juno/client/RestCall.class      |   Bin 19376 -> 0 bytes
 .../com/ibm/juno/client/RestCallException.class |   Bin 3803 -> 0 bytes
 .../ibm/juno/client/RestCallInterceptor.class   |   Bin 1183 -> 0 bytes
 .../com/ibm/juno/client/RestCallLogger.class    |   Bin 5015 -> 0 bytes
 .../bin/com/ibm/juno/client/RestClient$1.class  |   Bin 807 -> 0 bytes
 .../bin/com/ibm/juno/client/RestClient$2.class  |   Bin 792 -> 0 bytes
 .../bin/com/ibm/juno/client/RestClient$3.class  |   Bin 2286 -> 0 bytes
 .../bin/com/ibm/juno/client/RestClient.class    |   Bin 38195 -> 0 bytes
 .../com/ibm/juno/client/RestRequestEntity.class |   Bin 3246 -> 0 bytes
 .../bin/com/ibm/juno/client/RetryOn$1.class     |   Bin 533 -> 0 bytes
 .../bin/com/ibm/juno/client/RetryOn.class       |   Bin 408 -> 0 bytes
 .../ibm/juno/client/SSLOpts$CertValidate.class  |   Bin 1170 -> 0 bytes
 .../ibm/juno/client/SSLOpts$HostVerify.class    |   Bin 1156 -> 0 bytes
 .../bin/com/ibm/juno/client/SSLOpts.class       |   Bin 2494 -> 0 bytes
 .../juno/client/SerializedNameValuePair.class   |   Bin 2113 -> 0 bytes
 .../juno/client/SimpleX509TrustManager.class    |   Bin 2136 -> 0 bytes
 .../client/deprecated/CertificateStore.class    |   Bin 4331 -> 0 bytes
 .../ICertificateValidator$Trust.class           |   Bin 1455 -> 0 bytes
 .../deprecated/ICertificateValidator.class      |   Bin 502 -> 0 bytes
 .../client/deprecated/ITrustStoreProvider.class |   Bin 597 -> 0 bytes
 .../LenientCertificateValidator.class           |   Bin 1207 -> 0 bytes
 .../deprecated/SharedTrustStoreProvider.class   |   Bin 3321 -> 0 bytes
 .../deprecated/ValidatingX509TrustManager.class |   Bin 4465 -> 0 bytes
 .../ibm/juno/client/jazz/JazzRestClient.class   |   Bin 13817 -> 0 bytes
 .../bin/com/ibm/juno/client/jazz/package.html   |   187 -
 .../bin/com/ibm/juno/client/package.html        |   850 --
 com.ibm.team.juno.client/build.properties       |    27 +-
 .../com/ibm/juno/client/AllowAllRedirects.java  |    27 -
 .../src/com/ibm/juno/client/DateHeader.java     |    39 -
 .../src/com/ibm/juno/client/HttpMethod.java     |    60 -
 .../src/com/ibm/juno/client/NameValuePairs.java |    44 -
 .../com/ibm/juno/client/ResponsePattern.java    |   134 -
 .../src/com/ibm/juno/client/RestCall.java       |   944 --
 .../com/ibm/juno/client/RestCallException.java  |   150 -
 .../ibm/juno/client/RestCallInterceptor.java    |    56 -
 .../src/com/ibm/juno/client/RestCallLogger.java |   116 -
 .../src/com/ibm/juno/client/RestClient.java     |  1411 --
 .../com/ibm/juno/client/RestRequestEntity.java  |    86 -
 .../src/com/ibm/juno/client/RetryOn.java        |    35 -
 .../src/com/ibm/juno/client/SSLOpts.java        |   185 -
 .../juno/client/SerializedNameValuePair.java    |    79 -
 .../ibm/juno/client/SimpleX509TrustManager.java |    62 -
 .../client/deprecated/CertificateStore.java     |   127 -
 .../deprecated/ICertificateValidator.java       |    46 -
 .../client/deprecated/ITrustStoreProvider.java  |    39 -
 .../deprecated/LenientCertificateValidator.java |    26 -
 .../deprecated/SharedTrustStoreProvider.java    |   104 -
 .../deprecated/ValidatingX509TrustManager.java  |   113 -
 .../ibm/juno/client/jazz/JazzRestClient.java    |   392 -
 .../src/com/ibm/juno/client/jazz/package.html   |   187 -
 .../src/com/ibm/juno/client/package.html        |   850 --
 .../apache/juneau/client/AllowAllRedirects.java |    31 +
 .../org/apache/juneau/client/DateHeader.java    |    43 +
 .../org/apache/juneau/client/HttpMethod.java    |    64 +
 .../apache/juneau/client/NameValuePairs.java    |    48 +
 .../apache/juneau/client/ResponsePattern.java   |   138 +
 .../java/org/apache/juneau/client/RestCall.java |   947 ++
 .../apache/juneau/client/RestCallException.java |   153 +
 .../juneau/client/RestCallInterceptor.java      |    60 +
 .../apache/juneau/client/RestCallLogger.java    |   120 +
 .../org/apache/juneau/client/RestClient.java    |  1423 ++
 .../apache/juneau/client/RestRequestEntity.java |    90 +
 .../java/org/apache/juneau/client/RetryOn.java  |    39 +
 .../java/org/apache/juneau/client/SSLOpts.java  |   189 +
 .../juneau/client/SerializedNameValuePair.java  |    85 +
 .../juneau/client/SimpleX509TrustManager.java   |    66 +
 .../java/org/apache/juneau/client/package.html  |   857 ++
 .../.classpath                                  |    40 +-
 .../.project                                    |     8 +-
 .../.settings/org.eclipse.jdt.core.prefs        |     1 +
 .../META-INF/MANIFEST.MF                        |     6 +-
 .../sample/HelloWorldResource.class             |   Bin 807 -> 0 bytes
 .../microservice/sample/RootResources.class     |   Bin 976 -> 0 bytes
 .../microservice/sample/nls/Messages.properties |    14 -
 .../microservice.cfg                            |     6 +-
 .../project-root/.classpath                     |    16 -
 .../project-root/.project                       |    17 -
 .../project-root/build.properties               |    15 -
 .../project-root/build.xml                      |    50 -
 .../project-root/microservice-project.launch    |    11 -
 .../microservice/sample/HelloWorldResource.java |    29 -
 .../juno/microservice/sample/RootResources.java |    35 -
 .../microservice/sample/nls/Messages.properties |    14 -
 .../microservice/sample/HelloWorldResource.java |    35 +
 .../microservice/sample/RootResources.java      |    41 +
 .../microservice/sample/nls/Messages.properties |    19 +
 com.ibm.team.juno.microservice/.classpath       |    47 +-
 com.ibm.team.juno.microservice/.project         |     8 +-
 .../.settings/org.eclipse.jdt.core.prefs        |     1 +
 .../.settings/org.eclipse.jdt.ui.prefs          |     6 +-
 com.ibm.team.juno.microservice/Dockerfile       |     2 +-
 .../META-INF/MANIFEST.MF                        |     4 +-
 com.ibm.team.juno.microservice/bin/.gitignore   |     1 -
 com.ibm.team.juno.microservice/build.properties |    26 +-
 .../com/ibm/juno/microservice/Microservice.java |   521 -
 .../src/com/ibm/juno/microservice/Resource.java |    67 -
 .../ibm/juno/microservice/ResourceGroup.java    |    66 -
 .../com/ibm/juno/microservice/ResourceJena.java |    28 -
 .../ibm/juno/microservice/RestMicroservice.java |   554 -
 .../ibm/juno/microservice/doc-files/build1.png  |   Bin 2633 -> 0 bytes
 .../ibm/juno/microservice/doc-files/build2.png  |   Bin 8634 -> 0 bytes
 .../juno/microservice/doc-files/helloworld1.png |   Bin 14050 -> 0 bytes
 .../microservice/doc-files/instructions1.png    |   Bin 44658 -> 0 bytes
 .../microservice/doc-files/instructions2.png    |   Bin 54971 -> 0 bytes
 .../microservice/doc-files/instructions3.png    |   Bin 20755 -> 0 bytes
 .../microservice/doc-files/instructions4.png    |   Bin 28672 -> 0 bytes
 .../microservice/doc-files/instructions5.png    |   Bin 8894 -> 0 bytes
 .../microservice/doc-files/instructions6.png    |   Bin 22345 -> 0 bytes
 .../juno/microservice/doc-files/manifest1.png   |   Bin 10493 -> 0 bytes
 .../src/com/ibm/juno/microservice/javadoc.css   |  1039 --
 .../src/com/ibm/juno/microservice/package.html  |   942 --
 .../juno/microservice/resources/ConfigEdit.html |    32 -
 .../microservice/resources/ConfigResource.java  |   184 -
 .../resources/DirectoryResource.java            |   354 -
 .../resources/LogEntryFormatter.java            |   257 -
 .../juno/microservice/resources/LogParser.java  |   225 -
 .../microservice/resources/LogsResource.java    |   299 -
 .../resources/SampleRootResource.java           |    27 -
 .../resources/ShutdownResource.java             |    49 -
 .../juno/microservice/resources/package.html    |    24 -
 .../juneau/microservice/Microservice.java       |   495 +
 .../apache/juneau/microservice/Resource.java    |    63 +
 .../juneau/microservice/ResourceGroup.java      |    64 +
 .../juneau/microservice/ResourceJena.java       |    33 +
 .../juneau/microservice/RestMicroservice.java   |   553 +
 .../juneau/microservice/doc-files/build1.png    |   Bin 0 -> 2633 bytes
 .../juneau/microservice/doc-files/build2.png    |   Bin 0 -> 8634 bytes
 .../microservice/doc-files/helloworld1.png      |   Bin 0 -> 14050 bytes
 .../microservice/doc-files/instructions1.png    |   Bin 0 -> 44658 bytes
 .../microservice/doc-files/instructions2.png    |   Bin 0 -> 54971 bytes
 .../microservice/doc-files/instructions3.png    |   Bin 0 -> 20755 bytes
 .../microservice/doc-files/instructions4.png    |   Bin 0 -> 28672 bytes
 .../microservice/doc-files/instructions5.png    |   Bin 0 -> 8894 bytes
 .../microservice/doc-files/instructions6.png    |   Bin 0 -> 22345 bytes
 .../juneau/microservice/doc-files/manifest1.png |   Bin 0 -> 10493 bytes
 .../org/apache/juneau/microservice/package.html |   949 ++
 .../microservice/resources/ConfigEdit.html      |    39 +
 .../microservice/resources/ConfigResource.java  |   187 +
 .../resources/DirectoryResource.java            |   357 +
 .../resources/LogEntryFormatter.java            |   256 +
 .../microservice/resources/LogParser.java       |   229 +
 .../microservice/resources/LogsResource.java    |   302 +
 .../resources/SampleRootResource.java           |    31 +
 .../resources/ShutdownResource.java             |    52 +
 .../juneau/microservice/resources/package.html  |    31 +
 com.ibm.team.juno.releng/.classpath             |    49 +-
 com.ibm.team.juno.releng/.project               |     2 +-
 ...sification+Guidance+&+Questionnaire [v1].doc |   Bin 47104 -> 0 bytes
 com.ibm.team.juno.releng/META-INF/MANIFEST.MF   |     8 +-
 com.ibm.team.juno.releng/Readme.txt             |     8 +-
 .../bin/all/META-INF/MANIFEST.MF                |    14 +-
 .../bin/client/META-INF/MANIFEST.MF             |    18 +-
 .../com/ibm/juno/client/AllowAllRedirects.class |   Bin 490 -> 0 bytes
 .../com/ibm/juno/client/AllowAllRedirects.java  |    27 -
 .../client/com/ibm/juno/client/DateHeader.class |   Bin 644 -> 0 bytes
 .../client/com/ibm/juno/client/DateHeader.java  |    39 -
 .../client/com/ibm/juno/client/HttpMethod.class |   Bin 1540 -> 0 bytes
 .../client/com/ibm/juno/client/HttpMethod.java  |    60 -
 .../com/ibm/juno/client/NameValuePairs.class    |   Bin 693 -> 0 bytes
 .../com/ibm/juno/client/NameValuePairs.java     |    44 -
 .../com/ibm/juno/client/ResponsePattern.class   |   Bin 1630 -> 0 bytes
 .../com/ibm/juno/client/ResponsePattern.java    |   134 -
 .../client/com/ibm/juno/client/RestCall$1.class |   Bin 953 -> 0 bytes
 .../client/com/ibm/juno/client/RestCall$2.class |   Bin 892 -> 0 bytes
 .../client/com/ibm/juno/client/RestCall$3.class |   Bin 997 -> 0 bytes
 .../client/com/ibm/juno/client/RestCall.class   |   Bin 19414 -> 0 bytes
 .../client/com/ibm/juno/client/RestCall.java    |   942 --
 .../com/ibm/juno/client/RestCallException.class |   Bin 3834 -> 0 bytes
 .../com/ibm/juno/client/RestCallException.java  |   150 -
 .../ibm/juno/client/RestCallInterceptor.class   |   Bin 1183 -> 0 bytes
 .../ibm/juno/client/RestCallInterceptor.java    |    56 -
 .../com/ibm/juno/client/RestCallLogger.class    |   Bin 5066 -> 0 bytes
 .../com/ibm/juno/client/RestCallLogger.java     |   116 -
 .../com/ibm/juno/client/RestClient$1.class      |   Bin 806 -> 0 bytes
 .../com/ibm/juno/client/RestClient$2.class      |   Bin 791 -> 0 bytes
 .../com/ibm/juno/client/RestClient$3.class      |   Bin 2212 -> 0 bytes
 .../com/ibm/juno/client/RestClient$4.class      |   Bin 854 -> 0 bytes
 .../client/com/ibm/juno/client/RestClient.class |   Bin 37176 -> 0 bytes
 .../client/com/ibm/juno/client/RestClient.java  |  1378 --
 .../com/ibm/juno/client/RestRequestEntity.class |   Bin 3266 -> 0 bytes
 .../com/ibm/juno/client/RestRequestEntity.java  |    86 -
 .../client/com/ibm/juno/client/RetryOn$1.class  |   Bin 537 -> 0 bytes
 .../client/com/ibm/juno/client/RetryOn.class    |   Bin 378 -> 0 bytes
 .../bin/client/com/ibm/juno/client/RetryOn.java |    35 -
 .../ibm/juno/client/SSLOpts$CertValidate.class  |   Bin 1140 -> 0 bytes
 .../ibm/juno/client/SSLOpts$HostVerify.class    |   Bin 1126 -> 0 bytes
 .../client/com/ibm/juno/client/SSLOpts.class    |   Bin 2495 -> 0 bytes
 .../bin/client/com/ibm/juno/client/SSLOpts.java |   185 -
 .../juno/client/SerializedNameValuePair.class   |   Bin 2108 -> 0 bytes
 .../juno/client/SerializedNameValuePair.java    |    79 -
 .../juno/client/SimpleX509TrustManager.class    |   Bin 2192 -> 0 bytes
 .../ibm/juno/client/SimpleX509TrustManager.java |    62 -
 .../client/deprecated/CertificateStore.class    |   Bin 4356 -> 0 bytes
 .../client/deprecated/CertificateStore.java     |   127 -
 .../ICertificateValidator$Trust.class           |   Bin 1417 -> 0 bytes
 .../deprecated/ICertificateValidator.class      |   Bin 502 -> 0 bytes
 .../deprecated/ICertificateValidator.java       |    46 -
 .../client/deprecated/ITrustStoreProvider.class |   Bin 597 -> 0 bytes
 .../client/deprecated/ITrustStoreProvider.java  |    39 -
 .../LenientCertificateValidator.class           |   Bin 1199 -> 0 bytes
 .../deprecated/LenientCertificateValidator.java |    26 -
 .../deprecated/SharedTrustStoreProvider.class   |   Bin 3252 -> 0 bytes
 .../deprecated/SharedTrustStoreProvider.java    |   104 -
 .../ValidatingX509TrustManager$1.class          |   Bin 1169 -> 0 bytes
 .../deprecated/ValidatingX509TrustManager.class |   Bin 4301 -> 0 bytes
 .../deprecated/ValidatingX509TrustManager.java  |   113 -
 .../ibm/juno/client/jazz/JazzRestClient.class   |   Bin 13513 -> 0 bytes
 .../ibm/juno/client/jazz/JazzRestClient.java    |   390 -
 .../com/ibm/juno/client/jazz/package.html       |   187 -
 .../bin/client/com/ibm/juno/client/package.html |   850 --
 .../bin/core.test/META-INF/MANIFEST.MF          |    35 +-
 .../com/ibm/juno/core/test/AllTests.class       |   Bin 5617 -> 0 bytes
 .../ibm/juno/core/test/CT_Annotations$A.class   |   Bin 492 -> 0 bytes
 .../juno/core/test/CT_Annotations$Person1.class |   Bin 783 -> 0 bytes
 .../com/ibm/juno/core/test/CT_Annotations.class |   Bin 1932 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanContext$1.class   |   Bin 822 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanContext$A.class   |   Bin 332 -> 0 bytes
 .../core/test/CT_BeanContext$AHandler.class     |   Bin 1585 -> 0 bytes
 .../juno/core/test/CT_BeanContext$Address.class |   Bin 2136 -> 0 bytes
 .../test/CT_BeanContext$AddressablePerson.class |   Bin 1229 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanContext$B.class   |   Bin 625 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanContext$B2.class  |   Bin 832 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanContext$C.class   |   Bin 395 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanContext$C1.class  |   Bin 534 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanContext$D.class   |   Bin 1161 -> 0 bytes
 .../test/CT_BeanContext$DummyBeanFilterA.class  |   Bin 619 -> 0 bytes
 .../test/CT_BeanContext$DummyBeanFilterB.class  |   Bin 619 -> 0 bytes
 .../test/CT_BeanContext$DummyBeanFilterC.class  |   Bin 619 -> 0 bytes
 .../test/CT_BeanContext$DummyPojoFilterA.class  |   Bin 648 -> 0 bytes
 .../test/CT_BeanContext$DummyPojoFilterB.class  |   Bin 648 -> 0 bytes
 .../test/CT_BeanContext$DummyPojoFilterC.class  |   Bin 648 -> 0 bytes
 .../juno/core/test/CT_BeanContext$Person.class  |   Bin 1196 -> 0 bytes
 .../test/CT_BeanContext$ReadOnlyPerson.class    |   Bin 1145 -> 0 bytes
 .../core/test/CT_BeanContext$TestEnum.class     |   Bin 1233 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanContext.class |   Bin 18552 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$A.class    |   Bin 978 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$A1.class   |   Bin 462 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$A2.class   |   Bin 462 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$B.class    |   Bin 867 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$B1.class   |   Bin 462 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$B2.class   |   Bin 462 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$C1.class   |   Bin 451 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$C2.class   |   Bin 487 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$D1.class   |   Bin 568 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanFilter$D2.class   |   Bin 599 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanFilter.class  |   Bin 3432 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$A.class   |   Bin 683 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$B.class   |   Bin 2947 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$C.class   |   Bin 1264 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$D.class   |   Bin 4545 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$D1.class  |   Bin 771 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$D2.class  |   Bin 448 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$E.class   |   Bin 485 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$F.class   |   Bin 543 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$G.class   |   Bin 428 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$G1.class  |   Bin 1979 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$H.class   |   Bin 778 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanMap$HEnum.class   |   Bin 1176 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$I.class   |   Bin 997 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$J.class   |   Bin 1271 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$K.class   |   Bin 1250 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$L.class   |   Bin 490 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$L1.class  |   Bin 526 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$L2.class  |   Bin 599 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$M1.class  |   Bin 581 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$M2.class  |   Bin 616 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$M3.class  |   Bin 534 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$M4.class  |   Bin 687 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$M5.class  |   Bin 592 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$N1.class  |   Bin 868 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$N2.class  |   Bin 622 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$N3.class  |   Bin 540 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$N4.class  |   Bin 693 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$N5.class  |   Bin 622 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$O.class   |   Bin 397 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$P1.class  |   Bin 581 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$P2.class  |   Bin 921 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$Q1.class  |   Bin 382 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$Q2.class  |   Bin 1068 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$R1.class  |   Bin 399 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$R2.class  |   Bin 432 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$S.class   |   Bin 488 -> 0 bytes
 .../ibm/juno/core/test/CT_BeanMap$TEnum.class   |   Bin 1176 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$U.class   |   Bin 1222 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$V.class   |   Bin 476 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$V2.class  |   Bin 510 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$V3.class  |   Bin 700 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$W.class   |   Bin 550 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$W2.class  |   Bin 584 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$W3.class  |   Bin 774 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$X1.class  |   Bin 814 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$X2.class  |   Bin 1002 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap$Y.class   |   Bin 526 -> 0 bytes
 .../com/ibm/juno/core/test/CT_BeanMap.class     |   Bin 33970 -> 0 bytes
 .../com/ibm/juno/core/test/CT_ClassMeta$G.class |   Bin 583 -> 0 bytes
 .../ibm/juno/core/test/CT_ClassMeta$HC1.class   |   Bin 569 -> 0 bytes
 .../juno/core/test/CT_ClassMeta$HC1Filter.class |   Bin 607 -> 0 bytes
 .../ibm/juno/core/test/CT_ClassMeta$HC2.class   |   Bin 601 -> 0 bytes
 .../juno/core/test/CT_ClassMeta$HC2Filter.class |   Bin 607 -> 0 bytes
 .../ibm/juno/core/test/CT_ClassMeta$HI1.class   |   Bin 210 -> 0 bytes
 .../juno/core/test/CT_ClassMeta$HI1Filter.class |   Bin 607 -> 0 bytes
 .../ibm/juno/core/test/CT_ClassMeta$HI2.class   |   Bin 271 -> 0 bytes
 .../juno/core/test/CT_ClassMeta$HI2Filter.class |   Bin 607 -> 0 bytes
 .../com/ibm/juno/core/test/CT_ClassMeta.class   |   Bin 6861 -> 0 bytes
 .../test/CT_DataConversionTest$NotABean.class   |   Bin 758 -> 0 bytes
 .../test/CT_DataConversionTest$TestEnum.class   |   Bin 1289 -> 0 bytes
 .../juno/core/test/CT_DataConversionTest.class  |   Bin 4573 -> 0 bytes
 .../juno/core/test/CT_IgnoredClasses$A.class    |   Bin 581 -> 0 bytes
 .../ibm/juno/core/test/CT_IgnoredClasses.class  |   Bin 2230 -> 0 bytes
 .../com/ibm/juno/core/test/CT_JacocoDummy.class |   Bin 2576 -> 0 bytes
 .../juno/core/test/CT_ObjectList$Person.class   |   Bin 460 -> 0 bytes
 .../com/ibm/juno/core/test/CT_ObjectList.class  |   Bin 2428 -> 0 bytes
 .../com/ibm/juno/core/test/CT_ObjectMap.class   |   Bin 13257 -> 0 bytes
 .../CT_ParserGenerics$TestCollection1.class     |   Bin 625 -> 0 bytes
 .../CT_ParserGenerics$TestCollection2.class     |   Bin 625 -> 0 bytes
 .../core/test/CT_ParserGenerics$TestMap1.class  |   Bin 560 -> 0 bytes
 .../core/test/CT_ParserGenerics$TestMap2.class  |   Bin 546 -> 0 bytes
 .../ibm/juno/core/test/CT_ParserGenerics.class  |   Bin 2608 -> 0 bytes
 .../ibm/juno/core/test/CT_ParserReader.class    |   Bin 4281 -> 0 bytes
 .../core/test/CT_PropertyNamerDashedLC.class    |   Bin 1118 -> 0 bytes
 .../ibm/juno/core/test/CT_Visibility$A.class    |   Bin 560 -> 0 bytes
 .../com/ibm/juno/core/test/CT_Visibility.class  |   Bin 5163 -> 0 bytes
 .../com/ibm/juno/core/test/TestUtils$1.class    |   Bin 2177 -> 0 bytes
 .../com/ibm/juno/core/test/TestUtils.class      |   Bin 12059 -> 0 bytes
 .../ibm/juno/core/test/XmlValidatorParser.class |   Bin 5295 -> 0 bytes
 .../com/ibm/juno/core/test/a/A1$1.class         |   Bin 207 -> 0 bytes
 .../com/ibm/juno/core/test/a/A1$A2.class        |   Bin 1818 -> 0 bytes
 .../com/ibm/juno/core/test/a/A1$A3.class        |   Bin 1818 -> 0 bytes
 .../com/ibm/juno/core/test/a/A1$A4.class        |   Bin 1823 -> 0 bytes
 .../com/ibm/juno/core/test/a/A1$A5.class        |   Bin 2016 -> 0 bytes
 .../core.test/com/ibm/juno/core/test/a/A1.class |   Bin 3121 -> 0 bytes
 .../a/rttests/CT_RoundTripAddClassAttrs$A.class |   Bin 855 -> 0 bytes
 .../rttests/CT_RoundTripAddClassAttrs$AA.class  |   Bin 554 -> 0 bytes
 .../a/rttests/CT_RoundTripAddClassAttrs$B.class |   Bin 1187 -> 0 bytes
 .../a/rttests/CT_RoundTripAddClassAttrs$C.class |   Bin 1355 -> 0 bytes
 .../a/rttests/CT_RoundTripAddClassAttrs$D.class |   Bin 1316 -> 0 bytes
 .../a/rttests/CT_RoundTripAddClassAttrs$E.class |   Bin 1658 -> 0 bytes
 .../a/rttests/CT_RoundTripAddClassAttrs$F.class |   Bin 1670 -> 0 bytes
 .../rttests/CT_RoundTripAddClassAttrs$IA.class  |   Bin 346 -> 0 bytes
 .../a/rttests/CT_RoundTripAddClassAttrs.class   |   Bin 10298 -> 0 bytes
 .../CT_RoundTripBeanInheritance$A1.class        |   Bin 1574 -> 0 bytes
 .../CT_RoundTripBeanInheritance$A2.class        |   Bin 1002 -> 0 bytes
 .../CT_RoundTripBeanInheritance$A3.class        |   Bin 1077 -> 0 bytes
 .../CT_RoundTripBeanInheritance$B1.class        |   Bin 1772 -> 0 bytes
 .../CT_RoundTripBeanInheritance$B2.class        |   Bin 1447 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanInheritance.class |   Bin 3295 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$1.class |   Bin 993 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$2.class |   Bin 1055 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$A.class |   Bin 1131 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$ABean.class  |   Bin 623 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$B.class |   Bin 1143 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$B1.class     |   Bin 739 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$B2.class     |   Bin 739 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$B3.class     |   Bin 1069 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$BA.class     |   Bin 1001 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$BA1.class    |   Bin 814 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$BA2.class    |   Bin 542 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$C.class |   Bin 483 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$C1.class     |   Bin 739 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$C2.class     |   Bin 739 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$C3.class     |   Bin 1069 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$CA.class     |   Bin 519 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$CA1.class    |   Bin 814 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$CA2.class    |   Bin 542 -> 0 bytes
 .../rttests/CT_RoundTripBeanMaps$CAFilter.class |   Bin 1091 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$CBean.class  |   Bin 783 -> 0 bytes
 .../rttests/CT_RoundTripBeanMaps$CFilter.class  |   Bin 1173 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$D1.class     |   Bin 811 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$D2.class     |   Bin 709 -> 0 bytes
 .../rttests/CT_RoundTripBeanMaps$D2Filter.class |   Bin 836 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$E1.class     |   Bin 815 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$E2.class     |   Bin 709 -> 0 bytes
 .../rttests/CT_RoundTripBeanMaps$E2Filter.class |   Bin 830 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$FA1.class    |   Bin 589 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$FA2.class    |   Bin 724 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$FB1.class    |   Bin 489 -> 0 bytes
 .../CT_RoundTripBeanMaps$FB1Filter.class        |   Bin 795 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$FB2.class    |   Bin 724 -> 0 bytes
 .../CT_RoundTripBeanMaps$FB2Filter.class        |   Bin 872 -> 0 bytes
 .../rttests/CT_RoundTripBeanMaps$G$G1$G2.class  |   Bin 790 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$G$G1.class   |   Bin 966 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$G.class |   Bin 1109 -> 0 bytes
 .../rttests/CT_RoundTripBeanMaps$H$H1$H2.class  |   Bin 790 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$H$H1.class   |   Bin 966 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$H.class |   Bin 1520 -> 0 bytes
 .../rttests/CT_RoundTripBeanMaps$I$I1$I2.class  |   Bin 786 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$I$I1.class   |   Bin 962 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$I.class |   Bin 1380 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$IBean.class  |   Bin 337 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$J$J2.class   |   Bin 1014 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$J.class |   Bin 964 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$K.class |   Bin 2392 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$KEnum.class  |   Bin 1320 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$L.class |   Bin 743 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$M.class |   Bin 1172 -> 0 bytes
 .../a/rttests/CT_RoundTripBeanMaps$N$N2.class   |   Bin 911 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps$N.class |   Bin 758 -> 0 bytes
 .../test/a/rttests/CT_RoundTripBeanMaps.class   |   Bin 18595 -> 0 bytes
 .../core/test/a/rttests/CT_RoundTripDTOs.class  |   Bin 1495 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$A$1.class   |   Bin 1057 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$A$2.class   |   Bin 1057 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$A$3.class   |   Bin 1053 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$A$4.class   |   Bin 1053 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$A.class     |   Bin 3187 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$AEnum.class |   Bin 1292 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$B$1.class   |   Bin 1057 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$B$2.class   |   Bin 1057 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$B$3.class   |   Bin 1053 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$B$4.class   |   Bin 1053 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$B.class     |   Bin 3187 -> 0 bytes
 .../test/a/rttests/CT_RoundTripEnum$BEnum.class |   Bin 1763 -> 0 bytes
 .../core/test/a/rttests/CT_RoundTripEnum.class  |   Bin 4324 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$A$1.class |   Bin 960 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$A$2.class |   Bin 1054 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$A$3.class |   Bin 1028 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$A$4.class |   Bin 1028 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$A$5.class |   Bin 990 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$A$6.class |   Bin 1073 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$A.class   |   Bin 2293 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$B.class   |   Bin 745 -> 0 bytes
 .../CT_RoundTripFilterBeans$BFilter.class       |   Bin 1962 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$C1.class  |   Bin 817 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$C2.class  |   Bin 1122 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$C3.class  |   Bin 1487 -> 0 bytes
 .../rttests/CT_RoundTripFilterBeans$CDTO.class  |   Bin 521 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$D1.class  |   Bin 676 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans$D2.class  |   Bin 1067 -> 0 bytes
 .../a/rttests/CT_RoundTripFilterBeans.class     |   Bin 7825 -> 0 bytes
 .../a/rttests/CT_RoundTripGenerics$Pair.class   |   Bin 1450 -> 0 bytes
 .../rttests/CT_RoundTripGenerics$RealPair.class |   Bin 902 -> 0 bytes
 .../a/rttests/CT_RoundTripGenerics$Source.class |   Bin 658 -> 0 bytes
 .../a/rttests/CT_RoundTripGenerics$Target.class |   Bin 658 -> 0 bytes
 .../test/a/rttests/CT_RoundTripGenerics.class   |   Bin 2318 -> 0 bytes
 .../a/rttests/CT_RoundTripLargeObjects$A.class  |   Bin 1588 -> 0 bytes
 .../a/rttests/CT_RoundTripLargeObjects$A1.class |   Bin 628 -> 0 bytes
 .../CT_RoundTripLargeObjects$A1List.class       |   Bin 672 -> 0 bytes
 .../CT_RoundTripLargeObjects$A1Map.class        |   Bin 693 -> 0 bytes
 .../a/rttests/CT_RoundTripLargeObjects.class    |   Bin 5949 -> 0 bytes
 .../a/rttests/CT_RoundTripMaps$TestEnum.class   |   Bin 1313 -> 0 bytes
 .../core/test/a/rttests/CT_RoundTripMaps.class  |   Bin 7150 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$A.class        |   Bin 1526 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$A1.class       |   Bin 1036 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$A2.class       |   Bin 1033 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$A3.class       |   Bin 1031 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$A4.class       |   Bin 1037 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$B.class        |   Bin 1018 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$B1.class       |   Bin 1457 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$B2.class       |   Bin 1920 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$C.class        |   Bin 1526 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$C1.class       |   Bin 1530 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$C2.class       |   Bin 1279 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$C3.class       |   Bin 1375 -> 0 bytes
 .../CT_RoundTripObjectsAsStrings$C4.class       |   Bin 1031 -> 0 bytes
 .../rttests/CT_RoundTripObjectsAsStrings.class  |   Bin 3563 -> 0 bytes
 ...T_RoundTripObjectsWithSpecialMethods$A.class |   Bin 1317 -> 0 bytes
 ..._RoundTripObjectsWithSpecialMethods$A2.class |   Bin 943 -> 0 bytes
 ...T_RoundTripObjectsWithSpecialMethods$B.class |   Bin 1003 -> 0 bytes
 ..._RoundTripObjectsWithSpecialMethods$B2.class |   Bin 1151 -> 0 bytes
 .../CT_RoundTripObjectsWithSpecialMethods.class |   Bin 2666 -> 0 bytes
 .../CT_RoundTripPrimitiveObjectBeans.class      |   Bin 7644 -> 0 bytes
 .../rttests/CT_RoundTripPrimitivesBeans$1.class |   Bin 1127 -> 0 bytes
 ...ndTripPrimitivesBeans$PrimitivesBean$1.class |   Bin 1046 -> 0 bytes
 ...ndTripPrimitivesBeans$PrimitivesBean$2.class |   Bin 1046 -> 0 bytes
 ...ndTripPrimitivesBeans$PrimitivesBean$3.class |   Bin 1047 -> 0 bytes
 ...ndTripPrimitivesBeans$PrimitivesBean$4.class |   Bin 1046 -> 0 bytes
 ...ndTripPrimitivesBeans$PrimitivesBean$5.class |   Bin 1046 -> 0 bytes
 ...ndTripPrimitivesBeans$PrimitivesBean$6.class |   Bin 1046 -> 0 bytes
 ...ndTripPrimitivesBeans$PrimitivesBean$7.class |   Bin 1046 -> 0 bytes
 ...ndTripPrimitivesBeans$PrimitivesBean$8.class |   Bin 1046 -> 0 bytes
 ...oundTripPrimitivesBeans$PrimitivesBean.class |   Bin 4229 -> 0 bytes
 .../a/rttests/CT_RoundTripPrimitivesBeans.class |   Bin 6247 -> 0 bytes
 .../a/rttests/CT_RoundTripReadOnlyBeans$A.class |   Bin 1381 -> 0 bytes
 .../a/rttests/CT_RoundTripReadOnlyBeans$B.class |   Bin 1101 -> 0 bytes
 .../a/rttests/CT_RoundTripReadOnlyBeans.class   |   Bin 1891 -> 0 bytes
 .../a/rttests/CT_RoundTripSimpleObjects.class   |   Bin 14990 -> 0 bytes
 .../a/rttests/CT_RoundTripToObjectMaps$1.class  |   Bin 1116 -> 0 bytes
 .../a/rttests/CT_RoundTripToObjectMaps$2.class  |   Bin 1186 -> 0 bytes
 .../a/rttests/CT_RoundTripToObjectMaps$A.class  |   Bin 1441 -> 0 bytes
 .../a/rttests/CT_RoundTripToObjectMaps.class    |   Bin 3110 -> 0 bytes
 .../test/a/rttests/RoundTripTest$Flags.class    |   Bin 658 -> 0 bytes
 .../core/test/a/rttests/RoundTripTest.class     |   Bin 13365 -> 0 bytes
 .../com/ibm/juno/core/test/csv/CT_Csv$A.class   |   Bin 511 -> 0 bytes
 .../com/ibm/juno/core/test/csv/CT_Csv.class     |   Bin 1283 -> 0 bytes
 .../ibm/juno/core/test/dto/atom/CT_Atom.class   |   Bin 5585 -> 0 bytes
 .../com/ibm/juno/core/test/dto/atom/test1.xml   |    46 -
 .../com/ibm/juno/core/test/dto/atom/test2.xml   |    46 -
 .../com/ibm/juno/core/test/dto/atom/test3.xml   |    46 -
 .../test/dto/cognos/CT_CognosXml$Item.class     |   Bin 841 -> 0 bytes
 .../core/test/dto/cognos/CT_CognosXml.class     |   Bin 3825 -> 0 bytes
 .../test/dto/jsonschema/CT_JsonSchema.class     |   Bin 5202 -> 0 bytes
 .../juno/core/test/dto/jsonschema/test1.json    |    77 -
 .../juno/core/test/dto/jsonschema/test2.json    |    20 -
 .../core/test/filters/CT_BeanFilter$A1.class    |   Bin 266 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$A2.class    |   Bin 334 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$A3.class    |   Bin 734 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$B1.class    |   Bin 457 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$B2.class    |   Bin 517 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$C1.class    |   Bin 659 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$C2.class    |   Bin 698 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$C3.class    |   Bin 845 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$D1.class    |   Bin 659 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$D2.class    |   Bin 793 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$D3.class    |   Bin 698 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$E1.class    |   Bin 659 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$E2.class    |   Bin 793 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$E3.class    |   Bin 810 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$F1.class    |   Bin 754 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$F2.class    |   Bin 698 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$F3.class    |   Bin 845 -> 0 bytes
 .../core/test/filters/CT_BeanFilter$Test2.class |   Bin 719 -> 0 bytes
 .../juno/core/test/filters/CT_BeanFilter.class  |   Bin 4139 -> 0 bytes
 .../juno/core/test/filters/CT_BeanMap$A.class   |   Bin 486 -> 0 bytes
 .../juno/core/test/filters/CT_BeanMap$B.class   |   Bin 906 -> 0 bytes
 .../juno/core/test/filters/CT_BeanMap$B1.class  |   Bin 440 -> 0 bytes
 .../core/test/filters/CT_BeanMap$B1Filter.class |   Bin 1283 -> 0 bytes
 .../juno/core/test/filters/CT_BeanMap$B2.class  |   Bin 481 -> 0 bytes
 .../core/test/filters/CT_BeanMap$B2Filter.class |   Bin 1283 -> 0 bytes
 .../ibm/juno/core/test/filters/CT_BeanMap.class |   Bin 2694 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$1.class    |   Bin 822 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$2.class    |   Bin 945 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$A$1.class  |   Bin 954 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$A$2.class  |   Bin 1038 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$A$3.class  |   Bin 1135 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$A$4.class  |   Bin 1238 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$A.class    |   Bin 1695 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$B$1.class  |   Bin 954 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$B$2.class  |   Bin 1038 -> 0 bytes
 .../filters/CT_ByteArrayBase64Filter$B.class    |   Bin 1191 -> 0 bytes
 .../test/filters/CT_ByteArrayBase64Filter.class |   Bin 4507 -> 0 bytes
 .../core/test/filters/CT_CalendarFilter$A.class |   Bin 1478 -> 0 bytes
 .../core/test/filters/CT_CalendarFilter.class   |   Bin 20536 -> 0 bytes
 .../core/test/filters/CT_DateFilter$A.class     |   Bin 621 -> 0 bytes
 .../juno/core/test/filters/CT_DateFilter.class  |   Bin 5585 -> 0 bytes
 .../test/filters/CT_EnumerationFilter.class     |   Bin 1639 -> 0 bytes
 .../core/test/filters/CT_IteratorFilter.class   |   Bin 1639 -> 0 bytes
 .../core/test/filters/CT_ReaderFilter.class     |   Bin 1906 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$A.class   |   Bin 594 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$B$1.class |   Bin 866 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$B.class   |   Bin 881 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$C$1.class |   Bin 797 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$C.class   |   Bin 860 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$D.class   |   Bin 762 -> 0 bytes
 .../juno/core/test/html/CT_Common$E1$1.class    |   Bin 890 -> 0 bytes
 .../juno/core/test/html/CT_Common$E1$2.class    |   Bin 824 -> 0 bytes
 .../juno/core/test/html/CT_Common$E1$3.class    |   Bin 976 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$E1.class  |   Bin 1744 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$E2.class  |   Bin 461 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$F.class   |   Bin 703 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$G.class   |   Bin 570 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$J.class   |   Bin 1356 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$R1.class  |   Bin 575 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$R2.class  |   Bin 575 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Common$R3.class  |   Bin 575 -> 0 bytes
 .../com/ibm/juno/core/test/html/CT_Common.class |   Bin 14435 -> 0 bytes
 .../juno/core/test/html/CT_CommonParser$1.class |   Bin 1472 -> 0 bytes
 .../core/test/html/CT_CommonParser$A1.class     |   Bin 548 -> 0 bytes
 .../core/test/html/CT_CommonParser$A2.class     |   Bin 581 -> 0 bytes
 .../core/test/html/CT_CommonParser$A3.class     |   Bin 634 -> 0 bytes
 .../juno/core/test/html/CT_CommonParser$B.class |   Bin 442 -> 0 bytes
 .../juno/core/test/html/CT_CommonParser$C.class |   Bin 1100 -> 0 bytes
 .../juno/core/test/html/CT_CommonParser.class   |   Bin 7309 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$A1.class    |   Bin 442 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$A2.class    |   Bin 442 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$A3.class    |   Bin 577 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$A4.class    |   Bin 653 -> 0 bytes
 .../juno/core/test/html/CT_Html$A4Filter.class  |   Bin 1136 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$A5.class    |   Bin 653 -> 0 bytes
 .../juno/core/test/html/CT_Html$A5Filter.class  |   Bin 1184 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$B1.class    |   Bin 661 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$B2.class    |   Bin 556 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$C1.class    |   Bin 550 -> 0 bytes
 .../ibm/juno/core/test/html/CT_Html$C2.class    |   Bin 550 -> 0 bytes
 .../com/ibm/juno/core/test/html/CT_Html.class   |   Bin 5328 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$1.class    |   Bin 2117 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$2.class    |   Bin 792 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$3.class    |   Bin 797 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$4.class    |   Bin 797 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$5.class    |   Bin 1348 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$6.class    |   Bin 1333 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$7.class    |   Bin 1351 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$8.class    |   Bin 1332 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$9.class    |   Bin 1334 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$A.class    |   Bin 605 -> 0 bytes
 .../juno/core/test/ini/CT_ConfigFile$B.class    |   Bin 1512 -> 0 bytes
 .../ibm/juno/core/test/ini/CT_ConfigFile.class  |   Bin 42958 -> 0 bytes
 .../ibm/juno/core/test/ini/CT_ConfigMgr$1.class |   Bin 593 -> 0 bytes
 .../ibm/juno/core/test/ini/CT_ConfigMgr.class   |   Bin 9283 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$A.class   |   Bin 594 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$B$1.class |   Bin 866 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$B.class   |   Bin 881 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$C$1.class |   Bin 797 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$C.class   |   Bin 860 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$D.class   |   Bin 762 -> 0 bytes
 .../juno/core/test/jena/CT_Common$E1$1.class    |   Bin 818 -> 0 bytes
 .../juno/core/test/jena/CT_Common$E1$2.class    |   Bin 752 -> 0 bytes
 .../juno/core/test/jena/CT_Common$E1$3.class    |   Bin 846 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$E1.class  |   Bin 1765 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$E2.class  |   Bin 461 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$F.class   |   Bin 837 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$G.class   |   Bin 570 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$R1.class  |   Bin 575 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$R2.class  |   Bin 575 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_Common$R3.class  |   Bin 575 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Common.class |   Bin 13485 -> 0 bytes
 .../juno/core/test/jena/CT_CommonParser$1.class |   Bin 1472 -> 0 bytes
 .../core/test/jena/CT_CommonParser$A1.class     |   Bin 548 -> 0 bytes
 .../core/test/jena/CT_CommonParser$A2.class     |   Bin 581 -> 0 bytes
 .../core/test/jena/CT_CommonParser$A3.class     |   Bin 634 -> 0 bytes
 .../juno/core/test/jena/CT_CommonParser$B.class |   Bin 442 -> 0 bytes
 .../juno/core/test/jena/CT_CommonParser$C.class |   Bin 1100 -> 0 bytes
 .../juno/core/test/jena/CT_CommonParser.class   |   Bin 9004 -> 0 bytes
 .../juno/core/test/jena/CT_CommonXml$A.class    |   Bin 884 -> 0 bytes
 .../juno/core/test/jena/CT_CommonXml$B.class    |   Bin 879 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_CommonXml.class  |   Bin 2940 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$A.class  |   Bin 1257 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$B.class  |   Bin 2688 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$BA.class |   Bin 965 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$BB.class |   Bin 965 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$BC.class |   Bin 966 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$BD.class |   Bin 974 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$BE.class |   Bin 969 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$C.class  |   Bin 2504 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf$D.class  |   Bin 1139 -> 0 bytes
 .../com/ibm/juno/core/test/jena/CT_Rdf.class    |   Bin 11093 -> 0 bytes
 .../juno/core/test/jena/CT_RdfParser$A.class    |   Bin 2247 -> 0 bytes
 .../juno/core/test/jena/CT_RdfParser$A1.class   |   Bin 1885 -> 0 bytes
 .../ibm/juno/core/test/jena/CT_RdfParser.class  |   Bin 3611 -> 0 bytes
 .../juno/core/test/json/BrokenCognosOutput.txt  |     1 -
 .../ibm/juno/core/test/json/CT_Common$A.class   |   Bin 594 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$B$1.class |   Bin 866 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$B.class   |   Bin 881 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$C$1.class |   Bin 797 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$C.class   |   Bin 860 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$D.class   |   Bin 762 -> 0 bytes
 .../juno/core/test/json/CT_Common$E1$1.class    |   Bin 890 -> 0 bytes
 .../juno/core/test/json/CT_Common$E1$2.class    |   Bin 824 -> 0 bytes
 .../juno/core/test/json/CT_Common$E1$3.class    |   Bin 976 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$E1.class  |   Bin 1744 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$E2.class  |   Bin 461 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$F.class   |   Bin 703 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$G.class   |   Bin 570 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$J.class   |   Bin 1356 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$R1.class  |   Bin 575 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$R2.class  |   Bin 575 -> 0 bytes
 .../ibm/juno/core/test/json/CT_Common$R3.class  |   Bin 575 -> 0 bytes
 .../com/ibm/juno/core/test/json/CT_Common.class |   Bin 10391 -> 0 bytes
 .../juno/core/test/json/CT_CommonParser$1.class |   Bin 1472 -> 0 bytes
 .../core/test/json/CT_CommonParser$A1.class     |   Bin 548 -> 0 bytes
 .../core/test/json/CT_CommonParser$A2.class     |   Bin 581 -> 0 bytes
 .../core/test/json/CT_CommonParser$A3.class     |   Bin 634 -> 0 bytes
 .../juno/core/test/json/CT_CommonParser$B.class |   Bin 442 -> 0 bytes
 .../juno/core/test/json/CT_CommonParser$C.class |   Bin 1100 -> 0 bytes
 .../juno/core/test/json/CT_CommonParser.class   |   Bin 6353 -> 0 bytes
 .../com/ibm/juno/core/test/json/CT_Json$A.class |   Bin 658 -> 0 bytes
 .../com/ibm/juno/core/test/json/CT_Json$B.class |   Bin 1069 -> 0 bytes
 .../com/ibm/juno/core/test/json/CT_Json$C.class |   Bin 451 -> 0 bytes
 .../com/ibm/juno/core/test/json/CT_Json.class   |   Bin 7860 -> 0 bytes
 .../juno/core/test/json/CT_JsonParser$A.class   |   Bin 440 -> 0 bytes
 .../juno/core/test/json/CT_JsonParser$B.class   |   Bin 655 -> 0 bytes
 .../juno/core/test/json/CT_JsonParser$C.class   |   Bin 861 -> 0 bytes
 .../ibm/juno/core/test/json/CT_JsonParser.class |   Bin 7487 -> 0 bytes
 .../ibm/juno/core/test/json/CT_JsonSchema.class |   Bin 1611 -> 0 bytes
 .../urlencoding/CT_CommonParser_Uon$1.class     |   Bin 1531 -> 0 bytes
 .../urlencoding/CT_CommonParser_Uon$A1.class    |   Bin 607 -> 0 bytes
 .../urlencoding/CT_CommonParser_Uon$A2.class    |   Bin 640 -> 0 bytes
 .../urlencoding/CT_CommonParser_Uon$A3.class    |   Bin 671 -> 0 bytes
 .../urlencoding/CT_CommonParser_Uon$B.class     |   Bin 479 -> 0 bytes
 .../urlencoding/CT_CommonParser_Uon$C.class     |   Bin 1170 -> 0 bytes
 .../test/urlencoding/CT_CommonParser_Uon.class  |   Bin 5760 -> 0 bytes
 .../CT_CommonParser_UrlEncoding$1.class         |   Bin 1579 -> 0 bytes
 .../CT_CommonParser_UrlEncoding$A1.class        |   Bin 655 -> 0 bytes
 .../CT_CommonParser_UrlEncoding$A2.class        |   Bin 688 -> 0 bytes
 .../CT_CommonParser_UrlEncoding$A3.class        |   Bin 703 -> 0 bytes
 .../CT_CommonParser_UrlEncoding$B.class         |   Bin 511 -> 0 bytes
 .../CT_CommonParser_UrlEncoding$C.class         |   Bin 1226 -> 0 bytes
 .../CT_CommonParser_UrlEncoding.class           |   Bin 7161 -> 0 bytes
 .../core/test/urlencoding/CT_Common_Uon$A.class |   Bin 642 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$B$1.class    |   Bin 958 -> 0 bytes
 .../core/test/urlencoding/CT_Common_Uon$B.class |   Bin 962 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$C$1.class    |   Bin 889 -> 0 bytes
 .../core/test/urlencoding/CT_Common_Uon$C.class |   Bin 941 -> 0 bytes
 .../core/test/urlencoding/CT_Common_Uon$D.class |   Bin 843 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$E1$1.class   |   Bin 960 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$E1$2.class   |   Bin 916 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$E1$3.class   |   Bin 1046 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$E1.class     |   Bin 1869 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$E2.class     |   Bin 498 -> 0 bytes
 .../core/test/urlencoding/CT_Common_Uon$F.class |   Bin 751 -> 0 bytes
 .../core/test/urlencoding/CT_Common_Uon$G.class |   Bin 607 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$R1.class     |   Bin 634 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$R2.class     |   Bin 634 -> 0 bytes
 .../test/urlencoding/CT_Common_Uon$R3.class     |   Bin 634 -> 0 bytes
 .../core/test/urlencoding/CT_Common_Uon.class   |   Bin 10239 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$A.class   |   Bin 682 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$B$1.class |   Bin 1030 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$B.class   |   Bin 1026 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$C$1.class |   Bin 961 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$C.class   |   Bin 1005 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$D.class   |   Bin 907 -> 0 bytes
 .../CT_Common_UrlEncoding$E1$1.class            |   Bin 1016 -> 0 bytes
 .../CT_Common_UrlEncoding$E1$2.class            |   Bin 988 -> 0 bytes
 .../CT_Common_UrlEncoding$E1$3.class            |   Bin 1102 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$E1.class  |   Bin 1965 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$E2.class  |   Bin 530 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$F.class   |   Bin 791 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$G.class   |   Bin 639 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$R1.class  |   Bin 682 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$R2.class  |   Bin 682 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding$R3.class  |   Bin 682 -> 0 bytes
 .../urlencoding/CT_Common_UrlEncoding.class     |   Bin 10604 -> 0 bytes
 .../core/test/urlencoding/CT_UonParser$A.class  |   Bin 474 -> 0 bytes
 .../core/test/urlencoding/CT_UonParser.class    |   Bin 10441 -> 0 bytes
 .../CT_UonParserReader$SlowStringReader.class   |   Bin 1014 -> 0 bytes
 .../test/urlencoding/CT_UonParserReader.class   |   Bin 4228 -> 0 bytes
 .../test/urlencoding/CT_UonSerializer.class     |   Bin 10386 -> 0 bytes
 .../urlencoding/CT_UrlEncodingParser$A.class    |   Bin 506 -> 0 bytes
 .../urlencoding/CT_UrlEncodingParser$B.class    |   Bin 512 -> 0 bytes
 .../urlencoding/CT_UrlEncodingParser$C.class    |   Bin 552 -> 0 bytes
 .../urlencoding/CT_UrlEncodingParser$C1.class   |   Bin 493 -> 0 bytes
 .../urlencoding/CT_UrlEncodingParser$D.class    |   Bin 761 -> 0 bytes
 .../urlencoding/CT_UrlEncodingParser$D1.class   |   Bin 507 -> 0 bytes
 .../urlencoding/CT_UrlEncodingParser$D2.class   |   Bin 507 -> 0 bytes
 .../urlencoding/CT_UrlEncodingParser$E.class    |   Bin 526 -> 0 bytes
 .../test/urlencoding/CT_UrlEncodingParser.class |   Bin 20008 -> 0 bytes
 .../urlencoding/CT_UrlEncodingSerializer.class  |   Bin 10071 -> 0 bytes
 .../ibm/juno/core/test/urlencoding/DTOs$A.class |   Bin 653 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$1.class   |   Bin 678 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$10.class  |   Bin 929 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$2.class   |   Bin 737 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$3.class   |   Bin 739 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$4.class   |   Bin 808 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$5.class   |   Bin 927 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$6.class   |   Bin 678 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$7.class   |   Bin 737 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$8.class   |   Bin 739 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$B$9.class   |   Bin 808 -> 0 bytes
 .../ibm/juno/core/test/urlencoding/DTOs$B.class |   Bin 5496 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$1.class   |   Bin 678 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$10.class  |   Bin 929 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$2.class   |   Bin 737 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$3.class   |   Bin 739 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$4.class   |   Bin 808 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$5.class   |   Bin 927 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$6.class   |   Bin 678 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$7.class   |   Bin 737 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$8.class   |   Bin 739 -> 0 bytes
 .../juno/core/test/urlencoding/DTOs$C$9.class   |   Bin 808 -> 0 bytes
 .../ibm/juno/core/test/urlencoding/DTOs$C.class |   Bin 2634 -> 0 bytes
 .../ibm/juno/core/test/urlencoding/DTOs.class   |   Bin 511 -> 0 bytes
 .../com/ibm/juno/core/test/utils/CT_Args.class  |   Bin 1714 -> 0 bytes
 .../juno/core/test/utils/CT_ArrayUtils.class    |   Bin 4007 -> 0 bytes
 .../core/test/utils/CT_ByteArrayCache.class     |   Bin 1392 -> 0 bytes
 .../test/utils/CT_ByteArrayInOutStream.class    |   Bin 1335 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_CharSet.class   |   Bin 810 -> 0 bytes
 .../juno/core/test/utils/CT_ClassUtils$A.class  |   Bin 221 -> 0 bytes
 .../juno/core/test/utils/CT_ClassUtils$A1.class |   Bin 476 -> 0 bytes
 .../juno/core/test/utils/CT_ClassUtils$A2.class |   Bin 454 -> 0 bytes
 .../juno/core/test/utils/CT_ClassUtils.class    |   Bin 3319 -> 0 bytes
 .../core/test/utils/CT_CollectionUtils.class    |   Bin 979 -> 0 bytes
 .../juno/core/test/utils/CT_FilteredMap.class   |   Bin 1832 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_IOPipe$1.class  |   Bin 939 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_IOPipe$2.class  |   Bin 939 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_IOPipe$3.class  |   Bin 939 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_IOPipe$4.class  |   Bin 1007 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_IOPipe$5.class  |   Bin 944 -> 0 bytes
 .../test/utils/CT_IOPipe$TestInputStream.class  |   Bin 743 -> 0 bytes
 .../test/utils/CT_IOPipe$TestOutputStream.class |   Bin 911 -> 0 bytes
 .../core/test/utils/CT_IOPipe$TestReader.class  |   Bin 593 -> 0 bytes
 .../core/test/utils/CT_IOPipe$TestWriter.class  |   Bin 533 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_IOPipe.class    |   Bin 4988 -> 0 bytes
 .../test/utils/CT_IOUtils$TestInputStream.class |   Bin 747 -> 0 bytes
 .../utils/CT_IOUtils$TestOutputStream.class     |   Bin 915 -> 0 bytes
 .../core/test/utils/CT_IOUtils$TestReader.class |   Bin 597 -> 0 bytes
 .../core/test/utils/CT_IOUtils$TestWriter.class |   Bin 537 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_IOUtils.class   |   Bin 1476 -> 0 bytes
 .../juno/core/test/utils/CT_IdentityList.class  |   Bin 1038 -> 0 bytes
 .../juno/core/test/utils/CT_KeywordStore.class  |   Bin 1462 -> 0 bytes
 .../juno/core/test/utils/CT_MultiIterable.class |   Bin 2226 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_MultiSet.class  |   Bin 3670 -> 0 bytes
 .../juno/core/test/utils/CT_ParserReader.class  |   Bin 1365 -> 0 bytes
 .../core/test/utils/CT_PojoIntrospector.class   |   Bin 1678 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$1.class   |   Bin 978 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$2.class   |   Bin 928 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$3.class   |   Bin 981 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$4.class   |   Bin 978 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$5.class   |   Bin 973 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$A.class   |   Bin 731 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$B.class   |   Bin 1082 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$C.class   |   Bin 697 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$D1.class  |   Bin 864 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$D2.class  |   Bin 734 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$E.class   |   Bin 827 -> 0 bytes
 .../core/test/utils/CT_PojoQuery$F1$1.class     |   Bin 1385 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$F1.class  |   Bin 1402 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$F2.class  |   Bin 767 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$G.class   |   Bin 827 -> 0 bytes
 .../core/test/utils/CT_PojoQuery$H1$1.class     |   Bin 1385 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$H1.class  |   Bin 1402 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$H2.class  |   Bin 767 -> 0 bytes
 .../juno/core/test/utils/CT_PojoQuery$I.class   |   Bin 996 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_PojoQuery.class |   Bin 12626 -> 0 bytes
 .../juno/core/test/utils/CT_PojoRest$A.class    |   Bin 1691 -> 0 bytes
 .../core/test/utils/CT_PojoRest$Address.class   |   Bin 1244 -> 0 bytes
 .../test/utils/CT_PojoRest$AddressBook.class    |   Bin 1102 -> 0 bytes
 .../core/test/utils/CT_PojoRest$Person.class    |   Bin 1162 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_PojoRest.class  |   Bin 21086 -> 0 bytes
 .../ibm/juno/core/test/utils/CT_SimpleMap.class |   Bin 2167 -> 0 bytes
 .../test/utils/CT_StringBuilderWriter.class     |   Bin 1917 -> 0 bytes
 .../test/utils/CT_StringUtils$BadNumber.class   |   Bin 437 -> 0 bytes
 .../juno/core/test/utils/CT_StringUtils.class   |   Bin 14381 -> 0 bytes
 .../test/utils/CT_StringVarResolver$1.class     |   Bin 957 -> 0 bytes
 .../test/utils/CT_StringVarResolver$2.class     |   Bin 958 -> 0 bytes
 .../test/utils/CT_StringVarResolver$3.class     |   Bin 965 -> 0 bytes
 .../test/utils/CT_StringVarResolver$4.class     |   Bin 973 -> 0 bytes
 .../test/utils/CT_StringVarResolver$5.class     |   Bin 906 -> 0 bytes
 .../test/utils/CT_StringVarResolver$6.class     |   Bin 795 -> 0 bytes
 .../test/utils/CT_StringVarResolver$7.class     |   Bin 795 -> 0 bytes
 .../core/test/utils/CT_StringVarResolver.class  |   Bin 5850 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$A.class    |   Bin 590 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$B$1.class  |   Bin 858 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$B.class    |   Bin 874 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$C$1.class  |   Bin 789 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$C.class    |   Bin 853 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$D.class    |   Bin 755 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$E1$1.class |   Bin 884 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$E1$2.class |   Bin 816 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$E1$3.class |   Bin 970 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$E1.class   |   Bin 1750 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$E2.class   |   Bin 692 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$G.class    |   Bin 567 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$R1.class   |   Bin 570 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$R2.class   |   Bin 570 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Common$R3.class   |   Bin 570 -> 0 bytes
 .../juno/core/test/xml/CT_Common$Test7b.class   |   Bin 719 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Common.class  |   Bin 10265 -> 0 bytes
 .../juno/core/test/xml/CT_CommonParser$1.class  |   Bin 1467 -> 0 bytes
 .../juno/core/test/xml/CT_CommonParser$A1.class |   Bin 543 -> 0 bytes
 .../juno/core/test/xml/CT_CommonParser$A2.class |   Bin 576 -> 0 bytes
 .../juno/core/test/xml/CT_CommonParser$A3.class |   Bin 631 -> 0 bytes
 .../juno/core/test/xml/CT_CommonParser$B.class  |   Bin 439 -> 0 bytes
 .../juno/core/test/xml/CT_CommonParser$C.class  |   Bin 1094 -> 0 bytes
 .../juno/core/test/xml/CT_CommonParser.class    |   Bin 6580 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_CommonXml$A.class |   Bin 1014 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_CommonXml$B.class |   Bin 970 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_CommonXml.class   |   Bin 2383 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$A.class   |   Bin 510 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$B1.class  |   Bin 409 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$B2.class  |   Bin 411 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$C1.class  |   Bin 297 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$C2.class  |   Bin 435 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$C3.class  |   Bin 447 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$D.class   |   Bin 542 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$E.class   |   Bin 510 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$F.class   |   Bin 543 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$G.class   |   Bin 610 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$H.class   |   Bin 576 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$I.class   |   Bin 607 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Xml$J1$1.class    |   Bin 789 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$J1.class  |   Bin 862 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$J2.class  |   Bin 545 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$K.class   |   Bin 493 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$L.class   |   Bin 626 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$M.class   |   Bin 784 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$N.class   |   Bin 985 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$O.class   |   Bin 1020 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$P.class   |   Bin 1017 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_Xml$Person1.class |   Bin 890 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml$Q.class   |   Bin 1022 -> 0 bytes
 .../com/ibm/juno/core/test/xml/CT_Xml.class     |   Bin 24963 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$1.class  |   Bin 725 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$10.class |   Bin 739 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$2.class  |   Bin 725 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$3.class  |   Bin 739 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$4.class  |   Bin 739 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$5.class  |   Bin 721 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$6.class  |   Bin 721 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$7.class  |   Bin 711 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$8.class  |   Bin 711 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$9.class  |   Bin 737 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$A.class  |   Bin 965 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$B.class  |   Bin 818 -> 0 bytes
 .../core/test/xml/CT_XmlCollapsed$C$1.class     |   Bin 762 -> 0 bytes
 .../core/test/xml/CT_XmlCollapsed$C$2.class     |   Bin 762 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$C.class  |   Bin 1154 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$D.class  |   Bin 2445 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$E.class  |   Bin 1800 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$F1.class |   Bin 826 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$FA.class |   Bin 1149 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$FB.class |   Bin 977 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$FC.class |   Bin 982 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$G.class  |   Bin 1168 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$H.class  |   Bin 952 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$H1.class |   Bin 587 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed$I.class  |   Bin 975 -> 0 bytes
 .../juno/core/test/xml/CT_XmlCollapsed.class    |   Bin 8105 -> 0 bytes
 .../juno/core/test/xml/CT_XmlContent$A.class    |   Bin 838 -> 0 bytes
 .../juno/core/test/xml/CT_XmlContent$B.class    |   Bin 1013 -> 0 bytes
 .../xml/CT_XmlContent$BContentHandler.class     |   Bin 2057 -> 0 bytes
 .../juno/core/test/xml/CT_XmlContent$C1.class   |   Bin 626 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_XmlContent.class  |   Bin 5773 -> 0 bytes
 .../ibm/juno/core/test/xml/CT_XmlParser.class   |   Bin 2984 -> 0 bytes
 .../core/test/xml/testComparisonWithJson.json   |    17 -
 .../core/test/xml/testComparisonWithJson.xml    |    17 -
 .../ibm/juno/core/test/xml/testNamespaces.xml   |    17 -
 .../com/ibm/juno/core/test/xml/xml1a/T1.class   |   Bin 1152 -> 0 bytes
 .../com/ibm/juno/core/test/xml/xml1a/T2.class   |   Bin 1169 -> 0 bytes
 .../com/ibm/juno/core/test/xml/xml1b/T3.class   |   Bin 1111 -> 0 bytes
 .../com/ibm/juno/core/test/xml/xml1b/T4.class   |   Bin 1140 -> 0 bytes
 .../com/ibm/juno/core/test/xml/xml1b/T5.class   |   Bin 1169 -> 0 bytes
 .../com/ibm/juno/core/test/xml/xml1b/T6.class   |   Bin 1152 -> 0 bytes
 .../com/ibm/juno/core/test/xml/xml1b/T7.class   |   Bin 1270 -> 0 bytes
 .../juno/core/test/xml/xml1b/package-info.class |   Bin 273 -> 0 bytes
 .../com/ibm/juno/core/test/xml/xml1c/T8.class   |   Bin 789 -> 0 bytes
 .../com/ibm/juno/core/test/xml/xml1c/T9.class   |   Bin 499 -> 0 bytes
 .../juno/core/test/xml/xml1c/package-info.class |   Bin 478 -> 0 bytes
 .../PrimitiveAtomicObjectsBean$1.class          |   Bin 912 -> 0 bytes
 .../PrimitiveAtomicObjectsBean$2.class          |   Bin 906 -> 0 bytes
 .../testbeans/PrimitiveAtomicObjectsBean.class  |   Bin 2069 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$1.class |   Bin 839 -> 0 bytes
 .../testbeans/PrimitiveObjectsBean$10.class     |   Bin 855 -> 0 bytes
 .../testbeans/PrimitiveObjectsBean$11.class     |   Bin 855 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$2.class |   Bin 837 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$3.class |   Bin 853 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$4.class |   Bin 840 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$5.class |   Bin 846 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$6.class |   Bin 837 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$7.class |   Bin 840 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$8.class |   Bin 843 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean$9.class |   Bin 845 -> 0 bytes
 .../juno/testbeans/PrimitiveObjectsBean.class   |   Bin 6622 -> 0 bytes
 .../ibm/juno/testbeans/TestURI$TestURIb.class   |   Bin 571 -> 0 bytes
 .../com/ibm/juno/testbeans/TestURI.class        |   Bin 1280 -> 0 bytes
 .../bin/core/META-INF/MANIFEST.MF               |    39 +-
 .../core/com/ibm/juno/core/BeanContext.class    |   Bin 39727 -> 0 bytes
 .../bin/core/com/ibm/juno/core/BeanContext.java |  1804 ---
 .../com/ibm/juno/core/BeanContextFactory.class  |   Bin 12989 -> 0 bytes
 .../com/ibm/juno/core/BeanContextFactory.java   |   454 -
 .../ibm/juno/core/BeanContextProperties.class   |   Bin 2021 -> 0 bytes
 .../ibm/juno/core/BeanContextProperties.java    |   188 -
 .../core/com/ibm/juno/core/BeanMap$1$1.class    |   Bin 1891 -> 0 bytes
 .../bin/core/com/ibm/juno/core/BeanMap$1.class  |   Bin 1507 -> 0 bytes
 .../bin/core/com/ibm/juno/core/BeanMap.class    |   Bin 8831 -> 0 bytes
 .../bin/core/com/ibm/juno/core/BeanMap.java     |   461 -
 .../core/com/ibm/juno/core/BeanMapEntry.class   |   Bin 2398 -> 0 bytes
 .../core/com/ibm/juno/core/BeanMapEntry.java    |   121 -
 .../com/ibm/juno/core/BeanMeta$BeanMethod.class |   Bin 1996 -> 0 bytes
 .../core/BeanMeta$SubTypePropertyMeta.class     |   Bin 4607 -> 0 bytes
 .../bin/core/com/ibm/juno/core/BeanMeta.class   |   Bin 21850 -> 0 bytes
 .../bin/core/com/ibm/juno/core/BeanMeta.java    |   749 -
 .../com/ibm/juno/core/BeanMetaFiltered.class    |   Bin 2803 -> 0 bytes
 .../com/ibm/juno/core/BeanMetaFiltered.java     |    70 -
 .../com/ibm/juno/core/BeanPropertyMeta.class    |   Bin 23240 -> 0 bytes
 .../com/ibm/juno/core/BeanPropertyMeta.java     |   803 --
 .../juno/core/BeanProxyInvocationHandler.class  |   Bin 3213 -> 0 bytes
 .../juno/core/BeanProxyInvocationHandler.java   |    78 -
 .../ibm/juno/core/BeanRuntimeException.class    |   Bin 1822 -> 0 bytes
 .../com/ibm/juno/core/BeanRuntimeException.java |    63 -
 .../core/com/ibm/juno/core/ClassMeta$1.class    |   Bin 1002 -> 0 bytes
 .../ibm/juno/core/ClassMeta$ClassCategory.class |   Bin 1999 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ClassMeta.class  |   Bin 27370 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ClassMeta.java   |  1262 --
 .../bin/core/com/ibm/juno/core/CoreApi.class    |   Bin 3859 -> 0 bytes
 .../bin/core/com/ibm/juno/core/CoreApi.java     |   172 -
 .../bin/core/com/ibm/juno/core/Delegate.class   |   Bin 282 -> 0 bytes
 .../bin/core/com/ibm/juno/core/Delegate.java    |    29 -
 .../core/InvalidDataConversionException.class   |   Bin 1321 -> 0 bytes
 .../core/InvalidDataConversionException.java    |    33 -
 .../bin/core/com/ibm/juno/core/Lockable.class   |   Bin 1134 -> 0 bytes
 .../bin/core/com/ibm/juno/core/Lockable.java    |    84 -
 .../com/ibm/juno/core/LockedException.class     |   Bin 472 -> 0 bytes
 .../core/com/ibm/juno/core/LockedException.java |    28 -
 .../bin/core/com/ibm/juno/core/MediaRange.class |   Bin 6761 -> 0 bytes
 .../bin/core/com/ibm/juno/core/MediaRange.java  |   312 -
 .../core/com/ibm/juno/core/ObjectList$1.class   |   Bin 1368 -> 0 bytes
 .../core/com/ibm/juno/core/ObjectList$2$1.class |   Bin 1356 -> 0 bytes
 .../core/com/ibm/juno/core/ObjectList$2.class   |   Bin 1025 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ObjectList.class |   Bin 6761 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ObjectList.java  |   447 -
 .../core/com/ibm/juno/core/ObjectMap$1.class    |   Bin 1668 -> 0 bytes
 .../com/ibm/juno/core/ObjectMap$2$1$1.class     |   Bin 1595 -> 0 bytes
 .../core/com/ibm/juno/core/ObjectMap$2$1.class  |   Bin 1375 -> 0 bytes
 .../core/com/ibm/juno/core/ObjectMap$2.class    |   Bin 1235 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ObjectMap.class  |   Bin 20822 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ObjectMap.java   |  1282 --
 .../core/com/ibm/juno/core/PropertyNamer.class  |   Bin 192 -> 0 bytes
 .../core/com/ibm/juno/core/PropertyNamer.java   |    31 -
 .../ibm/juno/core/PropertyNamerDashedLC.class   |   Bin 1221 -> 0 bytes
 .../ibm/juno/core/PropertyNamerDashedLC.java    |    62 -
 .../ibm/juno/core/PropertyNamerDefault.class    |   Bin 572 -> 0 bytes
 .../com/ibm/juno/core/PropertyNamerDefault.java |    35 -
 .../bin/core/com/ibm/juno/core/Streamable.class |   Bin 260 -> 0 bytes
 .../bin/core/com/ibm/juno/core/Streamable.java  |    38 -
 .../core/com/ibm/juno/core/Visibility$1.class   |   Bin 841 -> 0 bytes
 .../bin/core/com/ibm/juno/core/Visibility.class |   Bin 3748 -> 0 bytes
 .../bin/core/com/ibm/juno/core/Visibility.java  |   195 -
 .../bin/core/com/ibm/juno/core/Writable.class   |   Bin 249 -> 0 bytes
 .../bin/core/com/ibm/juno/core/Writable.java    |    38 -
 .../com/ibm/juno/core/annotation/Bean.class     |   Bin 1016 -> 0 bytes
 .../core/com/ibm/juno/core/annotation/Bean.java |   216 -
 .../juno/core/annotation/BeanConstructor.class  |   Bin 570 -> 0 bytes
 .../juno/core/annotation/BeanConstructor.java   |    82 -
 .../ibm/juno/core/annotation/BeanIgnore.class   |   Bin 506 -> 0 bytes
 .../ibm/juno/core/annotation/BeanIgnore.java    |    34 -
 .../ibm/juno/core/annotation/BeanProperty.class |   Bin 1125 -> 0 bytes
 .../ibm/juno/core/annotation/BeanProperty.java  |   182 -
 .../ibm/juno/core/annotation/BeanSubType.class  |   Bin 550 -> 0 bytes
 .../ibm/juno/core/annotation/BeanSubType.java   |    42 -
 .../com/ibm/juno/core/annotation/Consumes.class |   Bin 536 -> 0 bytes
 .../com/ibm/juno/core/annotation/Consumes.java  |    69 -
 .../com/ibm/juno/core/annotation/Filter.class   |   Bin 766 -> 0 bytes
 .../com/ibm/juno/core/annotation/Filter.java    |    82 -
 .../ibm/juno/core/annotation/NameProperty.class |   Bin 445 -> 0 bytes
 .../ibm/juno/core/annotation/NameProperty.java  |    31 -
 .../juno/core/annotation/ParentProperty.class   |   Bin 449 -> 0 bytes
 .../juno/core/annotation/ParentProperty.java    |    31 -
 .../com/ibm/juno/core/annotation/Produces.class |   Bin 593 -> 0 bytes
 .../com/ibm/juno/core/annotation/Produces.java  |    82 -
 .../ibm/juno/core/annotation/Remoteable.class   |   Bin 493 -> 0 bytes
 .../ibm/juno/core/annotation/Remoteable.java    |    23 -
 .../core/com/ibm/juno/core/annotation/URI.class |   Bin 492 -> 0 bytes
 .../core/com/ibm/juno/core/annotation/URI.java  |    64 -
 .../com/ibm/juno/core/annotation/package.html   |    34 -
 .../com/ibm/juno/core/csv/CsvSerializer.class   |   Bin 4682 -> 0 bytes
 .../com/ibm/juno/core/csv/CsvSerializer.java    |    90 -
 .../bin/core/com/ibm/juno/core/csv/package.html |    55 -
 .../ibm/juno/core/doc-files/AddressBook.html    |   106 -
 .../bin/core/com/ibm/juno/core/dto/Link.class   |   Bin 2451 -> 0 bytes
 .../bin/core/com/ibm/juno/core/dto/Link.java    |   133 -
 .../com/ibm/juno/core/dto/ResultSetList.class   |   Bin 3565 -> 0 bytes
 .../com/ibm/juno/core/dto/ResultSetList.java    |   107 -
 .../com/ibm/juno/core/dto/atom/Category.class   |   Bin 1897 -> 0 bytes
 .../com/ibm/juno/core/dto/atom/Category.java    |   137 -
 .../com/ibm/juno/core/dto/atom/Common.class     |   Bin 1050 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Common.java |    84 -
 .../ibm/juno/core/dto/atom/CommonEntry.class    |   Bin 5067 -> 0 bytes
 .../com/ibm/juno/core/dto/atom/CommonEntry.java |   276 -
 .../com/ibm/juno/core/dto/atom/Content.class    |   Bin 2193 -> 0 bytes
 .../com/ibm/juno/core/dto/atom/Content.java     |   144 -
 .../core/com/ibm/juno/core/dto/atom/Entry.class |   Bin 6763 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Entry.java  |   243 -
 .../core/com/ibm/juno/core/dto/atom/Feed.class  |   Bin 7645 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Feed.java   |   284 -
 .../com/ibm/juno/core/dto/atom/Generator.class  |   Bin 1910 -> 0 bytes
 .../com/ibm/juno/core/dto/atom/Generator.java   |   139 -
 .../core/com/ibm/juno/core/dto/atom/Icon.class  |   Bin 1433 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Icon.java   |    93 -
 .../core/com/ibm/juno/core/dto/atom/Id.class    |   Bin 1432 -> 0 bytes
 .../bin/core/com/ibm/juno/core/dto/atom/Id.java |    92 -
 .../core/com/ibm/juno/core/dto/atom/Link.class  |   Bin 2646 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Link.java   |   222 -
 .../core/com/ibm/juno/core/dto/atom/Logo.class  |   Bin 1433 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Logo.java   |    93 -
 .../com/ibm/juno/core/dto/atom/Person.class     |   Bin 1654 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Person.java |   131 -
 .../com/ibm/juno/core/dto/atom/Source.class     |   Bin 6319 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Source.java |   223 -
 .../core/dto/atom/Text$TextContentHandler.class |   Bin 2341 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Text.class  |   Bin 2082 -> 0 bytes
 .../core/com/ibm/juno/core/dto/atom/Text.java   |   179 -
 .../core/dto/atom/doc-files/Example_HTML.png    |   Bin 31484 -> 0 bytes
 .../ibm/juno/core/dto/atom/package-info.class   |   Bin 417 -> 0 bytes
 .../ibm/juno/core/dto/atom/package-info.java    |    19 -
 .../com/ibm/juno/core/dto/atom/package.html     |   578 -
 .../com/ibm/juno/core/dto/cognos/Column.class   |   Bin 1838 -> 0 bytes
 .../com/ibm/juno/core/dto/cognos/Column.java    |   154 -
 .../ibm/juno/core/dto/cognos/DataSet$Row.class  |   Bin 648 -> 0 bytes
 .../com/ibm/juno/core/dto/cognos/DataSet.class  |   Bin 3673 -> 0 bytes
 .../com/ibm/juno/core/dto/cognos/DataSet.java   |   188 -
 .../ibm/juno/core/dto/cognos/doc-files/HTML.png |   Bin 8476 -> 0 bytes
 .../ibm/juno/core/dto/cognos/doc-files/JSON.png |   Bin 6963 -> 0 bytes
 .../juno/core/dto/cognos/doc-files/RDFXML.png   |   Bin 19981 -> 0 bytes
 .../ibm/juno/core/dto/cognos/package-info.class |   Bin 310 -> 0 bytes
 .../ibm/juno/core/dto/cognos/package-info.java  |    13 -
 .../com/ibm/juno/core/dto/cognos/package.html   |   170 -
 .../ibm/juno/core/dto/jsonschema/JsonType.class |   Bin 2223 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/JsonType.java  |   103 -
 .../core/dto/jsonschema/JsonTypeArray.class     |   Bin 1098 -> 0 bytes
 .../juno/core/dto/jsonschema/JsonTypeArray.java |    50 -
 .../ibm/juno/core/dto/jsonschema/Sample$1.class |   Bin 1811 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/Sample.class   |   Bin 2015 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/Sample.java    |    63 -
 .../Schema$BooleanOrSchemaArrayFilter.class     |   Bin 1704 -> 0 bytes
 .../Schema$BooleanOrSchemaFilter.class          |   Bin 1613 -> 0 bytes
 .../Schema$JsonTypeOrJsonTypeArrayFilter.class  |   Bin 1739 -> 0 bytes
 .../Schema$SchemaOrSchemaArrayFilter.class      |   Bin 1678 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/Schema.class   |   Bin 21125 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/Schema.java    |  1392 --
 .../juno/core/dto/jsonschema/SchemaArray.class  |   Bin 1082 -> 0 bytes
 .../juno/core/dto/jsonschema/SchemaArray.java   |    50 -
 .../juno/core/dto/jsonschema/SchemaMap.class    |   Bin 3080 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/SchemaMap.java |   119 -
 .../core/dto/jsonschema/SchemaProperty.class    |   Bin 886 -> 0 bytes
 .../core/dto/jsonschema/SchemaProperty.java     |    44 -
 .../jsonschema/SchemaPropertySimpleArray.class  |   Bin 927 -> 0 bytes
 .../jsonschema/SchemaPropertySimpleArray.java   |    41 -
 .../juno/core/dto/jsonschema/SchemaRef.class    |   Bin 667 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/SchemaRef.java |    34 -
 .../dto/jsonschema/doc-files/Example_Html.png   |   Bin 31260 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Json.png   |   Bin 22006 -> 0 bytes
 .../jsonschema/doc-files/Example_Options.png    |   Bin 41887 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Turtle.png |   Bin 28988 -> 0 bytes
 .../jsonschema/doc-files/Example_UrlEncoded.png |   Bin 21715 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Xml.png    |   Bin 28095 -> 0 bytes
 .../doc-files/Example_XmlRdfAbbrev.png          |   Bin 36296 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/package.html   |   511 -
 .../bin/core/com/ibm/juno/core/dto/package.html |    34 -
 .../com/ibm/juno/core/encoders/Encoder.class    |   Bin 550 -> 0 bytes
 .../com/ibm/juno/core/encoders/Encoder.java     |    53 -
 .../encoders/EncoderGroup$EncoderEntry.class    |   Bin 1630 -> 0 bytes
 .../ibm/juno/core/encoders/EncoderGroup.class   |   Bin 5451 -> 0 bytes
 .../ibm/juno/core/encoders/EncoderGroup.java    |   195 -
 .../ibm/juno/core/encoders/GzipEncoder$1.class  |   Bin 878 -> 0 bytes
 .../ibm/juno/core/encoders/GzipEncoder.class    |   Bin 1094 -> 0 bytes
 .../com/ibm/juno/core/encoders/GzipEncoder.java |    44 -
 .../juno/core/encoders/IdentityEncoder.class    |   Bin 959 -> 0 bytes
 .../ibm/juno/core/encoders/IdentityEncoder.java |    43 -
 .../com/ibm/juno/core/encoders/package.html     |    53 -
 .../juno/core/filter/AnnotationBeanFilter.class |   Bin 3014 -> 0 bytes
 .../juno/core/filter/AnnotationBeanFilter.java  |    63 -
 .../com/ibm/juno/core/filter/BeanFilter.class   |   Bin 5773 -> 0 bytes
 .../com/ibm/juno/core/filter/BeanFilter.java    |   472 -
 .../juno/core/filter/Filter$FilterType.class    |   Bin 1151 -> 0 bytes
 .../com/ibm/juno/core/filter/Filter$NULL.class  |   Bin 356 -> 0 bytes
 .../core/com/ibm/juno/core/filter/Filter.class  |   Bin 1942 -> 0 bytes
 .../core/com/ibm/juno/core/filter/Filter.java   |   134 -
 .../juno/core/filter/InterfaceBeanFilter.class  |   Bin 774 -> 0 bytes
 .../juno/core/filter/InterfaceBeanFilter.java   |    35 -
 .../ibm/juno/core/filter/PojoFilter$NULL.class  |   Bin 470 -> 0 bytes
 .../com/ibm/juno/core/filter/PojoFilter.class   |   Bin 4888 -> 0 bytes
 .../com/ibm/juno/core/filter/PojoFilter.java    |   261 -
 .../ibm/juno/core/filter/SurrogateFilter.class  |   Bin 4270 -> 0 bytes
 .../ibm/juno/core/filter/SurrogateFilter.java   |   203 -
 .../ibm/juno/core/filter/doc-files/classes.dnx  |    99 -
 .../ibm/juno/core/filter/doc-files/classes.png  |   Bin 15527 -> 0 bytes
 .../core/com/ibm/juno/core/filter/package.html  |   764 -
 .../juno/core/filters/BeanStringFilter.class    |   Bin 1046 -> 0 bytes
 .../ibm/juno/core/filters/BeanStringFilter.java |    35 -
 .../core/filters/ByteArrayBase64Filter.class    |   Bin 1765 -> 0 bytes
 .../core/filters/ByteArrayBase64Filter.java     |    47 -
 .../core/filters/CalendarFilter$ISO8601DT.class |   Bin 1965 -> 0 bytes
 .../filters/CalendarFilter$ISO8601DTZ.class     |   Bin 2313 -> 0 bytes
 .../core/filters/CalendarFilter$Medium.class    |   Bin 1182 -> 0 bytes
 .../core/filters/CalendarFilter$RFC2822D.class  |   Bin 1117 -> 0 bytes
 .../core/filters/CalendarFilter$RFC2822DT.class |   Bin 1136 -> 0 bytes
 .../filters/CalendarFilter$RFC2822DTZ.class     |   Bin 1214 -> 0 bytes
 .../core/filters/CalendarFilter$Simple.class    |   Bin 1119 -> 0 bytes
 .../core/filters/CalendarFilter$ToString.class  |   Bin 1134 -> 0 bytes
 .../ibm/juno/core/filters/CalendarFilter.class  |   Bin 4852 -> 0 bytes
 .../ibm/juno/core/filters/CalendarFilter.java   |   289 -
 .../juno/core/filters/CalendarLongFilter.class  |   Bin 2306 -> 0 bytes
 .../juno/core/filters/CalendarLongFilter.java   |    52 -
 .../juno/core/filters/CalendarMapFilter.class   |   Bin 3010 -> 0 bytes
 .../juno/core/filters/CalendarMapFilter.java    |    60 -
 .../core/filters/DateFilter$ISO8601DT.class     |   Bin 2816 -> 0 bytes
 .../core/filters/DateFilter$ISO8601DTP.class    |   Bin 526 -> 0 bytes
 .../core/filters/DateFilter$ISO8601DTPNZ.class  |   Bin 1115 -> 0 bytes
 .../core/filters/DateFilter$ISO8601DTZ.class    |   Bin 2173 -> 0 bytes
 .../core/filters/DateFilter$ISO8601DTZP.class   |   Bin 529 -> 0 bytes
 .../juno/core/filters/DateFilter$Medium.class   |   Bin 1154 -> 0 bytes
 .../juno/core/filters/DateFilter$RFC2822D.class |   Bin 1089 -> 0 bytes
 .../core/filters/DateFilter$RFC2822DT.class     |   Bin 1108 -> 0 bytes
 .../core/filters/DateFilter$RFC2822DTZ.class    |   Bin 1140 -> 0 bytes
 .../juno/core/filters/DateFilter$Simple.class   |   Bin 1091 -> 0 bytes
 .../juno/core/filters/DateFilter$SimpleP.class  |   Bin 1098 -> 0 bytes
 .../juno/core/filters/DateFilter$ToString.class |   Bin 1106 -> 0 bytes
 .../com/ibm/juno/core/filters/DateFilter.class  |   Bin 4397 -> 0 bytes
 .../com/ibm/juno/core/filters/DateFilter.java   |   345 -
 .../ibm/juno/core/filters/DateLongFilter.class  |   Bin 2119 -> 0 bytes
 .../ibm/juno/core/filters/DateLongFilter.java   |    48 -
 .../ibm/juno/core/filters/DateMapFilter.class   |   Bin 2437 -> 0 bytes
 .../ibm/juno/core/filters/DateMapFilter.java    |    52 -
 .../juno/core/filters/EnumerationFilter.class   |   Bin 1138 -> 0 bytes
 .../juno/core/filters/EnumerationFilter.java    |    35 -
 .../ibm/juno/core/filters/IteratorFilter.class  |   Bin 1102 -> 0 bytes
 .../ibm/juno/core/filters/IteratorFilter.java   |    35 -
 .../juno/core/filters/ReaderFilter$Html.class   |   Bin 828 -> 0 bytes
 .../juno/core/filters/ReaderFilter$Json.class   |   Bin 828 -> 0 bytes
 .../core/filters/ReaderFilter$PlainText.class   |   Bin 744 -> 0 bytes
 .../juno/core/filters/ReaderFilter$Xml.class    |   Bin 821 -> 0 bytes
 .../ibm/juno/core/filters/ReaderFilter.class    |   Bin 2399 -> 0 bytes
 .../com/ibm/juno/core/filters/ReaderFilter.java |   108 -
 .../filters/XMLGregorianCalendarFilter.class    |   Bin 2373 -> 0 bytes
 .../filters/XMLGregorianCalendarFilter.java     |    60 -
 .../core/com/ibm/juno/core/filters/package.html |    59 -
 .../juno/core/html/HtmlBeanPropertyMeta.class   |   Bin 2095 -> 0 bytes
 .../juno/core/html/HtmlBeanPropertyMeta.java    |    86 -
 .../com/ibm/juno/core/html/HtmlClassMeta.class  |   Bin 1516 -> 0 bytes
 .../com/ibm/juno/core/html/HtmlClassMeta.java   |    88 -
 .../ibm/juno/core/html/HtmlDocSerializer.class  |   Bin 6465 -> 0 bytes
 .../ibm/juno/core/html/HtmlDocSerializer.java   |   162 -
 .../core/html/HtmlDocSerializerProperties.class |   Bin 842 -> 0 bytes
 .../core/html/HtmlDocSerializerProperties.java  |   165 -
 .../core/com/ibm/juno/core/html/HtmlLink.class  |   Bin 579 -> 0 bytes
 .../core/com/ibm/juno/core/html/HtmlLink.java   |    45 -
 .../com/ibm/juno/core/html/HtmlParser$Tag.class |   Bin 6106 -> 0 bytes
 .../com/ibm/juno/core/html/HtmlParser.class     |   Bin 29140 -> 0 bytes
 .../core/com/ibm/juno/core/html/HtmlParser.java |   743 -
 .../ibm/juno/core/html/HtmlParserContext.class  |   Bin 2579 -> 0 bytes
 .../ibm/juno/core/html/HtmlParserContext.java   |    78 -
 .../juno/core/html/HtmlParserProperties.class   |   Bin 1025 -> 0 bytes
 .../juno/core/html/HtmlParserProperties.java    |    52 -
 .../core/html/HtmlSchemaDocSerializer.class     |   Bin 6504 -> 0 bytes
 .../juno/core/html/HtmlSchemaDocSerializer.java |   144 -
 .../ibm/juno/core/html/HtmlSerializer$Sq.class  |   Bin 6359 -> 0 bytes
 .../core/html/HtmlSerializer$SqReadable.class   |   Bin 681 -> 0 bytes
 .../com/ibm/juno/core/html/HtmlSerializer.class |   Bin 26106 -> 0 bytes
 .../com/ibm/juno/core/html/HtmlSerializer.java  |   668 -
 .../juno/core/html/HtmlSerializerContext.class  |   Bin 4126 -> 0 bytes
 .../juno/core/html/HtmlSerializerContext.java   |   147 -
 .../core/html/HtmlSerializerProperties.class    |   Bin 2912 -> 0 bytes
 .../core/html/HtmlSerializerProperties.java     |   113 -
 .../juno/core/html/HtmlSerializerWriter.class   |   Bin 14671 -> 0 bytes
 .../juno/core/html/HtmlSerializerWriter.java    |   328 -
 .../core/html/HtmlStrippedDocSerializer.class   |   Bin 2144 -> 0 bytes
 .../core/html/HtmlStrippedDocSerializer.java    |    55 -
 .../ibm/juno/core/html/SimpleHtmlWriter.class   |   Bin 623 -> 0 bytes
 .../ibm/juno/core/html/SimpleHtmlWriter.java    |    36 -
 .../ibm/juno/core/html/annotation/Html.class    |   Bin 648 -> 0 bytes
 .../com/ibm/juno/core/html/annotation/Html.java |    54 -
 .../ibm/juno/core/html/annotation/package.html  |    34 -
 .../core/html/doc-files/HTML_DESCRIPTION.png    |   Bin 3644 -> 0 bytes
 .../ibm/juno/core/html/doc-files/HTML_LINKS.png |   Bin 593 -> 0 bytes
 .../ibm/juno/core/html/doc-files/HTML_TITLE.png |   Bin 2435 -> 0 bytes
 .../ibm/juno/core/html/dto/HtmlElement.class    |   Bin 413 -> 0 bytes
 .../com/ibm/juno/core/html/dto/HtmlElement.java |    23 -
 .../core/com/ibm/juno/core/html/dto/Img.class   |   Bin 583 -> 0 bytes
 .../core/com/ibm/juno/core/html/dto/Img.java    |    35 -
 .../com/ibm/juno/core/html/dto/package.html     |    34 -
 .../core/com/ibm/juno/core/html/package.html    |    72 -
 .../core/com/ibm/juno/core/ini/ConfigFile.class |   Bin 13890 -> 0 bytes
 .../core/com/ibm/juno/core/ini/ConfigFile.java  |   743 -
 .../ibm/juno/core/ini/ConfigFileFormat.class    |   Bin 1108 -> 0 bytes
 .../com/ibm/juno/core/ini/ConfigFileFormat.java |    25 -
 .../ibm/juno/core/ini/ConfigFileImpl$1$1.class  |   Bin 2396 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileImpl$1.class    |   Bin 1248 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileImpl$2$1.class  |   Bin 2139 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileImpl$2.class    |   Bin 1097 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileImpl$3$1.class  |   Bin 2108 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileImpl$3.class    |   Bin 1144 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileImpl$4.class    |   Bin 801 -> 0 bytes
 .../com/ibm/juno/core/ini/ConfigFileImpl.class  |   Bin 22336 -> 0 bytes
 .../com/ibm/juno/core/ini/ConfigFileImpl.java   |   729 -
 .../ibm/juno/core/ini/ConfigFileListener.class  |   Bin 904 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileListener.java   |    42 -
 .../ibm/juno/core/ini/ConfigFileWrapped.class   |   Bin 8325 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileWrapped.java    |   259 -
 .../ibm/juno/core/ini/ConfigFileWritable.class  |   Bin 1064 -> 0 bytes
 .../ibm/juno/core/ini/ConfigFileWritable.java   |    40 -
 .../core/com/ibm/juno/core/ini/ConfigMgr.class  |   Bin 8960 -> 0 bytes
 .../core/com/ibm/juno/core/ini/ConfigMgr.java   |   312 -
 .../com/ibm/juno/core/ini/ConfigUtils.class     |   Bin 1223 -> 0 bytes
 .../core/com/ibm/juno/core/ini/ConfigUtils.java |    37 -
 .../core/com/ibm/juno/core/ini/Encoder.class    |   Bin 210 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ini/Encoder.java |    35 -
 .../com/ibm/juno/core/ini/EntryListener.class   |   Bin 1049 -> 0 bytes
 .../com/ibm/juno/core/ini/EntryListener.java    |    44 -
 .../com/ibm/juno/core/ini/Section$1$1.class     |   Bin 2658 -> 0 bytes
 .../core/com/ibm/juno/core/ini/Section$1.class  |   Bin 1159 -> 0 bytes
 .../com/ibm/juno/core/ini/Section$2$1.class     |   Bin 2384 -> 0 bytes
 .../core/com/ibm/juno/core/ini/Section$2.class  |   Bin 1034 -> 0 bytes
 .../core/com/ibm/juno/core/ini/Section.class    |   Bin 16089 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ini/Section.java |   577 -
 .../com/ibm/juno/core/ini/SectionListener.class |   Bin 1776 -> 0 bytes
 .../com/ibm/juno/core/ini/SectionListener.java  |    59 -
 .../core/com/ibm/juno/core/ini/XorEncoder.class |   Bin 1552 -> 0 bytes
 .../core/com/ibm/juno/core/ini/XorEncoder.java  |    46 -
 .../com/ibm/juno/core/ini/doc-files/config1.png |   Bin 39851 -> 0 bytes
 .../com/ibm/juno/core/ini/doc-files/config2.png |   Bin 48881 -> 0 bytes
 .../com/ibm/juno/core/ini/doc-files/config3.png |   Bin 59095 -> 0 bytes
 .../bin/core/com/ibm/juno/core/ini/package.html |   643 -
 .../core/com/ibm/juno/core/jena/Constants.class |   Bin 974 -> 0 bytes
 .../core/com/ibm/juno/core/jena/Constants.java  |    91 -
 .../juno/core/jena/RdfBeanPropertyMeta.class    |   Bin 2183 -> 0 bytes
 .../ibm/juno/core/jena/RdfBeanPropertyMeta.java |    78 -
 .../com/ibm/juno/core/jena/RdfClassMeta.class   |   Bin 1937 -> 0 bytes
 .../com/ibm/juno/core/jena/RdfClassMeta.java    |    82 -
 .../juno/core/jena/RdfCollectionFormat.class    |   Bin 1245 -> 0 bytes
 .../ibm/juno/core/jena/RdfCollectionFormat.java |    52 -
 .../com/ibm/juno/core/jena/RdfParser$N3.class   |   Bin 5394 -> 0 bytes
 .../ibm/juno/core/jena/RdfParser$NTriple.class  |   Bin 5426 -> 0 bytes
 .../ibm/juno/core/jena/RdfParser$Turtle.class   |   Bin 5419 -> 0 bytes
 .../com/ibm/juno/core/jena/RdfParser$Xml.class  |   Bin 5412 -> 0 bytes
 .../core/com/ibm/juno/core/jena/RdfParser.class |   Bin 27508 -> 0 bytes
 .../core/com/ibm/juno/core/jena/RdfParser.java  |   527 -
 .../ibm/juno/core/jena/RdfParserContext.class   |   Bin 5754 -> 0 bytes
 .../ibm/juno/core/jena/RdfParserContext.java    |   136 -
 .../juno/core/jena/RdfParserProperties.class    |   Bin 1594 -> 0 bytes
 .../ibm/juno/core/jena/RdfParserProperties.java |    68 -
 .../ibm/juno/core/jena/RdfProperties$1.class    |   Bin 826 -> 0 bytes
 .../com/ibm/juno/core/jena/RdfProperties.class  |   Bin 4532 -> 0 bytes
 .../com/ibm/juno/core/jena/RdfProperties.java   |   415 -
 .../ibm/juno/core/jena/RdfSerializer$1.class    |   Bin 891 -> 0 bytes
 .../ibm/juno/core/jena/RdfSerializer$N3.class   |   Bin 5068 -> 0 bytes
 .../juno/core/jena/RdfSerializer$NTriple.class  |   Bin 5100 -> 0 bytes
 .../juno/core/jena/RdfSerializer$Turtle.class   |   Bin 5093 -> 0 bytes
 .../ibm/juno/core/jena/RdfSerializer$Xml.class  |   Bin 5086 -> 0 bytes
 .../core/jena/RdfSerializer$XmlAbbrev.class     |   Bin 5152 -> 0 bytes
 .../com/ibm/juno/core/jena/RdfSerializer.class  |   Bin 23240 -> 0 bytes
 .../com/ibm/juno/core/jena/RdfSerializer.java   |   466 -
 .../juno/core/jena/RdfSerializerContext.class   |   Bin 6787 -> 0 bytes
 .../juno/core/jena/RdfSerializerContext.java    |   135 -
 .../core/jena/RdfSerializerProperties.class     |   Bin 1772 -> 0 bytes
 .../juno/core/jena/RdfSerializerProperties.java |    80 -
 .../core/com/ibm/juno/core/jena/RdfUtils.class  |   Bin 3704 -> 0 bytes
 .../core/com/ibm/juno/core/jena/RdfUtils.java   |    87 -
 .../com/ibm/juno/core/jena/annotation/Rdf.class |   Bin 757 -> 0 bytes
 .../com/ibm/juno/core/jena/annotation/Rdf.java  |    58 -
 .../ibm/juno/core/jena/annotation/RdfNs.class   |   Bin 488 -> 0 bytes
 .../ibm/juno/core/jena/annotation/RdfNs.java    |    37 -
 .../juno/core/jena/annotation/RdfSchema.class   |   Bin 658 -> 0 bytes
 .../juno/core/jena/annotation/RdfSchema.java    |    94 -
 .../ibm/juno/core/jena/annotation/package.html  |    34 -
 .../juno/core/jena/doc-files/Example_HTML.png   |   Bin 35528 -> 0 bytes
 .../ibm/juno/core/jena/doc-files/Example_N3.png |   Bin 37430 -> 0 bytes
 .../core/jena/doc-files/Example_NTriple.png     |   Bin 48413 -> 0 bytes
 .../juno/core/jena/doc-files/Example_RDFXML.png |   Bin 30486 -> 0 bytes
 .../jena/doc-files/Example_RDFXMLABBREV.png     |   Bin 30356 -> 0 bytes
 .../juno/core/jena/doc-files/Example_Turtle.png |   Bin 35328 -> 0 bytes
 .../core/com/ibm/juno/core/jena/package.html    |  1687 ---
 .../core/jso/JavaSerializedObjectParser.class   |   Bin 2598 -> 0 bytes
 .../core/jso/JavaSerializedObjectParser.java    |    55 -
 .../jso/JavaSerializedObjectSerializer.class    |   Bin 2227 -> 0 bytes
 .../jso/JavaSerializedObjectSerializer.java     |    52 -
 .../bin/core/com/ibm/juno/core/jso/package.html |    34 -
 .../com/ibm/juno/core/json/JsonClassMeta.class  |   Bin 1237 -> 0 bytes
 .../com/ibm/juno/core/json/JsonClassMeta.java   |    55 -
 .../com/ibm/juno/core/json/JsonParser.class     |   Bin 30289 -> 0 bytes
 .../core/com/ibm/juno/core/json/JsonParser.java |   852 --
 .../ibm/juno/core/json/JsonParserContext.class  |   Bin 2067 -> 0 bytes
 .../ibm/juno/core/json/JsonParserContext.java   |    69 -
 .../juno/core/json/JsonParserProperties.class   |   Bin 1648 -> 0 bytes
 .../juno/core/json/JsonParserProperties.java    |    85 -
 .../juno/core/json/JsonSchemaSerializer.class   |   Bin 7569 -> 0 bytes
 .../juno/core/json/JsonSchemaSerializer.java    |   154 -
 .../core/json/JsonSerializer$Readable.class     |   Bin 5118 -> 0 bytes
 .../juno/core/json/JsonSerializer$Simple.class  |   Bin 5351 -> 0 bytes
 .../json/JsonSerializer$SimpleReadable.class    |   Bin 750 -> 0 bytes
 .../JsonSerializer$SimpleReadableSafe.class     |   Bin 731 -> 0 bytes
 .../com/ibm/juno/core/json/JsonSerializer.class |   Bin 18306 -> 0 bytes
 .../com/ibm/juno/core/json/JsonSerializer.java  |   457 -
 .../juno/core/json/JsonSerializerContext.class  |   Bin 2584 -> 0 bytes
 .../juno/core/json/JsonSerializerContext.java   |    89 -
 .../core/json/JsonSerializerProperties.class    |   Bin 1841 -> 0 bytes
 .../core/json/JsonSerializerProperties.java     |    91 -
 .../juno/core/json/JsonSerializerWriter.class   |   Bin 8041 -> 0 bytes
 .../juno/core/json/JsonSerializerWriter.java    |   262 -
 .../ibm/juno/core/json/annotation/Json.class    |   Bin 549 -> 0 bytes
 .../com/ibm/juno/core/json/annotation/Json.java |    72 -
 .../ibm/juno/core/json/annotation/package.html  |    34 -
 .../juno/core/json/doc-files/Example_HTML.png   |   Bin 35528 -> 0 bytes
 .../juno/core/json/doc-files/Example_JSON.png   |   Bin 26954 -> 0 bytes
 .../core/json/doc-files/Example_JSONSchema.png  |   Bin 34114 -> 0 bytes
 .../core/json/doc-files/Example_JSONSimple.png  |   Bin 30920 -> 0 bytes
 .../core/com/ibm/juno/core/json/package.html    |  1460 --
 .../bin/core/com/ibm/juno/core/package.html     |   210 -
 .../juno/core/parser/InputStreamParser.class    |   Bin 1249 -> 0 bytes
 .../ibm/juno/core/parser/InputStreamParser.java |    52 -
 .../ibm/juno/core/parser/ParseException.class   |   Bin 2158 -> 0 bytes
 .../ibm/juno/core/parser/ParseException.java    |    81 -
 .../core/com/ibm/juno/core/parser/Parser.class  |   Bin 13715 -> 0 bytes
 .../core/com/ibm/juno/core/parser/Parser.java   |   573 -
 .../ibm/juno/core/parser/ParserContext.class    |   Bin 3288 -> 0 bytes
 .../com/ibm/juno/core/parser/ParserContext.java |   132 -
 .../core/parser/ParserGroup$ParserEntry.class   |   Bin 1860 -> 0 bytes
 .../com/ibm/juno/core/parser/ParserGroup.class  |   Bin 8908 -> 0 bytes
 .../com/ibm/juno/core/parser/ParserGroup.java   |   317 -
 .../ibm/juno/core/parser/ParserListener.class   |   Bin 795 -> 0 bytes
 .../ibm/juno/core/parser/ParserListener.java    |    40 -
 .../ibm/juno/core/parser/ParserProperties.class |   Bin 1341 -> 0 bytes
 .../ibm/juno/core/parser/ParserProperties.java  |    57 -
 .../com/ibm/juno/core/parser/ParserReader.class |   Bin 5140 -> 0 bytes
 .../com/ibm/juno/core/parser/ParserReader.java  |   379 -
 .../com/ibm/juno/core/parser/ReaderParser.class |   Bin 13034 -> 0 bytes
 .../com/ibm/juno/core/parser/ReaderParser.java  |   394 -
 .../core/com/ibm/juno/core/parser/package.html  |   126 -
 .../juno/core/plaintext/PlainTextParser.class   |   Bin 2659 -> 0 bytes
 .../juno/core/plaintext/PlainTextParser.java    |    68 -
 .../core/plaintext/PlainTextSerializer.class    |   Bin 2441 -> 0 bytes
 .../core/plaintext/PlainTextSerializer.java     |    66 -
 .../com/ibm/juno/core/plaintext/package.html    |    34 -
 .../serializer/OutputStreamSerializer.class     |   Bin 1086 -> 0 bytes
 .../core/serializer/OutputStreamSerializer.java |    51 -
 .../core/serializer/SerializeException.class    |   Bin 1312 -> 0 bytes
 .../core/serializer/SerializeException.java     |    53 -
 .../ibm/juno/core/serializer/Serializer.class   |   Bin 12341 -> 0 bytes
 .../ibm/juno/core/serializer/Serializer.java    |   377 -
 .../core/serializer/SerializerContext$1.class   |   Bin 260 -> 0 bytes
 .../SerializerContext$StackElement.class        |   Bin 2647 -> 0 bytes
 .../core/serializer/SerializerContext.class     |   Bin 11485 -> 0 bytes
 .../juno/core/serializer/SerializerContext.java |   464 -
 .../SerializerGroup$SerializerEntry.class       |   Bin 1944 -> 0 bytes
 .../juno/core/serializer/SerializerGroup.class  |   Bin 9261 -> 0 bytes
 .../juno/core/serializer/SerializerGroup.java   |   345 -
 .../core/serializer/SerializerProperties.class  |   Bin 3865 -> 0 bytes
 .../core/serializer/SerializerProperties.java   |   303 -
 .../juno/core/serializer/SerializerWriter.class |   Bin 4439 -> 0 bytes
 .../juno/core/serializer/SerializerWriter.java  |   308 -
 .../ibm/juno/core/serializer/StringObject.class |   Bin 1887 -> 0 bytes
 .../ibm/juno/core/serializer/StringObject.java  |    81 -
 .../juno/core/serializer/WriterSerializer.class |   Bin 5593 -> 0 bytes
 .../juno/core/serializer/WriterSerializer.java  |   162 -
 .../com/ibm/juno/core/serializer/package.html   |   128 -
 .../ibm/juno/core/soap/SoapXmlSerializer.class  |   Bin 2914 -> 0 bytes
 .../ibm/juno/core/soap/SoapXmlSerializer.java   |    78 -
 .../core/soap/SoapXmlSerializerProperties.class |   Bin 460 -> 0 bytes
 .../core/soap/SoapXmlSerializerProperties.java  |    24 -
 .../core/com/ibm/juno/core/soap/package.html    |    34 -
 .../core/urlencoding/UonParser$Decoding.class   |   Bin 5450 -> 0 bytes
 .../ibm/juno/core/urlencoding/UonParser.class   |   Bin 30286 -> 0 bytes
 .../ibm/juno/core/urlencoding/UonParser.java    |   861 --
 .../core/urlencoding/UonParserContext.class     |   Bin 2541 -> 0 bytes
 .../juno/core/urlencoding/UonParserContext.java |    75 -
 .../core/urlencoding/UonParserProperties.class  |   Bin 1690 -> 0 bytes
 .../core/urlencoding/UonParserProperties.java   |    76 -
 .../juno/core/urlencoding/UonParserReader.class |   Bin 3739 -> 0 bytes
 .../juno/core/urlencoding/UonParserReader.java  |   195 -
 .../urlencoding/UonSerializer$Encoding.class    |   Bin 5128 -> 0 bytes
 .../urlencoding/UonSerializer$Readable.class    |   Bin 5176 -> 0 bytes
 .../core/urlencoding/UonSerializer$Simple.class |   Bin 5267 -> 0 bytes
 .../UonSerializer$SimpleEncoding.class          |   Bin 5337 -> 0 bytes
 .../juno/core/urlencoding/UonSerializer.class   |   Bin 18291 -> 0 bytes
 .../juno/core/urlencoding/UonSerializer.java    |   532 -
 .../core/urlencoding/UonSerializerContext.class |   Bin 2838 -> 0 bytes
 .../core/urlencoding/UonSerializerContext.java  |    97 -
 .../urlencoding/UonSerializerProperties.class   |   Bin 1846 -> 0 bytes
 .../urlencoding/UonSerializerProperties.java    |   135 -
 .../core/urlencoding/UonSerializerWriter.class  |   Bin 8068 -> 0 bytes
 .../core/urlencoding/UonSerializerWriter.java   |   265 -
 .../core/urlencoding/UrlEncodingClassMeta.class |   Bin 1183 -> 0 bytes
 .../core/urlencoding/UrlEncodingClassMeta.java  |    55 -
 .../core/urlencoding/UrlEncodingParser.class    |   Bin 26192 -> 0 bytes
 .../core/urlencoding/UrlEncodingParser.java     |   568 -
 .../urlencoding/UrlEncodingProperties.class     |   Bin 1563 -> 0 bytes
 .../core/urlencoding/UrlEncodingProperties.java |    82 -
 .../UrlEncodingSerializer$Readable.class        |   Bin 6286 -> 0 bytes
 .../UrlEncodingSerializer$Simple.class          |   Bin 6473 -> 0 bytes
 .../UrlEncodingSerializer$SimpleExpanded.class  |   Bin 975 -> 0 bytes
 .../urlencoding/UrlEncodingSerializer.class     |   Bin 19689 -> 0 bytes
 .../core/urlencoding/UrlEncodingSerializer.java |   515 -
 .../urlencoding/annotation/UrlEncoding.class    |   Bin 558 -> 0 bytes
 .../urlencoding/annotation/UrlEncoding.java     |    37 -
 .../core/urlencoding/annotation/package.html    |    34 -
 .../core/urlencoding/doc-files/Example_HTML.png |   Bin 32778 -> 0 bytes
 .../doc-files/Example_UrlEncoding.png           |   Bin 20958 -> 0 bytes
 .../juno/core/urlencoding/doc-files/rfc_uon.txt |   352 -
 .../com/ibm/juno/core/urlencoding/package.html  |  1410 --
 .../bin/core/com/ibm/juno/core/utils/Args.class |   Bin 3493 -> 0 bytes
 .../bin/core/com/ibm/juno/core/utils/Args.java  |   240 -
 .../ibm/juno/core/utils/ArrayUtils$1$1.class    |   Bin 1297 -> 0 bytes
 .../com/ibm/juno/core/utils/ArrayUtils$1.class  |   Bin 919 -> 0 bytes
 .../com/ibm/juno/core/utils/ArrayUtils$2.class  |   Bin 1346 -> 0 bytes
 .../com/ibm/juno/core/utils/ArrayUtils.class    |   Bin 5994 -> 0 bytes
 .../com/ibm/juno/core/utils/ArrayUtils.java     |   273 -
 .../core/com/ibm/juno/core/utils/AsciiSet.class |   Bin 847 -> 0 bytes
 .../core/com/ibm/juno/core/utils/AsciiSet.java  |    55 -
 .../ibm/juno/core/utils/ByteArrayCache$1.class  |   Bin 241 -> 0 bytes
 .../core/utils/ByteArrayCache$ByteArray.class   |   Bin 1404 -> 0 bytes
 .../ibm/juno/core/utils/ByteArrayCache.class    |   Bin 1763 -> 0 bytes
 .../com/ibm/juno/core/utils/ByteArrayCache.java |   102 -
 .../juno/core/utils/ByteArrayInOutStream.class  |   Bin 568 -> 0 bytes
 .../juno/core/utils/ByteArrayInOutStream.java   |    28 -
 .../juno/core/utils/CharSequenceReader.class    |   Bin 2106 -> 0 bytes
 .../ibm/juno/core/utils/CharSequenceReader.java |    96 -
 .../core/utils/ClassUtils$ClassComparator.class |   Bin 1263 -> 0 bytes
 .../com/ibm/juno/core/utils/ClassUtils.class    |   Bin 4921 -> 0 bytes
 .../com/ibm/juno/core/utils/ClassUtils.java     |   211 -
 .../ibm/juno/core/utils/CollectionUtils.class   |   Bin 1720 -> 0 bytes
 .../ibm/juno/core/utils/CollectionUtils.java    |    53 -
 .../ibm/juno/core/utils/DelegateBeanMap$1.class |   Bin 244 -> 0 bytes
 .../DelegateBeanMap$BeanMapEntryOverride.class  |   Bin 1885 -> 0 bytes
 .../ibm/juno/core/utils/DelegateBeanMap.class   |   Bin 4741 -> 0 bytes
 .../ibm/juno/core/utils/DelegateBeanMap.java    |   111 -
 .../com/ibm/juno/core/utils/DelegateList.class  |   Bin 1022 -> 0 bytes
 .../com/ibm/juno/core/utils/DelegateList.java   |    35 -
 .../com/ibm/juno/core/utils/DelegateMap.class   |   Bin 1863 -> 0 bytes
 .../com/ibm/juno/core/utils/DelegateMap.java    |    50 -
 .../com/ibm/juno/core/utils/FileUtils.class     |   Bin 2910 -> 0 bytes
 .../core/com/ibm/juno/core/utils/FileUtils.java |   130 -
 .../com/ibm/juno/core/utils/FilteredMap$1.class |   Bin 1489 -> 0 bytes
 .../juno/core/utils/FilteredMap$ListSet.class   |   Bin 1042 -> 0 bytes
 .../com/ibm/juno/core/utils/FilteredMap.class   |   Bin 2318 -> 0 bytes
 .../com/ibm/juno/core/utils/FilteredMap.java    |    92 -
 .../juno/core/utils/IOPipe$LineProcessor.class  |   Bin 273 -> 0 bytes
 .../core/com/ibm/juno/core/utils/IOPipe.class   |   Bin 4317 -> 0 bytes
 .../core/com/ibm/juno/core/utils/IOPipe.java    |   208 -
 .../core/com/ibm/juno/core/utils/IOUtils.class  |   Bin 6538 -> 0 bytes
 .../core/com/ibm/juno/core/utils/IOUtils.java   |   352 -
 .../com/ibm/juno/core/utils/IdentityList.class  |   Bin 1207 -> 0 bytes
 .../com/ibm/juno/core/utils/IdentityList.java   |    45 -
 .../com/ibm/juno/core/utils/KeywordSet.class    |   Bin 1797 -> 0 bytes
 .../com/ibm/juno/core/utils/KeywordSet.java     |    86 -
 .../ibm/juno/core/utils/MultiIterable$1.class   |   Bin 1689 -> 0 bytes
 .../com/ibm/juno/core/utils/MultiIterable.class |   Bin 1790 -> 0 bytes
 .../com/ibm/juno/core/utils/MultiIterable.java  |    74 -
 .../com/ibm/juno/core/utils/MultiSet$1.class    |   Bin 1856 -> 0 bytes
 .../core/com/ibm/juno/core/utils/MultiSet.class |   Bin 2492 -> 0 bytes
 .../core/com/ibm/juno/core/utils/MultiSet.java  |   107 -
 .../ibm/juno/core/utils/PojoIntrospector.class  |   Bin 2768 -> 0 bytes
 .../ibm/juno/core/utils/PojoIntrospector.java   |   113 -
 .../com/ibm/juno/core/utils/PojoQuery$1.class   |   Bin 1489 -> 0 bytes
 .../juno/core/utils/PojoQuery$CalendarP.class   |   Bin 1287 -> 0 bytes
 .../core/utils/PojoQuery$CollectionFilter.class |   Bin 1491 -> 0 bytes
 .../juno/core/utils/PojoQuery$DateMatcher.class |   Bin 1496 -> 0 bytes
 .../juno/core/utils/PojoQuery$IMatcher.class    |   Bin 335 -> 0 bytes
 .../juno/core/utils/PojoQuery$MapMatcher.class  |   Bin 3150 -> 0 bytes
 .../core/utils/PojoQuery$NumberMatcher.class    |   Bin 1256 -> 0 bytes
 .../core/utils/PojoQuery$NumberPattern.class    |   Bin 3588 -> 0 bytes
 .../juno/core/utils/PojoQuery$NumberRange.class |   Bin 1386 -> 0 bytes
 .../core/utils/PojoQuery$ObjectMatcher.class    |   Bin 2209 -> 0 bytes
 .../core/utils/PojoQuery$SearchPattern.class    |   Bin 5144 -> 0 bytes
 .../core/utils/PojoQuery$StringMatcher.class    |   Bin 1215 -> 0 bytes
 .../core/utils/PojoQuery$TimestampPattern.class |   Bin 3265 -> 0 bytes
 .../core/utils/PojoQuery$TimestampRange.class   |   Bin 2063 -> 0 bytes
 .../com/ibm/juno/core/utils/PojoQuery.class     |   Bin 13850 -> 0 bytes
 .../core/com/ibm/juno/core/utils/PojoQuery.java |  1246 --
 .../ibm/juno/core/utils/PojoRest$JsonNode.class |   Bin 1337 -> 0 bytes
 .../core/com/ibm/juno/core/utils/PojoRest.class |   Bin 15155 -> 0 bytes
 .../core/com/ibm/juno/core/utils/PojoRest.java  |   843 --
 .../ibm/juno/core/utils/PojoRestException.class |   Bin 865 -> 0 bytes
 .../ibm/juno/core/utils/PojoRestException.java  |    56 -
 .../com/ibm/juno/core/utils/ProcBuilder$1.class |   Bin 1118 -> 0 bytes
 .../com/ibm/juno/core/utils/ProcBuilder$2.class |   Bin 532 -> 0 bytes
 .../com/ibm/juno/core/utils/ProcBuilder$3.class |   Bin 695 -> 0 bytes
 .../com/ibm/juno/core/utils/ProcBuilder$4.class |   Bin 695 -> 0 bytes
 .../com/ibm/juno/core/utils/ProcBuilder$5.class |   Bin 736 -> 0 bytes
 .../juno/core/utils/ProcBuilder$Matcher.class   |   Bin 428 -> 0 bytes
 .../com/ibm/juno/core/utils/ProcBuilder.class   |   Bin 8917 -> 0 bytes
 .../com/ibm/juno/core/utils/ProcBuilder.java    |   382 -
 .../ibm/juno/core/utils/ReflectionUtils.class   |   Bin 4418 -> 0 bytes
 .../ibm/juno/core/utils/ReflectionUtils.java    |   159 -
 .../juno/core/utils/SafeResourceBundle.class    |   Bin 4521 -> 0 bytes
 .../ibm/juno/core/utils/SafeResourceBundle.java |   132 -
 .../core/utils/SafeResourceMultiBundle.class    |   Bin 3417 -> 0 bytes
 .../core/utils/SafeResourceMultiBundle.java     |    82 -
 .../com/ibm/juno/core/utils/SimpleMap$1.class   |   Bin 226 -> 0 bytes
 .../core/utils/SimpleMap$SimpleMapEntry.class   |   Bin 1667 -> 0 bytes
 .../com/ibm/juno/core/utils/SimpleMap.class     |   Bin 3232 -> 0 bytes
 .../core/com/ibm/juno/core/utils/SimpleMap.java |   112 -
 .../juno/core/utils/StringBuilderWriter.class   |   Bin 3183 -> 0 bytes
 .../juno/core/utils/StringBuilderWriter.java    |    95 -
 .../com/ibm/juno/core/utils/StringUtils.class   |   Bin 17281 -> 0 bytes
 .../com/ibm/juno/core/utils/StringUtils.java    |   873 --
 .../com/ibm/juno/core/utils/StringVar.class     |   Bin 480 -> 0 bytes
 .../core/com/ibm/juno/core/utils/StringVar.java |    37 -
 .../juno/core/utils/StringVarMultipart.class    |   Bin 804 -> 0 bytes
 .../ibm/juno/core/utils/StringVarMultipart.java |    32 -
 .../juno/core/utils/StringVarResolver$1.class   |   Bin 658 -> 0 bytes
 .../juno/core/utils/StringVarResolver$2.class   |   Bin 663 -> 0 bytes
 .../ibm/juno/core/utils/StringVarResolver.class |   Bin 5316 -> 0 bytes
 .../ibm/juno/core/utils/StringVarResolver.java  |   357 -
 .../juno/core/utils/StringVarWithDefault.class  |   Bin 852 -> 0 bytes
 .../juno/core/utils/StringVarWithDefault.java   |    31 -
 .../ibm/juno/core/utils/TeeOutputStream$1.class |   Bin 244 -> 0 bytes
 .../TeeOutputStream$NoCloseOutputStream.class   |   Bin 1315 -> 0 bytes
 .../ibm/juno/core/utils/TeeOutputStream.class   |   Bin 3666 -> 0 bytes
 .../ibm/juno/core/utils/TeeOutputStream.java    |   159 -
 .../com/ibm/juno/core/utils/TeeWriter$1.class   |   Bin 226 -> 0 bytes
 .../core/utils/TeeWriter$NoCloseWriter.class    |   Bin 1132 -> 0 bytes
 .../com/ibm/juno/core/utils/TeeWriter.class     |   Bin 3489 -> 0 bytes
 .../core/com/ibm/juno/core/utils/TeeWriter.java |   161 -
 .../ibm/juno/core/utils/ThrowableUtils.class    |   Bin 1565 -> 0 bytes
 .../com/ibm/juno/core/utils/ThrowableUtils.java |    67 -
 .../juno/core/utils/ZipFileList$FileEntry.class |   Bin 2495 -> 0 bytes
 .../core/utils/ZipFileList$ZipFileEntry.class   |   Bin 328 -> 0 bytes
 .../com/ibm/juno/core/utils/ZipFileList.class   |   Bin 951 -> 0 bytes
 .../com/ibm/juno/core/utils/ZipFileList.java    |   136 -
 .../core/com/ibm/juno/core/utils/package.html   |    53 -
 .../core/com/ibm/juno/core/xml/Namespace.class  |   Bin 1697 -> 0 bytes
 .../core/com/ibm/juno/core/xml/Namespace.java   |    81 -
 .../ibm/juno/core/xml/NamespaceFactory.class    |   Bin 3707 -> 0 bytes
 .../com/ibm/juno/core/xml/NamespaceFactory.java |   126 -
 .../com/ibm/juno/core/xml/XmlBeanMeta.class     |   Bin 4650 -> 0 bytes
 .../core/com/ibm/juno/core/xml/XmlBeanMeta.java |   125 -
 .../ibm/juno/core/xml/XmlBeanPropertyMeta.class |   Bin 5522 -> 0 bytes
 .../ibm/juno/core/xml/XmlBeanPropertyMeta.java  |   159 -
 .../com/ibm/juno/core/xml/XmlClassMeta.class    |   Bin 2602 -> 0 bytes
 .../com/ibm/juno/core/xml/XmlClassMeta.java     |   114 -
 .../juno/core/xml/XmlContentHandler$NULL.class  |   Bin 329 -> 0 bytes
 .../ibm/juno/core/xml/XmlContentHandler.class   |   Bin 618 -> 0 bytes
 .../ibm/juno/core/xml/XmlContentHandler.java    |   135 -
 .../juno/core/xml/XmlDocSerializer$Simple.class |   Bin 1273 -> 0 bytes
 .../ibm/juno/core/xml/XmlDocSerializer.class    |   Bin 1722 -> 0 bytes
 .../com/ibm/juno/core/xml/XmlDocSerializer.java |    62 -
 .../core/com/ibm/juno/core/xml/XmlParser.class  |   Bin 27091 -> 0 bytes
 .../core/com/ibm/juno/core/xml/XmlParser.java   |   558 -
 .../ibm/juno/core/xml/XmlParserContext.class    |   Bin 5612 -> 0 bytes
 .../com/ibm/juno/core/xml/XmlParserContext.java |   213 -
 .../ibm/juno/core/xml/XmlParserProperties.class |   Bin 3808 -> 0 bytes
 .../ibm/juno/core/xml/XmlParserProperties.java  |   244 -
 .../juno/core/xml/XmlSchemaDocSerializer.class  |   Bin 1651 -> 0 bytes
 .../juno/core/xml/XmlSchemaDocSerializer.java   |    50 -
 .../juno/core/xml/XmlSchemaSerializer$1.class   |   Bin 2397 -> 0 bytes
 .../xml/XmlSchemaSerializer$QueueEntry.class    |   Bin 941 -> 0 bytes
 .../core/xml/XmlSchemaSerializer$Schema.class   |   Bin 12084 -> 0 bytes
 .../core/xml/XmlSchemaSerializer$Schemas.class  |   Bin 7798 -> 0 bytes
 .../ibm/juno/core/xml/XmlSchemaSerializer.class |   Bin 7423 -> 0 bytes
 .../ibm/juno/core/xml/XmlSchemaSerializer.java  |   588 -
 .../juno/core/xml/XmlSerializer$Simple.class    |   Bin 5193 -> 0 bytes
 .../juno/core/xml/XmlSerializer$SimpleSq.class  |   Bin 672 -> 0 bytes
 .../xml/XmlSerializer$SimpleXmlJsonSq.class     |   Bin 702 -> 0 bytes
 .../ibm/juno/core/xml/XmlSerializer$Sq.class    |   Bin 5030 -> 0 bytes
 .../core/xml/XmlSerializer$SqReadable.class     |   Bin 670 -> 0 bytes
 .../juno/core/xml/XmlSerializer$XmlJson.class   |   Bin 5194 -> 0 bytes
 .../juno/core/xml/XmlSerializer$XmlJsonSq.class |   Bin 677 -> 0 bytes
 .../com/ibm/juno/core/xml/XmlSerializer.class   |   Bin 24665 -> 0 bytes
 .../com/ibm/juno/core/xml/XmlSerializer.java    |   725 -
 .../juno/core/xml/XmlSerializerContext.class    |   Bin 5905 -> 0 bytes
 .../ibm/juno/core/xml/XmlSerializerContext.java |   202 -
 .../juno/core/xml/XmlSerializerProperties.class |   Bin 3403 -> 0 bytes
 .../juno/core/xml/XmlSerializerProperties.java  |   171 -
 .../ibm/juno/core/xml/XmlSerializerWriter.class |   Bin 10717 -> 0 bytes
 .../ibm/juno/core/xml/XmlSerializerWriter.java  |   662 -
 .../core/com/ibm/juno/core/xml/XmlUtils.class   |   Bin 12146 -> 0 bytes
 .../core/com/ibm/juno/core/xml/XmlUtils.java    |   569 -
 .../com/ibm/juno/core/xml/annotation/Xml.class  |   Bin 1110 -> 0 bytes
 .../com/ibm/juno/core/xml/annotation/Xml.java   |   197 -
 .../juno/core/xml/annotation/XmlFormat.class    |   Bin 1239 -> 0 bytes
 .../ibm/juno/core/xml/annotation/XmlFormat.java |    53 -
 .../ibm/juno/core/xml/annotation/XmlNs.class    |   Bin 487 -> 0 bytes
 .../com/ibm/juno/core/xml/annotation/XmlNs.java |    37 -
 .../juno/core/xml/annotation/XmlSchema.class    |   Bin 656 -> 0 bytes
 .../ibm/juno/core/xml/annotation/XmlSchema.java |    94 -
 .../ibm/juno/core/xml/annotation/package.html   |    34 -
 .../juno/core/xml/doc-files/Example_HTML.png    |   Bin 35528 -> 0 bytes
 .../ibm/juno/core/xml/doc-files/Example_XML.png |   Bin 32865 -> 0 bytes
 .../core/xml/doc-files/Example_XMLSchema.png    |   Bin 45685 -> 0 bytes
 .../core/xml/doc-files/Example_XMLSimple.png    |   Bin 34372 -> 0 bytes
 .../bin/core/com/ibm/juno/core/xml/package.html |  2321 ---
 .../bin/core/doc-files/Microservices.1.png      |   Bin 22345 -> 0 bytes
 .../doc-files/Samples.AddressBookResource.1.png |   Bin 44553 -> 0 bytes
 .../doc-files/Samples.AddressBookResource.2.png |   Bin 224346 -> 0 bytes
 .../Samples.AddressBookResource.Demo.1.png      |   Bin 17539 -> 0 bytes
 .../Samples.AddressBookResource.Demo.10.png     |   Bin 37153 -> 0 bytes
 .../Samples.AddressBookResource.Demo.2.png      |   Bin 47285 -> 0 bytes
 .../Samples.AddressBookResource.Demo.3.png      |   Bin 40911 -> 0 bytes
 .../Samples.AddressBookResource.Demo.4.png      |   Bin 40461 -> 0 bytes
 .../Samples.AddressBookResource.Demo.5.png      |   Bin 49884 -> 0 bytes
 .../Samples.AddressBookResource.Demo.6.png      |   Bin 52332 -> 0 bytes
 .../Samples.AddressBookResource.Demo.7.png      |   Bin 39401 -> 0 bytes
 .../Samples.AddressBookResource.Demo.8.png      |   Bin 34154 -> 0 bytes
 .../Samples.AddressBookResource.Demo.9.png      |   Bin 51831 -> 0 bytes
 ...les.AddressBookResource.Introspectable.1.png |   Bin 21714 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.1.png |   Bin 43970 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.2.png |   Bin 35177 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.3.png |   Bin 35137 -> 0 bytes
 ...amples.AddressBookResource.Traversable.1.png |   Bin 28868 -> 0 bytes
 ...amples.AddressBookResource.Traversable.2.png |   Bin 20464 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.1.png    |   Bin 45184 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.2.png    |   Bin 78940 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.3.png    |   Bin 28698 -> 0 bytes
 .../bin/core/doc-files/Samples.Building.1.png   |   Bin 14082 -> 0 bytes
 .../bin/core/doc-files/Samples.Building.2.png   |   Bin 5543 -> 0 bytes
 .../core/doc-files/Samples.ConfigResource.1.png |   Bin 38071 -> 0 bytes
 .../core/doc-files/Samples.ConfigResource.2.png |   Bin 42599 -> 0 bytes
 .../core/doc-files/Samples.ConfigResource.3.png |   Bin 41856 -> 0 bytes
 .../Samples.DockerRegistryResource.1.png        |   Bin 16230 -> 0 bytes
 .../Samples.DockerRegistryResource.2.png        |   Bin 23808 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.1.png  |   Bin 15414 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.2.png  |   Bin 10797 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.3.png  |   Bin 66934 -> 0 bytes
 .../bin/core/doc-files/Samples.Installing.1.png |   Bin 52312 -> 0 bytes
 .../bin/core/doc-files/Samples.Installing.2.png |   Bin 59664 -> 0 bytes
 .../bin/core/doc-files/Samples.Installing.3.png |   Bin 25927 -> 0 bytes
 .../doc-files/Samples.JsonSchemaResource.1.png  |   Bin 36315 -> 0 bytes
 .../doc-files/Samples.JsonSchemaResource.2.png  |   Bin 28837 -> 0 bytes
 .../core/doc-files/Samples.LogsResource.1.png   |   Bin 37594 -> 0 bytes
 .../core/doc-files/Samples.LogsResource.2.png   |   Bin 42497 -> 0 bytes
 .../core/doc-files/Samples.LogsResource.3.png   |   Bin 56603 -> 0 bytes
 .../Samples.MethodExampleResource.1.png         |   Bin 27555 -> 0 bytes
 .../Samples.MethodExampleResource.2.png         |   Bin 71023 -> 0 bytes
 .../core/doc-files/Samples.PhotosResource.1.png |   Bin 16442 -> 0 bytes
 .../core/doc-files/Samples.PhotosResource.2.png |   Bin 71952 -> 0 bytes
 ...Samples.RequestEchoResource.1.htmlschema.png |   Bin 35501 -> 0 bytes
 .../Samples.RequestEchoResource.1.json.png      |   Bin 30092 -> 0 bytes
 ...Samples.RequestEchoResource.1.jsonschema.png |   Bin 31731 -> 0 bytes
 ...Samples.RequestEchoResource.1.jsonsimple.png |   Bin 29302 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.1.png |   Bin 54743 -> 0 bytes
 .../Samples.RequestEchoResource.1.uon.png       |   Bin 64778 -> 0 bytes
 ...amples.RequestEchoResource.1.urlencoding.png |   Bin 71054 -> 0 bytes
 .../Samples.RequestEchoResource.1.xml.png       |   Bin 43989 -> 0 bytes
 .../Samples.RequestEchoResource.1.xmlschema.png |   Bin 47951 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.2.png |   Bin 30872 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.3.png |   Bin 27501 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.4.png |   Bin 22149 -> 0 bytes
 .../bin/core/doc-files/Samples.Running.1.png    |   Bin 40422 -> 0 bytes
 .../bin/core/doc-files/Samples.Running.2.png    |   Bin 15925 -> 0 bytes
 .../bin/core/doc-files/Samples.Running.3.png    |   Bin 62643 -> 0 bytes
 .../Samples.SampleRemoteableServlet.1.png       |   Bin 23969 -> 0 bytes
 .../Samples.SampleRemoteableServlet.2.png       |   Bin 29986 -> 0 bytes
 .../Samples.SampleRemoteableServlet.3.png       |   Bin 45596 -> 0 bytes
 .../doc-files/Samples.SqlQueryResource.1.png    |   Bin 16113 -> 0 bytes
 .../doc-files/Samples.SqlQueryResource.2.png    |   Bin 40356 -> 0 bytes
 .../doc-files/Samples.TempDirResource.1.png     |   Bin 32843 -> 0 bytes
 .../doc-files/Samples.TempDirResource.2.png     |   Bin 20359 -> 0 bytes
 .../Samples.TumblrParserResource.1.png          |   Bin 168439 -> 0 bytes
 .../Samples.UrlEncodedFormResource.1.png        |   Bin 24026 -> 0 bytes
 .../Samples.UrlEncodedFormResource.2.png        |   Bin 31318 -> 0 bytes
 .../bin/core/doc-files/Server.Html.png          |   Bin 52497 -> 0 bytes
 .../bin/core/doc-files/Server.Json.png          |   Bin 29692 -> 0 bytes
 .../bin/core/doc-files/Server.N3.png            |   Bin 45391 -> 0 bytes
 .../bin/core/doc-files/Server.NTuple.png        |   Bin 55713 -> 0 bytes
 .../bin/core/doc-files/Server.Options.png       |   Bin 67005 -> 0 bytes
 .../bin/core/doc-files/Server.RdfXml.png        |   Bin 45274 -> 0 bytes
 .../bin/core/doc-files/Server.SimpleXml.png     |   Bin 36746 -> 0 bytes
 .../bin/core/doc-files/Server.Turtle.png        |   Bin 45180 -> 0 bytes
 .../bin/core/doc-files/Server.Uon.png           |   Bin 28160 -> 0 bytes
 .../bin/core/doc-files/Server.UrlEncoding.png   |   Bin 32516 -> 0 bytes
 .../bin/core/doc-files/Server.Xml.png           |   Bin 45446 -> 0 bytes
 com.ibm.team.juno.releng/bin/core/javadoc.css   |  1039 --
 com.ibm.team.juno.releng/bin/core/overview.html |  7448 ----------
 .../bin/microservice/META-INF/MANIFEST.MF       |    14 +-
 .../ibm/juno/microservice/Microservice$1.class  |   Bin 1180 -> 0 bytes
 .../ibm/juno/microservice/Microservice$2.class  |   Bin 1285 -> 0 bytes
 .../ibm/juno/microservice/Microservice$3.class  |   Bin 665 -> 0 bytes
 .../ibm/juno/microservice/Microservice$4.class  |   Bin 955 -> 0 bytes
 .../ibm/juno/microservice/Microservice$5.class  |   Bin 953 -> 0 bytes
 .../ibm/juno/microservice/Microservice$6.class  |   Bin 922 -> 0 bytes
 .../ibm/juno/microservice/Microservice.class    |   Bin 7426 -> 0 bytes
 .../com/ibm/juno/microservice/Microservice.java |   521 -
 .../com/ibm/juno/microservice/Resource$1.class  |   Bin 928 -> 0 bytes
 .../com/ibm/juno/microservice/Resource$2.class  |   Bin 933 -> 0 bytes
 .../com/ibm/juno/microservice/Resource.class    |   Bin 1301 -> 0 bytes
 .../com/ibm/juno/microservice/Resource.java     |    74 -
 .../ibm/juno/microservice/ResourceGroup$1.class |   Bin 958 -> 0 bytes
 .../ibm/juno/microservice/ResourceGroup$2.class |   Bin 963 -> 0 bytes
 .../ibm/juno/microservice/ResourceGroup.class   |   Bin 1336 -> 0 bytes
 .../ibm/juno/microservice/ResourceGroup.java    |    72 -
 .../ibm/juno/microservice/ResourceJena.class    |   Bin 712 -> 0 bytes
 .../com/ibm/juno/microservice/ResourceJena.java |    28 -
 .../juno/microservice/RestMicroservice$1.class  |   Bin 1498 -> 0 bytes
 .../juno/microservice/RestMicroservice$2.class  |   Bin 1180 -> 0 bytes
 .../juno/microservice/RestMicroservice.class    |   Bin 13722 -> 0 bytes
 .../ibm/juno/microservice/RestMicroservice.java |   554 -
 .../ibm/juno/microservice/doc-files/build1.png  |   Bin 2633 -> 0 bytes
 .../ibm/juno/microservice/doc-files/build2.png  |   Bin 8634 -> 0 bytes
 .../juno/microservice/doc-files/helloworld1.png |   Bin 14050 -> 0 bytes
 .../microservice/doc-files/instructions1.png    |   Bin 44658 -> 0 bytes
 .../microservice/doc-files/instructions2.png    |   Bin 54971 -> 0 bytes
 .../microservice/doc-files/instructions3.png    |   Bin 20755 -> 0 bytes
 .../microservice/doc-files/instructions4.png    |   Bin 28672 -> 0 bytes
 .../microservice/doc-files/instructions5.png    |   Bin 8894 -> 0 bytes
 .../microservice/doc-files/instructions6.png    |   Bin 22345 -> 0 bytes
 .../juno/microservice/doc-files/manifest1.png   |   Bin 10493 -> 0 bytes
 .../com/ibm/juno/microservice/javadoc.css       |  1039 --
 .../com/ibm/juno/microservice/package.html      |   944 --
 .../juno/microservice/resources/ConfigEdit.html |    32 -
 .../microservice/resources/ConfigResource.class |   Bin 5386 -> 0 bytes
 .../microservice/resources/ConfigResource.java  |   184 -
 .../DirectoryResource$FileResource.class        |   Bin 2656 -> 0 bytes
 .../resources/DirectoryResource.class           |   Bin 8434 -> 0 bytes
 .../resources/DirectoryResource.java            |   354 -
 .../resources/LogEntryFormatter.class           |   Bin 6683 -> 0 bytes
 .../resources/LogEntryFormatter.java            |   257 -
 .../resources/LogParser$Entry.class             |   Bin 5074 -> 0 bytes
 .../juno/microservice/resources/LogParser.class |   Bin 5547 -> 0 bytes
 .../juno/microservice/resources/LogParser.java  |   225 -
 .../microservice/resources/LogsResource$1.class |   Bin 957 -> 0 bytes
 .../resources/LogsResource$FileResource.class   |   Bin 2573 -> 0 bytes
 .../LogsResource$FileResourceComparator.class   |   Bin 1933 -> 0 bytes
 .../microservice/resources/LogsResource.class   |   Bin 11211 -> 0 bytes
 .../microservice/resources/LogsResource.java    |   299 -
 .../resources/SampleRootResource.class          |   Bin 758 -> 0 bytes
 .../resources/SampleRootResource.java           |    27 -
 .../resources/ShutdownResource$1.class          |   Bin 1039 -> 0 bytes
 .../resources/ShutdownResource.class            |   Bin 1125 -> 0 bytes
 .../resources/ShutdownResource.java             |    49 -
 .../juno/microservice/resources/package.html    |    24 -
 .../bin/samples/META-INF/MANIFEST.MF            |    20 +-
 .../ibm/juno/samples/addressbook/Address.class  |   Bin 1851 -> 0 bytes
 .../ibm/juno/samples/addressbook/Address.java   |    49 -
 .../juno/samples/addressbook/AddressBook.class  |   Bin 3954 -> 0 bytes
 .../juno/samples/addressbook/AddressBook.java   |    98 -
 .../samples/addressbook/CreateAddress.class     |   Bin 1001 -> 0 bytes
 .../juno/samples/addressbook/CreateAddress.java |    37 -
 .../juno/samples/addressbook/CreatePerson.class |   Bin 1472 -> 0 bytes
 .../juno/samples/addressbook/CreatePerson.java  |    40 -
 .../juno/samples/addressbook/IAddressBook.class |   Bin 716 -> 0 bytes
 .../juno/samples/addressbook/IAddressBook.java  |    41 -
 .../ibm/juno/samples/addressbook/Person.class   |   Bin 3249 -> 0 bytes
 .../ibm/juno/samples/addressbook/Person.java    |    68 -
 .../juno/samples/addressbook/package-info.class |   Bin 689 -> 0 bytes
 .../juno/samples/addressbook/package-info.java  |    31 -
 .../ibm/juno/samples/addressbook/package.html   |    27 -
 .../ibm/juno/server/samples/AdminGuard.class    |   Bin 492 -> 0 bytes
 .../com/ibm/juno/server/samples/AdminGuard.java |    22 -
 .../juno/server/samples/AtomFeedResource.class  |   Bin 5483 -> 0 bytes
 .../juno/server/samples/AtomFeedResource.java   |   103 -
 .../server/samples/CodeFormatterResource.class  |   Bin 1840 -> 0 bytes
 .../server/samples/CodeFormatterResource.html   |    48 -
 .../server/samples/CodeFormatterResource.java   |    46 -
 .../com/ibm/juno/server/samples/Constants.class |   Bin 679 -> 0 bytes
 .../com/ibm/juno/server/samples/Constants.java  |    25 -
 .../DirectoryResource$FileResource.class        |   Bin 2293 -> 0 bytes
 .../juno/server/samples/DirectoryResource.class |   Bin 7725 -> 0 bytes
 .../juno/server/samples/DirectoryResource.java  |   231 -
 .../DockerRegistryResource$DockerImage.class    |   Bin 530 -> 0 bytes
 .../DockerRegistryResource$QueryResults.class   |   Bin 770 -> 0 bytes
 .../server/samples/DockerRegistryResource.class |   Bin 3023 -> 0 bytes
 .../server/samples/DockerRegistryResource.java  |    68 -
 .../server/samples/HelloWorldResource.class     |   Bin 936 -> 0 bytes
 .../juno/server/samples/HelloWorldResource.java |    34 -
 .../server/samples/JsonSchemaResource.class     |   Bin 3007 -> 0 bytes
 .../juno/server/samples/JsonSchemaResource.java |    70 -
 .../server/samples/MethodExampleResource.class  |   Bin 4000 -> 0 bytes
 .../server/samples/MethodExampleResource.java   |    87 -
 .../samples/PhotosResource$ImageParser.class    |   Bin 1742 -> 0 bytes
 .../PhotosResource$ImageSerializer.class        |   Bin 1879 -> 0 bytes
 .../server/samples/PhotosResource$Photo.class   |   Bin 1001 -> 0 bytes
 .../juno/server/samples/PhotosResource.class    |   Bin 4381 -> 0 bytes
 .../ibm/juno/server/samples/PhotosResource.java |   140 -
 .../server/samples/RequestEchoResource.class    |   Bin 1866 -> 0 bytes
 .../server/samples/RequestEchoResource.java     |    55 -
 .../ibm/juno/server/samples/RootResources.class |   Bin 1812 -> 0 bytes
 .../ibm/juno/server/samples/RootResources.java  |    50 -
 .../samples/SampleRemoteableServlet.class       |   Bin 1919 -> 0 bytes
 .../server/samples/SampleRemoteableServlet.java |    53 -
 .../juno/server/samples/SourceResource$1.class  |   Bin 249 -> 0 bytes
 .../server/samples/SourceResource$Source.class  |   Bin 2401 -> 0 bytes
 .../juno/server/samples/SourceResource.class    |   Bin 3963 -> 0 bytes
 .../ibm/juno/server/samples/SourceResource.java |   110 -
 .../samples/SqlQueryResource$PostInput.class    |   Bin 546 -> 0 bytes
 .../juno/server/samples/SqlQueryResource.class  |   Bin 5695 -> 0 bytes
 .../juno/server/samples/SqlQueryResource.html   |    51 -
 .../juno/server/samples/SqlQueryResource.java   |   124 -
 ...mpDirResource$MultipartFormDataMatcher.class |   Bin 944 -> 0 bytes
 .../juno/server/samples/TempDirResource.class   |   Bin 3440 -> 0 bytes
 .../juno/server/samples/TempDirResource.java    |    74 -
 .../juno/server/samples/TempDirUploadPage.html  |    27 -
 .../samples/TumblrParserResource$Entry.class    |   Bin 519 -> 0 bytes
 .../server/samples/TumblrParserResource.class   |   Bin 4382 -> 0 bytes
 .../server/samples/TumblrParserResource.java    |    77 -
 .../ibm/juno/server/samples/UrlEncodedForm.html |    55 -
 .../UrlEncodedFormResource$FormInputBean.class  |   Bin 855 -> 0 bytes
 .../server/samples/UrlEncodedFormResource.class |   Bin 1596 -> 0 bytes
 .../server/samples/UrlEncodedFormResource.java  |    49 -
 .../addressbook/AddressBookResource$1.class     |   Bin 1497 -> 0 bytes
 .../AddressBookResource$Options.class           |   Bin 1519 -> 0 bytes
 .../addressbook/AddressBookResource.class       |   Bin 9995 -> 0 bytes
 .../addressbook/AddressBookResource.java        |   329 -
 .../server/samples/addressbook/ClientTest.class |   Bin 5167 -> 0 bytes
 .../server/samples/addressbook/ClientTest.java  |    99 -
 .../nls/AddressBookResource.properties          |    71 -
 .../ibm/juno/server/samples/averycutedog.jpg    |   Bin 40879 -> 0 bytes
 .../server/samples/htdocs/code-highlighting.css |   124 -
 .../samples/nls/AtomFeedResource.properties     |    16 -
 .../nls/CodeFormatterResource.properties        |    13 -
 .../samples/nls/HelloWorldResource.properties   |    14 -
 .../samples/nls/JsonSchemaResource.properties   |    15 -
 .../nls/MethodExampleResource.properties        |    32 -
 .../samples/nls/PhotosResource.properties       |    19 -
 .../samples/nls/RequestEchoResource.properties  |    14 -
 .../server/samples/nls/RootResources.properties |    13 -
 .../nls/SampleRemoteableServlet.properties      |    12 -
 .../samples/nls/SourceResource.properties       |    14 -
 .../samples/nls/SqlQueryResource.properties     |    14 -
 .../samples/nls/TempDirResource.properties      |    13 -
 .../samples/nls/TumblrParserResource.properties |    14 -
 .../nls/UrlEncodedFormResource.properties       |    17 -
 .../bin/server.test/META-INF/MANIFEST.MF        |    20 +-
 .../com/ibm/juno/server/test/DTOs$A.class       |   Bin 613 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$1.class     |   Bin 628 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$10.class    |   Bin 849 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$2.class     |   Bin 687 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$3.class     |   Bin 689 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$4.class     |   Bin 728 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$5.class     |   Bin 847 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$6.class     |   Bin 628 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$7.class     |   Bin 687 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$8.class     |   Bin 689 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$9.class     |   Bin 728 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B.class       |   Bin 5216 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$1.class     |   Bin 628 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$10.class    |   Bin 849 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$2.class     |   Bin 687 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$3.class     |   Bin 689 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$4.class     |   Bin 728 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$5.class     |   Bin 847 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$6.class     |   Bin 628 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$7.class     |   Bin 687 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$8.class     |   Bin 689 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$9.class     |   Bin 728 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C.class       |   Bin 2424 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs.class         |   Bin 461 -> 0 bytes
 .../com/ibm/juno/server/test/Root.class         |   Bin 3631 -> 0 bytes
 .../test/TestAcceptCharset$TestParser.class     |   Bin 1797 -> 0 bytes
 .../test/TestAcceptCharset$TestSerializer.class |   Bin 1874 -> 0 bytes
 .../juno/server/test/TestAcceptCharset.class    |   Bin 1569 -> 0 bytes
 .../server/test/TestBeanContextProperties.class |   Bin 1853 -> 0 bytes
 .../juno/server/test/TestCallbackStrings.class  |   Bin 2547 -> 0 bytes
 .../test/TestCharsetEncodings$ASerializer.class |   Bin 1354 -> 0 bytes
 .../test/TestCharsetEncodings$CtParser.class    |   Bin 1638 -> 0 bytes
 .../juno/server/test/TestCharsetEncodings.class |   Bin 1628 -> 0 bytes
 .../com/ibm/juno/server/test/TestConfig.class   |   Bin 1949 -> 0 bytes
 .../com/ibm/juno/server/test/TestContent.class  |   Bin 2798 -> 0 bytes
 .../server/test/TestDefaultContentTypes$1.class |   Bin 270 -> 0 bytes
 .../TestDefaultContentTypes$DummyParser.class   |   Bin 1842 -> 0 bytes
 ...estDefaultContentTypes$DummySerializer.class |   Bin 1801 -> 0 bytes
 .../test/TestDefaultContentTypes$P1.class       |   Bin 768 -> 0 bytes
 .../test/TestDefaultContentTypes$P2.class       |   Bin 768 -> 0 bytes
 .../test/TestDefaultContentTypes$P3.class       |   Bin 768 -> 0 bytes
 .../test/TestDefaultContentTypes$S1.class       |   Bin 776 -> 0 bytes
 .../test/TestDefaultContentTypes$S2.class       |   Bin 776 -> 0 bytes
 .../test/TestDefaultContentTypes$S3.class       |   Bin 776 -> 0 bytes
 .../server/test/TestDefaultContentTypes.class   |   Bin 3254 -> 0 bytes
 .../test/TestErrorConditions$NeverMatcher.class |   Bin 628 -> 0 bytes
 .../server/test/TestErrorConditions$Test1.class |   Bin 467 -> 0 bytes
 .../server/test/TestErrorConditions$Test2.class |   Bin 450 -> 0 bytes
 .../test/TestErrorConditions$Test3a.class       |   Bin 453 -> 0 bytes
 .../test/TestErrorConditions$Test3b.class       |   Bin 569 -> 0 bytes
 .../test/TestErrorConditions$Test3b1.class      |   Bin 439 -> 0 bytes
 .../test/TestErrorConditions$Test3c.class       |   Bin 712 -> 0 bytes
 .../juno/server/test/TestErrorConditions.class  |   Bin 3775 -> 0 bytes
 .../ibm/juno/server/test/TestFilters$A.class    |   Bin 406 -> 0 bytes
 .../juno/server/test/TestFilters$FilterA1.class |   Bin 2313 -> 0 bytes
 .../juno/server/test/TestFilters$FilterA2.class |   Bin 2313 -> 0 bytes
 .../juno/server/test/TestFilters$FilterA3.class |   Bin 2313 -> 0 bytes
 .../com/ibm/juno/server/test/TestFilters.class  |   Bin 2166 -> 0 bytes
 .../juno/server/test/TestFiltersParent.class    |   Bin 703 -> 0 bytes
 .../juno/server/test/TestGroups$PParser.class   |   Bin 1609 -> 0 bytes
 .../server/test/TestGroups$SSerializer.class    |   Bin 1498 -> 0 bytes
 .../com/ibm/juno/server/test/TestGroups.class   |   Bin 1778 -> 0 bytes
 .../juno/server/test/TestGzip$MyEncoder.class   |   Bin 562 -> 0 bytes
 .../juno/server/test/TestGzip$TestGzipOff.class |   Bin 1195 -> 0 bytes
 .../juno/server/test/TestGzip$TestGzipOn.class  |   Bin 2641 -> 0 bytes
 .../com/ibm/juno/server/test/TestGzip.class     |   Bin 539 -> 0 bytes
 .../test/TestInheritance$DummyParser.class      |   Bin 1424 -> 0 bytes
 .../test/TestInheritance$DummySerializer.class  |   Bin 1239 -> 0 bytes
 .../juno/server/test/TestInheritance$E1.class   |   Bin 567 -> 0 bytes
 .../juno/server/test/TestInheritance$E2.class   |   Bin 567 -> 0 bytes
 .../juno/server/test/TestInheritance$E3.class   |   Bin 567 -> 0 bytes
 .../juno/server/test/TestInheritance$E4.class   |   Bin 567 -> 0 bytes
 .../juno/server/test/TestInheritance$F1.class   |   Bin 1063 -> 0 bytes
 .../juno/server/test/TestInheritance$F2.class   |   Bin 1063 -> 0 bytes
 .../juno/server/test/TestInheritance$F3.class   |   Bin 1063 -> 0 bytes
 .../juno/server/test/TestInheritance$Foo1.class |   Bin 510 -> 0 bytes
 .../juno/server/test/TestInheritance$Foo2.class |   Bin 510 -> 0 bytes
 .../juno/server/test/TestInheritance$Foo3.class |   Bin 510 -> 0 bytes
 .../juno/server/test/TestInheritance$P1.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$P2.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$P3.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$P4.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$P5.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$S1.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$S2.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$S3.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$S4.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$S5.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$Sub.class  |   Bin 1550 -> 0 bytes
 .../test/TestInheritance$TestEncoders.class     |   Bin 1291 -> 0 bytes
 .../test/TestInheritance$TestFilters.class      |   Bin 2078 -> 0 bytes
 .../test/TestInheritance$TestParsers.class      |   Bin 1688 -> 0 bytes
 .../test/TestInheritance$TestProperties.class   |   Bin 2637 -> 0 bytes
 .../test/TestInheritance$TestSerializers.class  |   Bin 1719 -> 0 bytes
 .../ibm/juno/server/test/TestInheritance.class  |   Bin 2994 -> 0 bytes
 .../ibm/juno/server/test/TestLargePojos.class   |   Bin 1100 -> 0 bytes
 .../TestMessages$ResourceBundleFilter.class     |   Bin 1643 -> 0 bytes
 .../test/TestMessages$TestMessages2.class       |   Bin 540 -> 0 bytes
 .../com/ibm/juno/server/test/TestMessages.class |   Bin 1170 -> 0 bytes
 .../juno/server/test/TestMessages.properties    |    10 -
 .../juno/server/test/TestMessages2.properties   |    10 -
 .../ibm/juno/server/test/TestNls$Test1.class    |   Bin 1835 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test2.class    |   Bin 1259 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test3.class    |   Bin 1259 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test4.class    |   Bin 1259 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test5.class    |   Bin 1259 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test6.class    |   Bin 1715 -> 0 bytes
 .../com/ibm/juno/server/test/TestNls.class      |   Bin 1177 -> 0 bytes
 .../com/ibm/juno/server/test/TestNls.properties |    74 -
 .../test/TestNlsProperty$TestSerializer.class   |   Bin 1512 -> 0 bytes
 .../ibm/juno/server/test/TestNlsProperty.class  |   Bin 1235 -> 0 bytes
 .../juno/server/test/TestNlsProperty.properties |    10 -
 .../juno/server/test/TestNoParserInput.class    |   Bin 1501 -> 0 bytes
 .../test/TestOnPostCall$TestSerializer.class    |   Bin 2449 -> 0 bytes
 .../ibm/juno/server/test/TestOnPostCall.class   |   Bin 2784 -> 0 bytes
 .../server/test/TestOnPreCall$TestParserA.class |   Bin 2353 -> 0 bytes
 .../ibm/juno/server/test/TestOnPreCall.class    |   Bin 2619 -> 0 bytes
 .../server/test/TestOptionsWithoutNls.class     |   Bin 1432 -> 0 bytes
 .../TestOverlappingMethods$Test1Guard.class     |   Bin 860 -> 0 bytes
 .../TestOverlappingMethods$Test2Guard.class     |   Bin 860 -> 0 bytes
 .../TestOverlappingMethods$Test3aMatcher.class  |   Bin 862 -> 0 bytes
 .../TestOverlappingMethods$Test3bMatcher.class  |   Bin 862 -> 0 bytes
 .../server/test/TestOverlappingMethods.class    |   Bin 3586 -> 0 bytes
 .../com/ibm/juno/server/test/TestParams$A.class |   Bin 450 -> 0 bytes
 .../juno/server/test/TestParams$Test6Bean.class |   Bin 460 -> 0 bytes
 .../com/ibm/juno/server/test/TestParams.class   |   Bin 12171 -> 0 bytes
 .../server/test/TestParsers$TestParserA.class   |   Bin 1831 -> 0 bytes
 .../server/test/TestParsers$TestParserB.class   |   Bin 1830 -> 0 bytes
 .../server/test/TestParsers$TestParserC.class   |   Bin 1830 -> 0 bytes
 .../server/test/TestParsers$TestParserD.class   |   Bin 1842 -> 0 bytes
 .../com/ibm/juno/server/test/TestParsers.class  |   Bin 2253 -> 0 bytes
 .../juno/server/test/TestPath$TestPath2.class   |   Bin 933 -> 0 bytes
 .../juno/server/test/TestPath$TestPath3.class   |   Bin 514 -> 0 bytes
 .../juno/server/test/TestPath$TestPath3a.class  |   Bin 800 -> 0 bytes
 .../com/ibm/juno/server/test/TestPath.class     |   Bin 997 -> 0 bytes
 .../com/ibm/juno/server/test/TestPaths$A.class  |   Bin 1481 -> 0 bytes
 .../com/ibm/juno/server/test/TestPaths.class    |   Bin 2510 -> 0 bytes
 .../TestProperties$PropertySerializer1.class    |   Bin 2006 -> 0 bytes
 .../TestProperties$PropertySerializer2.class    |   Bin 1775 -> 0 bytes
 .../ibm/juno/server/test/TestProperties.class   |   Bin 2070 -> 0 bytes
 .../ibm/juno/server/test/TestRestClient.class   |   Bin 986 -> 0 bytes
 .../test/TestSerializers$TestSerializerA.class  |   Bin 1513 -> 0 bytes
 .../test/TestSerializers$TestSerializerB.class  |   Bin 1513 -> 0 bytes
 .../test/TestSerializers$TestSerializerC.class  |   Bin 1513 -> 0 bytes
 .../test/TestSerializers$TestSerializerD.class  |   Bin 1544 -> 0 bytes
 .../ibm/juno/server/test/TestSerializers.class  |   Bin 2102 -> 0 bytes
 .../ibm/juno/server/test/TestStaticFiles.class  |   Bin 734 -> 0 bytes
 .../ibm/juno/server/test/TestUris$Child.class   |   Bin 1689 -> 0 bytes
 .../juno/server/test/TestUris$GrandChild.class  |   Bin 1590 -> 0 bytes
 .../com/ibm/juno/server/test/TestUris.class     |   Bin 2711 -> 0 bytes
 .../server/test/TestUrlContent$TestBean.class   |   Bin 473 -> 0 bytes
 .../server/test/TestUrlContent$TestEnum.class   |   Bin 1148 -> 0 bytes
 .../ibm/juno/server/test/TestUrlContent.class   |   Bin 2471 -> 0 bytes
 .../com/ibm/juno/server/test/xdocs/test.txt     |     1 -
 .../ibm/juno/server/test/xdocs/xdocs/test.txt   |     1 -
 .../com/ibm/juno/server/tests/AllTests.class    |   Bin 2573 -> 0 bytes
 .../ibm/juno/server/tests/CT_JacocoDummy.class  |   Bin 1275 -> 0 bytes
 .../ibm/juno/server/tests/CT_RestUtils.class    |   Bin 4727 -> 0 bytes
 .../server/tests/CT_TestAcceptCharset.class     |   Bin 4963 -> 0 bytes
 .../tests/CT_TestBeanContextProperties.class    |   Bin 1484 -> 0 bytes
 .../server/tests/CT_TestCallbackStrings.class   |   Bin 1857 -> 0 bytes
 .../server/tests/CT_TestCharsetEncodings.class  |   Bin 3667 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestConfig.class   |   Bin 3590 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestContent.class  |   Bin 15635 -> 0 bytes
 .../tests/CT_TestDefaultContentTypes.class      |   Bin 8733 -> 0 bytes
 .../server/tests/CT_TestErrorConditions.class   |   Bin 7368 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestFilters.class  |   Bin 2240 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestGroups.class   |   Bin 3700 -> 0 bytes
 .../com/ibm/juno/server/tests/CT_TestGzip.class |   Bin 8076 -> 0 bytes
 .../juno/server/tests/CT_TestInheritance.class  |   Bin 3289 -> 0 bytes
 .../juno/server/tests/CT_TestLargePojos.class   |   Bin 3128 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestMessages.class |   Bin 1319 -> 0 bytes
 .../com/ibm/juno/server/tests/CT_TestNls.class  |   Bin 7065 -> 0 bytes
 .../juno/server/tests/CT_TestNlsProperty.class  |   Bin 1645 -> 0 bytes
 .../server/tests/CT_TestNoParserInput.class     |   Bin 2493 -> 0 bytes
 .../juno/server/tests/CT_TestOnPostCall.class   |   Bin 3695 -> 0 bytes
 .../juno/server/tests/CT_TestOnPreCall.class    |   Bin 2260 -> 0 bytes
 .../server/tests/CT_TestOptionsWithoutNls.class |   Bin 2058 -> 0 bytes
 .../tests/CT_TestOverlappingMethods.class       |   Bin 4150 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestParams.class   |   Bin 13076 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestParsers.class  |   Bin 4253 -> 0 bytes
 .../com/ibm/juno/server/tests/CT_TestPath.class |   Bin 1713 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestPaths.class    |   Bin 16152 -> 0 bytes
 .../juno/server/tests/CT_TestProperties.class   |   Bin 2120 -> 0 bytes
 .../juno/server/tests/CT_TestRestClient$1.class |   Bin 1588 -> 0 bytes
 .../juno/server/tests/CT_TestRestClient$2.class |   Bin 1549 -> 0 bytes
 .../juno/server/tests/CT_TestRestClient$3.class |   Bin 1549 -> 0 bytes
 .../juno/server/tests/CT_TestRestClient.class   |   Bin 5184 -> 0 bytes
 .../juno/server/tests/CT_TestSerializers.class  |   Bin 4130 -> 0 bytes
 .../juno/server/tests/CT_TestStaticFiles.class  |   Bin 2121 -> 0 bytes
 .../com/ibm/juno/server/tests/CT_TestUris.class |   Bin 22260 -> 0 bytes
 .../juno/server/tests/CT_TestUrlContent.class   |   Bin 2246 -> 0 bytes
 .../juno/server/tests/CT_UrlPathPattern.class   |   Bin 1561 -> 0 bytes
 .../com/ibm/juno/server/tests/Constants.class   |   Bin 1504 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$A.class      |   Bin 617 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$1.class    |   Bin 633 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$10.class   |   Bin 857 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$2.class    |   Bin 692 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$3.class    |   Bin 694 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$4.class    |   Bin 736 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$5.class    |   Bin 855 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$6.class    |   Bin 633 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$7.class    |   Bin 692 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$8.class    |   Bin 694 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$9.class    |   Bin 736 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B.class      |   Bin 5244 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$1.class    |   Bin 633 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$10.class   |   Bin 857 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$2.class    |   Bin 692 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$3.class    |   Bin 694 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$4.class    |   Bin 736 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$5.class    |   Bin 855 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$6.class    |   Bin 633 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$7.class    |   Bin 692 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$8.class    |   Bin 694 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$9.class    |   Bin 736 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C.class      |   Bin 2445 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs.class        |   Bin 466 -> 0 bytes
 .../ibm/juno/server/tests/LargePojo$A1.class    |   Bin 547 -> 0 bytes
 .../juno/server/tests/LargePojo$A1List.class    |   Bin 547 -> 0 bytes
 .../ibm/juno/server/tests/LargePojo$A1Map.class |   Bin 568 -> 0 bytes
 .../com/ibm/juno/server/tests/LargePojo.class   |   Bin 1298 -> 0 bytes
 .../ibm/juno/server/tests/TestRestClient.class  |   Bin 3779 -> 0 bytes
 .../com/ibm/juno/server/tests/TestUtils.class   |   Bin 2774 -> 0 bytes
 .../CT_AddressBookResource$PersonList.class     |   Bin 576 -> 0 bytes
 .../tests/sample/CT_AddressBookResource.class   |   Bin 8852 -> 0 bytes
 .../sample/CT_AddressBookResource_test0.json    |    14 -
 .../server/tests/sample/CT_RootResources.class  |   Bin 5376 -> 0 bytes
 .../CT_SampleRemoteableServicesResource.class   |   Bin 3458 -> 0 bytes
 .../sample/CT_TestMultiPartFormPosts.class      |   Bin 2439 -> 0 bytes
 .../server/tests/sample/SamplesRestClient.class |   Bin 3803 -> 0 bytes
 .../bin/server/META-INF/MANIFEST.MF             |    25 +-
 .../com/ibm/juno/server/ReaderResource.class    |   Bin 2191 -> 0 bytes
 .../com/ibm/juno/server/ReaderResource.java     |    96 -
 .../server/com/ibm/juno/server/Redirect.class   |   Bin 1872 -> 0 bytes
 .../server/com/ibm/juno/server/Redirect.java    |   133 -
 .../com/ibm/juno/server/ResponseHandler.class   |   Bin 328 -> 0 bytes
 .../com/ibm/juno/server/ResponseHandler.java    |    87 -
 .../com/ibm/juno/server/RestConverter.class     |   Bin 491 -> 0 bytes
 .../com/ibm/juno/server/RestConverter.java      |    70 -
 .../com/ibm/juno/server/RestException.class     |   Bin 2966 -> 0 bytes
 .../com/ibm/juno/server/RestException.java      |   133 -
 .../server/com/ibm/juno/server/RestGuard.class  |   Bin 814 -> 0 bytes
 .../server/com/ibm/juno/server/RestGuard.java   |    95 -
 .../com/ibm/juno/server/RestMatcher.class       |   Bin 355 -> 0 bytes
 .../server/com/ibm/juno/server/RestMatcher.java |    61 -
 .../com/ibm/juno/server/RestRequest$1.class     |   Bin 919 -> 0 bytes
 .../com/ibm/juno/server/RestRequest.class       |   Bin 31670 -> 0 bytes
 .../server/com/ibm/juno/server/RestRequest.java |  1743 ---
 .../com/ibm/juno/server/RestResponse$1.class    |   Bin 1210 -> 0 bytes
 .../com/ibm/juno/server/RestResponse.class      |   Bin 9992 -> 0 bytes
 .../com/ibm/juno/server/RestResponse.java       |   427 -
 .../com/ibm/juno/server/RestServlet$1.class     |   Bin 1192 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$10.class    |   Bin 846 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$11.class    |   Bin 2518 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$12.class    |   Bin 1599 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$2.class     |   Bin 889 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$3.class     |   Bin 807 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$4.class     |   Bin 802 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$5.class     |   Bin 895 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$6.class     |   Bin 1316 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$7.class     |   Bin 2419 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$8.class     |   Bin 1191 -> 0 bytes
 .../com/ibm/juno/server/RestServlet$9.class     |   Bin 969 -> 0 bytes
 .../juno/server/RestServlet$MethodMeta.class    |   Bin 19810 -> 0 bytes
 .../juno/server/RestServlet$MethodParam.class   |   Bin 6575 -> 0 bytes
 .../juno/server/RestServlet$MultiMethod.class   |   Bin 4753 -> 0 bytes
 .../ibm/juno/server/RestServlet$ParamType.class |   Bin 2106 -> 0 bytes
 .../server/RestServlet$ResourceMethod.class     |   Bin 1073 -> 0 bytes
 .../com/ibm/juno/server/RestServlet.class       |   Bin 57121 -> 0 bytes
 .../server/com/ibm/juno/server/RestServlet.java |  3045 ----
 .../ibm/juno/server/RestServletDefault.class    |   Bin 2959 -> 0 bytes
 .../com/ibm/juno/server/RestServletDefault.java |   228 -
 .../ibm/juno/server/RestServletException.class  |   Bin 1073 -> 0 bytes
 .../ibm/juno/server/RestServletException.java   |    44 -
 .../juno/server/RestServletGroupDefault.class   |   Bin 1001 -> 0 bytes
 .../juno/server/RestServletGroupDefault.java    |    39 -
 .../com/ibm/juno/server/RestServletNls$1.class  |   Bin 233 -> 0 bytes
 .../server/RestServletNls$ClassBundleDef.class  |   Bin 1337 -> 0 bytes
 .../com/ibm/juno/server/RestServletNls.class    |   Bin 4631 -> 0 bytes
 .../com/ibm/juno/server/RestServletNls.java     |   102 -
 .../ibm/juno/server/RestServletProperties.class |   Bin 1211 -> 0 bytes
 .../ibm/juno/server/RestServletProperties.java  |   144 -
 .../com/ibm/juno/server/RestUtils$1.class       |   Bin 1963 -> 0 bytes
 .../server/com/ibm/juno/server/RestUtils.class  |   Bin 4660 -> 0 bytes
 .../server/com/ibm/juno/server/RestUtils.java   |   246 -
 .../com/ibm/juno/server/StreamResource.class    |   Bin 1919 -> 0 bytes
 .../com/ibm/juno/server/StreamResource.java     |    87 -
 .../com/ibm/juno/server/UrlPathPattern.class    |   Bin 3843 -> 0 bytes
 .../com/ibm/juno/server/UrlPathPattern.java     |   157 -
 .../com/ibm/juno/server/annotation/Attr.class   |   Bin 537 -> 0 bytes
 .../com/ibm/juno/server/annotation/Attr.java    |    70 -
 .../ibm/juno/server/annotation/Content.class    |   Bin 480 -> 0 bytes
 .../com/ibm/juno/server/annotation/Content.java |    54 -
 .../ibm/juno/server/annotation/HasParam.class   |   Bin 513 -> 0 bytes
 .../ibm/juno/server/annotation/HasParam.java    |    91 -
 .../ibm/juno/server/annotation/HasQParam.class  |   Bin 515 -> 0 bytes
 .../ibm/juno/server/annotation/HasQParam.java   |    57 -
 .../com/ibm/juno/server/annotation/Header.class |   Bin 509 -> 0 bytes
 .../com/ibm/juno/server/annotation/Header.java  |    50 -
 .../ibm/juno/server/annotation/Inherit.class    |   Bin 1168 -> 0 bytes
 .../com/ibm/juno/server/annotation/Inherit.java |    30 -
 .../ibm/juno/server/annotation/Messages.class   |   Bin 482 -> 0 bytes
 .../ibm/juno/server/annotation/Messages.java    |    48 -
 .../com/ibm/juno/server/annotation/Method.class |   Bin 478 -> 0 bytes
 .../com/ibm/juno/server/annotation/Method.java  |    47 -
 .../com/ibm/juno/server/annotation/Param.class  |   Bin 567 -> 0 bytes
 .../com/ibm/juno/server/annotation/Param.java   |    76 -
 .../juno/server/annotation/PathRemainder.class  |   Bin 492 -> 0 bytes
 .../juno/server/annotation/PathRemainder.java   |    44 -
 .../ibm/juno/server/annotation/Properties.class |   Bin 486 -> 0 bytes
 .../ibm/juno/server/annotation/Properties.java  |    62 -
 .../ibm/juno/server/annotation/Property.class   |   Bin 534 -> 0 bytes
 .../ibm/juno/server/annotation/Property.java    |    61 -
 .../com/ibm/juno/server/annotation/QParam.class |   Bin 569 -> 0 bytes
 .../com/ibm/juno/server/annotation/QParam.java  |    72 -
 .../ibm/juno/server/annotation/Response.class   |   Bin 641 -> 0 bytes
 .../ibm/juno/server/annotation/Response.java    |    67 -
 .../ibm/juno/server/annotation/RestMethod.class |   Bin 1815 -> 0 bytes
 .../ibm/juno/server/annotation/RestMethod.java  |   379 -
 .../juno/server/annotation/RestResource.class   |   Bin 1670 -> 0 bytes
 .../juno/server/annotation/RestResource.java    |   432 -
 .../com/ibm/juno/server/annotation/Var.class    |   Bin 592 -> 0 bytes
 .../com/ibm/juno/server/annotation/Var.java     |    66 -
 .../juno/server/annotation/VarCategory.class    |   Bin 536 -> 0 bytes
 .../ibm/juno/server/annotation/VarCategory.java |    32 -
 .../com/ibm/juno/server/annotation/package.html |    34 -
 .../juno/server/converters/Introspectable.class |   Bin 1950 -> 0 bytes
 .../juno/server/converters/Introspectable.java  |    55 -
 .../ibm/juno/server/converters/Queryable.class  |   Bin 3469 -> 0 bytes
 .../ibm/juno/server/converters/Queryable.java   |    97 -
 .../juno/server/converters/Traversable.class    |   Bin 1791 -> 0 bytes
 .../ibm/juno/server/converters/Traversable.java |    63 -
 .../com/ibm/juno/server/converters/package.html |    34 -
 .../ibm/juno/server/doc-files/AddressBook.png   |   Bin 44553 -> 0 bytes
 .../juno/server/doc-files/AddressBookJson.png   |   Bin 30639 -> 0 bytes
 .../server/doc-files/AddressBookOptions.png     |   Bin 224346 -> 0 bytes
 .../server/doc-files/AddressBook_junostyle.png  |   Bin 52768 -> 0 bytes
 .../server/doc-files/HelloWorldResource1.png    |   Bin 14206 -> 0 bytes
 .../server/doc-files/HelloWorldResource2.png    |   Bin 30721 -> 0 bytes
 .../server/doc-files/HelloWorldResource3.png    |   Bin 11040 -> 0 bytes
 .../server/doc-files/HelloWorldResource4.png    |   Bin 16188 -> 0 bytes
 .../doc-files/HelloWorldResourceOptions.png     |   Bin 67692 -> 0 bytes
 .../doc-files/HelloWorldResourceOptionsJson.png |   Bin 27940 -> 0 bytes
 .../com/ibm/juno/server/doc-files/Options2.png  |   Bin 9809 -> 0 bytes
 .../ibm/juno/server/doc-files/OptionsPage.png   |   Bin 56895 -> 0 bytes
 .../server/doc-files/Samples_RootResources.png  |   Bin 62372 -> 0 bytes
 .../juno/server/doc-files/UrlEncodedForm.png    |   Bin 21379 -> 0 bytes
 .../server/htdocs/MethodExampleResource1.png    |   Bin 12276 -> 0 bytes
 .../com/ibm/juno/server/htdocs/javadoc.css      |   782 -
 .../ibm/juno/server/jaxrs/BaseProvider.class    |   Bin 9644 -> 0 bytes
 .../com/ibm/juno/server/jaxrs/BaseProvider.java |   144 -
 .../ibm/juno/server/jaxrs/DefaultProvider.class |   Bin 1858 -> 0 bytes
 .../ibm/juno/server/jaxrs/DefaultProvider.java  |    69 -
 .../ibm/juno/server/jaxrs/JunoProvider.class    |   Bin 879 -> 0 bytes
 .../com/ibm/juno/server/jaxrs/JunoProvider.java |    85 -
 .../com/ibm/juno/server/jaxrs/package.html      |   354 -
 .../server/jaxrs/rdf/DefaultJenaProvider.class  |   Bin 3048 -> 0 bytes
 .../server/jaxrs/rdf/DefaultJenaProvider.java   |    89 -
 .../com/ibm/juno/server/jaxrs/rdf/package.html  |    27 -
 .../server/jena/RestServletJenaDefault.class    |   Bin 4130 -> 0 bytes
 .../server/jena/RestServletJenaDefault.java     |   268 -
 .../jena/RestServletJenaGroupDefault.class      |   Bin 1032 -> 0 bytes
 .../jena/RestServletJenaGroupDefault.java       |    39 -
 .../com/ibm/juno/server/jena/package.html       |    40 -
 .../bin/server/com/ibm/juno/server/juno.ico     |   Bin 39438 -> 0 bytes
 ...eanDescription$BeanPropertyDescription.class |   Bin 979 -> 0 bytes
 .../juno/server/labels/BeanDescription.class    |   Bin 2083 -> 0 bytes
 .../ibm/juno/server/labels/BeanDescription.java |    69 -
 .../labels/ChildResourceDescriptions.class      |   Bin 2189 -> 0 bytes
 .../labels/ChildResourceDescriptions.java       |    59 -
 .../ibm/juno/server/labels/DefaultLabels.class  |   Bin 2899 -> 0 bytes
 .../ibm/juno/server/labels/DefaultLabels.java   |    74 -
 .../labels/MethodDescription$Response.class     |   Bin 1825 -> 0 bytes
 .../juno/server/labels/MethodDescription.class  |   Bin 5388 -> 0 bytes
 .../juno/server/labels/MethodDescription.java   |   324 -
 .../juno/server/labels/NameDescription.class    |   Bin 1024 -> 0 bytes
 .../ibm/juno/server/labels/NameDescription.java |    70 -
 .../juno/server/labels/ParamDescription.class   |   Bin 1308 -> 0 bytes
 .../juno/server/labels/ParamDescription.java    |    99 -
 .../server/labels/ResourceDescription.class     |   Bin 3402 -> 0 bytes
 .../juno/server/labels/ResourceDescription.java |   104 -
 .../ibm/juno/server/labels/ResourceLink.class   |   Bin 1926 -> 0 bytes
 .../ibm/juno/server/labels/ResourceLink.java    |    64 -
 .../juno/server/labels/ResourceOptions.class    |   Bin 6442 -> 0 bytes
 .../ibm/juno/server/labels/ResourceOptions.java |   278 -
 .../server/com/ibm/juno/server/labels/Var.class |   Bin 1911 -> 0 bytes
 .../server/com/ibm/juno/server/labels/Var.java  |    83 -
 .../server/labels/nls/DefaultLabels.properties  |    36 -
 .../com/ibm/juno/server/labels/package.html     |    34 -
 .../matchers/MultipartFormDataMatcher.class     |   Bin 816 -> 0 bytes
 .../matchers/MultipartFormDataMatcher.java      |    24 -
 .../server/matchers/UrlEncodedFormMatcher.class |   Bin 817 -> 0 bytes
 .../server/matchers/UrlEncodedFormMatcher.java  |    24 -
 .../com/ibm/juno/server/matchers/package.html   |    27 -
 .../bin/server/com/ibm/juno/server/package.html |  3575 -----
 .../RemoteableServiceProperties.class           |   Bin 514 -> 0 bytes
 .../remoteable/RemoteableServiceProperties.java |    35 -
 .../server/remoteable/RemoteableServlet.class   |   Bin 5846 -> 0 bytes
 .../server/remoteable/RemoteableServlet.java    |   150 -
 .../ibm/juno/server/remoteable/doc-files/1.png  |   Bin 15845 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/2.png  |   Bin 20379 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/3.png  |   Bin 33919 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/4.png  |   Bin 21108 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/5.png  |   Bin 10553 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/6.png  |   Bin 24934 -> 0 bytes
 .../com/ibm/juno/server/remoteable/package.html |   349 -
 .../juno/server/response/DefaultHandler.class   |   Bin 4623 -> 0 bytes
 .../juno/server/response/DefaultHandler.java    |    85 -
 .../server/response/InputStreamHandler.class    |   Bin 1376 -> 0 bytes
 .../server/response/InputStreamHandler.java     |    40 -
 .../juno/server/response/ReaderHandler.class    |   Bin 1183 -> 0 bytes
 .../ibm/juno/server/response/ReaderHandler.java |    38 -
 .../juno/server/response/RedirectHandler.class  |   Bin 1995 -> 0 bytes
 .../juno/server/response/RedirectHandler.java   |    46 -
 .../server/response/StreamableHandler.class     |   Bin 2161 -> 0 bytes
 .../juno/server/response/StreamableHandler.java |    49 -
 .../juno/server/response/WritableHandler.class  |   Bin 2123 -> 0 bytes
 .../juno/server/response/WritableHandler.java   |    49 -
 .../response/ZipFileListResponseHandler.class   |   Bin 2603 -> 0 bytes
 .../response/ZipFileListResponseHandler.java    |    58 -
 .../com/ibm/juno/server/response/package.html   |    34 -
 .../com/ibm/juno/server/styles/devops.css       |   200 -
 .../server/com/ibm/juno/server/styles/juno.css  |   129 -
 com.ibm.team.juno.releng/build.properties       |    26 +-
 com.ibm.team.juno.releng/build.xml              |   424 +-
 .../build/Juno Cloud API (v5.2.0.0).zip         |   Bin 36988162 -> 0 bytes
 com.ibm.team.juno.releng/build/Readme.txt       |    33 -
 .../com.ibm.team.juno.client_5.2.0.0.jar        |   Bin 56332 -> 0 bytes
 .../com.ibm.team.juno.microservice_5.2.0.0.jar  |   Bin 49605 -> 0 bytes
 .../com.ibm.team.juno.server_5.2.0.0.jar        |   Bin 178033 -> 0 bytes
 .../build/bundles/com.ibm.team.juno_5.2.0.0.jar |   Bin 669287 -> 0 bytes
 com.ibm.team.juno.releng/build/derby.log        |     0
 .../build/doc/allclasses-frame.html             |   436 -
 .../build/doc/allclasses-noframe.html           |   436 -
 .../com/ibm/juno/client/AllowAllRedirects.html  |   299 -
 .../doc/com/ibm/juno/client/DateHeader.html     |   261 -
 .../doc/com/ibm/juno/client/HttpMethod.html     |   455 -
 .../doc/com/ibm/juno/client/NameValuePairs.html |   357 -
 .../com/ibm/juno/client/ResponsePattern.html    |   374 -
 .../build/doc/com/ibm/juno/client/RestCall.html |  1274 --
 .../com/ibm/juno/client/RestCallException.html  |   449 -
 .../ibm/juno/client/RestCallInterceptor.html    |   338 -
 .../doc/com/ibm/juno/client/RestCallLogger.html |   367 -
 .../doc/com/ibm/juno/client/RestClient.html     |  2142 ---
 .../com/ibm/juno/client/RestRequestEntity.html  |   356 -
 .../build/doc/com/ibm/juno/client/RetryOn.html  |   255 -
 .../ibm/juno/client/SSLOpts.CertValidate.html   |   336 -
 .../com/ibm/juno/client/SSLOpts.HostVerify.html |   336 -
 .../build/doc/com/ibm/juno/client/SSLOpts.html  |   487 -
 .../juno/client/SerializedNameValuePair.html    |   304 -
 .../ibm/juno/client/SimpleX509TrustManager.html |   319 -
 .../client/class-use/AllowAllRedirects.html     |   117 -
 .../ibm/juno/client/class-use/DateHeader.html   |   117 -
 .../ibm/juno/client/class-use/HttpMethod.html   |   185 -
 .../juno/client/class-use/NameValuePairs.html   |   161 -
 .../juno/client/class-use/ResponsePattern.html  |   161 -
 .../com/ibm/juno/client/class-use/RestCall.html |   444 -
 .../client/class-use/RestCallException.html     |   327 -
 .../client/class-use/RestCallInterceptor.html   |   182 -
 .../juno/client/class-use/RestCallLogger.html   |   117 -
 .../ibm/juno/client/class-use/RestClient.html   |   515 -
 .../client/class-use/RestRequestEntity.html     |   117 -
 .../com/ibm/juno/client/class-use/RetryOn.html  |   178 -
 .../client/class-use/SSLOpts.CertValidate.html  |   204 -
 .../client/class-use/SSLOpts.HostVerify.html    |   204 -
 .../com/ibm/juno/client/class-use/SSLOpts.html  |   256 -
 .../class-use/SerializedNameValuePair.html      |   117 -
 .../class-use/SimpleX509TrustManager.html       |   117 -
 .../client/deprecated/CertificateStore.html     |   334 -
 .../deprecated/ICertificateValidator.Trust.html |   364 -
 .../deprecated/ICertificateValidator.html       |   249 -
 .../client/deprecated/ITrustStoreProvider.html  |   269 -
 .../deprecated/LenientCertificateValidator.html |   340 -
 .../deprecated/SharedTrustStoreProvider.html    |   337 -
 .../deprecated/ValidatingX509TrustManager.html  |   338 -
 .../deprecated/class-use/CertificateStore.html  |   180 -
 .../class-use/ICertificateValidator.Trust.html  |   181 -
 .../class-use/ICertificateValidator.html        |   189 -
 .../class-use/ITrustStoreProvider.html          |   159 -
 .../class-use/LenientCertificateValidator.html  |   117 -
 .../class-use/SharedTrustStoreProvider.html     |   117 -
 .../class-use/ValidatingX509TrustManager.html   |   117 -
 .../juno/client/deprecated/package-frame.html   |    30 -
 .../juno/client/deprecated/package-summary.html |   183 -
 .../juno/client/deprecated/package-tree.html    |   150 -
 .../ibm/juno/client/deprecated/package-use.html |   168 -
 .../ibm/juno/client/jazz/JazzRestClient.html    |   535 -
 .../client/jazz/class-use/JazzRestClient.html   |   117 -
 .../com/ibm/juno/client/jazz/package-frame.html |    18 -
 .../ibm/juno/client/jazz/package-summary.html   |   299 -
 .../com/ibm/juno/client/jazz/package-tree.html  |   142 -
 .../com/ibm/juno/client/jazz/package-use.html   |   117 -
 .../doc/com/ibm/juno/client/package-frame.html  |    43 -
 .../com/ibm/juno/client/package-summary.html    |  1094 --
 .../doc/com/ibm/juno/client/package-tree.html   |   215 -
 .../doc/com/ibm/juno/client/package-use.html    |   234 -
 .../doc/com/ibm/juno/core/BeanContext.html      |  1454 --
 .../com/ibm/juno/core/BeanContextFactory.html   |   553 -
 .../ibm/juno/core/BeanContextProperties.html    |   637 -
 .../build/doc/com/ibm/juno/core/BeanMap.html    |   840 --
 .../doc/com/ibm/juno/core/BeanMapEntry.html     |   415 -
 .../build/doc/com/ibm/juno/core/BeanMeta.html   |   751 -
 .../doc/com/ibm/juno/core/BeanMetaFiltered.html |   398 -
 .../doc/com/ibm/juno/core/BeanPropertyMeta.html |   644 -
 .../juno/core/BeanProxyInvocationHandler.html   |   285 -
 .../com/ibm/juno/core/BeanRuntimeException.html |   341 -
 .../build/doc/com/ibm/juno/core/ClassMeta.html  |  1575 --
 .../build/doc/com/ibm/juno/core/CoreApi.html    |   564 -
 .../build/doc/com/ibm/juno/core/Delegate.html   |   224 -
 .../com/ibm/juno/core/FormattedException.html   |   302 -
 .../juno/core/FormattedRuntimeException.html    |   291 -
 .../core/InvalidDataConversionException.html    |   267 -
 .../build/doc/com/ibm/juno/core/Lockable.html   |   362 -
 .../doc/com/ibm/juno/core/LockedException.html  |   225 -
 .../build/doc/com/ibm/juno/core/MediaRange.html |   470 -
 .../build/doc/com/ibm/juno/core/ObjectList.html |  1051 --
 .../build/doc/com/ibm/juno/core/ObjectMap.html  |  2094 ---
 .../doc/com/ibm/juno/core/PropertyNamer.html    |   225 -
 .../ibm/juno/core/PropertyNamerDashedLC.html    |   282 -
 .../com/ibm/juno/core/PropertyNamerDefault.html |   285 -
 .../build/doc/com/ibm/juno/core/Streamable.html |   243 -
 .../build/doc/com/ibm/juno/core/Visibility.html |   579 -
 .../build/doc/com/ibm/juno/core/Writable.html   |   243 -
 .../doc/com/ibm/juno/core/annotation/Bean.html  |   485 -
 .../juno/core/annotation/BeanConstructor.html   |   263 -
 .../ibm/juno/core/annotation/BeanIgnore.html    |   167 -
 .../ibm/juno/core/annotation/BeanProperty.html  |   435 -
 .../ibm/juno/core/annotation/BeanSubType.html   |   233 -
 .../com/ibm/juno/core/annotation/Consumes.html  |   249 -
 .../com/ibm/juno/core/annotation/Filter.html    |   262 -
 .../ibm/juno/core/annotation/NameProperty.html  |   163 -
 .../juno/core/annotation/ParentProperty.html    |   163 -
 .../com/ibm/juno/core/annotation/Produces.html  |   277 -
 .../ibm/juno/core/annotation/Remoteable.html    |   157 -
 .../ibm/juno/core/annotation/ThreadSafe.html    |   160 -
 .../doc/com/ibm/juno/core/annotation/URI.html   |   195 -
 .../juno/core/annotation/class-use/Bean.html    |   243 -
 .../annotation/class-use/BeanConstructor.html   |   117 -
 .../core/annotation/class-use/BeanIgnore.html   |   253 -
 .../core/annotation/class-use/BeanProperty.html |   357 -
 .../core/annotation/class-use/BeanSubType.html  |   117 -
 .../core/annotation/class-use/Consumes.html     |   347 -
 .../juno/core/annotation/class-use/Filter.html  |   117 -
 .../core/annotation/class-use/NameProperty.html |   161 -
 .../annotation/class-use/ParentProperty.html    |   161 -
 .../core/annotation/class-use/Produces.html     |   483 -
 .../core/annotation/class-use/Remoteable.html   |   117 -
 .../core/annotation/class-use/ThreadSafe.html   |   161 -
 .../ibm/juno/core/annotation/class-use/URI.html |   117 -
 .../ibm/juno/core/annotation/package-frame.html |    30 -
 .../juno/core/annotation/package-summary.html   |   219 -
 .../ibm/juno/core/annotation/package-tree.html  |   138 -
 .../ibm/juno/core/annotation/package-use.html   |   601 -
 .../ibm/juno/core/class-use/BeanContext.html    |   678 -
 .../juno/core/class-use/BeanContextFactory.html |   248 -
 .../core/class-use/BeanContextProperties.html   |   117 -
 .../com/ibm/juno/core/class-use/BeanMap.html    |   309 -
 .../ibm/juno/core/class-use/BeanMapEntry.html   |   161 -
 .../com/ibm/juno/core/class-use/BeanMeta.html   |   290 -
 .../juno/core/class-use/BeanMetaFiltered.html   |   117 -
 .../juno/core/class-use/BeanPropertyMeta.html   |   479 -
 .../class-use/BeanProxyInvocationHandler.html   |   117 -
 .../core/class-use/BeanRuntimeException.html    |   221 -
 .../com/ibm/juno/core/class-use/ClassMeta.html  |  1337 --
 .../com/ibm/juno/core/class-use/CoreApi.html    |   845 --
 .../com/ibm/juno/core/class-use/Delegate.html   |   202 -
 .../juno/core/class-use/FormattedException.html |   187 -
 .../class-use/FormattedRuntimeException.html    |   161 -
 .../InvalidDataConversionException.html         |   187 -
 .../com/ibm/juno/core/class-use/Lockable.html   |   844 --
 .../juno/core/class-use/LockedException.html    |   900 --
 .../com/ibm/juno/core/class-use/MediaRange.html |   182 -
 .../com/ibm/juno/core/class-use/ObjectList.html |   294 -
 .../com/ibm/juno/core/class-use/ObjectMap.html  |  1169 --
 .../ibm/juno/core/class-use/PropertyNamer.html  |   208 -
 .../core/class-use/PropertyNamerDashedLC.html   |   117 -
 .../core/class-use/PropertyNamerDefault.html    |   117 -
 .../com/ibm/juno/core/class-use/Streamable.html |   161 -
 .../com/ibm/juno/core/class-use/Visibility.html |   191 -
 .../com/ibm/juno/core/class-use/Writable.html   |   222 -
 .../com/ibm/juno/core/csv/CsvSerializer.html    |   375 -
 .../juno/core/csv/class-use/CsvSerializer.html  |   159 -
 .../com/ibm/juno/core/csv/package-frame.html    |    18 -
 .../com/ibm/juno/core/csv/package-summary.html  |   166 -
 .../doc/com/ibm/juno/core/csv/package-tree.html |   146 -
 .../doc/com/ibm/juno/core/csv/package-use.html  |   154 -
 .../ibm/juno/core/doc-files/AddressBook.html    |   106 -
 .../build/doc/com/ibm/juno/core/dto/Link.html   |   453 -
 .../com/ibm/juno/core/dto/ResultSetList.html    |   368 -
 .../com/ibm/juno/core/dto/atom/Category.html    |   444 -
 .../doc/com/ibm/juno/core/dto/atom/Common.html  |   337 -
 .../com/ibm/juno/core/dto/atom/CommonEntry.html |   650 -
 .../doc/com/ibm/juno/core/dto/atom/Content.html |   497 -
 .../doc/com/ibm/juno/core/dto/atom/Entry.html   |   769 -
 .../doc/com/ibm/juno/core/dto/atom/Feed.html    |   827 --
 .../com/ibm/juno/core/dto/atom/Generator.html   |   445 -
 .../doc/com/ibm/juno/core/dto/atom/Icon.html    |   371 -
 .../doc/com/ibm/juno/core/dto/atom/Id.html      |   371 -
 .../doc/com/ibm/juno/core/dto/atom/Link.html    |   570 -
 .../doc/com/ibm/juno/core/dto/atom/Logo.html    |   371 -
 .../doc/com/ibm/juno/core/dto/atom/Person.html  |   441 -
 .../doc/com/ibm/juno/core/dto/atom/Source.html  |   744 -
 .../core/dto/atom/Text.TextContentHandler.html  |   342 -
 .../doc/com/ibm/juno/core/dto/atom/Text.html    |   472 -
 .../juno/core/dto/atom/class-use/Category.html  |   250 -
 .../juno/core/dto/atom/class-use/Common.html    |   254 -
 .../core/dto/atom/class-use/CommonEntry.html    |   254 -
 .../juno/core/dto/atom/class-use/Content.html   |   198 -
 .../ibm/juno/core/dto/atom/class-use/Entry.html |   280 -
 .../ibm/juno/core/dto/atom/class-use/Feed.html  |   247 -
 .../juno/core/dto/atom/class-use/Generator.html |   214 -
 .../ibm/juno/core/dto/atom/class-use/Icon.html  |   202 -
 .../ibm/juno/core/dto/atom/class-use/Id.html    |   231 -
 .../ibm/juno/core/dto/atom/class-use/Link.html  |   268 -
 .../ibm/juno/core/dto/atom/class-use/Logo.html  |   202 -
 .../juno/core/dto/atom/class-use/Person.html    |   292 -
 .../juno/core/dto/atom/class-use/Source.html    |   256 -
 .../atom/class-use/Text.TextContentHandler.html |   117 -
 .../ibm/juno/core/dto/atom/class-use/Text.html  |   322 -
 .../core/dto/atom/doc-files/Example_HTML.png    |   Bin 31484 -> 0 bytes
 .../ibm/juno/core/dto/atom/package-frame.html   |    32 -
 .../ibm/juno/core/dto/atom/package-summary.html |   777 -
 .../ibm/juno/core/dto/atom/package-tree.html    |   153 -
 .../com/ibm/juno/core/dto/atom/package-use.html |   219 -
 .../com/ibm/juno/core/dto/class-use/Link.html   |   267 -
 .../juno/core/dto/class-use/ResultSetList.html  |   117 -
 .../com/ibm/juno/core/dto/cognos/Column.html    |   439 -
 .../ibm/juno/core/dto/cognos/DataSet.Row.html   |   330 -
 .../com/ibm/juno/core/dto/cognos/DataSet.html   |   422 -
 .../juno/core/dto/cognos/class-use/Column.html  |   215 -
 .../core/dto/cognos/class-use/DataSet.Row.html  |   176 -
 .../juno/core/dto/cognos/class-use/DataSet.html |   167 -
 .../ibm/juno/core/dto/cognos/doc-files/HTML.png |   Bin 8476 -> 0 bytes
 .../ibm/juno/core/dto/cognos/doc-files/JSON.png |   Bin 6963 -> 0 bytes
 .../juno/core/dto/cognos/doc-files/RDFXML.png   |   Bin 19981 -> 0 bytes
 .../ibm/juno/core/dto/cognos/package-frame.html |    20 -
 .../juno/core/dto/cognos/package-summary.html   |   297 -
 .../ibm/juno/core/dto/cognos/package-tree.html  |   148 -
 .../ibm/juno/core/dto/cognos/package-use.html   |   164 -
 .../ibm/juno/core/dto/jsonschema/JsonType.html  |   473 -
 .../juno/core/dto/jsonschema/JsonTypeArray.html |   371 -
 .../Schema.BooleanOrSchemaArrayFilter.html      |   381 -
 .../Schema.BooleanOrSchemaFilter.html           |   381 -
 .../Schema.JsonTypeOrJsonTypeArrayFilter.html   |   381 -
 .../Schema.SchemaOrSchemaArrayFilter.html       |   381 -
 .../ibm/juno/core/dto/jsonschema/Schema.html    |  2062 ---
 .../juno/core/dto/jsonschema/SchemaArray.html   |   371 -
 .../ibm/juno/core/dto/jsonschema/SchemaMap.html |   415 -
 .../core/dto/jsonschema/SchemaProperty.html     |   303 -
 .../jsonschema/SchemaPropertySimpleArray.html   |   281 -
 .../ibm/juno/core/dto/jsonschema/SchemaRef.html |   270 -
 .../core/dto/jsonschema/class-use/JsonType.html |   227 -
 .../dto/jsonschema/class-use/JsonTypeArray.html |   168 -
 .../Schema.BooleanOrSchemaArrayFilter.html      |   117 -
 .../class-use/Schema.BooleanOrSchemaFilter.html |   117 -
 .../Schema.JsonTypeOrJsonTypeArrayFilter.html   |   117 -
 .../Schema.SchemaOrSchemaArrayFilter.html       |   117 -
 .../core/dto/jsonschema/class-use/Schema.html   |   749 -
 .../dto/jsonschema/class-use/SchemaArray.html   |   168 -
 .../dto/jsonschema/class-use/SchemaMap.html     |   177 -
 .../jsonschema/class-use/SchemaProperty.html    |   182 -
 .../class-use/SchemaPropertySimpleArray.html    |   117 -
 .../dto/jsonschema/class-use/SchemaRef.html     |   117 -
 .../dto/jsonschema/doc-files/Example_Html.png   |   Bin 31260 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Json.png   |   Bin 22006 -> 0 bytes
 .../jsonschema/doc-files/Example_Options.png    |   Bin 41887 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Turtle.png |   Bin 28988 -> 0 bytes
 .../jsonschema/doc-files/Example_UrlEncoded.png |   Bin 21715 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Xml.png    |   Bin 28095 -> 0 bytes
 .../doc-files/Example_XmlRdfAbbrev.png          |   Bin 36296 -> 0 bytes
 .../juno/core/dto/jsonschema/package-frame.html |    32 -
 .../core/dto/jsonschema/package-summary.html    |   700 -
 .../juno/core/dto/jsonschema/package-tree.html  |   190 -
 .../juno/core/dto/jsonschema/package-use.html   |   179 -
 .../com/ibm/juno/core/dto/package-frame.html    |    19 -
 .../com/ibm/juno/core/dto/package-summary.html  |   152 -
 .../doc/com/ibm/juno/core/dto/package-tree.html |   147 -
 .../doc/com/ibm/juno/core/dto/package-use.html  |   200 -
 .../doc/com/ibm/juno/core/encoders/Encoder.html |   320 -
 .../ibm/juno/core/encoders/EncoderGroup.html    |   418 -
 .../com/ibm/juno/core/encoders/GzipEncoder.html |   323 -
 .../ibm/juno/core/encoders/IdentityEncoder.html |   367 -
 .../juno/core/encoders/class-use/Encoder.html   |   212 -
 .../core/encoders/class-use/EncoderGroup.html   |   226 -
 .../core/encoders/class-use/GzipEncoder.html    |   117 -
 .../encoders/class-use/IdentityEncoder.html     |   161 -
 .../ibm/juno/core/encoders/package-frame.html   |    21 -
 .../ibm/juno/core/encoders/package-summary.html |   182 -
 .../ibm/juno/core/encoders/package-tree.html    |   136 -
 .../com/ibm/juno/core/encoders/package-use.html |   187 -
 .../juno/core/filter/AnnotationBeanFilter.html  |   296 -
 .../com/ibm/juno/core/filter/BeanFilter.html    |   838 --
 .../ibm/juno/core/filter/Filter.FilterType.html |   334 -
 .../com/ibm/juno/core/filter/Filter.NULL.html   |   277 -
 .../doc/com/ibm/juno/core/filter/Filter.html    |   462 -
 .../juno/core/filter/InterfaceBeanFilter.html   |   296 -
 .../ibm/juno/core/filter/PojoFilter.NULL.html   |   296 -
 .../com/ibm/juno/core/filter/PojoFilter.html    |   585 -
 .../ibm/juno/core/filter/SurrogateFilter.html   |   505 -
 .../filter/class-use/AnnotationBeanFilter.html  |   117 -
 .../juno/core/filter/class-use/BeanFilter.html  |   283 -
 .../filter/class-use/Filter.FilterType.html     |   189 -
 .../juno/core/filter/class-use/Filter.NULL.html |   117 -
 .../ibm/juno/core/filter/class-use/Filter.html  |   514 -
 .../filter/class-use/InterfaceBeanFilter.html   |   117 -
 .../core/filter/class-use/PojoFilter.NULL.html  |   117 -
 .../juno/core/filter/class-use/PojoFilter.html  |   528 -
 .../core/filter/class-use/SurrogateFilter.html  |   161 -
 .../ibm/juno/core/filter/doc-files/classes.dnx  |    99 -
 .../ibm/juno/core/filter/doc-files/classes.png  |   Bin 15527 -> 0 bytes
 .../com/ibm/juno/core/filter/package-frame.html |    29 -
 .../ibm/juno/core/filter/package-summary.html   |   936 --
 .../com/ibm/juno/core/filter/package-tree.html  |   158 -
 .../com/ibm/juno/core/filter/package-use.html   |   281 -
 .../ibm/juno/core/filters/BeanStringFilter.html |   339 -
 .../core/filters/ByteArrayBase64Filter.html     |   361 -
 .../core/filters/CalendarFilter.ISO8601DT.html  |   399 -
 .../core/filters/CalendarFilter.ISO8601DTZ.html |   379 -
 .../core/filters/CalendarFilter.Medium.html     |   318 -
 .../core/filters/CalendarFilter.RFC2822D.html   |   318 -
 .../core/filters/CalendarFilter.RFC2822DT.html  |   318 -
 .../core/filters/CalendarFilter.RFC2822DTZ.html |   320 -
 .../core/filters/CalendarFilter.Simple.html     |   318 -
 .../core/filters/CalendarFilter.ToString.html   |   327 -
 .../ibm/juno/core/filters/CalendarFilter.html   |   497 -
 .../juno/core/filters/CalendarLongFilter.html   |   360 -
 .../juno/core/filters/CalendarMapFilter.html    |   360 -
 .../com/ibm/juno/core/filters/ClassFilter.html  |   358 -
 .../juno/core/filters/DateFilter.ISO8601DT.html |   422 -
 .../core/filters/DateFilter.ISO8601DTP.html     |   325 -
 .../core/filters/DateFilter.ISO8601DTPNZ.html   |   320 -
 .../core/filters/DateFilter.ISO8601DTZ.html     |   383 -
 .../core/filters/DateFilter.ISO8601DTZP.html    |   325 -
 .../juno/core/filters/DateFilter.Medium.html    |   318 -
 .../juno/core/filters/DateFilter.RFC2822D.html  |   318 -
 .../juno/core/filters/DateFilter.RFC2822DT.html |   318 -
 .../core/filters/DateFilter.RFC2822DTZ.html     |   320 -
 .../juno/core/filters/DateFilter.Simple.html    |   318 -
 .../juno/core/filters/DateFilter.SimpleP.html   |   318 -
 .../juno/core/filters/DateFilter.ToString.html  |   327 -
 .../com/ibm/juno/core/filters/DateFilter.html   |   506 -
 .../ibm/juno/core/filters/DateLongFilter.html   |   358 -
 .../ibm/juno/core/filters/DateMapFilter.html    |   358 -
 .../juno/core/filters/EnumerationFilter.html    |   332 -
 .../ibm/juno/core/filters/IteratorFilter.html   |   332 -
 .../juno/core/filters/ReaderFilter.Html.html    |   318 -
 .../juno/core/filters/ReaderFilter.Json.html    |   318 -
 .../core/filters/ReaderFilter.PlainText.html    |   318 -
 .../ibm/juno/core/filters/ReaderFilter.Xml.html |   318 -
 .../com/ibm/juno/core/filters/ReaderFilter.html |   392 -
 .../filters/XMLGregorianCalendarFilter.html     |   368 -
 .../filters/class-use/BeanStringFilter.html     |   117 -
 .../class-use/ByteArrayBase64Filter.html        |   117 -
 .../class-use/CalendarFilter.ISO8601DT.html     |   117 -
 .../class-use/CalendarFilter.ISO8601DTZ.html    |   117 -
 .../class-use/CalendarFilter.Medium.html        |   117 -
 .../class-use/CalendarFilter.RFC2822D.html      |   117 -
 .../class-use/CalendarFilter.RFC2822DT.html     |   117 -
 .../class-use/CalendarFilter.RFC2822DTZ.html    |   117 -
 .../class-use/CalendarFilter.Simple.html        |   117 -
 .../class-use/CalendarFilter.ToString.html      |   117 -
 .../core/filters/class-use/CalendarFilter.html  |   203 -
 .../filters/class-use/CalendarLongFilter.html   |   117 -
 .../filters/class-use/CalendarMapFilter.html    |   117 -
 .../core/filters/class-use/ClassFilter.html     |   117 -
 .../filters/class-use/DateFilter.ISO8601DT.html |   167 -
 .../class-use/DateFilter.ISO8601DTP.html        |   117 -
 .../class-use/DateFilter.ISO8601DTPNZ.html      |   117 -
 .../class-use/DateFilter.ISO8601DTZ.html        |   117 -
 .../class-use/DateFilter.ISO8601DTZP.html       |   117 -
 .../filters/class-use/DateFilter.Medium.html    |   117 -
 .../filters/class-use/DateFilter.RFC2822D.html  |   117 -
 .../filters/class-use/DateFilter.RFC2822DT.html |   117 -
 .../class-use/DateFilter.RFC2822DTZ.html        |   117 -
 .../filters/class-use/DateFilter.Simple.html    |   117 -
 .../filters/class-use/DateFilter.SimpleP.html   |   117 -
 .../filters/class-use/DateFilter.ToString.html  |   117 -
 .../juno/core/filters/class-use/DateFilter.html |   227 -
 .../core/filters/class-use/DateLongFilter.html  |   117 -
 .../core/filters/class-use/DateMapFilter.html   |   117 -
 .../filters/class-use/EnumerationFilter.html    |   117 -
 .../core/filters/class-use/IteratorFilter.html  |   117 -
 .../filters/class-use/ReaderFilter.Html.html    |   117 -
 .../filters/class-use/ReaderFilter.Json.html    |   117 -
 .../class-use/ReaderFilter.PlainText.html       |   117 -
 .../filters/class-use/ReaderFilter.Xml.html     |   117 -
 .../core/filters/class-use/ReaderFilter.html    |   179 -
 .../class-use/XMLGregorianCalendarFilter.html   |   117 -
 .../ibm/juno/core/filters/package-frame.html    |    54 -
 .../ibm/juno/core/filters/package-summary.html  |   388 -
 .../com/ibm/juno/core/filters/package-tree.html |   186 -
 .../com/ibm/juno/core/filters/package-use.html  |   169 -
 .../juno/core/html/HtmlBeanPropertyMeta.html    |   321 -
 .../com/ibm/juno/core/html/HtmlClassMeta.html   |   337 -
 .../ibm/juno/core/html/HtmlDocSerializer.html   |   449 -
 .../core/html/HtmlDocSerializerProperties.html  |   487 -
 .../doc/com/ibm/juno/core/html/HtmlLink.html    |   243 -
 .../doc/com/ibm/juno/core/html/HtmlParser.html  |   765 -
 .../ibm/juno/core/html/HtmlParserContext.html   |   300 -
 .../juno/core/html/HtmlParserProperties.html    |   298 -
 .../juno/core/html/HtmlSchemaDocSerializer.html |   447 -
 .../ibm/juno/core/html/HtmlSerializer.Sq.html   |   376 -
 .../core/html/HtmlSerializer.SqReadable.html    |   377 -
 .../com/ibm/juno/core/html/HtmlSerializer.html  |   876 --
 .../juno/core/html/HtmlSerializerContext.html   |   332 -
 .../core/html/HtmlSerializerProperties.html     |   418 -
 .../juno/core/html/HtmlSerializerWriter.html    |  1494 --
 .../core/html/HtmlStrippedDocSerializer.html    |   434 -
 .../ibm/juno/core/html/SimpleHtmlWriter.html    |   347 -
 .../com/ibm/juno/core/html/annotation/Html.html |   280 -
 .../core/html/annotation/class-use/Html.html    |   187 -
 .../core/html/annotation/package-frame.html     |    18 -
 .../core/html/annotation/package-summary.html   |   147 -
 .../juno/core/html/annotation/package-tree.html |   126 -
 .../juno/core/html/annotation/package-use.html  |   179 -
 .../html/class-use/HtmlBeanPropertyMeta.html    |   176 -
 .../juno/core/html/class-use/HtmlClassMeta.html |   161 -
 .../core/html/class-use/HtmlDocSerializer.html  |   161 -
 .../class-use/HtmlDocSerializerProperties.html  |   117 -
 .../ibm/juno/core/html/class-use/HtmlLink.html  |   161 -
 .../juno/core/html/class-use/HtmlParser.html    |   204 -
 .../core/html/class-use/HtmlParserContext.html  |   161 -
 .../html/class-use/HtmlParserProperties.html    |   192 -
 .../html/class-use/HtmlSchemaDocSerializer.html |   117 -
 .../core/html/class-use/HtmlSerializer.Sq.html  |   161 -
 .../class-use/HtmlSerializer.SqReadable.html    |   117 -
 .../core/html/class-use/HtmlSerializer.html     |   261 -
 .../html/class-use/HtmlSerializerContext.html   |   181 -
 .../class-use/HtmlSerializerProperties.html     |   192 -
 .../html/class-use/HtmlSerializerWriter.html    |   420 -
 .../class-use/HtmlStrippedDocSerializer.html    |   167 -
 .../core/html/class-use/SimpleHtmlWriter.html   |   117 -
 .../core/html/doc-files/HTML_DESCRIPTION.png    |   Bin 3644 -> 0 bytes
 .../ibm/juno/core/html/doc-files/HTML_LINKS.png |   Bin 593 -> 0 bytes
 .../ibm/juno/core/html/doc-files/HTML_TITLE.png |   Bin 2435 -> 0 bytes
 .../com/ibm/juno/core/html/dto/HtmlElement.html |   241 -
 .../doc/com/ibm/juno/core/html/dto/Img.html     |   283 -
 .../core/html/dto/class-use/HtmlElement.html    |   161 -
 .../ibm/juno/core/html/dto/class-use/Img.html   |   117 -
 .../ibm/juno/core/html/dto/package-frame.html   |    19 -
 .../ibm/juno/core/html/dto/package-summary.html |   152 -
 .../ibm/juno/core/html/dto/package-tree.html    |   134 -
 .../com/ibm/juno/core/html/dto/package-use.html |   154 -
 .../com/ibm/juno/core/html/package-frame.html   |    37 -
 .../com/ibm/juno/core/html/package-summary.html |   290 -
 .../com/ibm/juno/core/html/package-tree.html    |   216 -
 .../doc/com/ibm/juno/core/html/package-use.html |   250 -
 .../doc/com/ibm/juno/core/ini/ConfigFile.html   |  1434 --
 .../com/ibm/juno/core/ini/ConfigFileFormat.html |   345 -
 .../com/ibm/juno/core/ini/ConfigFileImpl.html   |  1228 --
 .../ibm/juno/core/ini/ConfigFileListener.html   |   305 -
 .../ibm/juno/core/ini/ConfigFileWrapped.html    |  1151 --
 .../doc/com/ibm/juno/core/ini/ConfigMgr.html    |   513 -
 .../doc/com/ibm/juno/core/ini/ConfigUtils.html  |   233 -
 .../doc/com/ibm/juno/core/ini/Encoder.html      |   242 -
 .../com/ibm/juno/core/ini/EntryListener.html    |   304 -
 .../doc/com/ibm/juno/core/ini/Section.html      |   627 -
 .../com/ibm/juno/core/ini/SectionListener.html  |   304 -
 .../doc/com/ibm/juno/core/ini/XorEncoder.html   |   342 -
 .../ibm/juno/core/ini/class-use/ConfigFile.html |   613 -
 .../core/ini/class-use/ConfigFileFormat.html    |   201 -
 .../juno/core/ini/class-use/ConfigFileImpl.html |   213 -
 .../core/ini/class-use/ConfigFileListener.html  |   190 -
 .../core/ini/class-use/ConfigFileWrapped.html   |   117 -
 .../ibm/juno/core/ini/class-use/ConfigMgr.html  |   187 -
 .../juno/core/ini/class-use/ConfigUtils.html    |   117 -
 .../ibm/juno/core/ini/class-use/Encoder.html    |   189 -
 .../juno/core/ini/class-use/EntryListener.html  |   117 -
 .../ibm/juno/core/ini/class-use/Section.html    |   291 -
 .../core/ini/class-use/SectionListener.html     |   117 -
 .../ibm/juno/core/ini/class-use/XorEncoder.html |   161 -
 .../com/ibm/juno/core/ini/doc-files/config1.png |   Bin 39851 -> 0 bytes
 .../com/ibm/juno/core/ini/doc-files/config2.png |   Bin 48881 -> 0 bytes
 .../com/ibm/juno/core/ini/doc-files/config3.png |   Bin 59095 -> 0 bytes
 .../com/ibm/juno/core/ini/package-frame.html    |    35 -
 .../com/ibm/juno/core/ini/package-summary.html  |   843 --
 .../doc/com/ibm/juno/core/ini/package-tree.html |   161 -
 .../doc/com/ibm/juno/core/ini/package-use.html  |   263 -
 .../doc/com/ibm/juno/core/jena/Constants.html   |   473 -
 .../ibm/juno/core/jena/RdfBeanPropertyMeta.html |   301 -
 .../com/ibm/juno/core/jena/RdfClassMeta.html    |   314 -
 .../ibm/juno/core/jena/RdfCollectionFormat.html |   384 -
 .../com/ibm/juno/core/jena/RdfParser.N3.html    |   347 -
 .../ibm/juno/core/jena/RdfParser.NTriple.html   |   347 -
 .../ibm/juno/core/jena/RdfParser.Turtle.html    |   347 -
 .../com/ibm/juno/core/jena/RdfParser.Xml.html   |   347 -
 .../doc/com/ibm/juno/core/jena/RdfParser.html   |   746 -
 .../ibm/juno/core/jena/RdfParserContext.html    |   267 -
 .../ibm/juno/core/jena/RdfParserProperties.html |   356 -
 .../com/ibm/juno/core/jena/RdfProperties.html   |  1010 --
 .../ibm/juno/core/jena/RdfSerializer.N3.html    |   347 -
 .../juno/core/jena/RdfSerializer.NTriple.html   |   347 -
 .../juno/core/jena/RdfSerializer.Turtle.html    |   347 -
 .../ibm/juno/core/jena/RdfSerializer.Xml.html   |   347 -
 .../juno/core/jena/RdfSerializer.XmlAbbrev.html |   348 -
 .../com/ibm/juno/core/jena/RdfSerializer.html   |   781 -
 .../juno/core/jena/RdfSerializerContext.html    |   328 -
 .../juno/core/jena/RdfSerializerProperties.html |   379 -
 .../doc/com/ibm/juno/core/jena/RdfUtils.html    |   268 -
 .../com/ibm/juno/core/jena/annotation/Rdf.html  |   269 -
 .../ibm/juno/core/jena/annotation/RdfNs.html    |   228 -
 .../juno/core/jena/annotation/RdfSchema.html    |   307 -
 .../core/jena/annotation/class-use/Rdf.html     |   177 -
 .../core/jena/annotation/class-use/RdfNs.html   |   117 -
 .../jena/annotation/class-use/RdfSchema.html    |   162 -
 .../core/jena/annotation/package-frame.html     |    20 -
 .../core/jena/annotation/package-summary.html   |   158 -
 .../juno/core/jena/annotation/package-tree.html |   128 -
 .../juno/core/jena/annotation/package-use.html  |   159 -
 .../ibm/juno/core/jena/class-use/Constants.html |   117 -
 .../jena/class-use/RdfBeanPropertyMeta.html     |   176 -
 .../juno/core/jena/class-use/RdfClassMeta.html  |   161 -
 .../jena/class-use/RdfCollectionFormat.html     |   180 -
 .../juno/core/jena/class-use/RdfParser.N3.html  |   117 -
 .../core/jena/class-use/RdfParser.NTriple.html  |   117 -
 .../core/jena/class-use/RdfParser.Turtle.html   |   117 -
 .../juno/core/jena/class-use/RdfParser.Xml.html |   117 -
 .../ibm/juno/core/jena/class-use/RdfParser.html |   255 -
 .../core/jena/class-use/RdfParserContext.html   |   161 -
 .../jena/class-use/RdfParserProperties.html     |   192 -
 .../juno/core/jena/class-use/RdfProperties.html |   167 -
 .../core/jena/class-use/RdfSerializer.N3.html   |   117 -
 .../jena/class-use/RdfSerializer.NTriple.html   |   117 -
 .../jena/class-use/RdfSerializer.Turtle.html    |   117 -
 .../core/jena/class-use/RdfSerializer.Xml.html  |   117 -
 .../jena/class-use/RdfSerializer.XmlAbbrev.html |   117 -
 .../juno/core/jena/class-use/RdfSerializer.html |   267 -
 .../jena/class-use/RdfSerializerContext.html    |   160 -
 .../jena/class-use/RdfSerializerProperties.html |   192 -
 .../ibm/juno/core/jena/class-use/RdfUtils.html  |   117 -
 .../juno/core/jena/doc-files/Example_HTML.png   |   Bin 35528 -> 0 bytes
 .../ibm/juno/core/jena/doc-files/Example_N3.png |   Bin 37430 -> 0 bytes
 .../core/jena/doc-files/Example_NTriple.png     |   Bin 48413 -> 0 bytes
 .../juno/core/jena/doc-files/Example_RDFXML.png |   Bin 30486 -> 0 bytes
 .../jena/doc-files/Example_RDFXMLABBREV.png     |   Bin 30356 -> 0 bytes
 .../juno/core/jena/doc-files/Example_Turtle.png |   Bin 35328 -> 0 bytes
 .../com/ibm/juno/core/jena/package-frame.html   |    41 -
 .../com/ibm/juno/core/jena/package-summary.html |  1930 ---
 .../com/ibm/juno/core/jena/package-tree.html    |   206 -
 .../doc/com/ibm/juno/core/jena/package-use.html |   218 -
 .../core/jso/JavaSerializedObjectParser.html    |   385 -
 .../jso/JavaSerializedObjectSerializer.html     |   384 -
 .../class-use/JavaSerializedObjectParser.html   |   159 -
 .../JavaSerializedObjectSerializer.html         |   159 -
 .../com/ibm/juno/core/jso/package-frame.html    |    19 -
 .../com/ibm/juno/core/jso/package-summary.html  |   152 -
 .../doc/com/ibm/juno/core/jso/package-tree.html |   155 -
 .../doc/com/ibm/juno/core/jso/package-use.html  |   159 -
 .../com/ibm/juno/core/json/JsonClassMeta.html   |   286 -
 .../doc/com/ibm/juno/core/json/JsonParser.html  |   820 --
 .../ibm/juno/core/json/JsonParserContext.html   |   297 -
 .../juno/core/json/JsonParserProperties.html    |   367 -
 .../juno/core/json/JsonSchemaSerializer.html    |   427 -
 .../juno/core/json/JsonSerializer.Readable.html |   346 -
 .../juno/core/json/JsonSerializer.Simple.html   |   352 -
 .../json/JsonSerializer.SimpleReadable.html     |   355 -
 .../json/JsonSerializer.SimpleReadableSafe.html |   357 -
 .../com/ibm/juno/core/json/JsonSerializer.html  |   820 --
 .../juno/core/json/JsonSerializerContext.html   |   315 -
 .../core/json/JsonSerializerProperties.html     |   382 -
 .../juno/core/json/JsonSerializerWriter.html    |   721 -
 .../com/ibm/juno/core/json/annotation/Json.html |   255 -
 .../core/json/annotation/class-use/Json.html    |   161 -
 .../core/json/annotation/package-frame.html     |    18 -
 .../core/json/annotation/package-summary.html   |   146 -
 .../juno/core/json/annotation/package-tree.html |   126 -
 .../juno/core/json/annotation/package-use.html  |   154 -
 .../juno/core/json/class-use/JsonClassMeta.html |   161 -
 .../juno/core/json/class-use/JsonParser.html    |   210 -
 .../core/json/class-use/JsonParserContext.html  |   161 -
 .../json/class-use/JsonParserProperties.html    |   192 -
 .../json/class-use/JsonSchemaSerializer.html    |   165 -
 .../json/class-use/JsonSerializer.Readable.html |   117 -
 .../json/class-use/JsonSerializer.Simple.html   |   167 -
 .../JsonSerializer.SimpleReadable.html          |   161 -
 .../JsonSerializer.SimpleReadableSafe.html      |   117 -
 .../core/json/class-use/JsonSerializer.html     |   267 -
 .../json/class-use/JsonSerializerContext.html   |   160 -
 .../class-use/JsonSerializerProperties.html     |   191 -
 .../json/class-use/JsonSerializerWriter.html    |   234 -
 .../juno/core/json/doc-files/Example_HTML.png   |   Bin 35528 -> 0 bytes
 .../juno/core/json/doc-files/Example_JSON.png   |   Bin 26954 -> 0 bytes
 .../core/json/doc-files/Example_JSONSchema.png  |   Bin 34114 -> 0 bytes
 .../core/json/doc-files/Example_JSONSimple.png  |   Bin 30920 -> 0 bytes
 .../com/ibm/juno/core/json/package-frame.html   |    30 -
 .../com/ibm/juno/core/json/package-summary.html |  1643 ---
 .../com/ibm/juno/core/json/package-tree.html    |   191 -
 .../doc/com/ibm/juno/core/json/package-use.html |   222 -
 .../doc/com/ibm/juno/core/package-frame.html    |    53 -
 .../doc/com/ibm/juno/core/package-summary.html  |   513 -
 .../doc/com/ibm/juno/core/package-tree.html     |   219 -
 .../doc/com/ibm/juno/core/package-use.html      |  1187 --
 .../ibm/juno/core/parser/InputStreamParser.html |   387 -
 .../ibm/juno/core/parser/ParseException.html    |   358 -
 .../doc/com/ibm/juno/core/parser/Parser.html    |  1060 --
 .../com/ibm/juno/core/parser/ParserContext.html |   468 -
 .../com/ibm/juno/core/parser/ParserGroup.html   |   581 -
 .../ibm/juno/core/parser/ParserListener.html    |   282 -
 .../ibm/juno/core/parser/ParserProperties.html  |   361 -
 .../com/ibm/juno/core/parser/ParserReader.html  |   689 -
 .../com/ibm/juno/core/parser/ReaderParser.html  |   990 --
 .../parser/class-use/InputStreamParser.html     |   161 -
 .../core/parser/class-use/ParseException.html   |  1415 --
 .../ibm/juno/core/parser/class-use/Parser.html  |   662 -
 .../core/parser/class-use/ParserContext.html    |   633 -
 .../juno/core/parser/class-use/ParserGroup.html |   250 -
 .../core/parser/class-use/ParserListener.html   |   176 -
 .../core/parser/class-use/ParserProperties.html |   345 -
 .../core/parser/class-use/ParserReader.html     |   293 -
 .../core/parser/class-use/ReaderParser.html     |   587 -
 .../com/ibm/juno/core/parser/package-frame.html |    29 -
 .../ibm/juno/core/parser/package-summary.html   |   296 -
 .../com/ibm/juno/core/parser/package-tree.html  |   165 -
 .../com/ibm/juno/core/parser/package-use.html   |   765 -
 .../juno/core/plaintext/PlainTextParser.html    |   403 -
 .../core/plaintext/PlainTextSerializer.html     |   399 -
 .../plaintext/class-use/PlainTextParser.html    |   159 -
 .../class-use/PlainTextSerializer.html          |   159 -
 .../ibm/juno/core/plaintext/package-frame.html  |    19 -
 .../juno/core/plaintext/package-summary.html    |   152 -
 .../ibm/juno/core/plaintext/package-tree.html   |   155 -
 .../ibm/juno/core/plaintext/package-use.html    |   159 -
 .../core/serializer/OutputStreamSerializer.html |   385 -
 .../core/serializer/SerializeException.html     |   318 -
 .../ibm/juno/core/serializer/Serializer.html    |   730 -
 .../juno/core/serializer/SerializerContext.html |   886 --
 .../juno/core/serializer/SerializerGroup.html   |   607 -
 .../core/serializer/SerializerProperties.html   |   728 -
 .../juno/core/serializer/SerializerWriter.html  |   833 --
 .../ibm/juno/core/serializer/StringObject.html  |   386 -
 .../juno/core/serializer/WriterSerializer.html  |   643 -
 .../class-use/OutputStreamSerializer.html       |   161 -
 .../class-use/SerializeException.html           |   820 --
 .../core/serializer/class-use/Serializer.html   |   856 --
 .../serializer/class-use/SerializerContext.html |   577 -
 .../serializer/class-use/SerializerGroup.html   |   256 -
 .../class-use/SerializerProperties.html         |   333 -
 .../serializer/class-use/SerializerWriter.html  |   388 -
 .../core/serializer/class-use/StringObject.html |   161 -
 .../serializer/class-use/WriterSerializer.html  |   705 -
 .../ibm/juno/core/serializer/package-frame.html |    29 -
 .../juno/core/serializer/package-summary.html   |   298 -
 .../ibm/juno/core/serializer/package-tree.html  |   165 -
 .../ibm/juno/core/serializer/package-use.html   |   775 -
 .../ibm/juno/core/soap/SoapXmlSerializer.html   |   442 -
 .../core/soap/SoapXmlSerializerProperties.html  |   275 -
 .../core/soap/class-use/SoapXmlSerializer.html  |   117 -
 .../class-use/SoapXmlSerializerProperties.html  |   117 -
 .../com/ibm/juno/core/soap/package-frame.html   |    19 -
 .../com/ibm/juno/core/soap/package-summary.html |   152 -
 .../com/ibm/juno/core/soap/package-tree.html    |   151 -
 .../doc/com/ibm/juno/core/soap/package-use.html |   117 -
 .../core/urlencoding/UonParser.Decoding.html    |   346 -
 .../ibm/juno/core/urlencoding/UonParser.html    |   870 --
 .../juno/core/urlencoding/UonParserContext.html |   289 -
 .../core/urlencoding/UonParserProperties.html   |   358 -
 .../juno/core/urlencoding/UonParserReader.html  |   360 -
 .../urlencoding/UonSerializer.Encoding.html     |   346 -
 .../urlencoding/UonSerializer.Readable.html     |   346 -
 .../core/urlencoding/UonSerializer.Simple.html  |   348 -
 .../UonSerializer.SimpleEncoding.html           |   348 -
 .../juno/core/urlencoding/UonSerializer.html    |   926 --
 .../core/urlencoding/UonSerializerContext.html  |   284 -
 .../urlencoding/UonSerializerProperties.html    |   426 -
 .../core/urlencoding/UonSerializerWriter.html   |   722 -
 .../core/urlencoding/UrlEncodingClassMeta.html  |   286 -
 .../core/urlencoding/UrlEncodingParser.html     |   804 --
 .../core/urlencoding/UrlEncodingProperties.html |   356 -
 .../UrlEncodingSerializer.Readable.html         |   372 -
 .../UrlEncodingSerializer.Simple.html           |   378 -
 .../UrlEncodingSerializer.SimpleExpanded.html   |   379 -
 .../core/urlencoding/UrlEncodingSerializer.html |   882 --
 .../urlencoding/annotation/UrlEncoding.html     |   218 -
 .../annotation/class-use/UrlEncoding.html       |   161 -
 .../urlencoding/annotation/package-frame.html   |    18 -
 .../urlencoding/annotation/package-summary.html |   147 -
 .../urlencoding/annotation/package-tree.html    |   126 -
 .../urlencoding/annotation/package-use.html     |   155 -
 .../class-use/UonParser.Decoding.html           |   117 -
 .../core/urlencoding/class-use/UonParser.html   |   237 -
 .../urlencoding/class-use/UonParserContext.html |   182 -
 .../class-use/UonParserProperties.html          |   201 -
 .../urlencoding/class-use/UonParserReader.html  |   117 -
 .../class-use/UonSerializer.Encoding.html       |   117 -
 .../class-use/UonSerializer.Readable.html       |   117 -
 .../class-use/UonSerializer.Simple.html         |   117 -
 .../class-use/UonSerializer.SimpleEncoding.html |   117 -
 .../urlencoding/class-use/UonSerializer.html    |   285 -
 .../class-use/UonSerializerContext.html         |   187 -
 .../class-use/UonSerializerProperties.html      |   192 -
 .../class-use/UonSerializerWriter.html          |   249 -
 .../class-use/UrlEncodingClassMeta.html         |   161 -
 .../class-use/UrlEncodingParser.html            |   242 -
 .../class-use/UrlEncodingProperties.html        |   217 -
 .../UrlEncodingSerializer.Readable.html         |   117 -
 .../class-use/UrlEncodingSerializer.Simple.html |   161 -
 .../UrlEncodingSerializer.SimpleExpanded.html   |   117 -
 .../class-use/UrlEncodingSerializer.html        |   328 -
 .../core/urlencoding/doc-files/Example_HTML.png |   Bin 32778 -> 0 bytes
 .../doc-files/Example_UrlEncoding.png           |   Bin 20958 -> 0 bytes
 .../juno/core/urlencoding/doc-files/rfc_uon.txt |   352 -
 .../juno/core/urlencoding/package-frame.html    |    37 -
 .../juno/core/urlencoding/package-summary.html  |  1635 ---
 .../ibm/juno/core/urlencoding/package-tree.html |   209 -
 .../ibm/juno/core/urlencoding/package-use.html  |   278 -
 .../build/doc/com/ibm/juno/core/utils/Args.html |   570 -
 .../doc/com/ibm/juno/core/utils/ArrayUtils.html |   484 -
 .../doc/com/ibm/juno/core/utils/AsciiSet.html   |   288 -
 .../com/ibm/juno/core/utils/ByteArrayCache.html |   347 -
 .../juno/core/utils/ByteArrayInOutStream.html   |   309 -
 .../ibm/juno/core/utils/CharSequenceReader.html |   405 -
 .../core/utils/ClassUtils.ClassComparator.html  |   284 -
 .../doc/com/ibm/juno/core/utils/ClassUtils.html |   452 -
 .../ibm/juno/core/utils/CollectionUtils.html    |   288 -
 .../ibm/juno/core/utils/DelegateBeanMap.html    |   494 -
 .../com/ibm/juno/core/utils/DelegateList.html   |   339 -
 .../com/ibm/juno/core/utils/DelegateMap.html    |   347 -
 .../doc/com/ibm/juno/core/utils/FileUtils.html  |   368 -
 .../com/ibm/juno/core/utils/FilteredMap.html    |   314 -
 .../juno/core/utils/IOPipe.LineProcessor.html   |   218 -
 .../doc/com/ibm/juno/core/utils/IOPipe.html     |   394 -
 .../doc/com/ibm/juno/core/utils/IOUtils.html    |   694 -
 .../com/ibm/juno/core/utils/IdentityList.html   |   387 -
 .../doc/com/ibm/juno/core/utils/KeywordSet.html |   276 -
 .../com/ibm/juno/core/utils/ManifestFile.html   |   400 -
 .../com/ibm/juno/core/utils/MessageBundle.html  |   583 -
 .../com/ibm/juno/core/utils/MultiIterable.html  |   291 -
 .../doc/com/ibm/juno/core/utils/MultiSet.html   |   371 -
 .../ibm/juno/core/utils/PojoIntrospector.html   |   356 -
 .../doc/com/ibm/juno/core/utils/PojoQuery.html  |   511 -
 .../doc/com/ibm/juno/core/utils/PojoRest.html   |  1036 --
 .../ibm/juno/core/utils/PojoRestException.html  |   311 -
 .../juno/core/utils/ProcBuilder.Matcher.html    |   235 -
 .../com/ibm/juno/core/utils/ProcBuilder.html    |   779 -
 .../ibm/juno/core/utils/ReflectionUtils.html    |   382 -
 .../ibm/juno/core/utils/SafeResourceBundle.html |   428 -
 .../core/utils/SafeResourceMultiBundle.html     |   420 -
 .../doc/com/ibm/juno/core/utils/SimpleMap.html  |   377 -
 .../juno/core/utils/StringBuilderWriter.html    |   498 -
 .../com/ibm/juno/core/utils/StringMapVar.html   |   293 -
 .../com/ibm/juno/core/utils/StringUtils.html    |  1017 --
 .../doc/com/ibm/juno/core/utils/StringVar.html  |   290 -
 .../ibm/juno/core/utils/StringVarMultipart.html |   300 -
 .../ibm/juno/core/utils/StringVarResolver.html  |   476 -
 .../juno/core/utils/StringVarWithDefault.html   |   289 -
 .../doc/com/ibm/juno/core/utils/StringVars.html |   289 -
 .../ibm/juno/core/utils/TeeOutputStream.html    |   452 -
 .../doc/com/ibm/juno/core/utils/TeeWriter.html  |   448 -
 .../com/ibm/juno/core/utils/ThrowableUtils.html |   362 -
 .../doc/com/ibm/juno/core/utils/Utils.html      |   274 -
 .../juno/core/utils/ZipFileList.FileEntry.html  |   396 -
 .../core/utils/ZipFileList.ZipFileEntry.html    |   224 -
 .../com/ibm/juno/core/utils/ZipFileList.html    |   413 -
 .../com/ibm/juno/core/utils/class-use/Args.html |   161 -
 .../juno/core/utils/class-use/ArrayUtils.html   |   117 -
 .../ibm/juno/core/utils/class-use/AsciiSet.html |   117 -
 .../core/utils/class-use/ByteArrayCache.html    |   161 -
 .../utils/class-use/ByteArrayInOutStream.html   |   117 -
 .../utils/class-use/CharSequenceReader.html     |   117 -
 .../class-use/ClassUtils.ClassComparator.html   |   117 -
 .../juno/core/utils/class-use/ClassUtils.html   |   117 -
 .../core/utils/class-use/CollectionUtils.html   |   117 -
 .../core/utils/class-use/DelegateBeanMap.html   |   117 -
 .../juno/core/utils/class-use/DelegateList.html |   117 -
 .../juno/core/utils/class-use/DelegateMap.html  |   117 -
 .../juno/core/utils/class-use/FileUtils.html    |   117 -
 .../juno/core/utils/class-use/FilteredMap.html  |   117 -
 .../utils/class-use/IOPipe.LineProcessor.html   |   167 -
 .../ibm/juno/core/utils/class-use/IOPipe.html   |   199 -
 .../ibm/juno/core/utils/class-use/IOUtils.html  |   117 -
 .../juno/core/utils/class-use/IdentityList.html |   117 -
 .../juno/core/utils/class-use/KeywordSet.html   |   117 -
 .../juno/core/utils/class-use/ManifestFile.html |   117 -
 .../core/utils/class-use/MessageBundle.html     |   206 -
 .../core/utils/class-use/MultiIterable.html     |   161 -
 .../ibm/juno/core/utils/class-use/MultiSet.html |   161 -
 .../core/utils/class-use/PojoIntrospector.html  |   117 -
 .../juno/core/utils/class-use/PojoQuery.html    |   117 -
 .../ibm/juno/core/utils/class-use/PojoRest.html |   193 -
 .../core/utils/class-use/PojoRestException.html |   117 -
 .../utils/class-use/ProcBuilder.Matcher.html    |   202 -
 .../juno/core/utils/class-use/ProcBuilder.html  |   269 -
 .../core/utils/class-use/ReflectionUtils.html   |   117 -
 .../utils/class-use/SafeResourceBundle.html     |   212 -
 .../class-use/SafeResourceMultiBundle.html      |   117 -
 .../juno/core/utils/class-use/SimpleMap.html    |   117 -
 .../utils/class-use/StringBuilderWriter.html    |   169 -
 .../juno/core/utils/class-use/StringMapVar.html |   117 -
 .../juno/core/utils/class-use/StringUtils.html  |   117 -
 .../juno/core/utils/class-use/StringVar.html    |   258 -
 .../utils/class-use/StringVarMultipart.html     |   117 -
 .../core/utils/class-use/StringVarResolver.html |   380 -
 .../utils/class-use/StringVarWithDefault.html   |   162 -
 .../juno/core/utils/class-use/StringVars.html   |   117 -
 .../core/utils/class-use/TeeOutputStream.html   |   171 -
 .../juno/core/utils/class-use/TeeWriter.html    |   171 -
 .../core/utils/class-use/ThrowableUtils.html    |   117 -
 .../ibm/juno/core/utils/class-use/Utils.html    |   117 -
 .../utils/class-use/ZipFileList.FileEntry.html  |   117 -
 .../class-use/ZipFileList.ZipFileEntry.html     |   176 -
 .../juno/core/utils/class-use/ZipFileList.html  |   161 -
 .../com/ibm/juno/core/utils/log/JunoLogger.html |   639 -
 .../core/utils/log/class-use/JunoLogger.html    |   199 -
 .../ibm/juno/core/utils/log/package-frame.html  |    18 -
 .../juno/core/utils/log/package-summary.html    |   137 -
 .../ibm/juno/core/utils/log/package-tree.html   |   134 -
 .../ibm/juno/core/utils/log/package-use.html    |   175 -
 .../com/ibm/juno/core/utils/package-frame.html  |    69 -
 .../ibm/juno/core/utils/package-summary.html    |   464 -
 .../com/ibm/juno/core/utils/package-tree.html   |   264 -
 .../com/ibm/juno/core/utils/package-use.html    |   345 -
 .../doc/com/ibm/juno/core/xml/Namespace.html    |   373 -
 .../com/ibm/juno/core/xml/NamespaceFactory.html |   326 -
 .../doc/com/ibm/juno/core/xml/XmlBeanMeta.html  |   345 -
 .../ibm/juno/core/xml/XmlBeanPropertyMeta.html  |   352 -
 .../doc/com/ibm/juno/core/xml/XmlClassMeta.html |   348 -
 .../juno/core/xml/XmlContentHandler.NULL.html   |   206 -
 .../ibm/juno/core/xml/XmlContentHandler.html    |   363 -
 .../juno/core/xml/XmlDocSerializer.Simple.html  |   367 -
 .../com/ibm/juno/core/xml/XmlDocSerializer.html |   419 -
 .../doc/com/ibm/juno/core/xml/XmlParser.html    |   764 -
 .../com/ibm/juno/core/xml/XmlParserContext.html |   299 -
 .../ibm/juno/core/xml/XmlParserProperties.html  |   668 -
 .../juno/core/xml/XmlSchemaDocSerializer.html   |   414 -
 .../ibm/juno/core/xml/XmlSchemaSerializer.html  |   472 -
 .../ibm/juno/core/xml/XmlSerializer.Simple.html |   352 -
 .../juno/core/xml/XmlSerializer.SimpleSq.html   |   355 -
 .../core/xml/XmlSerializer.SimpleXmlJsonSq.html |   356 -
 .../com/ibm/juno/core/xml/XmlSerializer.Sq.html |   350 -
 .../juno/core/xml/XmlSerializer.SqReadable.html |   351 -
 .../juno/core/xml/XmlSerializer.XmlJson.html    |   352 -
 .../juno/core/xml/XmlSerializer.XmlJsonSq.html  |   351 -
 .../com/ibm/juno/core/xml/XmlSerializer.html    |   957 --
 .../ibm/juno/core/xml/XmlSerializerContext.html |   470 -
 .../juno/core/xml/XmlSerializerProperties.html  |   519 -
 .../ibm/juno/core/xml/XmlSerializerWriter.html  |  1594 --
 .../doc/com/ibm/juno/core/xml/XmlUtils.html     |   491 -
 .../com/ibm/juno/core/xml/annotation/Xml.html   |   453 -
 .../ibm/juno/core/xml/annotation/XmlFormat.html |   388 -
 .../com/ibm/juno/core/xml/annotation/XmlNs.html |   228 -
 .../ibm/juno/core/xml/annotation/XmlSchema.html |   307 -
 .../juno/core/xml/annotation/class-use/Xml.html |   534 -
 .../xml/annotation/class-use/XmlFormat.html     |   223 -
 .../core/xml/annotation/class-use/XmlNs.html    |   117 -
 .../xml/annotation/class-use/XmlSchema.html     |   185 -
 .../juno/core/xml/annotation/package-frame.html |    24 -
 .../core/xml/annotation/package-summary.html    |   175 -
 .../juno/core/xml/annotation/package-tree.html  |   140 -
 .../juno/core/xml/annotation/package-use.html   |   279 -
 .../ibm/juno/core/xml/class-use/Namespace.html  |   342 -
 .../core/xml/class-use/NamespaceFactory.html    |   117 -
 .../juno/core/xml/class-use/XmlBeanMeta.html    |   176 -
 .../core/xml/class-use/XmlBeanPropertyMeta.html |   176 -
 .../juno/core/xml/class-use/XmlClassMeta.html   |   161 -
 .../xml/class-use/XmlContentHandler.NULL.html   |   117 -
 .../core/xml/class-use/XmlContentHandler.html   |   209 -
 .../xml/class-use/XmlDocSerializer.Simple.html  |   117 -
 .../core/xml/class-use/XmlDocSerializer.html    |   161 -
 .../ibm/juno/core/xml/class-use/XmlParser.html  |   204 -
 .../core/xml/class-use/XmlParserContext.html    |   161 -
 .../core/xml/class-use/XmlParserProperties.html |   192 -
 .../xml/class-use/XmlSchemaDocSerializer.html   |   117 -
 .../core/xml/class-use/XmlSchemaSerializer.html |   161 -
 .../xml/class-use/XmlSerializer.Simple.html     |   167 -
 .../xml/class-use/XmlSerializer.SimpleSq.html   |   161 -
 .../XmlSerializer.SimpleXmlJsonSq.html          |   117 -
 .../core/xml/class-use/XmlSerializer.Sq.html    |   161 -
 .../xml/class-use/XmlSerializer.SqReadable.html |   117 -
 .../xml/class-use/XmlSerializer.XmlJson.html    |   161 -
 .../xml/class-use/XmlSerializer.XmlJsonSq.html  |   117 -
 .../juno/core/xml/class-use/XmlSerializer.html  |   409 -
 .../xml/class-use/XmlSerializerContext.html     |   247 -
 .../xml/class-use/XmlSerializerProperties.html  |   264 -
 .../core/xml/class-use/XmlSerializerWriter.html |   605 -
 .../ibm/juno/core/xml/class-use/XmlUtils.html   |   117 -
 .../juno/core/xml/doc-files/Example_HTML.png    |   Bin 35528 -> 0 bytes
 .../ibm/juno/core/xml/doc-files/Example_XML.png |   Bin 32865 -> 0 bytes
 .../core/xml/doc-files/Example_XMLSchema.png    |   Bin 45685 -> 0 bytes
 .../core/xml/doc-files/Example_XMLSimple.png    |   Bin 34372 -> 0 bytes
 .../com/ibm/juno/core/xml/package-frame.html    |    46 -
 .../com/ibm/juno/core/xml/package-summary.html  |  2593 ----
 .../doc/com/ibm/juno/core/xml/package-tree.html |   222 -
 .../doc/com/ibm/juno/core/xml/package-use.html  |   379 -
 .../com/ibm/juno/microservice/Microservice.html |   708 -
 .../doc/com/ibm/juno/microservice/Resource.html |   344 -
 .../ibm/juno/microservice/ResourceGroup.html    |   402 -
 .../com/ibm/juno/microservice/ResourceJena.html |   289 -
 .../ibm/juno/microservice/RestMicroservice.html |   727 -
 .../microservice/class-use/Microservice.html    |   182 -
 .../juno/microservice/class-use/Resource.html   |   179 -
 .../microservice/class-use/ResourceGroup.html   |   161 -
 .../microservice/class-use/ResourceJena.html    |   117 -
 .../class-use/RestMicroservice.html             |   117 -
 .../ibm/juno/microservice/doc-files/build1.png  |   Bin 2633 -> 0 bytes
 .../ibm/juno/microservice/doc-files/build2.png  |   Bin 8634 -> 0 bytes
 .../juno/microservice/doc-files/helloworld1.png |   Bin 14050 -> 0 bytes
 .../microservice/doc-files/instructions1.png    |   Bin 44658 -> 0 bytes
 .../microservice/doc-files/instructions2.png    |   Bin 54971 -> 0 bytes
 .../microservice/doc-files/instructions3.png    |   Bin 20755 -> 0 bytes
 .../microservice/doc-files/instructions4.png    |   Bin 28672 -> 0 bytes
 .../microservice/doc-files/instructions5.png    |   Bin 8894 -> 0 bytes
 .../microservice/doc-files/instructions6.png    |   Bin 22345 -> 0 bytes
 .../juno/microservice/doc-files/manifest1.png   |   Bin 10493 -> 0 bytes
 .../ibm/juno/microservice/package-frame.html    |    22 -
 .../ibm/juno/microservice/package-summary.html  |  1078 --
 .../com/ibm/juno/microservice/package-tree.html |   161 -
 .../com/ibm/juno/microservice/package-use.html  |   182 -
 .../microservice/resources/ConfigResource.html  |   530 -
 .../DirectoryResource.FileResource.html         |   378 -
 .../resources/DirectoryResource.html            |   549 -
 .../resources/LogEntryFormatter.html            |   372 -
 .../microservice/resources/LogParser.Entry.html |   401 -
 .../juno/microservice/resources/LogParser.html  |   403 -
 .../resources/LogsResource.FileResource.html    |   381 -
 .../microservice/resources/LogsResource.html    |   511 -
 .../resources/SampleRootResource.html           |   314 -
 .../resources/ShutdownResource.html             |   336 -
 .../resources/class-use/ConfigResource.html     |   117 -
 .../DirectoryResource.FileResource.html         |   117 -
 .../resources/class-use/DirectoryResource.html  |   117 -
 .../resources/class-use/LogEntryFormatter.html  |   165 -
 .../resources/class-use/LogParser.Entry.html    |   172 -
 .../resources/class-use/LogParser.html          |   167 -
 .../class-use/LogsResource.FileResource.html    |   117 -
 .../resources/class-use/LogsResource.html       |   117 -
 .../resources/class-use/SampleRootResource.html |   117 -
 .../resources/class-use/ShutdownResource.html   |   117 -
 .../microservice/resources/package-frame.html   |    25 -
 .../microservice/resources/package-summary.html |   188 -
 .../microservice/resources/package-tree.html    |   171 -
 .../microservice/resources/package-use.html     |   164 -
 .../doc/com/ibm/juno/server/ReaderResource.html |   383 -
 .../build/doc/com/ibm/juno/server/Redirect.html |   384 -
 .../com/ibm/juno/server/ResponseHandler.html    |   280 -
 .../doc/com/ibm/juno/server/RestConverter.html  |   265 -
 .../doc/com/ibm/juno/server/RestException.html  |   400 -
 .../doc/com/ibm/juno/server/RestGuard.html      |   342 -
 .../doc/com/ibm/juno/server/RestMatcher.html    |   304 -
 .../doc/com/ibm/juno/server/RestRequest.html    |  2358 ---
 .../doc/com/ibm/juno/server/RestResponse.html   |   718 -
 .../doc/com/ibm/juno/server/RestServlet.html    |  2652 ----
 .../com/ibm/juno/server/RestServletDefault.html |   485 -
 .../ibm/juno/server/RestServletException.html   |   309 -
 .../juno/server/RestServletGroupDefault.html    |   332 -
 .../doc/com/ibm/juno/server/RestServletNls.html |   298 -
 .../ibm/juno/server/RestServletProperties.html  |   518 -
 .../doc/com/ibm/juno/server/RestUtils.html      |   398 -
 .../doc/com/ibm/juno/server/StreamResource.html |   367 -
 .../doc/com/ibm/juno/server/UrlPathPattern.html |   380 -
 .../com/ibm/juno/server/annotation/Attr.html    |   253 -
 .../com/ibm/juno/server/annotation/Content.html |   188 -
 .../ibm/juno/server/annotation/HasParam.html    |   268 -
 .../ibm/juno/server/annotation/HasQParam.html   |   234 -
 .../com/ibm/juno/server/annotation/Header.html  |   229 -
 .../com/ibm/juno/server/annotation/Inherit.html |   363 -
 .../ibm/juno/server/annotation/Messages.html    |   179 -
 .../com/ibm/juno/server/annotation/Method.html  |   180 -
 .../com/ibm/juno/server/annotation/Param.html   |   283 -
 .../juno/server/annotation/PathRemainder.html   |   178 -
 .../ibm/juno/server/annotation/Properties.html  |   194 -
 .../ibm/juno/server/annotation/Property.html    |   244 -
 .../com/ibm/juno/server/annotation/QParam.html  |   279 -
 .../ibm/juno/server/annotation/Response.html    |   289 -
 .../ibm/juno/server/annotation/RestMethod.html  |   825 --
 .../juno/server/annotation/RestResource.html    |   875 --
 .../doc/com/ibm/juno/server/annotation/Var.html |   290 -
 .../ibm/juno/server/annotation/VarCategory.html |   341 -
 .../juno/server/annotation/class-use/Attr.html  |   240 -
 .../server/annotation/class-use/Content.html    |   176 -
 .../server/annotation/class-use/HasParam.html   |   117 -
 .../server/annotation/class-use/HasQParam.html  |   117 -
 .../server/annotation/class-use/Header.html     |   117 -
 .../server/annotation/class-use/Inherit.html    |   168 -
 .../server/annotation/class-use/Messages.html   |   117 -
 .../server/annotation/class-use/Method.html     |   117 -
 .../juno/server/annotation/class-use/Param.html |   311 -
 .../annotation/class-use/PathRemainder.html     |   203 -
 .../server/annotation/class-use/Properties.html |   178 -
 .../server/annotation/class-use/Property.html   |   117 -
 .../server/annotation/class-use/QParam.html     |   117 -
 .../server/annotation/class-use/Response.html   |   117 -
 .../server/annotation/class-use/RestMethod.html |   402 -
 .../annotation/class-use/RestResource.html      |   287 -
 .../juno/server/annotation/class-use/Var.html   |   117 -
 .../annotation/class-use/VarCategory.html       |   117 -
 .../juno/server/annotation/package-frame.html   |    41 -
 .../juno/server/annotation/package-summary.html |   283 -
 .../juno/server/annotation/package-tree.html    |   161 -
 .../ibm/juno/server/annotation/package-use.html |   321 -
 .../juno/server/class-use/ReaderResource.html   |   217 -
 .../com/ibm/juno/server/class-use/Redirect.html |   117 -
 .../juno/server/class-use/ResponseHandler.html  |   238 -
 .../juno/server/class-use/RestConverter.html    |   231 -
 .../juno/server/class-use/RestException.html    |   369 -
 .../ibm/juno/server/class-use/RestGuard.html    |   193 -
 .../ibm/juno/server/class-use/RestMatcher.html  |   167 -
 .../ibm/juno/server/class-use/RestRequest.html  |   669 -
 .../ibm/juno/server/class-use/RestResponse.html |   365 -
 .../ibm/juno/server/class-use/RestServlet.html  |   442 -
 .../server/class-use/RestServletDefault.html    |   269 -
 .../server/class-use/RestServletException.html  |   294 -
 .../class-use/RestServletGroupDefault.html      |   187 -
 .../juno/server/class-use/RestServletNls.html   |   162 -
 .../server/class-use/RestServletProperties.html |   117 -
 .../ibm/juno/server/class-use/RestUtils.html    |   117 -
 .../juno/server/class-use/StreamResource.html   |   180 -
 .../juno/server/class-use/UrlPathPattern.html   |   161 -
 .../juno/server/converters/Introspectable.html  |   294 -
 .../ibm/juno/server/converters/Queryable.html   |   307 -
 .../ibm/juno/server/converters/Traversable.html |   300 -
 .../converters/class-use/Introspectable.html    |   117 -
 .../server/converters/class-use/Queryable.html  |   117 -
 .../converters/class-use/Traversable.html       |   117 -
 .../juno/server/converters/package-frame.html   |    20 -
 .../juno/server/converters/package-summary.html |   158 -
 .../juno/server/converters/package-tree.html    |   132 -
 .../ibm/juno/server/converters/package-use.html |   117 -
 .../ibm/juno/server/doc-files/AddressBook.png   |   Bin 44553 -> 0 bytes
 .../juno/server/doc-files/AddressBookJson.png   |   Bin 30639 -> 0 bytes
 .../server/doc-files/AddressBookOptions.png     |   Bin 224346 -> 0 bytes
 .../server/doc-files/AddressBook_junostyle.png  |   Bin 52768 -> 0 bytes
 .../server/doc-files/HelloWorldResource1.png    |   Bin 14206 -> 0 bytes
 .../server/doc-files/HelloWorldResource2.png    |   Bin 30721 -> 0 bytes
 .../server/doc-files/HelloWorldResource3.png    |   Bin 11040 -> 0 bytes
 .../server/doc-files/HelloWorldResource4.png    |   Bin 16188 -> 0 bytes
 .../doc-files/HelloWorldResourceOptions.png     |   Bin 67692 -> 0 bytes
 .../doc-files/HelloWorldResourceOptionsJson.png |   Bin 27940 -> 0 bytes
 .../com/ibm/juno/server/doc-files/Options2.png  |   Bin 9809 -> 0 bytes
 .../ibm/juno/server/doc-files/OptionsPage.png   |   Bin 56895 -> 0 bytes
 .../server/doc-files/Samples_RootResources.png  |   Bin 62372 -> 0 bytes
 .../juno/server/doc-files/UrlEncodedForm.png    |   Bin 21379 -> 0 bytes
 .../com/ibm/juno/server/jaxrs/BaseProvider.html |   419 -
 .../ibm/juno/server/jaxrs/DefaultProvider.html  |   252 -
 .../com/ibm/juno/server/jaxrs/JunoProvider.html |   304 -
 .../server/jaxrs/class-use/BaseProvider.html    |   187 -
 .../server/jaxrs/class-use/DefaultProvider.html |   117 -
 .../server/jaxrs/class-use/JunoProvider.html    |   187 -
 .../ibm/juno/server/jaxrs/package-frame.html    |    23 -
 .../ibm/juno/server/jaxrs/package-summary.html  |   488 -
 .../com/ibm/juno/server/jaxrs/package-tree.html |   138 -
 .../com/ibm/juno/server/jaxrs/package-use.html  |   187 -
 .../server/jaxrs/rdf/DefaultJenaProvider.html   |   252 -
 .../rdf/class-use/DefaultJenaProvider.html      |   117 -
 .../juno/server/jaxrs/rdf/package-frame.html    |    18 -
 .../juno/server/jaxrs/rdf/package-summary.html  |   146 -
 .../ibm/juno/server/jaxrs/rdf/package-tree.html |   134 -
 .../ibm/juno/server/jaxrs/rdf/package-use.html  |   117 -
 .../server/jena/RestServletJenaDefault.html     |   513 -
 .../jena/RestServletJenaGroupDefault.html       |   328 -
 .../jena/class-use/RestServletJenaDefault.html  |   187 -
 .../class-use/RestServletJenaGroupDefault.html  |   117 -
 .../com/ibm/juno/server/jena/package-frame.html |    19 -
 .../ibm/juno/server/jena/package-summary.html   |   156 -
 .../com/ibm/juno/server/jena/package-tree.html  |   146 -
 .../com/ibm/juno/server/jena/package-use.html   |   177 -
 ...BeanDescription.BeanPropertyDescription.html |   296 -
 .../ibm/juno/server/labels/BeanDescription.html |   320 -
 .../labels/ChildResourceDescriptions.html       |   360 -
 .../ibm/juno/server/labels/DefaultLabels.html   |   286 -
 .../labels/MethodDescription.Response.html      |   378 -
 .../juno/server/labels/MethodDescription.html   |   671 -
 .../ibm/juno/server/labels/NameDescription.html |   344 -
 .../juno/server/labels/ParamDescription.html    |   377 -
 .../juno/server/labels/ResourceDescription.html |   427 -
 .../ibm/juno/server/labels/ResourceLink.html    |   279 -
 .../ibm/juno/server/labels/ResourceOptions.html |   675 -
 .../doc/com/ibm/juno/server/labels/Var.html     |   413 -
 ...BeanDescription.BeanPropertyDescription.html |   161 -
 .../labels/class-use/BeanDescription.html       |   117 -
 .../class-use/ChildResourceDescriptions.html    |   228 -
 .../server/labels/class-use/DefaultLabels.html  |   117 -
 .../class-use/MethodDescription.Response.html   |   182 -
 .../labels/class-use/MethodDescription.html     |   292 -
 .../labels/class-use/NameDescription.html       |   161 -
 .../labels/class-use/ParamDescription.html      |   186 -
 .../labels/class-use/ResourceDescription.html   |   159 -
 .../server/labels/class-use/ResourceLink.html   |   117 -
 .../labels/class-use/ResourceOptions.html       |   285 -
 .../ibm/juno/server/labels/class-use/Var.html   |   218 -
 .../ibm/juno/server/labels/package-frame.html   |    29 -
 .../ibm/juno/server/labels/package-summary.html |   212 -
 .../ibm/juno/server/labels/package-tree.html    |   164 -
 .../com/ibm/juno/server/labels/package-use.html |   255 -
 .../matchers/MultipartFormDataMatcher.html      |   275 -
 .../server/matchers/UrlEncodedFormMatcher.html  |   275 -
 .../class-use/MultipartFormDataMatcher.html     |   117 -
 .../class-use/UrlEncodedFormMatcher.html        |   117 -
 .../ibm/juno/server/matchers/package-frame.html |    19 -
 .../juno/server/matchers/package-summary.html   |   152 -
 .../ibm/juno/server/matchers/package-tree.html  |   135 -
 .../ibm/juno/server/matchers/package-use.html   |   117 -
 .../doc/com/ibm/juno/server/package-frame.html  |    40 -
 .../com/ibm/juno/server/package-summary.html    |  3805 -----
 .../doc/com/ibm/juno/server/package-tree.html   |   195 -
 .../doc/com/ibm/juno/server/package-use.html    |   490 -
 .../remoteable/RemoteableServiceProperties.html |   282 -
 .../server/remoteable/RemoteableServlet.html    |   406 -
 .../class-use/RemoteableServiceProperties.html  |   117 -
 .../remoteable/class-use/RemoteableServlet.html |   117 -
 .../ibm/juno/server/remoteable/doc-files/1.png  |   Bin 15845 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/2.png  |   Bin 20379 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/3.png  |   Bin 33919 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/4.png  |   Bin 21108 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/5.png  |   Bin 10553 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/6.png  |   Bin 24934 -> 0 bytes
 .../juno/server/remoteable/package-frame.html   |    19 -
 .../juno/server/remoteable/package-summary.html |   467 -
 .../juno/server/remoteable/package-tree.html    |   147 -
 .../ibm/juno/server/remoteable/package-use.html |   117 -
 .../juno/server/response/DefaultHandler.html    |   295 -
 .../server/response/InputStreamHandler.html     |   292 -
 .../ibm/juno/server/response/ReaderHandler.html |   290 -
 .../juno/server/response/RedirectHandler.html   |   288 -
 .../juno/server/response/StreamableHandler.html |   290 -
 .../juno/server/response/WritableHandler.html   |   290 -
 .../response/ZipFileListResponseHandler.html    |   292 -
 .../response/class-use/DefaultHandler.html      |   117 -
 .../response/class-use/InputStreamHandler.html  |   117 -
 .../response/class-use/ReaderHandler.html       |   117 -
 .../response/class-use/RedirectHandler.html     |   117 -
 .../response/class-use/StreamableHandler.html   |   117 -
 .../response/class-use/WritableHandler.html     |   117 -
 .../class-use/ZipFileListResponseHandler.html   |   117 -
 .../ibm/juno/server/response/package-frame.html |    24 -
 .../juno/server/response/package-summary.html   |   182 -
 .../ibm/juno/server/response/package-tree.html  |   136 -
 .../ibm/juno/server/response/package-use.html   |   117 -
 .../build/doc/constant-values.html              |  1376 --
 .../build/doc/deprecated-list.html              |   194 -
 .../build/doc/doc-files/Microservices.1.png     |   Bin 22345 -> 0 bytes
 .../doc-files/Samples.AddressBookResource.1.png |   Bin 44553 -> 0 bytes
 .../doc-files/Samples.AddressBookResource.2.png |   Bin 224346 -> 0 bytes
 .../Samples.AddressBookResource.Demo.1.png      |   Bin 17539 -> 0 bytes
 .../Samples.AddressBookResource.Demo.10.png     |   Bin 37153 -> 0 bytes
 .../Samples.AddressBookResource.Demo.2.png      |   Bin 47285 -> 0 bytes
 .../Samples.AddressBookResource.Demo.3.png      |   Bin 40911 -> 0 bytes
 .../Samples.AddressBookResource.Demo.4.png      |   Bin 40461 -> 0 bytes
 .../Samples.AddressBookResource.Demo.5.png      |   Bin 49884 -> 0 bytes
 .../Samples.AddressBookResource.Demo.6.png      |   Bin 52332 -> 0 bytes
 .../Samples.AddressBookResource.Demo.7.png      |   Bin 39401 -> 0 bytes
 .../Samples.AddressBookResource.Demo.8.png      |   Bin 34154 -> 0 bytes
 .../Samples.AddressBookResource.Demo.9.png      |   Bin 51831 -> 0 bytes
 ...les.AddressBookResource.Introspectable.1.png |   Bin 21714 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.1.png |   Bin 43970 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.2.png |   Bin 35177 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.3.png |   Bin 35137 -> 0 bytes
 ...amples.AddressBookResource.Traversable.1.png |   Bin 28868 -> 0 bytes
 ...amples.AddressBookResource.Traversable.2.png |   Bin 20464 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.1.png    |   Bin 45184 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.2.png    |   Bin 78940 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.3.png    |   Bin 28698 -> 0 bytes
 .../build/doc/doc-files/Samples.Building.1.png  |   Bin 14082 -> 0 bytes
 .../build/doc/doc-files/Samples.Building.2.png  |   Bin 5543 -> 0 bytes
 .../doc/doc-files/Samples.ConfigResource.1.png  |   Bin 38071 -> 0 bytes
 .../doc/doc-files/Samples.ConfigResource.2.png  |   Bin 42599 -> 0 bytes
 .../doc/doc-files/Samples.ConfigResource.3.png  |   Bin 41856 -> 0 bytes
 .../Samples.DockerRegistryResource.1.png        |   Bin 16230 -> 0 bytes
 .../Samples.DockerRegistryResource.2.png        |   Bin 23808 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.1.png  |   Bin 15414 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.2.png  |   Bin 10797 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.3.png  |   Bin 66934 -> 0 bytes
 .../doc/doc-files/Samples.Installing.1.png      |   Bin 52312 -> 0 bytes
 .../doc/doc-files/Samples.Installing.2.png      |   Bin 59664 -> 0 bytes
 .../doc/doc-files/Samples.Installing.3.png      |   Bin 25927 -> 0 bytes
 .../doc-files/Samples.JsonSchemaResource.1.png  |   Bin 36315 -> 0 bytes
 .../doc-files/Samples.JsonSchemaResource.2.png  |   Bin 28837 -> 0 bytes
 .../doc/doc-files/Samples.LogsResource.1.png    |   Bin 37594 -> 0 bytes
 .../doc/doc-files/Samples.LogsResource.2.png    |   Bin 42497 -> 0 bytes
 .../doc/doc-files/Samples.LogsResource.3.png    |   Bin 56603 -> 0 bytes
 .../Samples.MethodExampleResource.1.png         |   Bin 27555 -> 0 bytes
 .../Samples.MethodExampleResource.2.png         |   Bin 71023 -> 0 bytes
 .../doc/doc-files/Samples.PhotosResource.1.png  |   Bin 16442 -> 0 bytes
 .../doc/doc-files/Samples.PhotosResource.2.png  |   Bin 71952 -> 0 bytes
 ...Samples.RequestEchoResource.1.htmlschema.png |   Bin 35501 -> 0 bytes
 .../Samples.RequestEchoResource.1.json.png      |   Bin 30092 -> 0 bytes
 ...Samples.RequestEchoResource.1.jsonschema.png |   Bin 31731 -> 0 bytes
 ...Samples.RequestEchoResource.1.jsonsimple.png |   Bin 29302 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.1.png |   Bin 54743 -> 0 bytes
 .../Samples.RequestEchoResource.1.uon.png       |   Bin 64778 -> 0 bytes
 ...amples.RequestEchoResource.1.urlencoding.png |   Bin 71054 -> 0 bytes
 .../Samples.RequestEchoResource.1.xml.png       |   Bin 43989 -> 0 bytes
 .../Samples.RequestEchoResource.1.xmlschema.png |   Bin 47951 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.2.png |   Bin 30872 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.3.png |   Bin 27501 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.4.png |   Bin 22149 -> 0 bytes
 .../build/doc/doc-files/Samples.Running.1.png   |   Bin 40422 -> 0 bytes
 .../build/doc/doc-files/Samples.Running.2.png   |   Bin 15925 -> 0 bytes
 .../build/doc/doc-files/Samples.Running.3.png   |   Bin 62643 -> 0 bytes
 .../Samples.SampleRemoteableServlet.1.png       |   Bin 23969 -> 0 bytes
 .../Samples.SampleRemoteableServlet.2.png       |   Bin 29986 -> 0 bytes
 .../Samples.SampleRemoteableServlet.3.png       |   Bin 45596 -> 0 bytes
 .../doc-files/Samples.SqlQueryResource.1.png    |   Bin 16113 -> 0 bytes
 .../doc-files/Samples.SqlQueryResource.2.png    |   Bin 40356 -> 0 bytes
 .../doc/doc-files/Samples.TempDirResource.1.png |   Bin 32843 -> 0 bytes
 .../doc/doc-files/Samples.TempDirResource.2.png |   Bin 20359 -> 0 bytes
 .../Samples.TumblrParserResource.1.png          |   Bin 168439 -> 0 bytes
 .../Samples.UrlEncodedFormResource.1.png        |   Bin 24026 -> 0 bytes
 .../Samples.UrlEncodedFormResource.2.png        |   Bin 31318 -> 0 bytes
 .../build/doc/doc-files/Server.Html.png         |   Bin 52497 -> 0 bytes
 .../build/doc/doc-files/Server.Json.png         |   Bin 29692 -> 0 bytes
 .../build/doc/doc-files/Server.N3.png           |   Bin 45391 -> 0 bytes
 .../build/doc/doc-files/Server.NTuple.png       |   Bin 55713 -> 0 bytes
 .../build/doc/doc-files/Server.Options.png      |   Bin 67005 -> 0 bytes
 .../build/doc/doc-files/Server.RdfXml.png       |   Bin 45274 -> 0 bytes
 .../build/doc/doc-files/Server.SimpleXml.png    |   Bin 36746 -> 0 bytes
 .../build/doc/doc-files/Server.Turtle.png       |   Bin 45180 -> 0 bytes
 .../build/doc/doc-files/Server.Uon.png          |   Bin 28160 -> 0 bytes
 .../build/doc/doc-files/Server.UrlEncoding.png  |   Bin 32516 -> 0 bytes
 .../build/doc/doc-files/Server.Xml.png          |   Bin 45446 -> 0 bytes
 .../build/doc/help-doc.html                     |   222 -
 .../build/doc/index-all.html                    | 12808 -----------------
 com.ibm.team.juno.releng/build/doc/index.html   |    66 -
 com.ibm.team.juno.releng/build/doc/javadoc.css  |  1143 --
 .../build/doc/overview-frame.html               |    62 -
 .../build/doc/overview-summary.html             |  7901 ----------
 .../build/doc/overview-tree.html                |   961 --
 com.ibm.team.juno.releng/build/doc/package-list |    44 -
 .../build/doc/resources/background.gif          |   Bin 2313 -> 0 bytes
 .../build/doc/resources/tab.gif                 |   Bin 291 -> 0 bytes
 .../build/doc/resources/titlebar.gif            |   Bin 10701 -> 0 bytes
 .../build/doc/resources/titlebar_end.gif        |   Bin 849 -> 0 bytes
 .../build/doc/serialized-form.html              |   890 --
 .../com/ibm/juno/client/AllowAllRedirects.html  |    99 -
 .../com/ibm/juno/client/DateHeader.html         |   111 -
 .../com/ibm/juno/client/HttpMethod.html         |   132 -
 .../com/ibm/juno/client/NameValuePairs.html     |   116 -
 .../com/ibm/juno/client/ResponsePattern.html    |   206 -
 .../src-html/com/ibm/juno/client/RestCall.html  |  1016 --
 .../com/ibm/juno/client/RestCallException.html  |   222 -
 .../ibm/juno/client/RestCallInterceptor.html    |   128 -
 .../com/ibm/juno/client/RestCallLogger.html     |   188 -
 .../com/ibm/juno/client/RestClient.html         |  1483 --
 .../com/ibm/juno/client/RestRequestEntity.html  |   158 -
 .../src-html/com/ibm/juno/client/RetryOn.html   |   107 -
 .../ibm/juno/client/SSLOpts.CertValidate.html   |   257 -
 .../com/ibm/juno/client/SSLOpts.HostVerify.html |   257 -
 .../src-html/com/ibm/juno/client/SSLOpts.html   |   257 -
 .../juno/client/SerializedNameValuePair.html    |   151 -
 .../ibm/juno/client/SimpleX509TrustManager.html |   134 -
 .../client/deprecated/CertificateStore.html     |   199 -
 .../deprecated/ICertificateValidator.Trust.html |   118 -
 .../deprecated/ICertificateValidator.html       |   118 -
 .../client/deprecated/ITrustStoreProvider.html  |   111 -
 .../deprecated/LenientCertificateValidator.html |    98 -
 .../deprecated/SharedTrustStoreProvider.html    |   176 -
 .../deprecated/ValidatingX509TrustManager.html  |   185 -
 .../ibm/juno/client/jazz/JazzRestClient.html    |   464 -
 .../src-html/com/ibm/juno/core/BeanContext.html |  1880 ---
 .../com/ibm/juno/core/BeanContextFactory.html   |   526 -
 .../ibm/juno/core/BeanContextProperties.html    |   260 -
 .../doc/src-html/com/ibm/juno/core/BeanMap.html |   533 -
 .../com/ibm/juno/core/BeanMapEntry.html         |   193 -
 .../src-html/com/ibm/juno/core/BeanMeta.html    |   821 --
 .../com/ibm/juno/core/BeanMetaFiltered.html     |   142 -
 .../com/ibm/juno/core/BeanPropertyMeta.html     |   875 --
 .../juno/core/BeanProxyInvocationHandler.html   |   150 -
 .../com/ibm/juno/core/BeanRuntimeException.html |   134 -
 .../src-html/com/ibm/juno/core/ClassMeta.html   |  1334 --
 .../doc/src-html/com/ibm/juno/core/CoreApi.html |   244 -
 .../src-html/com/ibm/juno/core/Delegate.html    |   101 -
 .../com/ibm/juno/core/FormattedException.html   |   125 -
 .../juno/core/FormattedRuntimeException.html    |   116 -
 .../core/InvalidDataConversionException.html    |   105 -
 .../src-html/com/ibm/juno/core/Lockable.html    |   156 -
 .../com/ibm/juno/core/LockedException.html      |   100 -
 .../src-html/com/ibm/juno/core/MediaRange.html  |   384 -
 .../src-html/com/ibm/juno/core/ObjectList.html  |   641 -
 .../src-html/com/ibm/juno/core/ObjectMap.html   |  1475 --
 .../com/ibm/juno/core/PropertyNamer.html        |   103 -
 .../ibm/juno/core/PropertyNamerDashedLC.html    |   134 -
 .../com/ibm/juno/core/PropertyNamerDefault.html |   107 -
 .../src-html/com/ibm/juno/core/Streamable.html  |   110 -
 .../src-html/com/ibm/juno/core/Visibility.html  |   267 -
 .../src-html/com/ibm/juno/core/Writable.html    |   110 -
 .../com/ibm/juno/core/annotation/Bean.html      |   288 -
 .../juno/core/annotation/BeanConstructor.html   |   154 -
 .../ibm/juno/core/annotation/BeanIgnore.html    |   106 -
 .../ibm/juno/core/annotation/BeanProperty.html  |   254 -
 .../ibm/juno/core/annotation/BeanSubType.html   |   114 -
 .../com/ibm/juno/core/annotation/Consumes.html  |   141 -
 .../com/ibm/juno/core/annotation/Filter.html    |   154 -
 .../ibm/juno/core/annotation/NameProperty.html  |   103 -
 .../juno/core/annotation/ParentProperty.html    |   103 -
 .../com/ibm/juno/core/annotation/Produces.html  |   154 -
 .../ibm/juno/core/annotation/Remoteable.html    |    95 -
 .../ibm/juno/core/annotation/ThreadSafe.html    |    97 -
 .../com/ibm/juno/core/annotation/URI.html       |   136 -
 .../com/ibm/juno/core/csv/CsvSerializer.html    |   162 -
 .../src-html/com/ibm/juno/core/dto/Link.html    |   205 -
 .../com/ibm/juno/core/dto/ResultSetList.html    |   177 -
 .../com/ibm/juno/core/dto/atom/Category.html    |   209 -
 .../com/ibm/juno/core/dto/atom/Common.html      |   156 -
 .../com/ibm/juno/core/dto/atom/CommonEntry.html |   348 -
 .../com/ibm/juno/core/dto/atom/Content.html     |   216 -
 .../com/ibm/juno/core/dto/atom/Entry.html       |   315 -
 .../com/ibm/juno/core/dto/atom/Feed.html        |   356 -
 .../com/ibm/juno/core/dto/atom/Generator.html   |   211 -
 .../com/ibm/juno/core/dto/atom/Icon.html        |   165 -
 .../src-html/com/ibm/juno/core/dto/atom/Id.html |   164 -
 .../com/ibm/juno/core/dto/atom/Link.html        |   294 -
 .../com/ibm/juno/core/dto/atom/Logo.html        |   165 -
 .../com/ibm/juno/core/dto/atom/Person.html      |   203 -
 .../com/ibm/juno/core/dto/atom/Source.html      |   295 -
 .../core/dto/atom/Text.TextContentHandler.html  |   251 -
 .../com/ibm/juno/core/dto/atom/Text.html        |   251 -
 .../com/ibm/juno/core/dto/cognos/Column.html    |   226 -
 .../ibm/juno/core/dto/cognos/DataSet.Row.html   |   260 -
 .../com/ibm/juno/core/dto/cognos/DataSet.html   |   260 -
 .../ibm/juno/core/dto/jsonschema/JsonType.html  |   175 -
 .../juno/core/dto/jsonschema/JsonTypeArray.html |   122 -
 .../Schema.BooleanOrSchemaArrayFilter.html      |  1464 --
 .../Schema.BooleanOrSchemaFilter.html           |  1464 --
 .../Schema.JsonTypeOrJsonTypeArrayFilter.html   |  1464 --
 .../Schema.SchemaOrSchemaArrayFilter.html       |  1464 --
 .../ibm/juno/core/dto/jsonschema/Schema.html    |  1464 --
 .../juno/core/dto/jsonschema/SchemaArray.html   |   122 -
 .../ibm/juno/core/dto/jsonschema/SchemaMap.html |   191 -
 .../core/dto/jsonschema/SchemaProperty.html     |   116 -
 .../jsonschema/SchemaPropertySimpleArray.html   |   113 -
 .../ibm/juno/core/dto/jsonschema/SchemaRef.html |   106 -
 .../com/ibm/juno/core/encoders/Encoder.html     |   125 -
 .../ibm/juno/core/encoders/EncoderGroup.html    |   267 -
 .../com/ibm/juno/core/encoders/GzipEncoder.html |   116 -
 .../ibm/juno/core/encoders/IdentityEncoder.html |   115 -
 .../juno/core/filter/AnnotationBeanFilter.html  |   135 -
 .../com/ibm/juno/core/filter/BeanFilter.html    |   544 -
 .../ibm/juno/core/filter/Filter.FilterType.html |   206 -
 .../com/ibm/juno/core/filter/Filter.NULL.html   |   206 -
 .../com/ibm/juno/core/filter/Filter.html        |   206 -
 .../juno/core/filter/InterfaceBeanFilter.html   |   107 -
 .../ibm/juno/core/filter/PojoFilter.NULL.html   |   333 -
 .../com/ibm/juno/core/filter/PojoFilter.html    |   333 -
 .../ibm/juno/core/filter/SurrogateFilter.html   |   275 -
 .../ibm/juno/core/filters/BeanStringFilter.html |   107 -
 .../core/filters/ByteArrayBase64Filter.html     |   119 -
 .../core/filters/CalendarFilter.ISO8601DT.html  |   361 -
 .../core/filters/CalendarFilter.ISO8601DTZ.html |   361 -
 .../core/filters/CalendarFilter.Medium.html     |   361 -
 .../core/filters/CalendarFilter.RFC2822D.html   |   361 -
 .../core/filters/CalendarFilter.RFC2822DT.html  |   361 -
 .../core/filters/CalendarFilter.RFC2822DTZ.html |   361 -
 .../core/filters/CalendarFilter.Simple.html     |   361 -
 .../core/filters/CalendarFilter.ToString.html   |   361 -
 .../ibm/juno/core/filters/CalendarFilter.html   |   361 -
 .../juno/core/filters/CalendarLongFilter.html   |   124 -
 .../juno/core/filters/CalendarMapFilter.html    |   132 -
 .../com/ibm/juno/core/filters/ClassFilter.html  |   113 -
 .../juno/core/filters/DateFilter.ISO8601DT.html |   417 -
 .../core/filters/DateFilter.ISO8601DTP.html     |   417 -
 .../core/filters/DateFilter.ISO8601DTPNZ.html   |   417 -
 .../core/filters/DateFilter.ISO8601DTZ.html     |   417 -
 .../core/filters/DateFilter.ISO8601DTZP.html    |   417 -
 .../juno/core/filters/DateFilter.Medium.html    |   417 -
 .../juno/core/filters/DateFilter.RFC2822D.html  |   417 -
 .../juno/core/filters/DateFilter.RFC2822DT.html |   417 -
 .../core/filters/DateFilter.RFC2822DTZ.html     |   417 -
 .../juno/core/filters/DateFilter.Simple.html    |   417 -
 .../juno/core/filters/DateFilter.SimpleP.html   |   417 -
 .../juno/core/filters/DateFilter.ToString.html  |   417 -
 .../com/ibm/juno/core/filters/DateFilter.html   |   417 -
 .../ibm/juno/core/filters/DateLongFilter.html   |   120 -
 .../ibm/juno/core/filters/DateMapFilter.html    |   124 -
 .../juno/core/filters/EnumerationFilter.html    |   107 -
 .../ibm/juno/core/filters/IteratorFilter.html   |   107 -
 .../juno/core/filters/ReaderFilter.Html.html    |   180 -
 .../juno/core/filters/ReaderFilter.Json.html    |   180 -
 .../core/filters/ReaderFilter.PlainText.html    |   180 -
 .../ibm/juno/core/filters/ReaderFilter.Xml.html |   180 -
 .../com/ibm/juno/core/filters/ReaderFilter.html |   180 -
 .../filters/XMLGregorianCalendarFilter.html     |   132 -
 .../juno/core/html/HtmlBeanPropertyMeta.html    |   158 -
 .../com/ibm/juno/core/html/HtmlClassMeta.html   |   160 -
 .../ibm/juno/core/html/HtmlDocSerializer.html   |   234 -
 .../core/html/HtmlDocSerializerProperties.html  |   237 -
 .../com/ibm/juno/core/html/HtmlLink.html        |   117 -
 .../com/ibm/juno/core/html/HtmlParser.html      |   815 --
 .../ibm/juno/core/html/HtmlParserContext.html   |   152 -
 .../juno/core/html/HtmlParserProperties.html    |   124 -
 .../juno/core/html/HtmlSchemaDocSerializer.html |   216 -
 .../ibm/juno/core/html/HtmlSerializer.Sq.html   |   740 -
 .../core/html/HtmlSerializer.SqReadable.html    |   740 -
 .../com/ibm/juno/core/html/HtmlSerializer.html  |   740 -
 .../juno/core/html/HtmlSerializerContext.html   |   188 -
 .../core/html/HtmlSerializerProperties.html     |   185 -
 .../juno/core/html/HtmlSerializerWriter.html    |   401 -
 .../core/html/HtmlStrippedDocSerializer.html    |   127 -
 .../ibm/juno/core/html/SimpleHtmlWriter.html    |   108 -
 .../com/ibm/juno/core/html/annotation/Html.html |   126 -
 .../com/ibm/juno/core/html/dto/HtmlElement.html |    95 -
 .../com/ibm/juno/core/html/dto/Img.html         |   107 -
 .../com/ibm/juno/core/ini/ConfigFile.html       |   861 --
 .../com/ibm/juno/core/ini/ConfigFileFormat.html |    97 -
 .../com/ibm/juno/core/ini/ConfigFileImpl.html   |   812 --
 .../ibm/juno/core/ini/ConfigFileListener.html   |   114 -
 .../ibm/juno/core/ini/ConfigFileWrapped.html    |   345 -
 .../com/ibm/juno/core/ini/ConfigMgr.html        |   384 -
 .../com/ibm/juno/core/ini/ConfigUtils.html      |   162 -
 .../src-html/com/ibm/juno/core/ini/Encoder.html |   107 -
 .../com/ibm/juno/core/ini/EntryListener.html    |   116 -
 .../src-html/com/ibm/juno/core/ini/Section.html |   636 -
 .../com/ibm/juno/core/ini/SectionListener.html  |   131 -
 .../com/ibm/juno/core/ini/XorEncoder.html       |   118 -
 .../com/ibm/juno/core/jena/Constants.html       |   163 -
 .../ibm/juno/core/jena/RdfBeanPropertyMeta.html |   150 -
 .../com/ibm/juno/core/jena/RdfClassMeta.html    |   154 -
 .../ibm/juno/core/jena/RdfCollectionFormat.html |   124 -
 .../com/ibm/juno/core/jena/RdfParser.N3.html    |   590 -
 .../ibm/juno/core/jena/RdfParser.NTriple.html   |   590 -
 .../ibm/juno/core/jena/RdfParser.Turtle.html    |   590 -
 .../com/ibm/juno/core/jena/RdfParser.Xml.html   |   590 -
 .../com/ibm/juno/core/jena/RdfParser.html       |   590 -
 .../ibm/juno/core/jena/RdfParserContext.html    |   245 -
 .../ibm/juno/core/jena/RdfParserProperties.html |   140 -
 .../com/ibm/juno/core/jena/RdfProperties.html   |   487 -
 .../ibm/juno/core/jena/RdfSerializer.N3.html    |   537 -
 .../juno/core/jena/RdfSerializer.NTriple.html   |   537 -
 .../juno/core/jena/RdfSerializer.Turtle.html    |   537 -
 .../ibm/juno/core/jena/RdfSerializer.Xml.html   |   537 -
 .../juno/core/jena/RdfSerializer.XmlAbbrev.html |   537 -
 .../com/ibm/juno/core/jena/RdfSerializer.html   |   537 -
 .../juno/core/jena/RdfSerializerContext.html    |   251 -
 .../juno/core/jena/RdfSerializerProperties.html |   152 -
 .../com/ibm/juno/core/jena/RdfUtils.html        |   159 -
 .../com/ibm/juno/core/jena/annotation/Rdf.html  |   130 -
 .../ibm/juno/core/jena/annotation/RdfNs.html    |   109 -
 .../juno/core/jena/annotation/RdfSchema.html    |   166 -
 .../core/jso/JavaSerializedObjectParser.html    |   127 -
 .../jso/JavaSerializedObjectSerializer.html     |   124 -
 .../com/ibm/juno/core/json/JsonClassMeta.html   |   127 -
 .../com/ibm/juno/core/json/JsonParser.html      |   924 --
 .../ibm/juno/core/json/JsonParserContext.html   |   138 -
 .../juno/core/json/JsonParserProperties.html    |   157 -
 .../juno/core/json/JsonSchemaSerializer.html    |   226 -
 .../juno/core/json/JsonSerializer.Readable.html |   529 -
 .../juno/core/json/JsonSerializer.Simple.html   |   529 -
 .../json/JsonSerializer.SimpleReadable.html     |   529 -
 .../json/JsonSerializer.SimpleReadableSafe.html |   529 -
 .../com/ibm/juno/core/json/JsonSerializer.html  |   529 -
 .../juno/core/json/JsonSerializerContext.html   |   152 -
 .../core/json/JsonSerializerProperties.html     |   163 -
 .../juno/core/json/JsonSerializerWriter.html    |   337 -
 .../com/ibm/juno/core/json/annotation/Json.html |   144 -
 .../ibm/juno/core/parser/InputStreamParser.html |   124 -
 .../ibm/juno/core/parser/ParseException.html    |   160 -
 .../com/ibm/juno/core/parser/Parser.html        |   648 -
 .../com/ibm/juno/core/parser/ParserContext.html |   249 -
 .../com/ibm/juno/core/parser/ParserGroup.html   |   389 -
 .../ibm/juno/core/parser/ParserListener.html    |   112 -
 .../ibm/juno/core/parser/ParserProperties.html  |   141 -
 .../com/ibm/juno/core/parser/ParserReader.html  |   451 -
 .../com/ibm/juno/core/parser/ReaderParser.html  |   466 -
 .../juno/core/plaintext/PlainTextParser.html    |   140 -
 .../core/plaintext/PlainTextSerializer.html     |   138 -
 .../core/serializer/OutputStreamSerializer.html |   123 -
 .../core/serializer/SerializeException.html     |   125 -
 .../ibm/juno/core/serializer/Serializer.html    |   356 -
 .../juno/core/serializer/SerializerContext.html |   655 -
 .../juno/core/serializer/SerializerGroup.html   |   417 -
 .../core/serializer/SerializerProperties.html   |   387 -
 .../juno/core/serializer/SerializerWriter.html  |   385 -
 .../ibm/juno/core/serializer/StringObject.html  |   153 -
 .../juno/core/serializer/WriterSerializer.html  |   240 -
 .../ibm/juno/core/soap/SoapXmlSerializer.html   |   150 -
 .../core/soap/SoapXmlSerializerProperties.html  |    96 -
 .../core/urlencoding/UonParser.Decoding.html    |   937 --
 .../ibm/juno/core/urlencoding/UonParser.html    |   937 --
 .../juno/core/urlencoding/UonParserContext.html |   183 -
 .../core/urlencoding/UonParserProperties.html   |   148 -
 .../juno/core/urlencoding/UonParserReader.html  |   267 -
 .../urlencoding/UonSerializer.Encoding.html     |   604 -
 .../urlencoding/UonSerializer.Readable.html     |   604 -
 .../core/urlencoding/UonSerializer.Simple.html  |   604 -
 .../UonSerializer.SimpleEncoding.html           |   604 -
 .../juno/core/urlencoding/UonSerializer.html    |   604 -
 .../core/urlencoding/UonSerializerContext.html  |   182 -
 .../urlencoding/UonSerializerProperties.html    |   207 -
 .../core/urlencoding/UonSerializerWriter.html   |   340 -
 .../core/urlencoding/UrlEncodingClassMeta.html  |   127 -
 .../core/urlencoding/UrlEncodingParser.html     |   625 -
 .../core/urlencoding/UrlEncodingProperties.html |   154 -
 .../UrlEncodingSerializer.Readable.html         |   562 -
 .../UrlEncodingSerializer.Simple.html           |   562 -
 .../UrlEncodingSerializer.SimpleExpanded.html   |   562 -
 .../core/urlencoding/UrlEncodingSerializer.html |   562 -
 .../urlencoding/annotation/UrlEncoding.html     |   109 -
 .../src-html/com/ibm/juno/core/utils/Args.html  |   329 -
 .../com/ibm/juno/core/utils/ArrayUtils.html     |   345 -
 .../com/ibm/juno/core/utils/AsciiSet.html       |   127 -
 .../com/ibm/juno/core/utils/ByteArrayCache.html |   174 -
 .../juno/core/utils/ByteArrayInOutStream.html   |   100 -
 .../ibm/juno/core/utils/CharSequenceReader.html |   168 -
 .../core/utils/ClassUtils.ClassComparator.html  |   283 -
 .../com/ibm/juno/core/utils/ClassUtils.html     |   283 -
 .../ibm/juno/core/utils/CollectionUtils.html    |   125 -
 .../ibm/juno/core/utils/DelegateBeanMap.html    |   183 -
 .../com/ibm/juno/core/utils/DelegateList.html   |   107 -
 .../com/ibm/juno/core/utils/DelegateMap.html    |   122 -
 .../com/ibm/juno/core/utils/FileUtils.html      |   202 -
 .../com/ibm/juno/core/utils/FilteredMap.html    |   164 -
 .../juno/core/utils/IOPipe.LineProcessor.html   |   280 -
 .../com/ibm/juno/core/utils/IOPipe.html         |   280 -
 .../com/ibm/juno/core/utils/IOUtils.html        |   424 -
 .../com/ibm/juno/core/utils/IdentityList.html   |   117 -
 .../com/ibm/juno/core/utils/KeywordSet.html     |   158 -
 .../com/ibm/juno/core/utils/ManifestFile.html   |   169 -
 .../com/ibm/juno/core/utils/MessageBundle.html  |   377 -
 .../com/ibm/juno/core/utils/MultiIterable.html  |   146 -
 .../com/ibm/juno/core/utils/MultiSet.html       |   179 -
 .../ibm/juno/core/utils/PojoIntrospector.html   |   185 -
 .../com/ibm/juno/core/utils/PojoQuery.html      |  1318 --
 .../com/ibm/juno/core/utils/PojoRest.html       |   915 --
 .../ibm/juno/core/utils/PojoRestException.html  |   128 -
 .../juno/core/utils/ProcBuilder.Matcher.html    |   454 -
 .../com/ibm/juno/core/utils/ProcBuilder.html    |   454 -
 .../ibm/juno/core/utils/ReflectionUtils.html    |   231 -
 .../ibm/juno/core/utils/SafeResourceBundle.html |   204 -
 .../core/utils/SafeResourceMultiBundle.html     |   154 -
 .../com/ibm/juno/core/utils/SimpleMap.html      |   184 -
 .../juno/core/utils/StringBuilderWriter.html    |   167 -
 .../com/ibm/juno/core/utils/StringMapVar.html   |   113 -
 .../com/ibm/juno/core/utils/StringUtils.html    |   991 --
 .../com/ibm/juno/core/utils/StringVar.html      |   109 -
 .../ibm/juno/core/utils/StringVarMultipart.html |   104 -
 .../ibm/juno/core/utils/StringVarResolver.html  |   433 -
 .../juno/core/utils/StringVarWithDefault.html   |   103 -
 .../com/ibm/juno/core/utils/StringVars.html     |   106 -
 .../ibm/juno/core/utils/TeeOutputStream.html    |   231 -
 .../com/ibm/juno/core/utils/TeeWriter.html      |   233 -
 .../com/ibm/juno/core/utils/ThrowableUtils.html |   152 -
 .../src-html/com/ibm/juno/core/utils/Utils.html |   106 -
 .../juno/core/utils/ZipFileList.FileEntry.html  |   208 -
 .../core/utils/ZipFileList.ZipFileEntry.html    |   208 -
 .../com/ibm/juno/core/utils/ZipFileList.html    |   208 -
 .../com/ibm/juno/core/utils/log/JunoLogger.html |   365 -
 .../com/ibm/juno/core/xml/Namespace.html        |   153 -
 .../com/ibm/juno/core/xml/NamespaceFactory.html |   198 -
 .../com/ibm/juno/core/xml/XmlBeanMeta.html      |   197 -
 .../ibm/juno/core/xml/XmlBeanPropertyMeta.html  |   231 -
 .../com/ibm/juno/core/xml/XmlClassMeta.html     |   186 -
 .../juno/core/xml/XmlContentHandler.NULL.html   |   207 -
 .../ibm/juno/core/xml/XmlContentHandler.html    |   207 -
 .../juno/core/xml/XmlDocSerializer.Simple.html  |   134 -
 .../com/ibm/juno/core/xml/XmlDocSerializer.html |   134 -
 .../com/ibm/juno/core/xml/XmlParser.html        |   613 -
 .../com/ibm/juno/core/xml/XmlParserContext.html |   239 -
 .../ibm/juno/core/xml/XmlParserProperties.html  |   316 -
 .../juno/core/xml/XmlSchemaDocSerializer.html   |   122 -
 .../ibm/juno/core/xml/XmlSchemaSerializer.html  |   660 -
 .../ibm/juno/core/xml/XmlSerializer.Simple.html |   799 -
 .../juno/core/xml/XmlSerializer.SimpleSq.html   |   799 -
 .../core/xml/XmlSerializer.SimpleXmlJsonSq.html |   799 -
 .../com/ibm/juno/core/xml/XmlSerializer.Sq.html |   799 -
 .../juno/core/xml/XmlSerializer.SqReadable.html |   799 -
 .../juno/core/xml/XmlSerializer.XmlJson.html    |   799 -
 .../juno/core/xml/XmlSerializer.XmlJsonSq.html  |   799 -
 .../com/ibm/juno/core/xml/XmlSerializer.html    |   799 -
 .../ibm/juno/core/xml/XmlSerializerContext.html |   278 -
 .../juno/core/xml/XmlSerializerProperties.html  |   243 -
 .../ibm/juno/core/xml/XmlSerializerWriter.html  |   735 -
 .../com/ibm/juno/core/xml/XmlUtils.html         |   643 -
 .../com/ibm/juno/core/xml/annotation/Xml.html   |   269 -
 .../ibm/juno/core/xml/annotation/XmlFormat.html |   125 -
 .../com/ibm/juno/core/xml/annotation/XmlNs.html |   109 -
 .../ibm/juno/core/xml/annotation/XmlSchema.html |   166 -
 .../com/ibm/juno/microservice/Microservice.html |   593 -
 .../com/ibm/juno/microservice/Resource.html     |   139 -
 .../ibm/juno/microservice/ResourceGroup.html    |   138 -
 .../com/ibm/juno/microservice/ResourceJena.html |   100 -
 .../ibm/juno/microservice/RestMicroservice.html |   626 -
 .../microservice/resources/ConfigResource.html  |   256 -
 .../DirectoryResource.FileResource.html         |   426 -
 .../resources/DirectoryResource.html            |   426 -
 .../resources/LogEntryFormatter.html            |   329 -
 .../microservice/resources/LogParser.Entry.html |   297 -
 .../juno/microservice/resources/LogParser.html  |   297 -
 .../resources/LogsResource.FileResource.html    |   371 -
 .../microservice/resources/LogsResource.html    |   371 -
 .../resources/SampleRootResource.html           |    99 -
 .../resources/ShutdownResource.html             |   121 -
 .../com/ibm/juno/server/ReaderResource.html     |   168 -
 .../src-html/com/ibm/juno/server/Redirect.html  |   205 -
 .../com/ibm/juno/server/ResponseHandler.html    |   159 -
 .../com/ibm/juno/server/RestConverter.html      |   142 -
 .../com/ibm/juno/server/RestException.html      |   205 -
 .../src-html/com/ibm/juno/server/RestGuard.html |   167 -
 .../com/ibm/juno/server/RestMatcher.html        |   133 -
 .../com/ibm/juno/server/RestRequest.html        |  1815 ---
 .../com/ibm/juno/server/RestResponse.html       |   499 -
 .../com/ibm/juno/server/RestServlet.html        |  3111 ----
 .../com/ibm/juno/server/RestServletDefault.html |   300 -
 .../ibm/juno/server/RestServletException.html   |   116 -
 .../juno/server/RestServletGroupDefault.html    |   111 -
 .../com/ibm/juno/server/RestServletNls.html     |   174 -
 .../ibm/juno/server/RestServletProperties.html  |   216 -
 .../src-html/com/ibm/juno/server/RestUtils.html |   318 -
 .../com/ibm/juno/server/StreamResource.html     |   159 -
 .../com/ibm/juno/server/UrlPathPattern.html     |   229 -
 .../com/ibm/juno/server/annotation/Attr.html    |   142 -
 .../com/ibm/juno/server/annotation/Content.html |   126 -
 .../ibm/juno/server/annotation/HasParam.html    |   163 -
 .../ibm/juno/server/annotation/HasQParam.html   |   129 -
 .../com/ibm/juno/server/annotation/Header.html  |   122 -
 .../com/ibm/juno/server/annotation/Inherit.html |   102 -
 .../ibm/juno/server/annotation/Messages.html    |   120 -
 .../com/ibm/juno/server/annotation/Method.html  |   119 -
 .../com/ibm/juno/server/annotation/Param.html   |   148 -
 .../juno/server/annotation/PathRemainder.html   |   116 -
 .../ibm/juno/server/annotation/Properties.html  |   134 -
 .../ibm/juno/server/annotation/Property.html    |   133 -
 .../com/ibm/juno/server/annotation/QParam.html  |   144 -
 .../ibm/juno/server/annotation/Response.html    |   139 -
 .../ibm/juno/server/annotation/RestMethod.html  |   451 -
 .../juno/server/annotation/RestResource.html    |   505 -
 .../com/ibm/juno/server/annotation/Var.html     |   138 -
 .../ibm/juno/server/annotation/VarCategory.html |   104 -
 .../juno/server/converters/Introspectable.html  |   127 -
 .../ibm/juno/server/converters/Queryable.html   |   169 -
 .../ibm/juno/server/converters/Traversable.html |   135 -
 .../com/ibm/juno/server/jaxrs/BaseProvider.html |   216 -
 .../ibm/juno/server/jaxrs/DefaultProvider.html  |   141 -
 .../com/ibm/juno/server/jaxrs/JunoProvider.html |   157 -
 .../server/jaxrs/rdf/DefaultJenaProvider.html   |   161 -
 .../server/jena/RestServletJenaDefault.html     |   340 -
 .../jena/RestServletJenaGroupDefault.html       |   111 -
 ...BeanDescription.BeanPropertyDescription.html |   141 -
 .../ibm/juno/server/labels/BeanDescription.html |   141 -
 .../labels/ChildResourceDescriptions.html       |   131 -
 .../ibm/juno/server/labels/DefaultLabels.html   |   146 -
 .../labels/MethodDescription.Response.html      |   396 -
 .../juno/server/labels/MethodDescription.html   |   396 -
 .../ibm/juno/server/labels/NameDescription.html |   142 -
 .../juno/server/labels/ParamDescription.html    |   171 -
 .../juno/server/labels/ResourceDescription.html |   176 -
 .../ibm/juno/server/labels/ResourceLink.html    |   136 -
 .../ibm/juno/server/labels/ResourceOptions.html |   350 -
 .../com/ibm/juno/server/labels/Var.html         |   155 -
 .../matchers/MultipartFormDataMatcher.html      |    96 -
 .../server/matchers/UrlEncodedFormMatcher.html  |    96 -
 .../remoteable/RemoteableServiceProperties.html |   107 -
 .../server/remoteable/RemoteableServlet.html    |   222 -
 .../juno/server/response/DefaultHandler.html    |   157 -
 .../server/response/InputStreamHandler.html     |   112 -
 .../ibm/juno/server/response/ReaderHandler.html |   110 -
 .../juno/server/response/RedirectHandler.html   |   118 -
 .../juno/server/response/StreamableHandler.html |   121 -
 .../juno/server/response/WritableHandler.html   |   121 -
 .../response/ZipFileListResponseHandler.html    |   130 -
 com.ibm.team.juno.releng/build/juno-all-5.2.jar |   Bin 951955 -> 0 bytes
 .../build/juno-javadocs.war                     |   Bin 9723290 -> 0 bytes
 .../build/juno-samples-5.2.jar                  |   Bin 98214 -> 0 bytes
 .../build/juno-samples-5.2.war                  |   Bin 9394505 -> 0 bytes
 .../build/juno-samples-fat-5.2.jar              |   Bin 11368566 -> 0 bytes
 .../build/logs/sample.0.log                     |     0
 .../build/logs/sample.0.log.1                   |     1 -
 .../build/logs/sample.0.log.lck                 |     0
 .../build/microservice-project-5.2.zip          |   Bin 3989612 -> 0 bytes
 .../build/microservice-project/.classpath       |    16 -
 .../build/microservice-project/.project         |    17 -
 .../microservice-project/META-INF/MANIFEST.MF   |    18 -
 .../build/microservice-project/build.properties |    15 -
 .../build/microservice-project/build.xml        |    50 -
 .../lib/commons-codec-1.9.jar                   |   Bin 263965 -> 0 bytes
 .../microservice-project/lib/commons-io-1.2.jar |   Bin 65621 -> 0 bytes
 .../lib/commons-logging-1.1.1.jar               |   Bin 60686 -> 0 bytes
 .../microservice-project/lib/httpclient-4.5.jar |   Bin 727567 -> 0 bytes
 .../microservice-project/lib/httpcore-4.4.1.jar |   Bin 322234 -> 0 bytes
 .../microservice-project/lib/httpmime-4.5.jar   |   Bin 40692 -> 0 bytes
 .../lib/javax.servlet-api-3.0.jar               |   Bin 85353 -> 0 bytes
 .../lib/jetty-all-8.1.0.jar                     |   Bin 1774672 -> 0 bytes
 .../microservice-project/lib/juno-all-5.2.jar   |   Bin 951955 -> 0 bytes
 .../lib/org.apache.commons.fileupload_1.3.1.jar |   Bin 69002 -> 0 bytes
 .../microservice-project.launch                 |    11 -
 .../build/microservice-project/microservice.cfg |   190 -
 .../microservice/sample/HelloWorldResource.java |    29 -
 .../juno/microservice/sample/RootResources.java |    35 -
 .../microservice/sample/nls/Messages.properties |    14 -
 .../build/microservice-samples-project-5.2.zip  |   Bin 8826214 -> 0 bytes
 .../microservice-samples-project/.classpath     |    22 -
 .../build/microservice-samples-project/.project |    17 -
 .../META-INF/MANIFEST.MF                        |    21 -
 .../build.properties                            |    15 -
 .../microservice-samples-project/build.xml      |    50 -
 .../lib/commons-codec-1.9.jar                   |   Bin 263965 -> 0 bytes
 .../lib/commons-io-1.2.jar                      |   Bin 65621 -> 0 bytes
 .../lib/commons-logging-1.1.1.jar               |   Bin 60686 -> 0 bytes
 .../microservice-samples-project/lib/derby.jar  |   Bin 2838580 -> 0 bytes
 .../lib/httpclient-4.5.jar                      |   Bin 727567 -> 0 bytes
 .../lib/httpcore-4.4.1.jar                      |   Bin 322234 -> 0 bytes
 .../lib/httpmime-4.5.jar                        |   Bin 40692 -> 0 bytes
 .../lib/javax.servlet-api-3.0.jar               |   Bin 85353 -> 0 bytes
 .../lib/jena-core-2.7.1.jar                     |   Bin 1727026 -> 0 bytes
 .../lib/jena-iri-0.9.2.jar                      |   Bin 136437 -> 0 bytes
 .../lib/jetty-all-8.1.0.jar                     |   Bin 1774672 -> 0 bytes
 .../lib/juno-all-5.2.jar                        |   Bin 951955 -> 0 bytes
 .../lib/log4j-1.2.16.jar                        |   Bin 481535 -> 0 bytes
 .../lib/org.apache.commons.fileupload_1.3.1.jar |   Bin 69002 -> 0 bytes
 .../lib/slf4j-api-1.6.4.jar                     |   Bin 25962 -> 0 bytes
 .../lib/slf4j-log4j12-1.6.4.jar                 |   Bin 9748 -> 0 bytes
 .../microservice-samples-project.launch         |    11 -
 .../microservice-samples-project/samples.cfg    |   130 -
 .../ibm/juno/samples/addressbook/Address.java   |    49 -
 .../juno/samples/addressbook/AddressBook.java   |    98 -
 .../juno/samples/addressbook/CreateAddress.java |    37 -
 .../juno/samples/addressbook/CreatePerson.java  |    40 -
 .../juno/samples/addressbook/IAddressBook.java  |    41 -
 .../ibm/juno/samples/addressbook/Person.java    |    68 -
 .../juno/samples/addressbook/package-info.java  |    31 -
 .../ibm/juno/samples/addressbook/package.html   |    27 -
 .../com/ibm/juno/server/samples/AdminGuard.java |    22 -
 .../juno/server/samples/AtomFeedResource.java   |   103 -
 .../server/samples/CodeFormatterResource.html   |    48 -
 .../server/samples/CodeFormatterResource.java   |    46 -
 .../com/ibm/juno/server/samples/Constants.java  |    25 -
 .../juno/server/samples/DirectoryResource.java  |   231 -
 .../server/samples/DockerRegistryResource.java  |    68 -
 .../juno/server/samples/HelloWorldResource.java |    34 -
 .../juno/server/samples/JsonSchemaResource.java |    70 -
 .../server/samples/MethodExampleResource.java   |    87 -
 .../ibm/juno/server/samples/PhotosResource.java |   140 -
 .../server/samples/RequestEchoResource.java     |    55 -
 .../ibm/juno/server/samples/RootResources.java  |    50 -
 .../server/samples/SampleRemoteableServlet.java |    53 -
 .../ibm/juno/server/samples/SourceResource.java |   110 -
 .../juno/server/samples/SqlQueryResource.html   |    51 -
 .../juno/server/samples/SqlQueryResource.java   |   124 -
 .../juno/server/samples/TempDirResource.java    |    74 -
 .../juno/server/samples/TempDirUploadPage.html  |    27 -
 .../server/samples/TumblrParserResource.java    |    77 -
 .../ibm/juno/server/samples/UrlEncodedForm.html |    55 -
 .../server/samples/UrlEncodedFormResource.java  |    49 -
 .../addressbook/AddressBookResource.java        |   329 -
 .../server/samples/addressbook/ClientTest.java  |    99 -
 .../nls/AddressBookResource.properties          |    71 -
 .../ibm/juno/server/samples/averycutedog.jpg    |   Bin 40879 -> 0 bytes
 .../server/samples/htdocs/code-highlighting.css |   124 -
 .../samples/nls/AtomFeedResource.properties     |    16 -
 .../nls/CodeFormatterResource.properties        |    13 -
 .../samples/nls/HelloWorldResource.properties   |    14 -
 .../samples/nls/JsonSchemaResource.properties   |    15 -
 .../nls/MethodExampleResource.properties        |    32 -
 .../samples/nls/PhotosResource.properties       |    19 -
 .../samples/nls/RequestEchoResource.properties  |    14 -
 .../server/samples/nls/RootResources.properties |    13 -
 .../nls/SampleRemoteableServlet.properties      |    12 -
 .../samples/nls/SourceResource.properties       |    14 -
 .../samples/nls/SqlQueryResource.properties     |    14 -
 .../samples/nls/TempDirResource.properties      |    13 -
 .../samples/nls/TumblrParserResource.properties |    14 -
 .../nls/UrlEncodedFormResource.properties       |    17 -
 com.ibm.team.juno.releng/build/samples.cfg      |   130 -
 .../source/com.ibm.team.juno.client_5.2.0.0.jar |   Bin 110656 -> 0 bytes
 .../com.ibm.team.juno.microservice_5.2.0.0.jar  |   Bin 312404 -> 0 bytes
 .../source/com.ibm.team.juno.server_5.2.0.0.jar |   Bin 1036509 -> 0 bytes
 .../build/source/com.ibm.team.juno_5.2.0.0.jar  |   Bin 5328404 -> 0 bytes
 .../build/source/juno-all-5.2.jar               |   Bin 6785027 -> 0 bytes
 .../build/source/juno-samples-5.2_src.jar       |   Bin 132231 -> 0 bytes
 .../build/test/jacoco/jacoco.exec               |   Bin 72411 -> 65284 bytes
 .../build/test/jacoco/jacoco2.exec              |   Bin 19071 -> 2920 bytes
 .../build/test/jacoco/jacoco3.exec              |   Bin 22381 -> 24058 bytes
 .../test/jacoco/results/.resources/branchfc.gif |   Bin
 .../test/jacoco/results/.resources/branchnc.gif |   Bin
 .../test/jacoco/results/.resources/branchpc.gif |   Bin
 .../test/jacoco/results/.resources/bundle.gif   |   Bin
 .../test/jacoco/results/.resources/class.gif    |   Bin
 .../test/jacoco/results/.resources/down.gif     |   Bin
 .../test/jacoco/results/.resources/greenbar.gif |   Bin
 .../test/jacoco/results/.resources/group.gif    |   Bin
 .../test/jacoco/results/.resources/method.gif   |   Bin
 .../test/jacoco/results/.resources/package.gif  |   Bin
 .../test/jacoco/results/.resources/prettify.css |     0
 .../test/jacoco/results/.resources/prettify.js  |     0
 .../test/jacoco/results/.resources/redbar.gif   |   Bin
 .../test/jacoco/results/.resources/report.css   |     0
 .../test/jacoco/results/.resources/report.gif   |   Bin
 .../test/jacoco/results/.resources/session.gif  |   Bin
 .../test/jacoco/results/.resources/sort.gif     |   Bin
 .../test/jacoco/results/.resources/sort.js      |     0
 .../test/jacoco/results/.resources/source.gif   |   Bin
 .../build/test/jacoco/results/.resources/up.gif |   Bin
 .../build/test/jacoco/results/.sessions.html    |     2 +-
 .../build/test/jacoco/results/Client/index.html |     2 +-
 .../build/test/jacoco/results/Core/index.html   |     2 +-
 .../build/test/jacoco/results/Server/index.html |     2 +-
 .../build/test/jacoco/results/index.html        |     2 +-
 .../build/test/jacoco/results/report.csv        |     2 +-
 .../build/test/jacoco/results/report.xml        |     2 +-
 .../TEST-com.ibm.juno.core.test.AllTests.xml    |  3000 ----
 .../TEST-com.ibm.juno.server.tests.AllTests.xml |   296 -
 .../build/test/juno-core-test-5.2.jar           |   Bin 702694 -> 0 bytes
 .../build/test/juno-server-test-5.2.jar         |   Bin 11460809 -> 0 bytes
 .../build/test/juno-server-test.cfg             |    97 -
 .../build/test/logs/test.0.log                  |     1 +
 .../build/test/logs/test.0.log.1                |     1 -
 .../build/test/logs/test.0.log.lck              |     0
 com.ibm.team.juno.releng/javadoc.css            |    16 +-
 .../juno-code-templates.xml                     |    55 -
 com.ibm.team.juno.releng/misc/web.xml           |    22 +-
 .../old_source/juno-src-5.0.0.09.zip            |   Bin 804229 -> 0 bytes
 .../old_source/juno-src-5.0.0.10.zip            |   Bin 810103 -> 0 bytes
 .../old_source/juno-src-5.0.0.11.zip            |   Bin 814731 -> 0 bytes
 .../old_source/juno-src-5.0.0.12.zip            |   Bin 817880 -> 0 bytes
 .../old_source/juno-src-5.0.0.13.zip            |   Bin 820063 -> 0 bytes
 .../old_source/juno-src-5.0.0.14.zip            |   Bin 836407 -> 0 bytes
 .../old_source/juno-src-5.0.0.15.zip            |   Bin 852057 -> 0 bytes
 .../old_source/juno-src-5.0.0.16.zip            |   Bin 853498 -> 0 bytes
 .../old_source/juno-src-5.0.0.17.zip            |   Bin 851934 -> 0 bytes
 .../old_source/juno-src-5.0.0.18.zip            |   Bin 881739 -> 0 bytes
 .../old_source/juno-src-5.0.0.19.zip            |   Bin 909299 -> 0 bytes
 .../old_source/juno-src-5.0.0.20.zip            |   Bin 926858 -> 0 bytes
 .../old_source/juno-src-5.0.0.21.zip            |   Bin 928025 -> 0 bytes
 .../old_source/juno-src-5.0.0.22.zip            |   Bin 933600 -> 0 bytes
 .../old_source/juno-src-5.0.0.23.zip            |   Bin 930812 -> 0 bytes
 .../old_source/juno-src-5.0.0.24.zip            |   Bin 983721 -> 0 bytes
 .../old_source/juno-src-5.0.0.25.zip            |   Bin 992366 -> 0 bytes
 .../old_source/juno-src-5.0.0.26.zip            |   Bin 995456 -> 0 bytes
 .../old_source/juno-src-5.0.0.27.zip            |   Bin 1000561 -> 0 bytes
 .../old_source/juno-src-5.0.0.28.zip            |   Bin 1001312 -> 0 bytes
 .../old_source/juno-src-5.0.0.29.zip            |   Bin 1039557 -> 0 bytes
 .../old_source/juno-src-5.0.0.30.zip            |   Bin 1040672 -> 0 bytes
 .../old_source/juno-src-5.0.0.31.zip            |   Bin 1033628 -> 0 bytes
 .../old_source/juno-src-5.0.0.32.zip            |   Bin 1059551 -> 0 bytes
 .../old_source/juno-src-5.0.0.33.zip            |   Bin 1066794 -> 0 bytes
 .../old_source/juno-src-5.0.0.34.zip            |   Bin 1085317 -> 0 bytes
 .../old_source/juno-src-5.0.0.35.zip            |   Bin 1085904 -> 0 bytes
 .../old_source/juno-src-5.0.0.36.zip            |   Bin 1091696 -> 0 bytes
 .../old_source/juno-src-5.1.0.0.zip             |   Bin 1136233 -> 0 bytes
 .../old_source/juno-src-5.1.0.1.zip             |   Bin 1139789 -> 0 bytes
 .../old_source/juno-src-5.1.0.10.zip            |   Bin 942855 -> 0 bytes
 .../old_source/juno-src-5.1.0.11.zip            |   Bin 2361666 -> 0 bytes
 .../old_source/juno-src-5.1.0.12.zip            |   Bin 2364030 -> 0 bytes
 .../old_source/juno-src-5.1.0.2.zip             |   Bin 1141935 -> 0 bytes
 .../old_source/juno-src-5.1.0.3.zip             |   Bin 1162075 -> 0 bytes
 .../old_source/juno-src-5.1.0.6.zip             |   Bin 1196915 -> 0 bytes
 .../old_source/juno-src-5.1.0.7.zip             |   Bin 1211726 -> 0 bytes
 .../old_source/juno-src-5.1.0.8.zip             |   Bin 1215884 -> 0 bytes
 .../old_source/juno-src-5.1.0.9.zip             |   Bin 920834 -> 0 bytes
 .../old_source/juno-src-client-5.1.0.10.zip     |   Bin 52714 -> 0 bytes
 .../old_source/juno-src-client-5.1.0.11.zip     |   Bin 63070 -> 0 bytes
 .../old_source/juno-src-client-5.1.0.12.zip     |   Bin 64233 -> 0 bytes
 .../old_source/juno-src-client-5.1.0.9.zip      |   Bin 51761 -> 0 bytes
 .../old_source/juno-src-server-5.1.0.10.zip     |   Bin 1200138 -> 0 bytes
 .../old_source/juno-src-server-5.1.0.11.zip     |   Bin 3684902 -> 0 bytes
 .../old_source/juno-src-server-5.1.0.9.zip      |   Bin 1173952 -> 0 bytes
 com.ibm.team.juno.samples/.classpath            |    40 +-
 com.ibm.team.juno.samples/.project              |     8 +-
 com.ibm.team.juno.samples/META-INF/MANIFEST.MF  |     6 +-
 .../OSGI-INF/l10n/plugin.properties             |    22 +-
 .../ibm/juno/samples/addressbook/Address.class  |   Bin 1818 -> 0 bytes
 .../juno/samples/addressbook/AddressBook.class  |   Bin 3951 -> 0 bytes
 .../samples/addressbook/CreateAddress.class     |   Bin 1001 -> 0 bytes
 .../juno/samples/addressbook/CreatePerson.class |   Bin 1333 -> 0 bytes
 .../juno/samples/addressbook/IAddressBook.class |   Bin 716 -> 0 bytes
 .../ibm/juno/samples/addressbook/Person.class   |   Bin 3194 -> 0 bytes
 .../juno/samples/addressbook/package-info.class |   Bin 689 -> 0 bytes
 .../ibm/juno/samples/addressbook/package.html   |    27 -
 .../ibm/juno/server/samples/AdminGuard.class    |   Bin 492 -> 0 bytes
 .../juno/server/samples/AtomFeedResource.class  |   Bin 5588 -> 0 bytes
 .../server/samples/CodeFormatterResource.class  |   Bin 1840 -> 0 bytes
 .../server/samples/CodeFormatterResource.html   |    48 -
 .../com/ibm/juno/server/samples/Constants.class |   Bin 695 -> 0 bytes
 .../DirectoryResource$FileResource.class        |   Bin 2293 -> 0 bytes
 .../juno/server/samples/DirectoryResource.class |   Bin 7713 -> 0 bytes
 .../DockerRegistryResource$DockerImage.class    |   Bin 530 -> 0 bytes
 .../DockerRegistryResource$QueryResults.class   |   Bin 770 -> 0 bytes
 .../server/samples/DockerRegistryResource.class |   Bin 3443 -> 0 bytes
 .../server/samples/HelloWorldResource.class     |   Bin 936 -> 0 bytes
 .../server/samples/JsonSchemaResource.class     |   Bin 3048 -> 0 bytes
 .../server/samples/MethodExampleResource.class  |   Bin 4012 -> 0 bytes
 .../samples/PhotosResource$ImageParser.class    |   Bin 1434 -> 0 bytes
 .../PhotosResource$ImageSerializer.class        |   Bin 1629 -> 0 bytes
 .../server/samples/PhotosResource$Photo.class   |   Bin 932 -> 0 bytes
 .../juno/server/samples/PhotosResource.class    |   Bin 4371 -> 0 bytes
 .../server/samples/RequestEchoResource.class    |   Bin 1866 -> 0 bytes
 .../ibm/juno/server/samples/RootResources.class |   Bin 1812 -> 0 bytes
 .../samples/SampleRemoteableServlet.class       |   Bin 1921 -> 0 bytes
 .../server/samples/SourceResource$Source.class  |   Bin 2366 -> 0 bytes
 .../juno/server/samples/SourceResource.class    |   Bin 3870 -> 0 bytes
 .../samples/SqlQueryResource$PostInput.class    |   Bin 550 -> 0 bytes
 .../juno/server/samples/SqlQueryResource.class  |   Bin 5699 -> 0 bytes
 .../juno/server/samples/SqlQueryResource.html   |    51 -
 ...mpDirResource$MultipartFormDataMatcher.class |   Bin 937 -> 0 bytes
 .../juno/server/samples/TempDirResource.class   |   Bin 3429 -> 0 bytes
 .../juno/server/samples/TempDirUploadPage.html  |    27 -
 .../samples/TumblrParserResource$Entry.class    |   Bin 519 -> 0 bytes
 .../server/samples/TumblrParserResource.class   |   Bin 4503 -> 0 bytes
 .../ibm/juno/server/samples/UrlEncodedForm.html |    55 -
 .../UrlEncodedFormResource$FormInputBean.class  |   Bin 733 -> 0 bytes
 .../server/samples/UrlEncodedFormResource.class |   Bin 1592 -> 0 bytes
 .../addressbook/AddressBookResource$1.class     |   Bin 1452 -> 0 bytes
 .../AddressBookResource$Options.class           |   Bin 1519 -> 0 bytes
 .../addressbook/AddressBookResource.class       |   Bin 10078 -> 0 bytes
 .../server/samples/addressbook/ClientTest.class |   Bin 5299 -> 0 bytes
 .../nls/AddressBookResource.properties          |    71 -
 .../ibm/juno/server/samples/averycutedog.jpg    |   Bin 40879 -> 0 bytes
 .../server/samples/htdocs/code-highlighting.css |   124 -
 .../samples/nls/AtomFeedResource.properties     |    16 -
 .../nls/CodeFormatterResource.properties        |    13 -
 .../samples/nls/HelloWorldResource.properties   |    14 -
 .../samples/nls/JsonSchemaResource.properties   |    15 -
 .../nls/MethodExampleResource.properties        |    32 -
 .../samples/nls/PhotosResource.properties       |    19 -
 .../samples/nls/RequestEchoResource.properties  |    14 -
 .../server/samples/nls/RootResources.properties |    13 -
 .../nls/SampleRemoteableServlet.properties      |    12 -
 .../samples/nls/SourceResource.properties       |    14 -
 .../samples/nls/SqlQueryResource.properties     |    14 -
 .../samples/nls/TempDirResource.properties      |    13 -
 .../samples/nls/TumblrParserResource.properties |    14 -
 .../nls/UrlEncodedFormResource.properties       |    17 -
 com.ibm.team.juno.samples/build.properties      |    26 +-
 com.ibm.team.juno.samples/juno-samples.launch   |    10 -
 com.ibm.team.juno.samples/lib/.jazzignore       |     2 +-
 .../project-root/.classpath                     |    22 -
 com.ibm.team.juno.samples/project-root/.project |    17 -
 .../project-root/build.properties               |    15 -
 .../project-root/build.xml                      |    50 -
 .../microservice-samples-project.launch         |    11 -
 com.ibm.team.juno.samples/samples.cfg           |     4 +-
 .../ibm/juno/samples/addressbook/Address.java   |    49 -
 .../juno/samples/addressbook/AddressBook.java   |    98 -
 .../juno/samples/addressbook/CreateAddress.java |    37 -
 .../juno/samples/addressbook/CreatePerson.java  |    40 -
 .../juno/samples/addressbook/IAddressBook.java  |    41 -
 .../ibm/juno/samples/addressbook/Person.java    |    68 -
 .../juno/samples/addressbook/package-info.java  |    31 -
 .../ibm/juno/samples/addressbook/package.html   |    27 -
 .../com/ibm/juno/server/samples/AdminGuard.java |    22 -
 .../juno/server/samples/AtomFeedResource.java   |   103 -
 .../server/samples/CodeFormatterResource.html   |    48 -
 .../server/samples/CodeFormatterResource.java   |    46 -
 .../com/ibm/juno/server/samples/Constants.java  |    25 -
 .../juno/server/samples/DirectoryResource.java  |   231 -
 .../server/samples/DockerRegistryResource.java  |    84 -
 .../juno/server/samples/HelloWorldResource.java |    34 -
 .../juno/server/samples/JsonSchemaResource.java |    70 -
 .../server/samples/MethodExampleResource.java   |    87 -
 .../ibm/juno/server/samples/PhotosResource.java |   140 -
 .../server/samples/RequestEchoResource.java     |    55 -
 .../ibm/juno/server/samples/RootResources.java  |    50 -
 .../server/samples/SampleRemoteableServlet.java |    53 -
 .../ibm/juno/server/samples/SourceResource.java |   110 -
 .../juno/server/samples/SqlQueryResource.html   |    51 -
 .../juno/server/samples/SqlQueryResource.java   |   124 -
 .../juno/server/samples/TempDirResource.java    |    74 -
 .../juno/server/samples/TempDirUploadPage.html  |    27 -
 .../server/samples/TumblrParserResource.java    |    81 -
 .../ibm/juno/server/samples/UrlEncodedForm.html |    55 -
 .../server/samples/UrlEncodedFormResource.java  |    49 -
 .../addressbook/AddressBookResource.java        |   329 -
 .../server/samples/addressbook/ClientTest.java  |   103 -
 .../nls/AddressBookResource.properties          |    71 -
 .../ibm/juno/server/samples/averycutedog.jpg    |   Bin 40879 -> 0 bytes
 .../server/samples/htdocs/code-highlighting.css |   124 -
 .../samples/nls/AtomFeedResource.properties     |    16 -
 .../nls/CodeFormatterResource.properties        |    13 -
 .../samples/nls/HelloWorldResource.properties   |    14 -
 .../samples/nls/JsonSchemaResource.properties   |    15 -
 .../nls/MethodExampleResource.properties        |    32 -
 .../samples/nls/PhotosResource.properties       |    19 -
 .../samples/nls/RequestEchoResource.properties  |    14 -
 .../server/samples/nls/RootResources.properties |    13 -
 .../nls/SampleRemoteableServlet.properties      |    12 -
 .../samples/nls/SourceResource.properties       |    14 -
 .../samples/nls/SqlQueryResource.properties     |    14 -
 .../samples/nls/TempDirResource.properties      |    13 -
 .../samples/nls/TumblrParserResource.properties |    14 -
 .../nls/UrlEncodedFormResource.properties       |    17 -
 .../juneau/samples/addressbook/Address.java     |    53 +
 .../juneau/samples/addressbook/AddressBook.java |   102 +
 .../samples/addressbook/CreateAddress.java      |    41 +
 .../samples/addressbook/CreatePerson.java       |    44 +
 .../samples/addressbook/IAddressBook.java       |    45 +
 .../juneau/samples/addressbook/Person.java      |    72 +
 .../samples/addressbook/package-info.java       |    35 +
 .../juneau/samples/addressbook/package.html     |    27 +
 .../juneau/server/samples/AdminGuard.java       |    26 +
 .../juneau/server/samples/AtomFeedResource.java |   106 +
 .../server/samples/CodeFormatterResource.html   |    48 +
 .../server/samples/CodeFormatterResource.java   |    50 +
 .../apache/juneau/server/samples/Constants.java |    29 +
 .../server/samples/DirectoryResource.java       |   234 +
 .../server/samples/DockerRegistryResource.java  |    88 +
 .../server/samples/HelloWorldResource.java      |    38 +
 .../server/samples/JsonSchemaResource.java      |    74 +
 .../server/samples/MethodExampleResource.java   |    91 +
 .../juneau/server/samples/PhotosResource.java   |   142 +
 .../server/samples/RequestEchoResource.java     |    58 +
 .../juneau/server/samples/RootResources.java    |    54 +
 .../server/samples/SampleRemoteableServlet.java |    57 +
 .../juneau/server/samples/SourceResource.java   |   114 +
 .../juneau/server/samples/SqlQueryResource.html |    51 +
 .../juneau/server/samples/SqlQueryResource.java |   128 +
 .../juneau/server/samples/TempDirResource.java  |    77 +
 .../server/samples/TempDirUploadPage.html       |    34 +
 .../server/samples/TumblrParserResource.java    |    87 +
 .../juneau/server/samples/UrlEncodedForm.html   |    62 +
 .../server/samples/UrlEncodedFormResource.java  |    53 +
 .../addressbook/AddressBookResource.java        |   331 +
 .../server/samples/addressbook/ClientTest.java  |   107 +
 .../nls/AddressBookResource.properties          |    74 +
 .../juneau/server/samples/averycutedog.jpg      |   Bin 0 -> 40879 bytes
 .../server/samples/htdocs/code-highlighting.css |   124 +
 .../samples/nls/AtomFeedResource.properties     |    21 +
 .../nls/CodeFormatterResource.properties        |    18 +
 .../samples/nls/HelloWorldResource.properties   |    19 +
 .../samples/nls/JsonSchemaResource.properties   |    20 +
 .../nls/MethodExampleResource.properties        |    37 +
 .../samples/nls/PhotosResource.properties       |    24 +
 .../samples/nls/RequestEchoResource.properties  |    19 +
 .../server/samples/nls/RootResources.properties |    18 +
 .../nls/SampleRemoteableServlet.properties      |    17 +
 .../samples/nls/SourceResource.properties       |    19 +
 .../samples/nls/SqlQueryResource.properties     |    19 +
 .../samples/nls/TempDirResource.properties      |    18 +
 .../samples/nls/TumblrParserResource.properties |    19 +
 .../nls/UrlEncodedFormResource.properties       |    22 +
 .../server/samples/CT_AddressBookResource.java  |   231 +
 .../samples/CT_AddressBookResource_test0.json   |    14 +
 .../juneau/server/samples/CT_RootResources.java |   146 +
 .../CT_SampleRemoteableServicesResource.java    |    69 +
 .../samples/CT_TestMultiPartFormPosts.java      |    47 +
 .../server/samples/SamplesRestClient.java       |    69 +
 com.ibm.team.juno.samples/war/web.xml           |    28 +-
 com.ibm.team.juno.server.test/.classpath        |    37 +-
 com.ibm.team.juno.server.test/.project          |     8 +-
 .../.settings/org.eclipse.core.resources.prefs  |     2 -
 .../.settings/org.eclipse.jdt.ui.prefs          |     6 +-
 .../META-INF/MANIFEST.MF                        |    10 +-
 .../OSGI-INF/l10n/plugin.properties             |    23 +-
 .../bin/com/ibm/juno/server/test/DTOs$A.class   |   Bin 613 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$1.class |   Bin 629 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$B$10.class    |   Bin 850 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$2.class |   Bin 688 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$3.class |   Bin 690 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$4.class |   Bin 729 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$5.class |   Bin 848 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$6.class |   Bin 629 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$7.class |   Bin 688 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$8.class |   Bin 690 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B$9.class |   Bin 729 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$B.class   |   Bin 5213 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$1.class |   Bin 629 -> 0 bytes
 .../com/ibm/juno/server/test/DTOs$C$10.class    |   Bin 850 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$2.class |   Bin 688 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$3.class |   Bin 690 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$4.class |   Bin 729 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$5.class |   Bin 848 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$6.class |   Bin 629 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$7.class |   Bin 688 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$8.class |   Bin 690 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C$9.class |   Bin 729 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs$C.class   |   Bin 2519 -> 0 bytes
 .../bin/com/ibm/juno/server/test/DTOs.class     |   Bin 457 -> 0 bytes
 .../bin/com/ibm/juno/server/test/Root.class     |   Bin 2839 -> 0 bytes
 .../test/TestAcceptCharset$TestParser.class     |   Bin 1489 -> 0 bytes
 .../test/TestAcceptCharset$TestSerializer.class |   Bin 1624 -> 0 bytes
 .../juno/server/test/TestAcceptCharset.class    |   Bin 1565 -> 0 bytes
 .../server/test/TestBeanContextProperties.class |   Bin 1846 -> 0 bytes
 .../juno/server/test/TestCallbackStrings.class  |   Bin 2513 -> 0 bytes
 .../test/TestCharsetEncodings$ASerializer.class |   Bin 1130 -> 0 bytes
 .../test/TestCharsetEncodings$CtParser.class    |   Bin 1335 -> 0 bytes
 .../juno/server/test/TestCharsetEncodings.class |   Bin 1736 -> 0 bytes
 .../com/ibm/juno/server/test/TestConfig.class   |   Bin 1893 -> 0 bytes
 .../com/ibm/juno/server/test/TestContent.class  |   Bin 2798 -> 0 bytes
 .../TestDefaultContentTypes$DummyParser.class   |   Bin 1397 -> 0 bytes
 ...estDefaultContentTypes$DummySerializer.class |   Bin 1522 -> 0 bytes
 .../test/TestDefaultContentTypes$P1.class       |   Bin 711 -> 0 bytes
 .../test/TestDefaultContentTypes$P2.class       |   Bin 711 -> 0 bytes
 .../test/TestDefaultContentTypes$P3.class       |   Bin 711 -> 0 bytes
 .../test/TestDefaultContentTypes$S1.class       |   Bin 723 -> 0 bytes
 .../test/TestDefaultContentTypes$S2.class       |   Bin 723 -> 0 bytes
 .../test/TestDefaultContentTypes$S3.class       |   Bin 723 -> 0 bytes
 .../server/test/TestDefaultContentTypes.class   |   Bin 3183 -> 0 bytes
 .../test/TestErrorConditions$NeverMatcher.class |   Bin 628 -> 0 bytes
 .../server/test/TestErrorConditions$Test1.class |   Bin 467 -> 0 bytes
 .../server/test/TestErrorConditions$Test2.class |   Bin 450 -> 0 bytes
 .../test/TestErrorConditions$Test3a.class       |   Bin 453 -> 0 bytes
 .../test/TestErrorConditions$Test3b.class       |   Bin 569 -> 0 bytes
 .../test/TestErrorConditions$Test3b1.class      |   Bin 439 -> 0 bytes
 .../test/TestErrorConditions$Test3c.class       |   Bin 712 -> 0 bytes
 .../juno/server/test/TestErrorConditions.class  |   Bin 3771 -> 0 bytes
 .../ibm/juno/server/test/TestFilters$A.class    |   Bin 406 -> 0 bytes
 .../juno/server/test/TestFilters$FilterA1.class |   Bin 2171 -> 0 bytes
 .../juno/server/test/TestFilters$FilterA2.class |   Bin 2171 -> 0 bytes
 .../juno/server/test/TestFilters$FilterA3.class |   Bin 2171 -> 0 bytes
 .../com/ibm/juno/server/test/TestFilters.class  |   Bin 2162 -> 0 bytes
 .../juno/server/test/TestFiltersParent.class    |   Bin 568 -> 0 bytes
 .../juno/server/test/TestGroups$PParser.class   |   Bin 1306 -> 0 bytes
 .../server/test/TestGroups$SSerializer.class    |   Bin 1218 -> 0 bytes
 .../com/ibm/juno/server/test/TestGroups.class   |   Bin 1772 -> 0 bytes
 .../juno/server/test/TestGzip$MyEncoder.class   |   Bin 562 -> 0 bytes
 .../juno/server/test/TestGzip$TestGzipOff.class |   Bin 1195 -> 0 bytes
 .../juno/server/test/TestGzip$TestGzipOn.class  |   Bin 2572 -> 0 bytes
 .../bin/com/ibm/juno/server/test/TestGzip.class |   Bin 535 -> 0 bytes
 .../test/TestInheritance$DummyParser.class      |   Bin 1121 -> 0 bytes
 .../test/TestInheritance$DummySerializer.class  |   Bin 1015 -> 0 bytes
 .../juno/server/test/TestInheritance$E1.class   |   Bin 567 -> 0 bytes
 .../juno/server/test/TestInheritance$E2.class   |   Bin 567 -> 0 bytes
 .../juno/server/test/TestInheritance$E3.class   |   Bin 567 -> 0 bytes
 .../juno/server/test/TestInheritance$E4.class   |   Bin 567 -> 0 bytes
 .../juno/server/test/TestInheritance$F1.class   |   Bin 1017 -> 0 bytes
 .../juno/server/test/TestInheritance$F2.class   |   Bin 1017 -> 0 bytes
 .../juno/server/test/TestInheritance$F3.class   |   Bin 1017 -> 0 bytes
 .../juno/server/test/TestInheritance$Foo1.class |   Bin 510 -> 0 bytes
 .../juno/server/test/TestInheritance$Foo2.class |   Bin 510 -> 0 bytes
 .../juno/server/test/TestInheritance$Foo3.class |   Bin 510 -> 0 bytes
 .../juno/server/test/TestInheritance$P1.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$P2.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$P3.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$P4.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$P5.class   |   Bin 574 -> 0 bytes
 .../juno/server/test/TestInheritance$S1.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$S2.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$S3.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$S4.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$S5.class   |   Bin 582 -> 0 bytes
 .../juno/server/test/TestInheritance$Sub.class  |   Bin 1116 -> 0 bytes
 .../test/TestInheritance$TestEncoders.class     |   Bin 1291 -> 0 bytes
 .../test/TestInheritance$TestFilters.class      |   Bin 1906 -> 0 bytes
 .../test/TestInheritance$TestParsers.class      |   Bin 1626 -> 0 bytes
 .../test/TestInheritance$TestProperties.class   |   Bin 2493 -> 0 bytes
 .../test/TestInheritance$TestSerializers.class  |   Bin 1657 -> 0 bytes
 .../ibm/juno/server/test/TestInheritance.class  |   Bin 2990 -> 0 bytes
 .../ibm/juno/server/test/TestLargePojos.class   |   Bin 1100 -> 0 bytes
 .../TestMessages$ResourceBundleFilter.class     |   Bin 1566 -> 0 bytes
 .../test/TestMessages$TestMessages2.class       |   Bin 540 -> 0 bytes
 .../com/ibm/juno/server/test/TestMessages.class |   Bin 1166 -> 0 bytes
 .../juno/server/test/TestMessages.properties    |    10 -
 .../juno/server/test/TestMessages2.properties   |    10 -
 .../ibm/juno/server/test/TestNls$Test1.class    |   Bin 1835 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test2.class    |   Bin 1259 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test3.class    |   Bin 1534 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test4.class    |   Bin 1259 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test5.class    |   Bin 1259 -> 0 bytes
 .../ibm/juno/server/test/TestNls$Test6.class    |   Bin 1715 -> 0 bytes
 .../bin/com/ibm/juno/server/test/TestNls.class  |   Bin 1173 -> 0 bytes
 .../com/ibm/juno/server/test/TestNls.properties |    74 -
 .../test/TestNlsProperty$TestSerializer.class   |   Bin 1288 -> 0 bytes
 .../ibm/juno/server/test/TestNlsProperty.class  |   Bin 1231 -> 0 bytes
 .../juno/server/test/TestNlsProperty.properties |    10 -
 .../juno/server/test/TestNoParserInput.class    |   Bin 1501 -> 0 bytes
 .../test/TestOnPostCall$TestSerializer.class    |   Bin 2227 -> 0 bytes
 .../ibm/juno/server/test/TestOnPostCall.class   |   Bin 2774 -> 0 bytes
 .../server/test/TestOnPreCall$TestParserA.class |   Bin 2076 -> 0 bytes
 .../ibm/juno/server/test/TestOnPreCall.class    |   Bin 2608 -> 0 bytes
 .../server/test/TestOptionsWithoutNls.class     |   Bin 1432 -> 0 bytes
 .../TestOverlappingMethods$Test1Guard.class     |   Bin 860 -> 0 bytes
 .../TestOverlappingMethods$Test2Guard.class     |   Bin 860 -> 0 bytes
 .../TestOverlappingMethods$Test3aMatcher.class  |   Bin 862 -> 0 bytes
 .../TestOverlappingMethods$Test3bMatcher.class  |   Bin 862 -> 0 bytes
 .../server/test/TestOverlappingMethods.class    |   Bin 3582 -> 0 bytes
 .../com/ibm/juno/server/test/TestParams$A.class |   Bin 450 -> 0 bytes
 .../juno/server/test/TestParams$Test6Bean.class |   Bin 460 -> 0 bytes
 .../com/ibm/juno/server/test/TestParams.class   |   Bin 12204 -> 0 bytes
 .../server/test/TestParsers$TestParserA.class   |   Bin 1554 -> 0 bytes
 .../server/test/TestParsers$TestParserB.class   |   Bin 1553 -> 0 bytes
 .../server/test/TestParsers$TestParserC.class   |   Bin 1553 -> 0 bytes
 .../server/test/TestParsers$TestParserD.class   |   Bin 1565 -> 0 bytes
 .../com/ibm/juno/server/test/TestParsers.class  |   Bin 2249 -> 0 bytes
 .../juno/server/test/TestPath$TestPath2.class   |   Bin 864 -> 0 bytes
 .../juno/server/test/TestPath$TestPath3.class   |   Bin 514 -> 0 bytes
 .../juno/server/test/TestPath$TestPath3a.class  |   Bin 800 -> 0 bytes
 .../bin/com/ibm/juno/server/test/TestPath.class |   Bin 993 -> 0 bytes
 .../com/ibm/juno/server/test/TestPaths$A.class  |   Bin 1479 -> 0 bytes
 .../com/ibm/juno/server/test/TestPaths.class    |   Bin 2541 -> 0 bytes
 .../TestProperties$PropertySerializer1.class    |   Bin 1794 -> 0 bytes
 .../TestProperties$PropertySerializer2.class    |   Bin 1551 -> 0 bytes
 .../ibm/juno/server/test/TestProperties.class   |   Bin 2066 -> 0 bytes
 .../ibm/juno/server/test/TestRestClient.class   |   Bin 986 -> 0 bytes
 .../test/TestSerializers$TestSerializerA.class  |   Bin 1233 -> 0 bytes
 .../test/TestSerializers$TestSerializerB.class  |   Bin 1233 -> 0 bytes
 .../test/TestSerializers$TestSerializerC.class  |   Bin 1233 -> 0 bytes
 .../test/TestSerializers$TestSerializerD.class  |   Bin 1264 -> 0 bytes
 .../ibm/juno/server/test/TestSerializers.class  |   Bin 2098 -> 0 bytes
 .../ibm/juno/server/test/TestStaticFiles.class  |   Bin 734 -> 0 bytes
 .../ibm/juno/server/test/TestUris$Child.class   |   Bin 1618 -> 0 bytes
 .../juno/server/test/TestUris$GrandChild.class  |   Bin 1590 -> 0 bytes
 .../bin/com/ibm/juno/server/test/TestUris.class |   Bin 2707 -> 0 bytes
 .../server/test/TestUrlContent$TestBean.class   |   Bin 473 -> 0 bytes
 .../server/test/TestUrlContent$TestEnum.class   |   Bin 1170 -> 0 bytes
 .../ibm/juno/server/test/TestUrlContent.class   |   Bin 2467 -> 0 bytes
 .../bin/com/ibm/juno/server/test/xdocs/test.txt |     1 -
 .../ibm/juno/server/test/xdocs/xdocs/test.txt   |     1 -
 .../com/ibm/juno/server/tests/AllTests.class    |   Bin 2573 -> 0 bytes
 .../ibm/juno/server/tests/CT_JacocoDummy.class  |   Bin 1190 -> 0 bytes
 .../ibm/juno/server/tests/CT_RestUtils.class    |   Bin 4445 -> 0 bytes
 .../server/tests/CT_TestAcceptCharset.class     |   Bin 5049 -> 0 bytes
 .../tests/CT_TestBeanContextProperties.class    |   Bin 1519 -> 0 bytes
 .../server/tests/CT_TestCallbackStrings.class   |   Bin 1890 -> 0 bytes
 .../server/tests/CT_TestCharsetEncodings.class  |   Bin 3749 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestConfig.class   |   Bin 3699 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestContent.class  |   Bin 15633 -> 0 bytes
 .../tests/CT_TestDefaultContentTypes.class      |   Bin 9126 -> 0 bytes
 .../server/tests/CT_TestErrorConditions.class   |   Bin 7733 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestFilters.class  |   Bin 2373 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestGroups.class   |   Bin 3848 -> 0 bytes
 .../com/ibm/juno/server/tests/CT_TestGzip.class |   Bin 8267 -> 0 bytes
 .../juno/server/tests/CT_TestInheritance.class  |   Bin 3598 -> 0 bytes
 .../juno/server/tests/CT_TestLargePojos.class   |   Bin 3128 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestMessages.class |   Bin 1348 -> 0 bytes
 .../com/ibm/juno/server/tests/CT_TestNls.class  |   Bin 7252 -> 0 bytes
 .../juno/server/tests/CT_TestNlsProperty.class  |   Bin 1802 -> 0 bytes
 .../server/tests/CT_TestNoParserInput.class     |   Bin 2609 -> 0 bytes
 .../juno/server/tests/CT_TestOnPostCall.class   |   Bin 3821 -> 0 bytes
 .../juno/server/tests/CT_TestOnPreCall.class    |   Bin 2392 -> 0 bytes
 .../server/tests/CT_TestOptionsWithoutNls.class |   Bin 2195 -> 0 bytes
 .../tests/CT_TestOverlappingMethods.class       |   Bin 4261 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestParams.class   |   Bin 13364 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestParsers.class  |   Bin 4402 -> 0 bytes
 .../com/ibm/juno/server/tests/CT_TestPath.class |   Bin 1841 -> 0 bytes
 .../ibm/juno/server/tests/CT_TestPaths.class    |   Bin 16487 -> 0 bytes
 .../juno/server/tests/CT_TestProperties.class   |   Bin 2259 -> 0 bytes
 .../juno/server/tests/CT_TestRestClient$1.class |   Bin 1676 -> 0 bytes
 .../juno/server/tests/CT_TestRestClient$2.class |   Bin 1551 -> 0 bytes
 .../juno/server/tests/CT_TestRestClient$3.class |   Bin 1551 -> 0 bytes
 .../juno/server/tests/CT_TestRestClient.class   |   Bin 5196 -> 0 bytes
 .../juno/server/tests/CT_TestSerializers.class  |   Bin 4462 -> 0 bytes
 .../juno/server/tests/CT_TestStaticFiles.class  |   Bin 2209 -> 0 bytes
 .../com/ibm/juno/server/tests/CT_TestUris.class |   Bin 22498 -> 0 bytes
 .../juno/server/tests/CT_TestUrlContent.class   |   Bin 2596 -> 0 bytes
 .../juno/server/tests/CT_UrlPathPattern.class   |   Bin 1561 -> 0 bytes
 .../com/ibm/juno/server/tests/Constants.class   |   Bin 1619 -> 0 bytes
 .../bin/com/ibm/juno/server/tests/DTOs$A.class  |   Bin 617 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$1.class    |   Bin 634 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$10.class   |   Bin 858 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$2.class    |   Bin 693 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$3.class    |   Bin 695 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$4.class    |   Bin 737 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$5.class    |   Bin 856 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$6.class    |   Bin 634 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$7.class    |   Bin 693 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$8.class    |   Bin 695 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$B$9.class    |   Bin 737 -> 0 bytes
 .../bin/com/ibm/juno/server/tests/DTOs$B.class  |   Bin 5241 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$1.class    |   Bin 634 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$10.class   |   Bin 858 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$2.class    |   Bin 693 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$3.class    |   Bin 695 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$4.class    |   Bin 737 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$5.class    |   Bin 856 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$6.class    |   Bin 634 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$7.class    |   Bin 693 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$8.class    |   Bin 695 -> 0 bytes
 .../com/ibm/juno/server/tests/DTOs$C$9.class    |   Bin 737 -> 0 bytes
 .../bin/com/ibm/juno/server/tests/DTOs$C.class  |   Bin 2541 -> 0 bytes
 .../bin/com/ibm/juno/server/tests/DTOs.class    |   Bin 462 -> 0 bytes
 .../ibm/juno/server/tests/LargePojo$A1.class    |   Bin 551 -> 0 bytes
 .../juno/server/tests/LargePojo$A1List.class    |   Bin 547 -> 0 bytes
 .../ibm/juno/server/tests/LargePojo$A1Map.class |   Bin 568 -> 0 bytes
 .../com/ibm/juno/server/tests/LargePojo.class   |   Bin 1289 -> 0 bytes
 .../ibm/juno/server/tests/TestRestClient.class  |   Bin 3770 -> 0 bytes
 .../com/ibm/juno/server/tests/TestUtils.class   |   Bin 2794 -> 0 bytes
 .../CT_AddressBookResource$PersonList.class     |   Bin 576 -> 0 bytes
 .../tests/sample/CT_AddressBookResource.class   |   Bin 9002 -> 0 bytes
 .../sample/CT_AddressBookResource_test0.json    |    14 -
 .../server/tests/sample/CT_RootResources.class  |   Bin 5694 -> 0 bytes
 .../CT_SampleRemoteableServicesResource.class   |   Bin 3694 -> 0 bytes
 .../sample/CT_TestMultiPartFormPosts.class      |   Bin 2567 -> 0 bytes
 .../server/tests/sample/SamplesRestClient.class |   Bin 3794 -> 0 bytes
 com.ibm.team.juno.server.test/build.properties  |    29 +-
 .../juno-server-test.cfg                        |    97 -
 .../juno-server-test.launch                     |    10 -
 .../server/com/ibm/juno/server/test/DTOs.java   |   132 -
 .../server/com/ibm/juno/server/test/Root.java   |    66 -
 .../ibm/juno/server/test/TestAcceptCharset.java |    72 -
 .../server/test/TestBeanContextProperties.java  |    38 -
 .../juno/server/test/TestCallbackStrings.java   |    49 -
 .../juno/server/test/TestCharsetEncodings.java  |    53 -
 .../com/ibm/juno/server/test/TestConfig.java    |    35 -
 .../com/ibm/juno/server/test/TestContent.java   |    77 -
 .../server/test/TestDefaultContentTypes.java    |   126 -
 .../juno/server/test/TestErrorConditions.java   |   132 -
 .../com/ibm/juno/server/test/TestFilters.java   |   111 -
 .../ibm/juno/server/test/TestFiltersParent.java |    22 -
 .../com/ibm/juno/server/test/TestGroups.java    |    70 -
 .../com/ibm/juno/server/test/TestGzip.java      |   107 -
 .../ibm/juno/server/test/TestInheritance.java   |   313 -
 .../ibm/juno/server/test/TestLargePojos.java    |    38 -
 .../com/ibm/juno/server/test/TestMessages.java  |    58 -
 .../juno/server/test/TestMessages.properties    |    10 -
 .../juno/server/test/TestMessages2.properties   |    10 -
 .../com/ibm/juno/server/test/TestNls.java       |   191 -
 .../com/ibm/juno/server/test/TestNls.properties |    74 -
 .../ibm/juno/server/test/TestNlsProperty.java   |    59 -
 .../juno/server/test/TestNlsProperty.properties |    10 -
 .../ibm/juno/server/test/TestNoParserInput.java |    52 -
 .../ibm/juno/server/test/TestOnPostCall.java    |    92 -
 .../com/ibm/juno/server/test/TestOnPreCall.java |    83 -
 .../juno/server/test/TestOptionsWithoutNls.java |    40 -
 .../server/test/TestOverlappingMethods.java     |   142 -
 .../com/ibm/juno/server/test/TestParams.java    |   257 -
 .../com/ibm/juno/server/test/TestParsers.java   |   110 -
 .../com/ibm/juno/server/test/TestPath.java      |    65 -
 .../com/ibm/juno/server/test/TestPaths.java     |    69 -
 .../ibm/juno/server/test/TestProperties.java    |    88 -
 .../ibm/juno/server/test/TestRestClient.java    |    32 -
 .../ibm/juno/server/test/TestSerializers.java   |   101 -
 .../ibm/juno/server/test/TestStaticFiles.java   |    32 -
 .../com/ibm/juno/server/test/TestUris.java      |   117 -
 .../ibm/juno/server/test/TestUrlContent.java    |    55 -
 .../com/ibm/juno/server/test/xdocs/test.txt     |     1 -
 .../ibm/juno/server/test/xdocs/xdocs/test.txt   |     1 -
 .../java/org/apache/juneau/server/Root.java     |    70 +
 .../apache/juneau/server/TestAcceptCharset.java |    75 +
 .../server/TestBeanContextProperties.java       |    41 +
 .../juneau/server/TestCallbackStrings.java      |    52 +
 .../juneau/server/TestCharsetEncodings.java     |    54 +
 .../org/apache/juneau/server/TestConfig.java    |    37 +
 .../org/apache/juneau/server/TestContent.java   |    80 +
 .../juneau/server/TestDefaultContentTypes.java  |   127 +
 .../juneau/server/TestErrorConditions.java      |   135 +
 .../org/apache/juneau/server/TestGroups.java    |    71 +
 .../java/org/apache/juneau/server/TestGzip.java |   110 +
 .../apache/juneau/server/TestInheritance.java   |   316 +
 .../apache/juneau/server/TestLargePojos.java    |    41 +
 .../org/apache/juneau/server/TestMessages.java  |    61 +
 .../juneau/server/TestMessages.properties       |    16 +
 .../juneau/server/TestMessages2.properties      |    16 +
 .../java/org/apache/juneau/server/TestNls.java  |   194 +
 .../org/apache/juneau/server/TestNls.properties |    79 +
 .../apache/juneau/server/TestNlsProperty.java   |    60 +
 .../juneau/server/TestNlsProperty.properties    |    16 +
 .../apache/juneau/server/TestNoParserInput.java |    55 +
 .../apache/juneau/server/TestOnPostCall.java    |    93 +
 .../org/apache/juneau/server/TestOnPreCall.java |    84 +
 .../juneau/server/TestOptionsWithoutNls.java    |    43 +
 .../juneau/server/TestOverlappingMethods.java   |   145 +
 .../org/apache/juneau/server/TestParams.java    |   292 +
 .../org/apache/juneau/server/TestParsers.java   |   111 +
 .../java/org/apache/juneau/server/TestPath.java |    68 +
 .../org/apache/juneau/server/TestPaths.java     |    72 +
 .../apache/juneau/server/TestProperties.java    |    89 +
 .../apache/juneau/server/TestSerializers.java   |   102 +
 .../apache/juneau/server/TestStaticFiles.java   |    35 +
 .../java/org/apache/juneau/server/TestUris.java |   120 +
 .../apache/juneau/server/TestUrlContent.java    |    58 +
 .../org/apache/juneau/server/xdocs/test.txt     |     1 +
 .../apache/juneau/server/xdocs/xdocs/test.txt   |     1 +
 .../apache/juneau/server/CT_JacocoDummy.java    |    37 +
 .../org/apache/juneau/server/CT_RestUtils.java  |   188 +
 .../juneau/server/CT_TestAcceptCharset.java     |   123 +
 .../server/CT_TestBeanContextProperties.java    |    37 +
 .../juneau/server/CT_TestCallbackStrings.java   |    50 +
 .../juneau/server/CT_TestCharsetEncodings.java  |    96 +
 .../org/apache/juneau/server/CT_TestConfig.java |    58 +
 .../apache/juneau/server/CT_TestContent.java    |   706 +
 .../server/CT_TestDefaultContentTypes.java      |   497 +
 .../juneau/server/CT_TestErrorConditions.java   |   220 +
 .../org/apache/juneau/server/CT_TestGroups.java |   122 +
 .../org/apache/juneau/server/CT_TestGzip.java   |   344 +
 .../juneau/server/CT_TestInheritance.java       |   128 +
 .../apache/juneau/server/CT_TestLargePojos.java |    83 +
 .../apache/juneau/server/CT_TestMessages.java   |    47 +
 .../org/apache/juneau/server/CT_TestNls.java    |   170 +
 .../juneau/server/CT_TestNlsProperty.java       |    48 +
 .../juneau/server/CT_TestNoParserInput.java     |    70 +
 .../apache/juneau/server/CT_TestOnPostCall.java |   121 +
 .../apache/juneau/server/CT_TestOnPreCall.java  |    61 +
 .../juneau/server/CT_TestOptionsWithoutNls.java |    51 +
 .../server/CT_TestOverlappingMethods.java       |   170 +
 .../org/apache/juneau/server/CT_TestParams.java |   716 +
 .../apache/juneau/server/CT_TestParsers.java    |   162 +
 .../org/apache/juneau/server/CT_TestPath.java   |    44 +
 .../org/apache/juneau/server/CT_TestPaths.java  |  1368 ++
 .../apache/juneau/server/CT_TestProperties.java |    48 +
 .../apache/juneau/server/CT_TestRestClient.java |   199 +
 .../juneau/server/CT_TestSerializers.java       |   152 +
 .../juneau/server/CT_TestStaticFiles.java       |    56 +
 .../org/apache/juneau/server/CT_TestUris.java   |   918 ++
 .../apache/juneau/server/CT_TestUrlContent.java |    74 +
 .../apache/juneau/server/CT_UrlPathPattern.java |    39 +
 .../org/apache/juneau/server/Constants.java     |    53 +
 .../java/org/apache/juneau/server/DTOs.java     |   136 +
 .../apache/juneau/server/TestRestClient.java    |    69 +
 .../org/apache/juneau/server/TestUtils.java     |    60 +
 .../com/ibm/juno/server/tests/AllTests.java     |    58 -
 .../ibm/juno/server/tests/CT_JacocoDummy.java   |    35 -
 .../com/ibm/juno/server/tests/CT_RestUtils.java |   184 -
 .../juno/server/tests/CT_TestAcceptCharset.java |   120 -
 .../tests/CT_TestBeanContextProperties.java     |    34 -
 .../server/tests/CT_TestCallbackStrings.java    |    47 -
 .../server/tests/CT_TestCharsetEncodings.java   |    93 -
 .../ibm/juno/server/tests/CT_TestConfig.java    |    56 -
 .../ibm/juno/server/tests/CT_TestContent.java   |   703 -
 .../tests/CT_TestDefaultContentTypes.java       |   494 -
 .../server/tests/CT_TestErrorConditions.java    |   218 -
 .../ibm/juno/server/tests/CT_TestFilters.java   |    65 -
 .../ibm/juno/server/tests/CT_TestGroups.java    |   119 -
 .../com/ibm/juno/server/tests/CT_TestGzip.java  |   341 -
 .../juno/server/tests/CT_TestInheritance.java   |   125 -
 .../juno/server/tests/CT_TestLargePojos.java    |    80 -
 .../ibm/juno/server/tests/CT_TestMessages.java  |    44 -
 .../com/ibm/juno/server/tests/CT_TestNls.java   |   167 -
 .../juno/server/tests/CT_TestNlsProperty.java   |    45 -
 .../juno/server/tests/CT_TestNoParserInput.java |    67 -
 .../juno/server/tests/CT_TestOnPostCall.java    |   118 -
 .../ibm/juno/server/tests/CT_TestOnPreCall.java |    58 -
 .../server/tests/CT_TestOptionsWithoutNls.java  |    48 -
 .../server/tests/CT_TestOverlappingMethods.java |   167 -
 .../ibm/juno/server/tests/CT_TestParams.java    |   648 -
 .../ibm/juno/server/tests/CT_TestParsers.java   |   159 -
 .../com/ibm/juno/server/tests/CT_TestPath.java  |    41 -
 .../com/ibm/juno/server/tests/CT_TestPaths.java |  1365 --
 .../juno/server/tests/CT_TestProperties.java    |    45 -
 .../juno/server/tests/CT_TestRestClient.java    |   196 -
 .../juno/server/tests/CT_TestSerializers.java   |   149 -
 .../juno/server/tests/CT_TestStaticFiles.java   |    53 -
 .../com/ibm/juno/server/tests/CT_TestUris.java  |   915 --
 .../juno/server/tests/CT_TestUrlContent.java    |    71 -
 .../juno/server/tests/CT_UrlPathPattern.java    |    37 -
 .../com/ibm/juno/server/tests/Constants.java    |    49 -
 .../tests/com/ibm/juno/server/tests/DTOs.java   |   132 -
 .../com/ibm/juno/server/tests/LargePojo.java    |    41 -
 .../ibm/juno/server/tests/TestRestClient.java   |    66 -
 .../com/ibm/juno/server/tests/TestUtils.java    |    57 -
 .../tests/sample/CT_AddressBookResource.java    |   228 -
 .../sample/CT_AddressBookResource_test0.json    |    14 -
 .../server/tests/sample/CT_RootResources.java   |   142 -
 .../CT_SampleRemoteableServicesResource.java    |    66 -
 .../tests/sample/CT_TestMultiPartFormPosts.java |    43 -
 .../server/tests/sample/SamplesRestClient.java  |    67 -
 com.ibm.team.juno.server/.classpath             |    31 +-
 com.ibm.team.juno.server/.project               |     8 +-
 .../.settings/org.eclipse.core.resources.prefs  |     2 -
 .../.settings/org.eclipse.jdt.core.prefs        |     1 +
 .../.settings/org.eclipse.jdt.ui.prefs          |     6 +-
 .../.settings/org.eclipse.wst.common.component  |    11 +-
 ...rg.eclipse.wst.common.project.facet.core.xml |    21 +-
 com.ibm.team.juno.server/META-INF/MANIFEST.MF   |    24 +-
 .../OSGI-INF/l10n/plugin.properties             |    23 +-
 .../com/ibm/juno/server/ReaderResource.class    |   Bin 2182 -> 0 bytes
 .../bin/com/ibm/juno/server/Redirect.class      |   Bin 1863 -> 0 bytes
 .../com/ibm/juno/server/ResponseHandler.class   |   Bin 328 -> 0 bytes
 .../bin/com/ibm/juno/server/RestConverter.class |   Bin 491 -> 0 bytes
 .../bin/com/ibm/juno/server/RestException.class |   Bin 2910 -> 0 bytes
 .../bin/com/ibm/juno/server/RestGuard.class     |   Bin 814 -> 0 bytes
 .../bin/com/ibm/juno/server/RestMatcher.class   |   Bin 355 -> 0 bytes
 .../bin/com/ibm/juno/server/RestRequest$1.class |   Bin 1673 -> 0 bytes
 .../bin/com/ibm/juno/server/RestRequest.class   |   Bin 31631 -> 0 bytes
 .../com/ibm/juno/server/RestResponse$1.class    |   Bin 1758 -> 0 bytes
 .../bin/com/ibm/juno/server/RestResponse.class  |   Bin 10142 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$1.class |   Bin 1202 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$2.class |   Bin 887 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$3.class |   Bin 896 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$4.class |   Bin 1289 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$5.class |   Bin 2420 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$6.class |   Bin 1192 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$7.class |   Bin 970 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$8.class |   Bin 845 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet$9.class |   Bin 2595 -> 0 bytes
 .../juno/server/RestServlet$MethodMeta.class    |   Bin 19534 -> 0 bytes
 .../juno/server/RestServlet$MethodParam.class   |   Bin 7042 -> 0 bytes
 .../juno/server/RestServlet$MultiMethod.class   |   Bin 4563 -> 0 bytes
 .../ibm/juno/server/RestServlet$ParamType.class |   Bin 2083 -> 0 bytes
 .../server/RestServlet$ResourceMethod.class     |   Bin 958 -> 0 bytes
 .../bin/com/ibm/juno/server/RestServlet.class   |   Bin 57086 -> 0 bytes
 .../ibm/juno/server/RestServletDefault.class    |   Bin 2584 -> 0 bytes
 .../ibm/juno/server/RestServletException.class  |   Bin 1048 -> 0 bytes
 .../juno/server/RestServletGroupDefault.class   |   Bin 1001 -> 0 bytes
 .../ibm/juno/server/RestServletProperties.class |   Bin 1211 -> 0 bytes
 .../bin/com/ibm/juno/server/RestUtils$1.class   |   Bin 1960 -> 0 bytes
 .../bin/com/ibm/juno/server/RestUtils.class     |   Bin 4584 -> 0 bytes
 .../com/ibm/juno/server/StreamResource.class    |   Bin 1910 -> 0 bytes
 .../com/ibm/juno/server/UrlPathPattern.class    |   Bin 3857 -> 0 bytes
 .../com/ibm/juno/server/annotation/Attr.class   |   Bin 537 -> 0 bytes
 .../ibm/juno/server/annotation/Content.class    |   Bin 480 -> 0 bytes
 .../ibm/juno/server/annotation/HasParam.class   |   Bin 513 -> 0 bytes
 .../ibm/juno/server/annotation/HasQParam.class  |   Bin 515 -> 0 bytes
 .../com/ibm/juno/server/annotation/Header.class |   Bin 509 -> 0 bytes
 .../ibm/juno/server/annotation/Inherit.class    |   Bin 1206 -> 0 bytes
 .../ibm/juno/server/annotation/Messages.class   |   Bin 482 -> 0 bytes
 .../com/ibm/juno/server/annotation/Method.class |   Bin 478 -> 0 bytes
 .../com/ibm/juno/server/annotation/Param.class  |   Bin 567 -> 0 bytes
 .../juno/server/annotation/PathRemainder.class  |   Bin 492 -> 0 bytes
 .../ibm/juno/server/annotation/Properties.class |   Bin 486 -> 0 bytes
 .../ibm/juno/server/annotation/Property.class   |   Bin 534 -> 0 bytes
 .../com/ibm/juno/server/annotation/QParam.class |   Bin 569 -> 0 bytes
 .../ibm/juno/server/annotation/Response.class   |   Bin 641 -> 0 bytes
 .../ibm/juno/server/annotation/RestMethod.class |   Bin 1815 -> 0 bytes
 .../juno/server/annotation/RestResource.class   |   Bin 1670 -> 0 bytes
 .../com/ibm/juno/server/annotation/Var.class    |   Bin 592 -> 0 bytes
 .../juno/server/annotation/VarCategory.class    |   Bin 536 -> 0 bytes
 .../com/ibm/juno/server/annotation/package.html |    34 -
 .../juno/server/converters/Introspectable.class |   Bin 1967 -> 0 bytes
 .../ibm/juno/server/converters/Queryable.class  |   Bin 3447 -> 0 bytes
 .../juno/server/converters/Traversable.class    |   Bin 1781 -> 0 bytes
 .../com/ibm/juno/server/converters/package.html |    34 -
 .../ibm/juno/server/doc-files/AddressBook.png   |   Bin 44553 -> 0 bytes
 .../juno/server/doc-files/AddressBookJson.png   |   Bin 30639 -> 0 bytes
 .../server/doc-files/AddressBookOptions.png     |   Bin 224346 -> 0 bytes
 .../server/doc-files/AddressBook_junostyle.png  |   Bin 52768 -> 0 bytes
 .../server/doc-files/HelloWorldResource1.png    |   Bin 14206 -> 0 bytes
 .../server/doc-files/HelloWorldResource2.png    |   Bin 30721 -> 0 bytes
 .../server/doc-files/HelloWorldResource3.png    |   Bin 11040 -> 0 bytes
 .../server/doc-files/HelloWorldResource4.png    |   Bin 16188 -> 0 bytes
 .../doc-files/HelloWorldResourceOptions.png     |   Bin 67692 -> 0 bytes
 .../doc-files/HelloWorldResourceOptionsJson.png |   Bin 27940 -> 0 bytes
 .../com/ibm/juno/server/doc-files/Options2.png  |   Bin 9809 -> 0 bytes
 .../ibm/juno/server/doc-files/OptionsPage.png   |   Bin 56895 -> 0 bytes
 .../server/doc-files/Samples_RootResources.png  |   Bin 62372 -> 0 bytes
 .../juno/server/doc-files/UrlEncodedForm.png    |   Bin 21379 -> 0 bytes
 .../server/htdocs/MethodExampleResource1.png    |   Bin 12276 -> 0 bytes
 .../bin/com/ibm/juno/server/htdocs/javadoc.css  |   782 -
 .../ibm/juno/server/jaxrs/BaseProvider.class    |   Bin 9470 -> 0 bytes
 .../ibm/juno/server/jaxrs/DefaultProvider.class |   Bin 1622 -> 0 bytes
 .../ibm/juno/server/jaxrs/JunoProvider.class    |   Bin 879 -> 0 bytes
 .../bin/com/ibm/juno/server/jaxrs/package.html  |   354 -
 .../server/jaxrs/rdf/DefaultJenaProvider.class  |   Bin 2202 -> 0 bytes
 .../com/ibm/juno/server/jaxrs/rdf/package.html  |    27 -
 .../server/jena/RestServletJenaDefault.class    |   Bin 3042 -> 0 bytes
 .../jena/RestServletJenaGroupDefault.class      |   Bin 1032 -> 0 bytes
 .../bin/com/ibm/juno/server/jena/package.html   |    40 -
 .../bin/com/ibm/juno/server/juno.ico            |   Bin 39438 -> 0 bytes
 ...eanDescription$BeanPropertyDescription.class |   Bin 979 -> 0 bytes
 .../juno/server/labels/BeanDescription.class    |   Bin 2036 -> 0 bytes
 .../labels/ChildResourceDescriptions.class      |   Bin 2158 -> 0 bytes
 .../ibm/juno/server/labels/DefaultLabels.class  |   Bin 3014 -> 0 bytes
 .../labels/MethodDescription$Response.class     |   Bin 1817 -> 0 bytes
 .../juno/server/labels/MethodDescription.class  |   Bin 5274 -> 0 bytes
 .../juno/server/labels/NameDescription.class    |   Bin 1024 -> 0 bytes
 .../juno/server/labels/ParamDescription.class   |   Bin 1308 -> 0 bytes
 .../server/labels/ResourceDescription.class     |   Bin 3456 -> 0 bytes
 .../ibm/juno/server/labels/ResourceLink.class   |   Bin 1923 -> 0 bytes
 .../juno/server/labels/ResourceOptions.class    |   Bin 6276 -> 0 bytes
 .../bin/com/ibm/juno/server/labels/Var.class    |   Bin 1879 -> 0 bytes
 .../server/labels/nls/DefaultLabels.properties  |    36 -
 .../bin/com/ibm/juno/server/labels/package.html |    34 -
 .../matchers/MultipartFormDataMatcher.class     |   Bin 809 -> 0 bytes
 .../server/matchers/UrlEncodedFormMatcher.class |   Bin 810 -> 0 bytes
 .../com/ibm/juno/server/matchers/package.html   |    27 -
 .../bin/com/ibm/juno/server/package.html        |  3575 -----
 .../RemoteableServiceProperties.class           |   Bin 514 -> 0 bytes
 .../server/remoteable/RemoteableServlet.class   |   Bin 5800 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/1.png  |   Bin 15845 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/2.png  |   Bin 20379 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/3.png  |   Bin 33919 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/4.png  |   Bin 21108 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/5.png  |   Bin 10553 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/6.png  |   Bin 24934 -> 0 bytes
 .../com/ibm/juno/server/remoteable/package.html |   349 -
 .../juno/server/response/DefaultHandler.class   |   Bin 4659 -> 0 bytes
 .../server/response/InputStreamHandler.class    |   Bin 1376 -> 0 bytes
 .../juno/server/response/ReaderHandler.class    |   Bin 1183 -> 0 bytes
 .../juno/server/response/RedirectHandler.class  |   Bin 1989 -> 0 bytes
 .../server/response/StreamableHandler.class     |   Bin 2195 -> 0 bytes
 .../juno/server/response/WritableHandler.class  |   Bin 2157 -> 0 bytes
 .../response/ZipFileListResponseHandler.class   |   Bin 2574 -> 0 bytes
 .../com/ibm/juno/server/response/package.html   |    34 -
 .../bin/com/ibm/juno/server/styles/devops.css   |   200 -
 .../bin/com/ibm/juno/server/styles/juno.css     |   129 -
 com.ibm.team.juno.server/build.properties       |    29 +-
 .../src/com/ibm/juno/server/ReaderResource.java |    96 -
 .../src/com/ibm/juno/server/Redirect.java       |   133 -
 .../com/ibm/juno/server/ResponseHandler.java    |    87 -
 .../src/com/ibm/juno/server/RestConverter.java  |    70 -
 .../src/com/ibm/juno/server/RestException.java  |   133 -
 .../src/com/ibm/juno/server/RestGuard.java      |    95 -
 .../src/com/ibm/juno/server/RestMatcher.java    |    61 -
 .../src/com/ibm/juno/server/RestRequest.java    |  1743 ---
 .../src/com/ibm/juno/server/RestResponse.java   |   427 -
 .../src/com/ibm/juno/server/RestServlet.java    |  3039 ----
 .../com/ibm/juno/server/RestServletDefault.java |   228 -
 .../ibm/juno/server/RestServletException.java   |    44 -
 .../juno/server/RestServletGroupDefault.java    |    39 -
 .../ibm/juno/server/RestServletProperties.java  |   144 -
 .../src/com/ibm/juno/server/RestUtils.java      |   246 -
 .../src/com/ibm/juno/server/StreamResource.java |    87 -
 .../src/com/ibm/juno/server/UrlPathPattern.java |   157 -
 .../com/ibm/juno/server/annotation/Attr.java    |    70 -
 .../com/ibm/juno/server/annotation/Content.java |    54 -
 .../ibm/juno/server/annotation/HasParam.java    |    91 -
 .../ibm/juno/server/annotation/HasQParam.java   |    57 -
 .../com/ibm/juno/server/annotation/Header.java  |    50 -
 .../com/ibm/juno/server/annotation/Inherit.java |    30 -
 .../ibm/juno/server/annotation/Messages.java    |    48 -
 .../com/ibm/juno/server/annotation/Method.java  |    47 -
 .../com/ibm/juno/server/annotation/Param.java   |    76 -
 .../juno/server/annotation/PathRemainder.java   |    44 -
 .../ibm/juno/server/annotation/Properties.java  |    62 -
 .../ibm/juno/server/annotation/Property.java    |    61 -
 .../com/ibm/juno/server/annotation/QParam.java  |    72 -
 .../ibm/juno/server/annotation/Response.java    |    67 -
 .../ibm/juno/server/annotation/RestMethod.java  |   379 -
 .../juno/server/annotation/RestResource.java    |   433 -
 .../src/com/ibm/juno/server/annotation/Var.java |    66 -
 .../ibm/juno/server/annotation/VarCategory.java |    32 -
 .../com/ibm/juno/server/annotation/package.html |    34 -
 .../juno/server/converters/Introspectable.java  |    55 -
 .../ibm/juno/server/converters/Queryable.java   |    97 -
 .../ibm/juno/server/converters/Traversable.java |    63 -
 .../com/ibm/juno/server/converters/package.html |    34 -
 .../ibm/juno/server/doc-files/AddressBook.png   |   Bin 44553 -> 0 bytes
 .../juno/server/doc-files/AddressBookJson.png   |   Bin 30639 -> 0 bytes
 .../server/doc-files/AddressBookOptions.png     |   Bin 224346 -> 0 bytes
 .../server/doc-files/AddressBook_junostyle.png  |   Bin 52768 -> 0 bytes
 .../server/doc-files/HelloWorldResource1.png    |   Bin 14206 -> 0 bytes
 .../server/doc-files/HelloWorldResource2.png    |   Bin 30721 -> 0 bytes
 .../server/doc-files/HelloWorldResource3.png    |   Bin 11040 -> 0 bytes
 .../server/doc-files/HelloWorldResource4.png    |   Bin 16188 -> 0 bytes
 .../doc-files/HelloWorldResourceOptions.png     |   Bin 67692 -> 0 bytes
 .../doc-files/HelloWorldResourceOptionsJson.png |   Bin 27940 -> 0 bytes
 .../com/ibm/juno/server/doc-files/Options2.png  |   Bin 9809 -> 0 bytes
 .../ibm/juno/server/doc-files/OptionsPage.png   |   Bin 56895 -> 0 bytes
 .../server/doc-files/Samples_RootResources.png  |   Bin 62372 -> 0 bytes
 .../juno/server/doc-files/UrlEncodedForm.png    |   Bin 21379 -> 0 bytes
 .../server/htdocs/MethodExampleResource1.png    |   Bin 12276 -> 0 bytes
 .../src/com/ibm/juno/server/htdocs/javadoc.css  |   782 -
 .../com/ibm/juno/server/jaxrs/BaseProvider.java |   144 -
 .../ibm/juno/server/jaxrs/DefaultProvider.java  |    69 -
 .../com/ibm/juno/server/jaxrs/JunoProvider.java |    85 -
 .../src/com/ibm/juno/server/jaxrs/package.html  |   354 -
 .../server/jaxrs/rdf/DefaultJenaProvider.java   |    89 -
 .../com/ibm/juno/server/jaxrs/rdf/package.html  |    27 -
 .../server/jena/RestServletJenaDefault.java     |   268 -
 .../jena/RestServletJenaGroupDefault.java       |    39 -
 .../src/com/ibm/juno/server/jena/package.html   |    40 -
 .../src/com/ibm/juno/server/juno.ico            |   Bin 39438 -> 0 bytes
 .../ibm/juno/server/labels/BeanDescription.java |    69 -
 .../labels/ChildResourceDescriptions.java       |    59 -
 .../ibm/juno/server/labels/DefaultLabels.java   |    74 -
 .../juno/server/labels/MethodDescription.java   |   324 -
 .../ibm/juno/server/labels/NameDescription.java |    70 -
 .../juno/server/labels/ParamDescription.java    |    99 -
 .../juno/server/labels/ResourceDescription.java |   104 -
 .../ibm/juno/server/labels/ResourceLink.java    |    64 -
 .../ibm/juno/server/labels/ResourceOptions.java |   278 -
 .../src/com/ibm/juno/server/labels/Var.java     |    83 -
 .../server/labels/nls/DefaultLabels.properties  |    36 -
 .../src/com/ibm/juno/server/labels/package.html |    34 -
 .../matchers/MultipartFormDataMatcher.java      |    24 -
 .../server/matchers/UrlEncodedFormMatcher.java  |    24 -
 .../com/ibm/juno/server/matchers/package.html   |    27 -
 .../src/com/ibm/juno/server/package.html        |  3575 -----
 .../remoteable/RemoteableServiceProperties.java |    35 -
 .../server/remoteable/RemoteableServlet.java    |   150 -
 .../ibm/juno/server/remoteable/doc-files/1.png  |   Bin 15845 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/2.png  |   Bin 20379 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/3.png  |   Bin 33919 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/4.png  |   Bin 21108 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/5.png  |   Bin 10553 -> 0 bytes
 .../ibm/juno/server/remoteable/doc-files/6.png  |   Bin 24934 -> 0 bytes
 .../com/ibm/juno/server/remoteable/package.html |   349 -
 .../juno/server/response/DefaultHandler.java    |    85 -
 .../server/response/InputStreamHandler.java     |    40 -
 .../ibm/juno/server/response/ReaderHandler.java |    38 -
 .../juno/server/response/RedirectHandler.java   |    46 -
 .../juno/server/response/StreamableHandler.java |    49 -
 .../juno/server/response/WritableHandler.java   |    49 -
 .../response/ZipFileListResponseHandler.java    |    58 -
 .../com/ibm/juno/server/response/package.html   |    34 -
 .../src/com/ibm/juno/server/styles/devops.css   |   200 -
 .../src/com/ibm/juno/server/styles/juno.css     |   129 -
 .../apache/juneau/server/ReaderResource.java    |   100 +
 .../java/org/apache/juneau/server/Redirect.java |   138 +
 .../apache/juneau/server/ResponseHandler.java   |    92 +
 .../org/apache/juneau/server/RestConverter.java |    74 +
 .../org/apache/juneau/server/RestException.java |   137 +
 .../org/apache/juneau/server/RestGuard.java     |    99 +
 .../org/apache/juneau/server/RestMatcher.java   |    76 +
 .../org/apache/juneau/server/RestRequest.java   |  1764 +++
 .../org/apache/juneau/server/RestResponse.java  |   431 +
 .../org/apache/juneau/server/RestServlet.java   |  2795 ++++
 .../juneau/server/RestServletDefault.java       |   235 +
 .../juneau/server/RestServletException.java     |    48 +
 .../juneau/server/RestServletGroupDefault.java  |    43 +
 .../org/apache/juneau/server/RestUtils.java     |   250 +
 .../apache/juneau/server/StreamResource.java    |    91 +
 .../apache/juneau/server/UrlPathPattern.java    |   161 +
 .../apache/juneau/server/annotation/Attr.java   |    74 +
 .../juneau/server/annotation/Content.java       |    58 +
 .../juneau/server/annotation/HasParam.java      |    95 +
 .../juneau/server/annotation/HasQParam.java     |    61 +
 .../apache/juneau/server/annotation/Header.java |    54 +
 .../juneau/server/annotation/Inherit.java       |    34 +
 .../juneau/server/annotation/Messages.java      |    52 +
 .../apache/juneau/server/annotation/Method.java |    51 +
 .../apache/juneau/server/annotation/Param.java  |    98 +
 .../juneau/server/annotation/PathRemainder.java |    48 +
 .../juneau/server/annotation/Properties.java    |    66 +
 .../juneau/server/annotation/Property.java      |    65 +
 .../apache/juneau/server/annotation/QParam.java |    94 +
 .../juneau/server/annotation/Response.java      |    68 +
 .../juneau/server/annotation/RestMethod.java    |   438 +
 .../juneau/server/annotation/RestResource.java  |   445 +
 .../apache/juneau/server/annotation/Var.java    |    70 +
 .../juneau/server/annotation/VarCategory.java   |    36 +
 .../juneau/server/annotation/package.html       |    41 +
 .../server/converters/Introspectable.java       |    59 +
 .../juneau/server/converters/Queryable.java     |    96 +
 .../juneau/server/converters/Traversable.java   |    67 +
 .../juneau/server/converters/package.html       |    41 +
 .../juneau/server/doc-files/AddressBook.png     |   Bin 0 -> 44553 bytes
 .../juneau/server/doc-files/AddressBookJson.png |   Bin 0 -> 30639 bytes
 .../server/doc-files/AddressBookOptions.png     |   Bin 0 -> 224346 bytes
 .../server/doc-files/HelloWorldResource1.png    |   Bin 0 -> 14206 bytes
 .../server/doc-files/HelloWorldResource2.png    |   Bin 0 -> 30721 bytes
 .../server/doc-files/HelloWorldResource3.png    |   Bin 0 -> 11040 bytes
 .../server/doc-files/HelloWorldResource4.png    |   Bin 0 -> 16188 bytes
 .../doc-files/HelloWorldResourceOptions.png     |   Bin 0 -> 67692 bytes
 .../doc-files/HelloWorldResourceOptionsJson.png |   Bin 0 -> 27940 bytes
 .../apache/juneau/server/doc-files/Options2.png |   Bin 0 -> 9809 bytes
 .../juneau/server/doc-files/OptionsPage.png     |   Bin 0 -> 56895 bytes
 .../server/doc-files/Samples_RootResources.png  |   Bin 0 -> 62372 bytes
 .../juneau/server/doc-files/UrlEncodedForm.png  |   Bin 0 -> 21379 bytes
 .../server/htdocs/MethodExampleResource1.png    |   Bin 0 -> 12276 bytes
 .../org/apache/juneau/server/htdocs/javadoc.css |   782 +
 .../juneau/server/jaxrs/BaseProvider.java       |   148 +
 .../juneau/server/jaxrs/DefaultProvider.java    |    73 +
 .../org/apache/juneau/server/jaxrs/package.html |   361 +
 .../server/jaxrs/rdf/DefaultJenaProvider.java   |    93 +
 .../apache/juneau/server/jaxrs/rdf/package.html |    34 +
 .../server/jena/RestServletJenaDefault.java     |   275 +
 .../jena/RestServletJenaGroupDefault.java       |    43 +
 .../org/apache/juneau/server/jena/package.html  |    47 +
 .../juneau/server/labels/BeanDescription.java   |    73 +
 .../labels/ChildResourceDescriptions.java       |    63 +
 .../juneau/server/labels/DefaultLabels.java     |    78 +
 .../juneau/server/labels/MethodDescription.java |   350 +
 .../juneau/server/labels/NameDescription.java   |    74 +
 .../juneau/server/labels/ParamDescription.java  |   103 +
 .../server/labels/ResourceDescription.java      |   108 +
 .../juneau/server/labels/ResourceLink.java      |    68 +
 .../juneau/server/labels/ResourceOptions.java   |   284 +
 .../org/apache/juneau/server/labels/Var.java    |    87 +
 .../server/labels/nls/DefaultLabels.properties  |    41 +
 .../apache/juneau/server/labels/package.html    |    41 +
 .../matchers/MultipartFormDataMatcher.java      |    28 +
 .../server/matchers/UrlEncodedFormMatcher.java  |    28 +
 .../apache/juneau/server/matchers/package.html  |    34 +
 .../java/org/apache/juneau/server/package.html  |  3600 +++++
 .../remoteable/RemoteableServiceProperties.java |    39 +
 .../server/remoteable/RemoteableServlet.java    |   154 +
 .../juneau/server/remoteable/doc-files/1.png    |   Bin 0 -> 15845 bytes
 .../juneau/server/remoteable/doc-files/2.png    |   Bin 0 -> 20379 bytes
 .../juneau/server/remoteable/doc-files/3.png    |   Bin 0 -> 33919 bytes
 .../juneau/server/remoteable/doc-files/4.png    |   Bin 0 -> 21108 bytes
 .../juneau/server/remoteable/doc-files/5.png    |   Bin 0 -> 10553 bytes
 .../juneau/server/remoteable/doc-files/6.png    |   Bin 0 -> 24934 bytes
 .../juneau/server/remoteable/package.html       |   356 +
 .../juneau/server/response/DefaultHandler.java  |    90 +
 .../server/response/InputStreamHandler.java     |    44 +
 .../juneau/server/response/ReaderHandler.java   |    42 +
 .../juneau/server/response/RedirectHandler.java |    50 +
 .../server/response/StreamableHandler.java      |    53 +
 .../juneau/server/response/WritableHandler.java |    53 +
 .../response/ZipFileListResponseHandler.java    |    62 +
 .../apache/juneau/server/response/package.html  |    41 +
 .../org/apache/juneau/server/styles/devops.css  |   203 +
 com.ibm.team.juno/.DS_Store                     |   Bin 6148 -> 6148 bytes
 com.ibm.team.juno/.classpath                    |    48 +-
 com.ibm.team.juno/.gitignore                    |     1 +
 com.ibm.team.juno/.project                      |     8 +-
 .../.settings/org.eclipse.core.resources.prefs  |     7 +-
 .../.settings/org.eclipse.jdt.core.prefs        |     7 +-
 .../.settings/org.eclipse.jdt.ui.prefs          |    18 +-
 .../.settings/org.eclipse.wst.common.component  |    13 +-
 ...rg.eclipse.wst.common.project.facet.core.xml |    21 +-
 .../.settings/org.eclipse.wst.validation.prefs  |     1 +
 com.ibm.team.juno/META-INF/MANIFEST.MF          |    65 +-
 .../OSGI-INF/l10n/plugin.properties             |    23 +-
 com.ibm.team.juno/build.properties              |    32 +-
 com.ibm.team.juno/lib/jena/jena-core-2.7.1.jar  |   Bin 1727026 -> 0 bytes
 com.ibm.team.juno/src/com/.DS_Store             |   Bin 6148 -> 0 bytes
 com.ibm.team.juno/src/com/ibm/.DS_Store         |   Bin 6148 -> 0 bytes
 com.ibm.team.juno/src/com/ibm/juno/.DS_Store    |   Bin 6148 -> 0 bytes
 .../src/com/ibm/juno/core/.DS_Store             |   Bin 10244 -> 0 bytes
 .../src/com/ibm/juno/core/BeanContext.java      |  1808 ---
 .../com/ibm/juno/core/BeanContextFactory.java   |   454 -
 .../ibm/juno/core/BeanContextProperties.java    |   188 -
 .../src/com/ibm/juno/core/BeanMap.java          |   461 -
 .../src/com/ibm/juno/core/BeanMapEntry.java     |   121 -
 .../src/com/ibm/juno/core/BeanMeta.java         |   749 -
 .../src/com/ibm/juno/core/BeanMetaFiltered.java |    70 -
 .../src/com/ibm/juno/core/BeanPropertyMeta.java |   803 --
 .../juno/core/BeanProxyInvocationHandler.java   |    78 -
 .../com/ibm/juno/core/BeanRuntimeException.java |    62 -
 .../src/com/ibm/juno/core/ClassMeta.java        |  1262 --
 .../src/com/ibm/juno/core/CoreApi.java          |   172 -
 .../src/com/ibm/juno/core/Delegate.java         |    29 -
 .../com/ibm/juno/core/FormattedException.java   |    53 -
 .../juno/core/FormattedRuntimeException.java    |    44 -
 .../core/InvalidDataConversionException.java    |    33 -
 .../src/com/ibm/juno/core/Lockable.java         |    84 -
 .../src/com/ibm/juno/core/LockedException.java  |    28 -
 .../src/com/ibm/juno/core/MediaRange.java       |   312 -
 .../src/com/ibm/juno/core/ObjectList.java       |   569 -
 .../src/com/ibm/juno/core/ObjectMap.java        |  1403 --
 .../src/com/ibm/juno/core/PropertyNamer.java    |    31 -
 .../ibm/juno/core/PropertyNamerDashedLC.java    |    62 -
 .../com/ibm/juno/core/PropertyNamerDefault.java |    35 -
 .../src/com/ibm/juno/core/Streamable.java       |    38 -
 .../src/com/ibm/juno/core/Visibility.java       |   195 -
 .../src/com/ibm/juno/core/Writable.java         |    38 -
 .../src/com/ibm/juno/core/annotation/Bean.java  |   216 -
 .../juno/core/annotation/BeanConstructor.java   |    82 -
 .../ibm/juno/core/annotation/BeanIgnore.java    |    34 -
 .../ibm/juno/core/annotation/BeanProperty.java  |   182 -
 .../ibm/juno/core/annotation/BeanSubType.java   |    42 -
 .../com/ibm/juno/core/annotation/Consumes.java  |    69 -
 .../com/ibm/juno/core/annotation/Filter.java    |    82 -
 .../ibm/juno/core/annotation/NameProperty.java  |    31 -
 .../juno/core/annotation/ParentProperty.java    |    31 -
 .../com/ibm/juno/core/annotation/Produces.java  |    82 -
 .../ibm/juno/core/annotation/Remoteable.java    |    23 -
 .../ibm/juno/core/annotation/ThreadSafe.java    |    25 -
 .../src/com/ibm/juno/core/annotation/URI.java   |    64 -
 .../com/ibm/juno/core/annotation/package.html   |    34 -
 .../com/ibm/juno/core/csv/CsvSerializer.java    |    90 -
 .../src/com/ibm/juno/core/csv/package.html      |    55 -
 .../ibm/juno/core/doc-files/AddressBook.html    |   106 -
 .../src/com/ibm/juno/core/dto/Link.java         |   133 -
 .../com/ibm/juno/core/dto/ResultSetList.java    |   105 -
 .../com/ibm/juno/core/dto/atom/Category.java    |   137 -
 .../src/com/ibm/juno/core/dto/atom/Common.java  |    84 -
 .../com/ibm/juno/core/dto/atom/CommonEntry.java |   276 -
 .../src/com/ibm/juno/core/dto/atom/Content.java |   144 -
 .../src/com/ibm/juno/core/dto/atom/Entry.java   |   243 -
 .../src/com/ibm/juno/core/dto/atom/Feed.java    |   284 -
 .../com/ibm/juno/core/dto/atom/Generator.java   |   139 -
 .../src/com/ibm/juno/core/dto/atom/Icon.java    |    93 -
 .../src/com/ibm/juno/core/dto/atom/Id.java      |    92 -
 .../src/com/ibm/juno/core/dto/atom/Link.java    |   222 -
 .../src/com/ibm/juno/core/dto/atom/Logo.java    |    93 -
 .../src/com/ibm/juno/core/dto/atom/Person.java  |   131 -
 .../src/com/ibm/juno/core/dto/atom/Source.java  |   223 -
 .../src/com/ibm/juno/core/dto/atom/Text.java    |   179 -
 .../core/dto/atom/doc-files/Example_HTML.png    |   Bin 31484 -> 0 bytes
 .../ibm/juno/core/dto/atom/package-info.java    |    19 -
 .../src/com/ibm/juno/core/dto/atom/package.html |   578 -
 .../com/ibm/juno/core/dto/cognos/Column.java    |   154 -
 .../com/ibm/juno/core/dto/cognos/DataSet.java   |   188 -
 .../ibm/juno/core/dto/cognos/doc-files/HTML.png |   Bin 8476 -> 0 bytes
 .../ibm/juno/core/dto/cognos/doc-files/JSON.png |   Bin 6963 -> 0 bytes
 .../juno/core/dto/cognos/doc-files/RDFXML.png   |   Bin 19981 -> 0 bytes
 .../ibm/juno/core/dto/cognos/package-info.java  |    13 -
 .../com/ibm/juno/core/dto/cognos/package.html   |   170 -
 .../ibm/juno/core/dto/jsonschema/JsonType.java  |   103 -
 .../juno/core/dto/jsonschema/JsonTypeArray.java |    50 -
 .../ibm/juno/core/dto/jsonschema/Sample.java    |    63 -
 .../ibm/juno/core/dto/jsonschema/Schema.java    |  1392 --
 .../juno/core/dto/jsonschema/SchemaArray.java   |    50 -
 .../ibm/juno/core/dto/jsonschema/SchemaMap.java |   119 -
 .../core/dto/jsonschema/SchemaProperty.java     |    44 -
 .../jsonschema/SchemaPropertySimpleArray.java   |    41 -
 .../ibm/juno/core/dto/jsonschema/SchemaRef.java |    34 -
 .../dto/jsonschema/doc-files/Example_Html.png   |   Bin 31260 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Json.png   |   Bin 22006 -> 0 bytes
 .../jsonschema/doc-files/Example_Options.png    |   Bin 41887 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Turtle.png |   Bin 28988 -> 0 bytes
 .../jsonschema/doc-files/Example_UrlEncoded.png |   Bin 21715 -> 0 bytes
 .../dto/jsonschema/doc-files/Example_Xml.png    |   Bin 28095 -> 0 bytes
 .../doc-files/Example_XmlRdfAbbrev.png          |   Bin 36296 -> 0 bytes
 .../ibm/juno/core/dto/jsonschema/package.html   |   511 -
 .../src/com/ibm/juno/core/dto/package.html      |    34 -
 .../src/com/ibm/juno/core/encoders/Encoder.java |    53 -
 .../ibm/juno/core/encoders/EncoderGroup.java    |   195 -
 .../com/ibm/juno/core/encoders/GzipEncoder.java |    44 -
 .../ibm/juno/core/encoders/IdentityEncoder.java |    43 -
 .../src/com/ibm/juno/core/encoders/package.html |    53 -
 .../src/com/ibm/juno/core/filter/.DS_Store      |   Bin 6148 -> 0 bytes
 .../juno/core/filter/AnnotationBeanFilter.java  |    63 -
 .../com/ibm/juno/core/filter/BeanFilter.java    |   472 -
 .../src/com/ibm/juno/core/filter/Filter.java    |   134 -
 .../juno/core/filter/InterfaceBeanFilter.java   |    35 -
 .../com/ibm/juno/core/filter/PojoFilter.java    |   261 -
 .../ibm/juno/core/filter/SurrogateFilter.java   |   203 -
 .../ibm/juno/core/filter/doc-files/classes.dnx  |    99 -
 .../ibm/juno/core/filter/doc-files/classes.png  |   Bin 15527 -> 0 bytes
 .../src/com/ibm/juno/core/filter/package.html   |   764 -
 .../ibm/juno/core/filters/BeanStringFilter.java |    35 -
 .../core/filters/ByteArrayBase64Filter.java     |    47 -
 .../ibm/juno/core/filters/CalendarFilter.java   |   289 -
 .../juno/core/filters/CalendarLongFilter.java   |    52 -
 .../juno/core/filters/CalendarMapFilter.java    |    60 -
 .../com/ibm/juno/core/filters/ClassFilter.java  |    41 -
 .../com/ibm/juno/core/filters/DateFilter.java   |   345 -
 .../ibm/juno/core/filters/DateLongFilter.java   |    48 -
 .../ibm/juno/core/filters/DateMapFilter.java    |    52 -
 .../juno/core/filters/EnumerationFilter.java    |    35 -
 .../ibm/juno/core/filters/IteratorFilter.java   |    35 -
 .../com/ibm/juno/core/filters/ReaderFilter.java |   108 -
 .../filters/XMLGregorianCalendarFilter.java     |    60 -
 .../src/com/ibm/juno/core/filters/package.html  |    59 -
 .../juno/core/html/HtmlBeanPropertyMeta.java    |    86 -
 .../com/ibm/juno/core/html/HtmlClassMeta.java   |    88 -
 .../ibm/juno/core/html/HtmlDocSerializer.java   |   162 -
 .../core/html/HtmlDocSerializerProperties.java  |   165 -
 .../src/com/ibm/juno/core/html/HtmlLink.java    |    45 -
 .../src/com/ibm/juno/core/html/HtmlParser.java  |   743 -
 .../ibm/juno/core/html/HtmlParserContext.java   |    80 -
 .../juno/core/html/HtmlParserProperties.java    |    52 -
 .../juno/core/html/HtmlSchemaDocSerializer.java |   144 -
 .../com/ibm/juno/core/html/HtmlSerializer.java  |   668 -
 .../juno/core/html/HtmlSerializerContext.java   |   116 -
 .../core/html/HtmlSerializerProperties.java     |   113 -
 .../juno/core/html/HtmlSerializerWriter.java    |   329 -
 .../core/html/HtmlStrippedDocSerializer.java    |    55 -
 .../ibm/juno/core/html/SimpleHtmlWriter.java    |    36 -
 .../com/ibm/juno/core/html/annotation/Html.java |    54 -
 .../ibm/juno/core/html/annotation/package.html  |    34 -
 .../core/html/doc-files/HTML_DESCRIPTION.png    |   Bin 3644 -> 0 bytes
 .../ibm/juno/core/html/doc-files/HTML_LINKS.png |   Bin 593 -> 0 bytes
 .../ibm/juno/core/html/doc-files/HTML_TITLE.png |   Bin 2435 -> 0 bytes
 .../com/ibm/juno/core/html/dto/HtmlElement.java |    23 -
 .../src/com/ibm/juno/core/html/dto/Img.java     |    35 -
 .../src/com/ibm/juno/core/html/dto/package.html |    34 -
 .../src/com/ibm/juno/core/html/package.html     |    72 -
 .../src/com/ibm/juno/core/ini/ConfigFile.java   |   789 -
 .../com/ibm/juno/core/ini/ConfigFileFormat.java |    25 -
 .../com/ibm/juno/core/ini/ConfigFileImpl.java   |   740 -
 .../ibm/juno/core/ini/ConfigFileListener.java   |    42 -
 .../ibm/juno/core/ini/ConfigFileWrapped.java    |   273 -
 .../ibm/juno/core/ini/ConfigFileWritable.java   |    40 -
 .../src/com/ibm/juno/core/ini/ConfigMgr.java    |   312 -
 .../src/com/ibm/juno/core/ini/ConfigUtils.java  |    90 -
 .../src/com/ibm/juno/core/ini/Encoder.java      |    35 -
 .../com/ibm/juno/core/ini/EntryListener.java    |    44 -
 .../src/com/ibm/juno/core/ini/Section.java      |   564 -
 .../com/ibm/juno/core/ini/SectionListener.java  |    59 -
 .../src/com/ibm/juno/core/ini/XorEncoder.java   |    46 -
 .../com/ibm/juno/core/ini/doc-files/config1.png |   Bin 39851 -> 0 bytes
 .../com/ibm/juno/core/ini/doc-files/config2.png |   Bin 48881 -> 0 bytes
 .../com/ibm/juno/core/ini/doc-files/config3.png |   Bin 59095 -> 0 bytes
 .../src/com/ibm/juno/core/ini/package.html      |   643 -
 .../src/com/ibm/juno/core/jena/Constants.java   |    91 -
 .../ibm/juno/core/jena/RdfBeanPropertyMeta.java |    78 -
 .../com/ibm/juno/core/jena/RdfClassMeta.java    |    82 -
 .../ibm/juno/core/jena/RdfCollectionFormat.java |    52 -
 .../src/com/ibm/juno/core/jena/RdfParser.java   |   518 -
 .../ibm/juno/core/jena/RdfParserContext.java    |   173 -
 .../ibm/juno/core/jena/RdfParserProperties.java |    68 -
 .../com/ibm/juno/core/jena/RdfProperties.java   |   415 -
 .../com/ibm/juno/core/jena/RdfSerializer.java   |   465 -
 .../juno/core/jena/RdfSerializerContext.java    |   179 -
 .../juno/core/jena/RdfSerializerProperties.java |    80 -
 .../src/com/ibm/juno/core/jena/RdfUtils.java    |    87 -
 .../com/ibm/juno/core/jena/annotation/Rdf.java  |    58 -
 .../ibm/juno/core/jena/annotation/RdfNs.java    |    37 -
 .../juno/core/jena/annotation/RdfSchema.java    |    94 -
 .../ibm/juno/core/jena/annotation/package.html  |    34 -
 .../juno/core/jena/doc-files/Example_HTML.png   |   Bin 35528 -> 0 bytes
 .../ibm/juno/core/jena/doc-files/Example_N3.png |   Bin 37430 -> 0 bytes
 .../core/jena/doc-files/Example_NTriple.png     |   Bin 48413 -> 0 bytes
 .../juno/core/jena/doc-files/Example_RDFXML.png |   Bin 30486 -> 0 bytes
 .../jena/doc-files/Example_RDFXMLABBREV.png     |   Bin 30356 -> 0 bytes
 .../juno/core/jena/doc-files/Example_Turtle.png |   Bin 35328 -> 0 bytes
 .../src/com/ibm/juno/core/jena/package.html     |  1687 ---
 .../core/jso/JavaSerializedObjectParser.java    |    55 -
 .../jso/JavaSerializedObjectSerializer.java     |    52 -
 .../src/com/ibm/juno/core/jso/package.html      |    34 -
 .../com/ibm/juno/core/json/JsonClassMeta.java   |    55 -
 .../src/com/ibm/juno/core/json/JsonParser.java  |   852 --
 .../ibm/juno/core/json/JsonParserContext.java   |    66 -
 .../juno/core/json/JsonParserProperties.java    |    85 -
 .../juno/core/json/JsonSchemaSerializer.java    |   154 -
 .../com/ibm/juno/core/json/JsonSerializer.java  |   457 -
 .../juno/core/json/JsonSerializerContext.java   |    80 -
 .../core/json/JsonSerializerProperties.java     |    91 -
 .../juno/core/json/JsonSerializerWriter.java    |   265 -
 .../com/ibm/juno/core/json/annotation/Json.java |    72 -
 .../ibm/juno/core/json/annotation/package.html  |    34 -
 .../juno/core/json/doc-files/Example_HTML.png   |   Bin 35528 -> 0 bytes
 .../juno/core/json/doc-files/Example_JSON.png   |   Bin 26954 -> 0 bytes
 .../core/json/doc-files/Example_JSONSchema.png  |   Bin 34114 -> 0 bytes
 .../core/json/doc-files/Example_JSONSimple.png  |   Bin 30920 -> 0 bytes
 .../src/com/ibm/juno/core/json/package.html     |  1460 --
 .../src/com/ibm/juno/core/package.html          |   210 -
 .../ibm/juno/core/parser/InputStreamParser.java |    52 -
 .../ibm/juno/core/parser/ParseException.java    |    88 -
 .../src/com/ibm/juno/core/parser/Parser.java    |   576 -
 .../com/ibm/juno/core/parser/ParserContext.java |   177 -
 .../com/ibm/juno/core/parser/ParserGroup.java   |   317 -
 .../ibm/juno/core/parser/ParserListener.java    |    40 -
 .../ibm/juno/core/parser/ParserProperties.java  |    69 -
 .../com/ibm/juno/core/parser/ParserReader.java  |   379 -
 .../com/ibm/juno/core/parser/ReaderParser.java  |   394 -
 .../src/com/ibm/juno/core/parser/package.html   |   126 -
 .../juno/core/plaintext/PlainTextParser.java    |    68 -
 .../core/plaintext/PlainTextSerializer.java     |    66 -
 .../com/ibm/juno/core/plaintext/package.html    |    34 -
 .../core/serializer/OutputStreamSerializer.java |    51 -
 .../core/serializer/SerializeException.java     |    53 -
 .../ibm/juno/core/serializer/Serializer.java    |   284 -
 .../juno/core/serializer/SerializerContext.java |   583 -
 .../juno/core/serializer/SerializerGroup.java   |   345 -
 .../core/serializer/SerializerProperties.java   |   315 -
 .../juno/core/serializer/SerializerWriter.java  |   313 -
 .../ibm/juno/core/serializer/StringObject.java  |    81 -
 .../juno/core/serializer/WriterSerializer.java  |   168 -
 .../com/ibm/juno/core/serializer/package.html   |   128 -
 .../ibm/juno/core/soap/SoapXmlSerializer.java   |    78 -
 .../core/soap/SoapXmlSerializerProperties.java  |    24 -
 .../src/com/ibm/juno/core/soap/package.html     |    34 -
 .../ibm/juno/core/urlencoding/UonParser.java    |   865 --
 .../juno/core/urlencoding/UonParserContext.java |   111 -
 .../core/urlencoding/UonParserProperties.java   |    76 -
 .../juno/core/urlencoding/UonParserReader.java  |   195 -
 .../juno/core/urlencoding/UonSerializer.java    |   532 -
 .../core/urlencoding/UonSerializerContext.java  |   110 -
 .../urlencoding/UonSerializerProperties.java    |   135 -
 .../core/urlencoding/UonSerializerWriter.java   |   268 -
 .../core/urlencoding/UrlEncodingClassMeta.java  |    55 -
 .../core/urlencoding/UrlEncodingParser.java     |   553 -
 .../core/urlencoding/UrlEncodingProperties.java |    82 -
 .../core/urlencoding/UrlEncodingSerializer.java |   490 -
 .../urlencoding/annotation/UrlEncoding.java     |    37 -
 .../core/urlencoding/annotation/package.html    |    34 -
 .../core/urlencoding/doc-files/Example_HTML.png |   Bin 32778 -> 0 bytes
 .../doc-files/Example_UrlEncoding.png           |   Bin 20958 -> 0 bytes
 .../juno/core/urlencoding/doc-files/rfc_uon.txt |   352 -
 .../com/ibm/juno/core/urlencoding/package.html  |  1410 --
 .../src/com/ibm/juno/core/utils/Args.java       |   257 -
 .../src/com/ibm/juno/core/utils/ArrayUtils.java |   273 -
 .../src/com/ibm/juno/core/utils/AsciiSet.java   |    55 -
 .../com/ibm/juno/core/utils/ByteArrayCache.java |   102 -
 .../juno/core/utils/ByteArrayInOutStream.java   |    28 -
 .../ibm/juno/core/utils/CharSequenceReader.java |    96 -
 .../src/com/ibm/juno/core/utils/ClassUtils.java |   211 -
 .../ibm/juno/core/utils/CollectionUtils.java    |    53 -
 .../ibm/juno/core/utils/DelegateBeanMap.java    |   111 -
 .../com/ibm/juno/core/utils/DelegateList.java   |    35 -
 .../com/ibm/juno/core/utils/DelegateMap.java    |    50 -
 .../src/com/ibm/juno/core/utils/FileUtils.java  |   130 -
 .../com/ibm/juno/core/utils/FilteredMap.java    |    92 -
 .../src/com/ibm/juno/core/utils/IOPipe.java     |   208 -
 .../src/com/ibm/juno/core/utils/IOUtils.java    |   352 -
 .../com/ibm/juno/core/utils/IdentityList.java   |    45 -
 .../src/com/ibm/juno/core/utils/KeywordSet.java |    86 -
 .../com/ibm/juno/core/utils/ManifestFile.java   |    97 -
 .../com/ibm/juno/core/utils/MessageBundle.java  |   305 -
 .../com/ibm/juno/core/utils/MultiIterable.java  |    74 -
 .../src/com/ibm/juno/core/utils/MultiSet.java   |   107 -
 .../ibm/juno/core/utils/PojoIntrospector.java   |   113 -
 .../src/com/ibm/juno/core/utils/PojoQuery.java  |  1246 --
 .../src/com/ibm/juno/core/utils/PojoRest.java   |   843 --
 .../ibm/juno/core/utils/PojoRestException.java  |    56 -
 .../com/ibm/juno/core/utils/ProcBuilder.java    |   382 -
 .../ibm/juno/core/utils/ReflectionUtils.java    |   159 -
 .../src/com/ibm/juno/core/utils/SimpleMap.java  |   112 -
 .../juno/core/utils/StringBuilderWriter.java    |    95 -
 .../com/ibm/juno/core/utils/StringMapVar.java   |    41 -
 .../com/ibm/juno/core/utils/StringUtils.java    |   919 --
 .../src/com/ibm/juno/core/utils/StringVar.java  |    37 -
 .../ibm/juno/core/utils/StringVarMultipart.java |    32 -
 .../ibm/juno/core/utils/StringVarResolver.java  |   361 -
 .../juno/core/utils/StringVarWithDefault.java   |    31 -
 .../src/com/ibm/juno/core/utils/StringVars.java |    34 -
 .../ibm/juno/core/utils/TeeOutputStream.java    |   159 -
 .../src/com/ibm/juno/core/utils/TeeWriter.java  |   161 -
 .../com/ibm/juno/core/utils/ThrowableUtils.java |    80 -
 .../src/com/ibm/juno/core/utils/Utils.java      |    34 -
 .../com/ibm/juno/core/utils/ZipFileList.java    |   136 -
 .../com/ibm/juno/core/utils/log/JunoLogger.java |   293 -
 .../src/com/ibm/juno/core/utils/package.html    |    53 -
 .../src/com/ibm/juno/core/xml/Namespace.java    |    81 -
 .../com/ibm/juno/core/xml/NamespaceFactory.java |   126 -
 .../src/com/ibm/juno/core/xml/XmlBeanMeta.java  |   125 -
 .../ibm/juno/core/xml/XmlBeanPropertyMeta.java  |   159 -
 .../src/com/ibm/juno/core/xml/XmlClassMeta.java |   114 -
 .../ibm/juno/core/xml/XmlContentHandler.java    |   135 -
 .../com/ibm/juno/core/xml/XmlDocSerializer.java |    62 -
 .../src/com/ibm/juno/core/xml/XmlParser.java    |   541 -
 .../com/ibm/juno/core/xml/XmlParserContext.java |   167 -
 .../ibm/juno/core/xml/XmlParserProperties.java  |   244 -
 .../juno/core/xml/XmlSchemaDocSerializer.java   |    50 -
 .../ibm/juno/core/xml/XmlSchemaSerializer.java  |   588 -
 .../com/ibm/juno/core/xml/XmlSerializer.java    |   727 -
 .../ibm/juno/core/xml/XmlSerializerContext.java |   206 -
 .../juno/core/xml/XmlSerializerProperties.java  |   171 -
 .../ibm/juno/core/xml/XmlSerializerWriter.java  |   663 -
 .../src/com/ibm/juno/core/xml/XmlUtils.java     |   571 -
 .../com/ibm/juno/core/xml/annotation/Xml.java   |   197 -
 .../ibm/juno/core/xml/annotation/XmlFormat.java |    53 -
 .../com/ibm/juno/core/xml/annotation/XmlNs.java |    37 -
 .../ibm/juno/core/xml/annotation/XmlSchema.java |    94 -
 .../ibm/juno/core/xml/annotation/package.html   |    34 -
 .../juno/core/xml/doc-files/Example_HTML.png    |   Bin 35528 -> 0 bytes
 .../ibm/juno/core/xml/doc-files/Example_XML.png |   Bin 32865 -> 0 bytes
 .../core/xml/doc-files/Example_XMLSchema.png    |   Bin 45685 -> 0 bytes
 .../core/xml/doc-files/Example_XMLSimple.png    |   Bin 34372 -> 0 bytes
 .../src/com/ibm/juno/core/xml/package.html      |  2321 ---
 .../src/doc-files/Microservices.1.png           |   Bin 22345 -> 0 bytes
 .../doc-files/Samples.AddressBookResource.1.png |   Bin 44553 -> 0 bytes
 .../doc-files/Samples.AddressBookResource.2.png |   Bin 224346 -> 0 bytes
 .../Samples.AddressBookResource.Demo.1.png      |   Bin 17539 -> 0 bytes
 .../Samples.AddressBookResource.Demo.10.png     |   Bin 37153 -> 0 bytes
 .../Samples.AddressBookResource.Demo.2.png      |   Bin 47285 -> 0 bytes
 .../Samples.AddressBookResource.Demo.3.png      |   Bin 40911 -> 0 bytes
 .../Samples.AddressBookResource.Demo.4.png      |   Bin 40461 -> 0 bytes
 .../Samples.AddressBookResource.Demo.5.png      |   Bin 49884 -> 0 bytes
 .../Samples.AddressBookResource.Demo.6.png      |   Bin 52332 -> 0 bytes
 .../Samples.AddressBookResource.Demo.7.png      |   Bin 39401 -> 0 bytes
 .../Samples.AddressBookResource.Demo.8.png      |   Bin 34154 -> 0 bytes
 .../Samples.AddressBookResource.Demo.9.png      |   Bin 51831 -> 0 bytes
 ...les.AddressBookResource.Introspectable.1.png |   Bin 21714 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.1.png |   Bin 43970 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.2.png |   Bin 35177 -> 0 bytes
 .../Samples.AddressBookResource.Queryable.3.png |   Bin 35137 -> 0 bytes
 ...amples.AddressBookResource.Traversable.1.png |   Bin 28868 -> 0 bytes
 ...amples.AddressBookResource.Traversable.2.png |   Bin 20464 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.1.png    |   Bin 45184 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.2.png    |   Bin 78940 -> 0 bytes
 .../doc-files/Samples.AtomFeedResource.3.png    |   Bin 28698 -> 0 bytes
 .../src/doc-files/Samples.Building.1.png        |   Bin 14082 -> 0 bytes
 .../src/doc-files/Samples.Building.2.png        |   Bin 5543 -> 0 bytes
 .../src/doc-files/Samples.ConfigResource.1.png  |   Bin 38071 -> 0 bytes
 .../src/doc-files/Samples.ConfigResource.2.png  |   Bin 42599 -> 0 bytes
 .../src/doc-files/Samples.ConfigResource.3.png  |   Bin 41856 -> 0 bytes
 .../Samples.DockerRegistryResource.1.png        |   Bin 16230 -> 0 bytes
 .../Samples.DockerRegistryResource.2.png        |   Bin 23808 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.1.png  |   Bin 15414 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.2.png  |   Bin 10797 -> 0 bytes
 .../doc-files/Samples.HelloWorldResource.3.png  |   Bin 66934 -> 0 bytes
 .../src/doc-files/Samples.Installing.1.png      |   Bin 52312 -> 0 bytes
 .../src/doc-files/Samples.Installing.2.png      |   Bin 59664 -> 0 bytes
 .../src/doc-files/Samples.Installing.3.png      |   Bin 25927 -> 0 bytes
 .../doc-files/Samples.JsonSchemaResource.1.png  |   Bin 36315 -> 0 bytes
 .../doc-files/Samples.JsonSchemaResource.2.png  |   Bin 28837 -> 0 bytes
 .../src/doc-files/Samples.LogsResource.1.png    |   Bin 37594 -> 0 bytes
 .../src/doc-files/Samples.LogsResource.2.png    |   Bin 42497 -> 0 bytes
 .../src/doc-files/Samples.LogsResource.3.png    |   Bin 56603 -> 0 bytes
 .../Samples.MethodExampleResource.1.png         |   Bin 27555 -> 0 bytes
 .../Samples.MethodExampleResource.2.png         |   Bin 71023 -> 0 bytes
 .../src/doc-files/Samples.PhotosResource.1.png  |   Bin 16442 -> 0 bytes
 .../src/doc-files/Samples.PhotosResource.2.png  |   Bin 71952 -> 0 bytes
 ...Samples.RequestEchoResource.1.htmlschema.png |   Bin 35501 -> 0 bytes
 .../Samples.RequestEchoResource.1.json.png      |   Bin 30092 -> 0 bytes
 ...Samples.RequestEchoResource.1.jsonschema.png |   Bin 31731 -> 0 bytes
 ...Samples.RequestEchoResource.1.jsonsimple.png |   Bin 29302 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.1.png |   Bin 54743 -> 0 bytes
 .../Samples.RequestEchoResource.1.uon.png       |   Bin 64778 -> 0 bytes
 ...amples.RequestEchoResource.1.urlencoding.png |   Bin 71054 -> 0 bytes
 .../Samples.RequestEchoResource.1.xml.png       |   Bin 43989 -> 0 bytes
 .../Samples.RequestEchoResource.1.xmlschema.png |   Bin 47951 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.2.png |   Bin 30872 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.3.png |   Bin 27501 -> 0 bytes
 .../doc-files/Samples.RequestEchoResource.4.png |   Bin 22149 -> 0 bytes
 .../src/doc-files/Samples.Running.1.png         |   Bin 40422 -> 0 bytes
 .../src/doc-files/Samples.Running.2.png         |   Bin 15925 -> 0 bytes
 .../src/doc-files/Samples.Running.3.png         |   Bin 62643 -> 0 bytes
 .../Samples.SampleRemoteableServlet.1.png       |   Bin 23969 -> 0 bytes
 .../Samples.SampleRemoteableServlet.2.png       |   Bin 29986 -> 0 bytes
 .../Samples.SampleRemoteableServlet.3.png       |   Bin 45596 -> 0 bytes
 .../doc-files/Samples.SqlQueryResource.1.png    |   Bin 16113 -> 0 bytes
 .../doc-files/Samples.SqlQueryResource.2.png    |   Bin 40356 -> 0 bytes
 .../src/doc-files/Samples.TempDirResource.1.png |   Bin 32843 -> 0 bytes
 .../src/doc-files/Samples.TempDirResource.2.png |   Bin 20359 -> 0 bytes
 .../Samples.TumblrParserResource.1.png          |   Bin 168439 -> 0 bytes
 .../Samples.UrlEncodedFormResource.1.png        |   Bin 24026 -> 0 bytes
 .../Samples.UrlEncodedFormResource.2.png        |   Bin 31318 -> 0 bytes
 com.ibm.team.juno/src/doc-files/Server.Html.png |   Bin 52497 -> 0 bytes
 com.ibm.team.juno/src/doc-files/Server.Json.png |   Bin 29692 -> 0 bytes
 com.ibm.team.juno/src/doc-files/Server.N3.png   |   Bin 45391 -> 0 bytes
 .../src/doc-files/Server.NTuple.png             |   Bin 55713 -> 0 bytes
 .../src/doc-files/Server.Options.png            |   Bin 67005 -> 0 bytes
 .../src/doc-files/Server.RdfXml.png             |   Bin 45274 -> 0 bytes
 .../src/doc-files/Server.SimpleXml.png          |   Bin 36746 -> 0 bytes
 .../src/doc-files/Server.Turtle.png             |   Bin 45180 -> 0 bytes
 com.ibm.team.juno/src/doc-files/Server.Uon.png  |   Bin 28160 -> 0 bytes
 .../src/doc-files/Server.UrlEncoding.png        |   Bin 32516 -> 0 bytes
 com.ibm.team.juno/src/doc-files/Server.Xml.png  |   Bin 45446 -> 0 bytes
 com.ibm.team.juno/src/javadoc.css               |  1039 --
 .../src/main/java/doc-files/Microservices.1.png |   Bin 0 -> 22345 bytes
 .../doc-files/Samples.AddressBookResource.1.png |   Bin 0 -> 44553 bytes
 .../doc-files/Samples.AddressBookResource.2.png |   Bin 0 -> 224346 bytes
 .../Samples.AddressBookResource.Demo.1.png      |   Bin 0 -> 17539 bytes
 .../Samples.AddressBookResource.Demo.10.png     |   Bin 0 -> 37153 bytes
 .../Samples.AddressBookResource.Demo.2.png      |   Bin 0 -> 47285 bytes
 .../Samples.AddressBookResource.Demo.3.png      |   Bin 0 -> 40911 bytes
 .../Samples.AddressBookResource.Demo.4.png      |   Bin 0 -> 40461 bytes
 .../Samples.AddressBookResource.Demo.5.png      |   Bin 0 -> 49884 bytes
 .../Samples.AddressBookResource.Demo.6.png      |   Bin 0 -> 52332 bytes
 .../Samples.AddressBookResource.Demo.7.png      |   Bin 0 -> 39401 bytes
 .../Samples.AddressBookResource.Demo.8.png      |   Bin 0 -> 34154 bytes
 .../Samples.AddressBookResource.Demo.9.png      |   Bin 0 -> 51831 bytes
 ...les.AddressBookResource.Introspectable.1.png |   Bin 0 -> 21714 bytes
 .../Samples.AddressBookResource.Queryable.1.png |   Bin 0 -> 43970 bytes
 .../Samples.AddressBookResource.Queryable.2.png |   Bin 0 -> 35177 bytes
 .../Samples.AddressBookResource.Queryable.3.png |   Bin 0 -> 35137 bytes
 ...amples.AddressBookResource.Traversable.1.png |   Bin 0 -> 28868 bytes
 ...amples.AddressBookResource.Traversable.2.png |   Bin 0 -> 20464 bytes
 .../doc-files/Samples.AtomFeedResource.1.png    |   Bin 0 -> 45184 bytes
 .../doc-files/Samples.AtomFeedResource.2.png    |   Bin 0 -> 78940 bytes
 .../doc-files/Samples.AtomFeedResource.3.png    |   Bin 0 -> 28698 bytes
 .../main/java/doc-files/Samples.Building.1.png  |   Bin 0 -> 14082 bytes
 .../main/java/doc-files/Samples.Building.2.png  |   Bin 0 -> 5543 bytes
 .../java/doc-files/Samples.ConfigResource.1.png |   Bin 0 -> 38071 bytes
 .../java/doc-files/Samples.ConfigResource.2.png |   Bin 0 -> 42599 bytes
 .../java/doc-files/Samples.ConfigResource.3.png |   Bin 0 -> 41856 bytes
 .../Samples.DockerRegistryResource.1.png        |   Bin 0 -> 16230 bytes
 .../Samples.DockerRegistryResource.2.png        |   Bin 0 -> 23808 bytes
 .../doc-files/Samples.HelloWorldResource.1.png  |   Bin 0 -> 15414 bytes
 .../doc-files/Samples.HelloWorldResource.2.png  |   Bin 0 -> 10797 bytes
 .../doc-files/Samples.HelloWorldResource.3.png  |   Bin 0 -> 66934 bytes
 .../java/doc-files/Samples.Installing.1.png     |   Bin 0 -> 52312 bytes
 .../java/doc-files/Samples.Installing.2.png     |   Bin 0 -> 59664 bytes
 .../java/doc-files/Samples.Installing.3.png     |   Bin 0 -> 25927 bytes
 .../doc-files/Samples.JsonSchemaResource.1.png  |   Bin 0 -> 36315 bytes
 .../doc-files/Samples.JsonSchemaResource.2.png  |   Bin 0 -> 28837 bytes
 .../java/doc-files/Samples.LogsResource.1.png   |   Bin 0 -> 37594 bytes
 .../java/doc-files/Samples.LogsResource.2.png   |   Bin 0 -> 42497 bytes
 .../java/doc-files/Samples.LogsResource.3.png   |   Bin 0 -> 56603 bytes
 .../Samples.MethodExampleResource.1.png         |   Bin 0 -> 27555 bytes
 .../Samples.MethodExampleResource.2.png         |   Bin 0 -> 71023 bytes
 .../java/doc-files/Samples.PhotosResource.1.png |   Bin 0 -> 16442 bytes
 .../java/doc-files/Samples.PhotosResource.2.png |   Bin 0 -> 71952 bytes
 ...Samples.RequestEchoResource.1.htmlschema.png |   Bin 0 -> 35501 bytes
 .../Samples.RequestEchoResource.1.json.png      |   Bin 0 -> 30092 bytes
 ...Samples.RequestEchoResource.1.jsonschema.png |   Bin 0 -> 31731 bytes
 ...Samples.RequestEchoResource.1.jsonsimple.png |   Bin 0 -> 29302 bytes
 .../doc-files/Samples.RequestEchoResource.1.png |   Bin 0 -> 54743 bytes
 .../Samples.RequestEchoResource.1.uon.png       |   Bin 0 -> 64778 bytes
 ...amples.RequestEchoResource.1.urlencoding.png |   Bin 0 -> 71054 bytes
 .../Samples.RequestEchoResource.1.xml.png       |   Bin 0 -> 43989 bytes
 .../Samples.RequestEchoResource.1.xmlschema.png |   Bin 0 -> 47951 bytes
 .../doc-files/Samples.RequestEchoResource.2.png |   Bin 0 -> 30872 bytes
 .../doc-files/Samples.RequestEchoResource.3.png |   Bin 0 -> 27501 bytes
 .../doc-files/Samples.RequestEchoResource.4.png |   Bin 0 -> 22149 bytes
 .../main/java/doc-files/Samples.Running.1.png   |   Bin 0 -> 40422 bytes
 .../main/java/doc-files/Samples.Running.2.png   |   Bin 0 -> 15925 bytes
 .../main/java/doc-files/Samples.Running.3.png   |   Bin 0 -> 62643 bytes
 .../Samples.SampleRemoteableServlet.1.png       |   Bin 0 -> 23969 bytes
 .../Samples.SampleRemoteableServlet.2.png       |   Bin 0 -> 29986 bytes
 .../Samples.SampleRemoteableServlet.3.png       |   Bin 0 -> 45596 bytes
 .../doc-files/Samples.SqlQueryResource.1.png    |   Bin 0 -> 16113 bytes
 .../doc-files/Samples.SqlQueryResource.2.png    |   Bin 0 -> 40356 bytes
 .../doc-files/Samples.TempDirResource.1.png     |   Bin 0 -> 32843 bytes
 .../doc-files/Samples.TempDirResource.2.png     |   Bin 0 -> 20359 bytes
 .../Samples.TumblrParserResource.1.png          |   Bin 0 -> 168439 bytes
 .../Samples.UrlEncodedFormResource.1.png        |   Bin 0 -> 24026 bytes
 .../Samples.UrlEncodedFormResource.2.png        |   Bin 0 -> 31318 bytes
 .../src/main/java/doc-files/Server.Html.png     |   Bin 0 -> 52497 bytes
 .../src/main/java/doc-files/Server.Json.png     |   Bin 0 -> 29692 bytes
 .../src/main/java/doc-files/Server.N3.png       |   Bin 0 -> 45391 bytes
 .../src/main/java/doc-files/Server.NTuple.png   |   Bin 0 -> 55713 bytes
 .../src/main/java/doc-files/Server.Options.png  |   Bin 0 -> 67005 bytes
 .../src/main/java/doc-files/Server.RdfXml.png   |   Bin 0 -> 45274 bytes
 .../main/java/doc-files/Server.SimpleXml.png    |   Bin 0 -> 36746 bytes
 .../src/main/java/doc-files/Server.Turtle.png   |   Bin 0 -> 45180 bytes
 .../src/main/java/doc-files/Server.Uon.png      |   Bin 0 -> 28160 bytes
 .../main/java/doc-files/Server.UrlEncoding.png  |   Bin 0 -> 32516 bytes
 .../src/main/java/doc-files/Server.Xml.png      |   Bin 0 -> 45446 bytes
 .../java/org/apache/juneau/BeanContext.java     |  2069 +++
 .../main/java/org/apache/juneau/BeanMap.java    |   489 +
 .../java/org/apache/juneau/BeanMapEntry.java    |   125 +
 .../main/java/org/apache/juneau/BeanMeta.java   |   755 +
 .../org/apache/juneau/BeanMetaFiltered.java     |    74 +
 .../org/apache/juneau/BeanPropertyMeta.java     |   807 ++
 .../juneau/BeanProxyInvocationHandler.java      |    82 +
 .../org/apache/juneau/BeanRuntimeException.java |    66 +
 .../main/java/org/apache/juneau/ClassMeta.java  |  1331 ++
 .../java/org/apache/juneau/ConfigException.java |    27 +
 .../main/java/org/apache/juneau/Context.java    |    38 +
 .../java/org/apache/juneau/ContextFactory.java  |  1298 ++
 .../main/java/org/apache/juneau/CoreApi.java    |   213 +
 .../main/java/org/apache/juneau/Delegate.java   |    33 +
 .../org/apache/juneau/FormattedException.java   |    57 +
 .../juneau/FormattedRuntimeException.java       |    47 +
 .../juneau/InvalidDataConversionException.java  |    54 +
 .../main/java/org/apache/juneau/Lockable.java   |    88 +
 .../java/org/apache/juneau/LockedException.java |    32 +
 .../main/java/org/apache/juneau/MediaRange.java |   316 +
 .../main/java/org/apache/juneau/ObjectList.java |   569 +
 .../main/java/org/apache/juneau/ObjectMap.java  |  1404 ++
 .../java/org/apache/juneau/PropertyNamer.java   |    35 +
 .../apache/juneau/PropertyNamerDashedLC.java    |    66 +
 .../org/apache/juneau/PropertyNamerDefault.java |    39 +
 .../main/java/org/apache/juneau/Session.java    |    33 +
 .../main/java/org/apache/juneau/Streamable.java |    42 +
 .../main/java/org/apache/juneau/Visibility.java |   199 +
 .../main/java/org/apache/juneau/Writable.java   |    42 +
 .../java/org/apache/juneau/annotation/Bean.java |   236 +
 .../juneau/annotation/BeanConstructor.java      |    86 +
 .../apache/juneau/annotation/BeanIgnore.java    |    38 +
 .../apache/juneau/annotation/BeanProperty.java  |   186 +
 .../apache/juneau/annotation/BeanSubType.java   |    46 +
 .../org/apache/juneau/annotation/Consumes.java  |    73 +
 .../apache/juneau/annotation/NameProperty.java  |    35 +
 .../juneau/annotation/ParentProperty.java       |    35 +
 .../org/apache/juneau/annotation/Produces.java  |    86 +
 .../apache/juneau/annotation/Remoteable.java    |    27 +
 .../apache/juneau/annotation/ThreadSafe.java    |    29 +
 .../org/apache/juneau/annotation/Transform.java |    86 +
 .../java/org/apache/juneau/annotation/URI.java  |    68 +
 .../org/apache/juneau/annotation/package.html   |    41 +
 .../org/apache/juneau/csv/CsvSerializer.java    |    95 +
 .../java/org/apache/juneau/csv/package.html     |    62 +
 .../apache/juneau/doc-files/AddressBook.html    |   113 +
 .../main/java/org/apache/juneau/dto/Link.java   |   137 +
 .../org/apache/juneau/dto/ResultSetList.java    |   109 +
 .../org/apache/juneau/dto/atom/Category.java    |   141 +
 .../java/org/apache/juneau/dto/atom/Common.java |    88 +
 .../org/apache/juneau/dto/atom/CommonEntry.java |   280 +
 .../org/apache/juneau/dto/atom/Content.java     |   148 +
 .../java/org/apache/juneau/dto/atom/Entry.java  |   247 +
 .../java/org/apache/juneau/dto/atom/Feed.java   |   288 +
 .../org/apache/juneau/dto/atom/Generator.java   |   143 +
 .../java/org/apache/juneau/dto/atom/Icon.java   |    97 +
 .../java/org/apache/juneau/dto/atom/Id.java     |    96 +
 .../java/org/apache/juneau/dto/atom/Link.java   |   226 +
 .../java/org/apache/juneau/dto/atom/Logo.java   |    97 +
 .../java/org/apache/juneau/dto/atom/Person.java |   135 +
 .../java/org/apache/juneau/dto/atom/Source.java |   227 +
 .../java/org/apache/juneau/dto/atom/Text.java   |   183 +
 .../juneau/dto/atom/doc-files/Example_HTML.png  |   Bin 0 -> 31484 bytes
 .../apache/juneau/dto/atom/package-info.java    |    23 +
 .../org/apache/juneau/dto/atom/package.html     |   585 +
 .../org/apache/juneau/dto/cognos/Column.java    |   160 +
 .../org/apache/juneau/dto/cognos/DataSet.java   |   193 +
 .../apache/juneau/dto/cognos/doc-files/HTML.png |   Bin 0 -> 8476 bytes
 .../apache/juneau/dto/cognos/doc-files/JSON.png |   Bin 0 -> 6963 bytes
 .../juneau/dto/cognos/doc-files/RDFXML.png      |   Bin 0 -> 19981 bytes
 .../apache/juneau/dto/cognos/package-info.java  |    17 +
 .../org/apache/juneau/dto/cognos/package.html   |   177 +
 .../apache/juneau/dto/jsonschema/JsonType.java  |   107 +
 .../juneau/dto/jsonschema/JsonTypeArray.java    |    54 +
 .../apache/juneau/dto/jsonschema/Sample.java    |    67 +
 .../apache/juneau/dto/jsonschema/Schema.java    |  1401 ++
 .../juneau/dto/jsonschema/SchemaArray.java      |    54 +
 .../apache/juneau/dto/jsonschema/SchemaMap.java |   123 +
 .../juneau/dto/jsonschema/SchemaProperty.java   |    48 +
 .../jsonschema/SchemaPropertySimpleArray.java   |    45 +
 .../apache/juneau/dto/jsonschema/SchemaRef.java |    38 +
 .../dto/jsonschema/doc-files/Example_Html.png   |   Bin 0 -> 31260 bytes
 .../dto/jsonschema/doc-files/Example_Json.png   |   Bin 0 -> 22006 bytes
 .../jsonschema/doc-files/Example_Options.png    |   Bin 0 -> 41887 bytes
 .../dto/jsonschema/doc-files/Example_Turtle.png |   Bin 0 -> 28988 bytes
 .../jsonschema/doc-files/Example_UrlEncoded.png |   Bin 0 -> 21715 bytes
 .../dto/jsonschema/doc-files/Example_Xml.png    |   Bin 0 -> 28095 bytes
 .../doc-files/Example_XmlRdfAbbrev.png          |   Bin 0 -> 36296 bytes
 .../apache/juneau/dto/jsonschema/package.html   |   518 +
 .../java/org/apache/juneau/dto/package.html     |    41 +
 .../org/apache/juneau/encoders/Encoder.java     |    57 +
 .../apache/juneau/encoders/EncoderGroup.java    |   199 +
 .../org/apache/juneau/encoders/GzipEncoder.java |    48 +
 .../apache/juneau/encoders/IdentityEncoder.java |    47 +
 .../org/apache/juneau/encoders/package.html     |    60 +
 .../juneau/html/HtmlBeanPropertyMeta.java       |    90 +
 .../org/apache/juneau/html/HtmlClassMeta.java   |    92 +
 .../apache/juneau/html/HtmlDocSerializer.java   |   168 +
 .../juneau/html/HtmlDocSerializerContext.java   |   199 +
 .../juneau/html/HtmlDocSerializerSession.java   |   135 +
 .../java/org/apache/juneau/html/HtmlLink.java   |    49 +
 .../java/org/apache/juneau/html/HtmlParser.java |   732 +
 .../apache/juneau/html/HtmlParserContext.java   |    62 +
 .../apache/juneau/html/HtmlParserSession.java   |    86 +
 .../juneau/html/HtmlSchemaDocSerializer.java    |   154 +
 .../org/apache/juneau/html/HtmlSerializer.java  |   645 +
 .../juneau/html/HtmlSerializerContext.java      |   108 +
 .../juneau/html/HtmlSerializerSession.java      |   153 +
 .../juneau/html/HtmlStrippedDocSerializer.java  |    58 +
 .../java/org/apache/juneau/html/HtmlWriter.java |   333 +
 .../apache/juneau/html/SimpleHtmlWriter.java    |    40 +
 .../org/apache/juneau/html/annotation/Html.java |    58 +
 .../apache/juneau/html/annotation/package.html  |    41 +
 .../juneau/html/doc-files/HTML_DESCRIPTION.png  |   Bin 0 -> 3644 bytes
 .../apache/juneau/html/doc-files/HTML_LINKS.png |   Bin 0 -> 593 bytes
 .../apache/juneau/html/doc-files/HTML_TITLE.png |   Bin 0 -> 2435 bytes
 .../main/java/org/apache/juneau/html/dto/A.java |    55 +
 .../java/org/apache/juneau/html/dto/Abbr.java   |    26 +
 .../org/apache/juneau/html/dto/Address.java     |    26 +
 .../java/org/apache/juneau/html/dto/Area.java   |    26 +
 .../org/apache/juneau/html/dto/Article.java     |    26 +
 .../java/org/apache/juneau/html/dto/Aside.java  |    26 +
 .../java/org/apache/juneau/html/dto/Audio.java  |    26 +
 .../main/java/org/apache/juneau/html/dto/B.java |    26 +
 .../java/org/apache/juneau/html/dto/Base.java   |    26 +
 .../java/org/apache/juneau/html/dto/Bdi.java    |    26 +
 .../java/org/apache/juneau/html/dto/Bdo.java    |    26 +
 .../org/apache/juneau/html/dto/Blockquote.java  |    26 +
 .../java/org/apache/juneau/html/dto/Body.java   |    26 +
 .../java/org/apache/juneau/html/dto/Br.java     |    26 +
 .../java/org/apache/juneau/html/dto/Button.java |    26 +
 .../java/org/apache/juneau/html/dto/Canvas.java |    26 +
 .../org/apache/juneau/html/dto/Caption.java     |    26 +
 .../java/org/apache/juneau/html/dto/Cite.java   |    26 +
 .../java/org/apache/juneau/html/dto/Code.java   |    26 +
 .../java/org/apache/juneau/html/dto/Col.java    |    26 +
 .../org/apache/juneau/html/dto/Colgroup.java    |    26 +
 .../org/apache/juneau/html/dto/Command.java     |    26 +
 .../org/apache/juneau/html/dto/Datalist.java    |    26 +
 .../java/org/apache/juneau/html/dto/Dd.java     |    26 +
 .../java/org/apache/juneau/html/dto/Del.java    |    26 +
 .../org/apache/juneau/html/dto/Details.java     |    26 +
 .../java/org/apache/juneau/html/dto/Dfn.java    |    26 +
 .../java/org/apache/juneau/html/dto/Div.java    |    26 +
 .../java/org/apache/juneau/html/dto/Dl.java     |    26 +
 .../java/org/apache/juneau/html/dto/Dt.java     |    26 +
 .../java/org/apache/juneau/html/dto/Em.java     |    26 +
 .../java/org/apache/juneau/html/dto/Embed.java  |    26 +
 .../org/apache/juneau/html/dto/Fieldset.java    |    26 +
 .../org/apache/juneau/html/dto/Figcaption.java  |    26 +
 .../java/org/apache/juneau/html/dto/Figure.java |    26 +
 .../java/org/apache/juneau/html/dto/Footer.java |    26 +
 .../java/org/apache/juneau/html/dto/Form.java   |    26 +
 .../java/org/apache/juneau/html/dto/H1.java     |    26 +
 .../java/org/apache/juneau/html/dto/H2.java     |    26 +
 .../java/org/apache/juneau/html/dto/H3.java     |    26 +
 .../java/org/apache/juneau/html/dto/H4.java     |    26 +
 .../java/org/apache/juneau/html/dto/H5.java     |    26 +
 .../java/org/apache/juneau/html/dto/H6.java     |    26 +
 .../java/org/apache/juneau/html/dto/Head.java   |    26 +
 .../java/org/apache/juneau/html/dto/Header.java |    26 +
 .../java/org/apache/juneau/html/dto/Hgroup.java |    26 +
 .../java/org/apache/juneau/html/dto/Hr.java     |    26 +
 .../java/org/apache/juneau/html/dto/Html.java   |    26 +
 .../org/apache/juneau/html/dto/HtmlElement.java |  1300 ++
 .../org/apache/juneau/html/dto/HtmlSchema.java  |    29 +
 .../main/java/org/apache/juneau/html/dto/I.java |    26 +
 .../java/org/apache/juneau/html/dto/IFrame.java |    26 +
 .../java/org/apache/juneau/html/dto/Img.java    |    39 +
 .../java/org/apache/juneau/html/dto/Input.java  |    26 +
 .../java/org/apache/juneau/html/dto/Ins.java    |    26 +
 .../java/org/apache/juneau/html/dto/Kbd.java    |    26 +
 .../java/org/apache/juneau/html/dto/Keygen.java |    26 +
 .../java/org/apache/juneau/html/dto/Label.java  |    26 +
 .../java/org/apache/juneau/html/dto/Legend.java |    26 +
 .../java/org/apache/juneau/html/dto/Li.java     |    26 +
 .../java/org/apache/juneau/html/dto/Link.java   |    26 +
 .../java/org/apache/juneau/html/dto/Map.java    |    26 +
 .../java/org/apache/juneau/html/dto/Mark.java   |    26 +
 .../java/org/apache/juneau/html/dto/Menu.java   |    26 +
 .../java/org/apache/juneau/html/dto/Meta.java   |    26 +
 .../java/org/apache/juneau/html/dto/Meter.java  |    26 +
 .../java/org/apache/juneau/html/dto/Nav.java    |    26 +
 .../org/apache/juneau/html/dto/Noscript.java    |    26 +
 .../java/org/apache/juneau/html/dto/Object.java |    26 +
 .../java/org/apache/juneau/html/dto/Ol.java     |    26 +
 .../org/apache/juneau/html/dto/Optgroup.java    |    26 +
 .../java/org/apache/juneau/html/dto/Option.java |    26 +
 .../java/org/apache/juneau/html/dto/Output.java |    26 +
 .../main/java/org/apache/juneau/html/dto/P.java |    26 +
 .../java/org/apache/juneau/html/dto/Param.java  |    26 +
 .../java/org/apache/juneau/html/dto/Pre.java    |    26 +
 .../org/apache/juneau/html/dto/Progress.java    |    26 +
 .../main/java/org/apache/juneau/html/dto/Q.java |    26 +
 .../java/org/apache/juneau/html/dto/Rp.java     |    26 +
 .../java/org/apache/juneau/html/dto/Rt.java     |    26 +
 .../java/org/apache/juneau/html/dto/Ruby.java   |    26 +
 .../main/java/org/apache/juneau/html/dto/S.java |    26 +
 .../java/org/apache/juneau/html/dto/Samp.java   |    26 +
 .../java/org/apache/juneau/html/dto/Script.java |    26 +
 .../org/apache/juneau/html/dto/Section.java     |    26 +
 .../java/org/apache/juneau/html/dto/Select.java |    26 +
 .../java/org/apache/juneau/html/dto/Small.java  |    26 +
 .../java/org/apache/juneau/html/dto/Source.java |    26 +
 .../java/org/apache/juneau/html/dto/Span.java   |    26 +
 .../java/org/apache/juneau/html/dto/Strong.java |    26 +
 .../java/org/apache/juneau/html/dto/Style.java  |    26 +
 .../java/org/apache/juneau/html/dto/Sub.java    |    26 +
 .../org/apache/juneau/html/dto/Summary.java     |    26 +
 .../java/org/apache/juneau/html/dto/Sup.java    |    26 +
 .../java/org/apache/juneau/html/dto/Table.java  |    26 +
 .../java/org/apache/juneau/html/dto/Tbody.java  |    26 +
 .../java/org/apache/juneau/html/dto/Td.java     |    26 +
 .../org/apache/juneau/html/dto/Textarea.java    |    26 +
 .../java/org/apache/juneau/html/dto/Tfoot.java  |    26 +
 .../java/org/apache/juneau/html/dto/Th.java     |    26 +
 .../java/org/apache/juneau/html/dto/Thead.java  |    26 +
 .../java/org/apache/juneau/html/dto/Time.java   |    26 +
 .../java/org/apache/juneau/html/dto/Title.java  |    26 +
 .../java/org/apache/juneau/html/dto/Tr.java     |    26 +
 .../java/org/apache/juneau/html/dto/Track.java  |    26 +
 .../main/java/org/apache/juneau/html/dto/U.java |    26 +
 .../java/org/apache/juneau/html/dto/Ul.java     |    26 +
 .../java/org/apache/juneau/html/dto/Var.java    |    26 +
 .../java/org/apache/juneau/html/dto/Video.java  |    26 +
 .../java/org/apache/juneau/html/dto/Wbr.java    |    26 +
 .../main/java/org/apache/juneau/html/dto/X.java |    26 +
 .../org/apache/juneau/html/dto/package.html     |    41 +
 .../java/org/apache/juneau/html/dto/temp.txt    |   142 +
 .../java/org/apache/juneau/html/package.html    |    79 +
 .../java/org/apache/juneau/ini/ConfigFile.java  |   766 +
 .../org/apache/juneau/ini/ConfigFileFormat.java |    29 +
 .../org/apache/juneau/ini/ConfigFileImpl.java   |   747 +
 .../apache/juneau/ini/ConfigFileListener.java   |    46 +
 .../apache/juneau/ini/ConfigFileWrapped.java    |   278 +
 .../apache/juneau/ini/ConfigFileWritable.java   |    44 +
 .../java/org/apache/juneau/ini/ConfigMgr.java   |   314 +
 .../java/org/apache/juneau/ini/ConfigUtils.java |    94 +
 .../java/org/apache/juneau/ini/Encoder.java     |    39 +
 .../org/apache/juneau/ini/EntryListener.java    |    48 +
 .../java/org/apache/juneau/ini/Section.java     |   568 +
 .../org/apache/juneau/ini/SectionListener.java  |    63 +
 .../java/org/apache/juneau/ini/XorEncoder.java  |    50 +
 .../org/apache/juneau/ini/doc-files/config1.png |   Bin 0 -> 39851 bytes
 .../org/apache/juneau/ini/doc-files/config2.png |   Bin 0 -> 48881 bytes
 .../org/apache/juneau/ini/doc-files/config3.png |   Bin 0 -> 59095 bytes
 .../java/org/apache/juneau/ini/package.html     |   650 +
 .../org/apache/juneau/internal/ArrayUtils.java  |   278 +
 .../org/apache/juneau/internal/AsciiSet.java    |    59 +
 .../apache/juneau/internal/ByteArrayCache.java  |   106 +
 .../juneau/internal/ByteArrayInOutStream.java   |    32 +
 .../juneau/internal/CharSequenceReader.java     |   100 +
 .../org/apache/juneau/internal/ClassUtils.java  |   323 +
 .../apache/juneau/internal/CollectionUtils.java |    57 +
 .../apache/juneau/internal/DelegateBeanMap.java |   127 +
 .../apache/juneau/internal/DelegateList.java    |    44 +
 .../org/apache/juneau/internal/DelegateMap.java |    59 +
 .../org/apache/juneau/internal/FileUtils.java   |   134 +
 .../org/apache/juneau/internal/FilteredMap.java |    96 +
 .../org/apache/juneau/internal/HashCode.java    |    71 +
 .../org/apache/juneau/internal/IOUtils.java     |   349 +
 .../apache/juneau/internal/IdentityList.java    |    49 +
 .../apache/juneau/internal/JuneauLogger.java    |   295 +
 .../org/apache/juneau/internal/KeywordSet.java  |    90 +
 .../apache/juneau/internal/MultiIterable.java   |    78 +
 .../org/apache/juneau/internal/MultiSet.java    |   111 +
 .../apache/juneau/internal/ReflectionUtils.java |   163 +
 .../org/apache/juneau/internal/SimpleMap.java   |   116 +
 .../juneau/internal/StringBuilderWriter.java    |    99 +
 .../org/apache/juneau/internal/StringUtils.java |   979 ++
 .../apache/juneau/internal/TeeOutputStream.java |   163 +
 .../org/apache/juneau/internal/TeeWriter.java   |   165 +
 .../apache/juneau/internal/ThrowableUtils.java  |    84 +
 .../java/org/apache/juneau/internal/Utils.java  |    38 +
 .../org/apache/juneau/internal/Version.java     |   122 +
 .../apache/juneau/internal/VersionRange.java    |    81 +
 .../java/org/apache/juneau/jena/Constants.java  |    95 +
 .../apache/juneau/jena/RdfBeanPropertyMeta.java |    82 +
 .../org/apache/juneau/jena/RdfClassMeta.java    |    86 +
 .../apache/juneau/jena/RdfCollectionFormat.java |    56 +
 .../apache/juneau/jena/RdfCommonContext.java    |   386 +
 .../java/org/apache/juneau/jena/RdfParser.java  |   498 +
 .../apache/juneau/jena/RdfParserContext.java    |    71 +
 .../apache/juneau/jena/RdfParserSession.java    |   233 +
 .../org/apache/juneau/jena/RdfSerializer.java   |   456 +
 .../juneau/jena/RdfSerializerContext.java       |   107 +
 .../juneau/jena/RdfSerializerSession.java       |   270 +
 .../java/org/apache/juneau/jena/RdfUtils.java   |    91 +
 .../org/apache/juneau/jena/annotation/Rdf.java  |    62 +
 .../apache/juneau/jena/annotation/RdfNs.java    |    41 +
 .../juneau/jena/annotation/RdfSchema.java       |    98 +
 .../apache/juneau/jena/annotation/package.html  |    41 +
 .../juneau/jena/doc-files/Example_HTML.png      |   Bin 0 -> 35528 bytes
 .../apache/juneau/jena/doc-files/Example_N3.png |   Bin 0 -> 37430 bytes
 .../juneau/jena/doc-files/Example_NTriple.png   |   Bin 0 -> 48413 bytes
 .../juneau/jena/doc-files/Example_RDFXML.png    |   Bin 0 -> 30486 bytes
 .../jena/doc-files/Example_RDFXMLABBREV.png     |   Bin 0 -> 30356 bytes
 .../juneau/jena/doc-files/Example_Turtle.png    |   Bin 0 -> 35328 bytes
 .../java/org/apache/juneau/jena/package.html    |  1444 ++
 .../juneau/jso/JavaSerializedObjectParser.java  |    55 +
 .../jso/JavaSerializedObjectSerializer.java     |    56 +
 .../java/org/apache/juneau/jso/package.html     |    41 +
 .../org/apache/juneau/json/JsonClassMeta.java   |    59 +
 .../java/org/apache/juneau/json/JsonParser.java |   823 ++
 .../apache/juneau/json/JsonParserContext.java   |    66 +
 .../apache/juneau/json/JsonParserSession.java   |    96 +
 .../juneau/json/JsonSchemaSerializer.java       |   157 +
 .../org/apache/juneau/json/JsonSerializer.java  |   440 +
 .../juneau/json/JsonSerializerContext.java      |    83 +
 .../juneau/json/JsonSerializerSession.java      |    91 +
 .../java/org/apache/juneau/json/JsonWriter.java |   265 +
 .../org/apache/juneau/json/annotation/Json.java |    76 +
 .../apache/juneau/json/annotation/package.html  |    41 +
 .../juneau/json/doc-files/Example_HTML.png      |   Bin 0 -> 35528 bytes
 .../juneau/json/doc-files/Example_JSON.png      |   Bin 0 -> 26954 bytes
 .../json/doc-files/Example_JSONSchema.png       |   Bin 0 -> 34114 bytes
 .../json/doc-files/Example_JSONSimple.png       |   Bin 0 -> 30920 bytes
 .../java/org/apache/juneau/json/package.html    |  1361 ++
 .../org/apache/juneau/msgpack/DataType.java     |    73 +
 .../juneau/msgpack/MsgPackInputStream.java      |   482 +
 .../juneau/msgpack/MsgPackOutputStream.java     |   322 +
 .../apache/juneau/msgpack/MsgPackParser.java    |   261 +
 .../juneau/msgpack/MsgPackParserContext.java    |    49 +
 .../juneau/msgpack/MsgPackParserSession.java    |    70 +
 .../juneau/msgpack/MsgPackSerializer.java       |   285 +
 .../msgpack/MsgPackSerializerContext.java       |    49 +
 .../msgpack/MsgPackSerializerSession.java       |    52 +
 .../java/org/apache/juneau/msgpack/package.html |    63 +
 .../main/java/org/apache/juneau/package.html    |   217 +
 .../apache/juneau/parser/InputStreamParser.java |    45 +
 .../apache/juneau/parser/ParseException.java    |   105 +
 .../java/org/apache/juneau/parser/Parser.java   |   728 +
 .../org/apache/juneau/parser/ParserContext.java |    57 +
 .../org/apache/juneau/parser/ParserGroup.java   |   314 +
 .../apache/juneau/parser/ParserListener.java    |    44 +
 .../org/apache/juneau/parser/ParserReader.java  |   382 +
 .../org/apache/juneau/parser/ParserSession.java |   310 +
 .../org/apache/juneau/parser/ReaderParser.java  |    45 +
 .../java/org/apache/juneau/parser/package.html  |   133 +
 .../juneau/plaintext/PlainTextParser.java       |    70 +
 .../juneau/plaintext/PlainTextSerializer.java   |    69 +
 .../org/apache/juneau/plaintext/package.html    |    41 +
 .../serializer/OutputStreamSerializer.java      |    65 +
 .../juneau/serializer/SerializeException.java   |   105 +
 .../apache/juneau/serializer/Serializer.java    |   335 +
 .../juneau/serializer/SerializerContext.java    |   291 +
 .../juneau/serializer/SerializerGroup.java      |   338 +
 .../juneau/serializer/SerializerSession.java    |   743 +
 .../juneau/serializer/SerializerWriter.java     |   317 +
 .../apache/juneau/serializer/StringObject.java  |    85 +
 .../juneau/serializer/WriterSerializer.java     |    96 +
 .../org/apache/juneau/serializer/package.html   |   135 +
 .../apache/juneau/soap/SoapXmlSerializer.java   |    78 +
 .../juneau/soap/SoapXmlSerializerContext.java   |    28 +
 .../java/org/apache/juneau/soap/package.html    |    41 +
 .../org/apache/juneau/svl/DefaultingVar.java    |    50 +
 .../main/java/org/apache/juneau/svl/MapVar.java |    46 +
 .../org/apache/juneau/svl/MultipartVar.java     |    50 +
 .../java/org/apache/juneau/svl/SimpleVar.java   |    46 +
 .../java/org/apache/juneau/svl/StreamedVar.java |    44 +
 .../main/java/org/apache/juneau/svl/Var.java    |   110 +
 .../java/org/apache/juneau/svl/VarResolver.java |   221 +
 .../apache/juneau/svl/VarResolverContext.java   |   113 +
 .../apache/juneau/svl/VarResolverSession.java   |   298 +
 .../java/org/apache/juneau/svl/package.html     |   246 +
 .../org/apache/juneau/svl/vars/ArgsVar.java     |    64 +
 .../apache/juneau/svl/vars/ConfigFileVar.java   |    65 +
 .../apache/juneau/svl/vars/EnvVariablesVar.java |    52 +
 .../apache/juneau/svl/vars/ManifestFileVar.java |    64 +
 .../juneau/svl/vars/SystemPropertiesVar.java    |    46 +
 .../transform/AnnotationBeanTransform.java      |    70 +
 .../apache/juneau/transform/BeanTransform.java  |   526 +
 .../transform/InterfaceBeanTransform.java       |    39 +
 .../apache/juneau/transform/PojoTransform.java  |   265 +
 .../juneau/transform/SurrogateTransform.java    |   207 +
 .../org/apache/juneau/transform/Transform.java  |   138 +
 .../juneau/transform/doc-files/classes.png      |   Bin 0 -> 15527 bytes
 .../org/apache/juneau/transform/package.html    |   771 +
 .../juneau/transforms/BeanStringTransform.java  |    39 +
 .../transforms/ByteArrayBase64Transform.java    |    51 +
 .../transforms/CalendarLongTransform.java       |    54 +
 .../juneau/transforms/CalendarMapTransform.java |    62 +
 .../juneau/transforms/CalendarTransform.java    |   293 +
 .../juneau/transforms/DateLongTransform.java    |    52 +
 .../juneau/transforms/DateMapTransform.java     |    56 +
 .../apache/juneau/transforms/DateTransform.java |   370 +
 .../juneau/transforms/EnumerationTransform.java |    39 +
 .../juneau/transforms/IteratorTransform.java    |    39 +
 .../juneau/transforms/ReaderTransform.java      |   112 +
 .../XMLGregorianCalendarTransform.java          |    64 +
 .../org/apache/juneau/transforms/package.html   |    66 +
 .../apache/juneau/urlencoding/UonParser.java    |   829 ++
 .../juneau/urlencoding/UonParserContext.java    |    69 +
 .../juneau/urlencoding/UonParserSession.java    |   129 +
 .../apache/juneau/urlencoding/UonReader.java    |   197 +
 .../juneau/urlencoding/UonSerializer.java       |   513 +
 .../urlencoding/UonSerializerContext.java       |   127 +
 .../urlencoding/UonSerializerSession.java       |    92 +
 .../apache/juneau/urlencoding/UonWriter.java    |   275 +
 .../urlencoding/UrlEncodingClassMeta.java       |    59 +
 .../juneau/urlencoding/UrlEncodingContext.java  |    68 +
 .../juneau/urlencoding/UrlEncodingParser.java   |   554 +
 .../urlencoding/UrlEncodingParserContext.java   |    81 +
 .../urlencoding/UrlEncodingParserSession.java   |    77 +
 .../urlencoding/UrlEncodingSerializer.java      |   478 +
 .../UrlEncodingSerializerContext.java           |    81 +
 .../UrlEncodingSerializerSession.java           |    86 +
 .../urlencoding/annotation/UrlEncoding.java     |    41 +
 .../juneau/urlencoding/annotation/package.html  |    41 +
 .../urlencoding/doc-files/Example_HTML.png      |   Bin 0 -> 32778 bytes
 .../doc-files/Example_UrlEncoding.png           |   Bin 0 -> 20958 bytes
 .../juneau/urlencoding/doc-files/rfc_uon.txt    |   352 +
 .../org/apache/juneau/urlencoding/package.html  |  1309 ++
 .../main/java/org/apache/juneau/utils/Args.java |   245 +
 .../java/org/apache/juneau/utils/IOPipe.java    |   218 +
 .../org/apache/juneau/utils/ManifestFile.java   |    90 +
 .../org/apache/juneau/utils/MessageBundle.java  |   310 +
 .../apache/juneau/utils/PojoIntrospector.java   |   118 +
 .../java/org/apache/juneau/utils/PojoQuery.java |  1251 ++
 .../java/org/apache/juneau/utils/PojoRest.java  |   847 ++
 .../apache/juneau/utils/PojoRestException.java  |    60 +
 .../org/apache/juneau/utils/ProcBuilder.java    |   387 +
 .../org/apache/juneau/utils/ZipFileList.java    |   140 +
 .../java/org/apache/juneau/utils/package.html   |    60 +
 .../java/org/apache/juneau/xml/Namespace.java   |    88 +
 .../org/apache/juneau/xml/NamespaceFactory.java |   130 +
 .../java/org/apache/juneau/xml/XmlBeanMeta.java |   129 +
 .../apache/juneau/xml/XmlBeanPropertyMeta.java  |   163 +
 .../org/apache/juneau/xml/XmlClassMeta.java     |   118 +
 .../apache/juneau/xml/XmlContentHandler.java    |   139 +
 .../org/apache/juneau/xml/XmlDocSerializer.java |    64 +
 .../java/org/apache/juneau/xml/XmlParser.java   |   523 +
 .../org/apache/juneau/xml/XmlParserContext.java |   156 +
 .../org/apache/juneau/xml/XmlParserSession.java |   189 +
 .../juneau/xml/XmlSchemaDocSerializer.java      |    67 +
 .../apache/juneau/xml/XmlSchemaSerializer.java  |   605 +
 .../org/apache/juneau/xml/XmlSerializer.java    |   713 +
 .../apache/juneau/xml/XmlSerializerContext.java |   161 +
 .../apache/juneau/xml/XmlSerializerSession.java |   208 +
 .../java/org/apache/juneau/xml/XmlUtils.java    |   575 +
 .../java/org/apache/juneau/xml/XmlWriter.java   |   667 +
 .../org/apache/juneau/xml/annotation/Xml.java   |   201 +
 .../apache/juneau/xml/annotation/XmlFormat.java |    62 +
 .../org/apache/juneau/xml/annotation/XmlNs.java |    41 +
 .../apache/juneau/xml/annotation/XmlSchema.java |    98 +
 .../apache/juneau/xml/annotation/package.html   |    41 +
 .../juneau/xml/doc-files/Example_HTML.png       |   Bin 0 -> 35528 bytes
 .../apache/juneau/xml/doc-files/Example_XML.png |   Bin 0 -> 32865 bytes
 .../juneau/xml/doc-files/Example_XMLSchema.png  |   Bin 0 -> 45685 bytes
 .../juneau/xml/doc-files/Example_XMLSimple.png  |   Bin 0 -> 34372 bytes
 .../java/org/apache/juneau/xml/package.html     |  2158 +++
 com.ibm.team.juno/src/main/java/overview.html   |  7660 ++++++++++
 com.ibm.team.juno/src/overview.html             |  7507 ----------
 .../java/org/apache/juneau/CT_Annotations.java  |    82 +
 .../java/org/apache/juneau/CT_BeanConfig.java   |   848 ++
 .../test/java/org/apache/juneau/CT_BeanMap.java |  1911 +++
 .../org/apache/juneau/CT_BeanTransform.java     |   144 +
 .../java/org/apache/juneau/CT_ClassMeta.java    |   281 +
 .../org/apache/juneau/CT_ContextFactory.java    |   824 ++
 .../apache/juneau/CT_DataConversionTest.java    |   145 +
 .../org/apache/juneau/CT_IgnoredClasses.java    |    72 +
 .../java/org/apache/juneau/CT_JacocoDummy.java  |    49 +
 .../java/org/apache/juneau/CT_ObjectList.java   |    98 +
 .../java/org/apache/juneau/CT_ObjectMap.java    |   313 +
 .../org/apache/juneau/CT_ParserGenerics.java    |    71 +
 .../java/org/apache/juneau/CT_ParserReader.java |   181 +
 .../org/apache/juneau/CT_PojoTransform.java     |    56 +
 .../apache/juneau/CT_PropertyNamerDashedLC.java |    39 +
 .../java/org/apache/juneau/CT_Visibility.java   |   169 +
 .../test/java/org/apache/juneau/TestUtils.java  |   395 +
 .../org/apache/juneau/XmlValidatorParser.java   |    74 +
 .../src/test/java/org/apache/juneau/a/A1.java   |   186 +
 .../a/rttests/CT_RoundTripAddClassAttrs.java    |   349 +
 .../a/rttests/CT_RoundTripBeanInheritance.java  |   220 +
 .../juneau/a/rttests/CT_RoundTripBeanMaps.java  |  1012 ++
 .../juneau/a/rttests/CT_RoundTripClasses.java   |    53 +
 .../juneau/a/rttests/CT_RoundTripDTOs.java      |    50 +
 .../juneau/a/rttests/CT_RoundTripEnum.java      |   246 +
 .../juneau/a/rttests/CT_RoundTripGenerics.java  |    97 +
 .../a/rttests/CT_RoundTripLargeObjects.java     |   193 +
 .../juneau/a/rttests/CT_RoundTripMaps.java      |   215 +
 .../CT_RoundTripNumericConstructors.java        |    54 +
 .../a/rttests/CT_RoundTripObjectsAsStrings.java |   272 +
 .../CT_RoundTripObjectsWithSpecialMethods.java  |   116 +
 .../CT_RoundTripPrimitiveObjectBeans.java       |   197 +
 .../a/rttests/CT_RoundTripPrimitivesBeans.java  |   367 +
 .../a/rttests/CT_RoundTripReadOnlyBeans.java    |   100 +
 .../a/rttests/CT_RoundTripSimpleObjects.java    |   750 +
 .../a/rttests/CT_RoundTripToObjectMaps.java     |    78 +
 .../a/rttests/CT_RoundTripTransformBeans.java   |   382 +
 .../a/rttests/CT_RoundTripTrimStrings.java      |    98 +
 .../apache/juneau/a/rttests/RoundTripTest.java  |   301 +
 .../test/java/org/apache/juneau/csv/CT_Csv.java |    50 +
 .../org/apache/juneau/dto/atom/CT_Atom.java     |   102 +
 .../apache/juneau/dto/cognos/CT_CognosXml.java  |   106 +
 .../juneau/dto/jsonschema/CT_JsonSchema.java    |   103 +
 .../java/org/apache/juneau/html/CT_Common.java  |   564 +
 .../org/apache/juneau/html/CT_CommonParser.java |   162 +
 .../java/org/apache/juneau/html/CT_Html.java    |   389 +
 .../org/apache/juneau/ini/CT_ConfigFile.java    |  2154 +++
 .../org/apache/juneau/ini/CT_ConfigMgr.java     |   204 +
 .../apache/juneau/internal/CT_VersionRange.java |    68 +
 .../java/org/apache/juneau/jena/CT_Common.java  |   513 +
 .../org/apache/juneau/jena/CT_CommonParser.java |   208 +
 .../org/apache/juneau/jena/CT_CommonXml.java    |    95 +
 .../java/org/apache/juneau/jena/CT_Rdf.java     |   597 +
 .../org/apache/juneau/jena/CT_RdfParser.java    |   149 +
 .../java/org/apache/juneau/json/CT_Common.java  |   501 +
 .../org/apache/juneau/json/CT_CommonParser.java |   180 +
 .../java/org/apache/juneau/json/CT_Json.java    |   308 +
 .../org/apache/juneau/json/CT_JsonParser.java   |   331 +
 .../org/apache/juneau/json/CT_JsonSchema.java   |    44 +
 .../juneau/msgpack/CT_MsgPackSerialzier.java    |   220 +
 .../testbeans/PrimitiveAtomicObjectsBean.java   |    78 +
 .../juneau/testbeans/PrimitiveObjectsBean.java  |   198 +
 .../org/apache/juneau/testbeans/TestURI.java    |    65 +
 .../apache/juneau/transforms/CT_BeanMap.java    |    96 +
 .../juneau/transforms/CT_BeanTransform.java     |   204 +
 .../transforms/CT_ByteArrayBase64Transform.java |   172 +
 .../juneau/transforms/CT_CalendarTransform.java |   696 +
 .../apache/juneau/transforms/CT_DateFilter.java |   170 +
 .../transforms/CT_EnumerationTransform.java     |    35 +
 .../juneau/transforms/CT_IteratorTransform.java |    37 +
 .../juneau/transforms/CT_ReaderFilter.java      |    47 +
 .../juneau/urlencoding/CT_CommonParser_Uon.java |   168 +
 .../CT_CommonParser_UrlEncoding.java            |   185 +
 .../juneau/urlencoding/CT_Common_Uon.java       |   450 +
 .../urlencoding/CT_Common_UrlEncoding.java      |   442 +
 .../apache/juneau/urlencoding/CT_UonParser.java |   542 +
 .../juneau/urlencoding/CT_UonParserReader.java  |   217 +
 .../juneau/urlencoding/CT_UonSerializer.java    |   460 +
 .../urlencoding/CT_UrlEncodingParser.java       |  1000 ++
 .../urlencoding/CT_UrlEncodingSerializer.java   |   497 +
 .../org/apache/juneau/urlencoding/DTOs.java     |   140 +
 .../java/org/apache/juneau/utils/CT_Args.java   |    70 +
 .../org/apache/juneau/utils/CT_ArrayUtils.java  |   160 +
 .../apache/juneau/utils/CT_ByteArrayCache.java  |    60 +
 .../juneau/utils/CT_ByteArrayInOutStream.java   |    34 +
 .../org/apache/juneau/utils/CT_CharSet.java     |    34 +
 .../org/apache/juneau/utils/CT_ClassUtils.java  |   114 +
 .../apache/juneau/utils/CT_CollectionUtils.java |    34 +
 .../org/apache/juneau/utils/CT_FilteredMap.java |    44 +
 .../java/org/apache/juneau/utils/CT_IOPipe.java |   282 +
 .../org/apache/juneau/utils/CT_IOUtils.java     |   103 +
 .../apache/juneau/utils/CT_IdentityList.java    |    38 +
 .../apache/juneau/utils/CT_KeywordStore.java    |    45 +
 .../apache/juneau/utils/CT_MultiIterable.java   |    70 +
 .../org/apache/juneau/utils/CT_MultiSet.java    |   143 +
 .../apache/juneau/utils/CT_ParserReader.java    |    48 +
 .../juneau/utils/CT_PojoIntrospector.java       |    53 +
 .../org/apache/juneau/utils/CT_PojoQuery.java   |   680 +
 .../org/apache/juneau/utils/CT_PojoRest.java    |   852 ++
 .../org/apache/juneau/utils/CT_SimpleMap.java   |    48 +
 .../juneau/utils/CT_StringBuilderWriter.java    |    59 +
 .../org/apache/juneau/utils/CT_StringUtils.java |   676 +
 .../juneau/utils/CT_StringVarResolver.java      |   332 +
 .../java/org/apache/juneau/xml/CT_Common.java   |   453 +
 .../org/apache/juneau/xml/CT_CommonParser.java  |   179 +
 .../org/apache/juneau/xml/CT_CommonXml.java     |    81 +
 .../test/java/org/apache/juneau/xml/CT_Xml.java |  1050 ++
 .../org/apache/juneau/xml/CT_XmlCollapsed.java  |   459 +
 .../org/apache/juneau/xml/CT_XmlContent.java    |   301 +
 .../org/apache/juneau/xml/CT_XmlParser.java     |    95 +
 .../java/org/apache/juneau/xml/xml1a/T1.java    |    37 +
 .../java/org/apache/juneau/xml/xml1a/T2.java    |    37 +
 .../java/org/apache/juneau/xml/xml1b/T3.java    |    36 +
 .../java/org/apache/juneau/xml/xml1b/T4.java    |    37 +
 .../java/org/apache/juneau/xml/xml1b/T5.java    |    37 +
 .../java/org/apache/juneau/xml/xml1b/T6.java    |    37 +
 .../java/org/apache/juneau/xml/xml1b/T7.java    |    36 +
 .../apache/juneau/xml/xml1b/package-info.java   |    16 +
 .../java/org/apache/juneau/xml/xml1c/T8.java    |    32 +
 .../java/org/apache/juneau/xml/xml1c/T9.java    |    23 +
 .../apache/juneau/xml/xml1c/package-info.java   |    26 +
 com.ibm.team.juno/src/todo.txt                  |     7 -
 6094 files changed, 149142 insertions(+), 701831 deletions(-)
----------------------------------------------------------------------