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 16:03:06 UTC

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

Repository: incubator-juneau
Updated Branches:
  refs/heads/master 30947fd7a -> 2c3a7cb59


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigMgr.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigMgr.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigMgr.java
deleted file mode 100644
index 64c19b7..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigMgr.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/***************************************************************************************************************************
- * 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.ini;
-
-import static org.apache.juneau.ini.ConfigFileFormat.*;
-
-import java.io.*;
-import java.nio.charset.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.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 class='spaced-list'>
-	 * 	<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 org.apache.juneau.ini.ConfigMgr [args]
-	 * </p>
-	 * <p>
-	 * Arguments can be any of the following...
-	 * <ul class='spaced-list'>
-	 * 	<li>No arguments<br>
-	 * 		Prints usage message.<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>
-	 * 	<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>
-	 * 	<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 org.apache.juneau.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 juneau.jar org.apache.juneau.ini.ConfigFile createBatchEnvFile -configFile <configFile> -envFile <envFile> [-verbose]");
-		System.err.println("java -cp juneau.jar org.apache.juneau.ini.ConfigFile createShellEnvFile -configFile <configFile> -envFile <envFile> [-verbose]");
-		System.err.println("java -cp juneau.jar org.apache.juneau.ini.ConfigFile setVals -configFile <configFile> -vals [var1 val1 [var2 val2...]] [-verbose]");
-		int rc = Integer.getInteger("exit.2", 2);
-		if (rc != 0)
-			System.exit(rc);
-	}
-}


[39/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/package-info.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/package-info.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/package-info.java
deleted file mode 100755
index d079914..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/package-info.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************************************************************
- * 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.
- ***************************************************************************************************************************/
-// XML namespaces used in this package
-@XmlSchema(
-	prefix="ab",
-	xmlNs={
-		@XmlNs(prefix="ab", namespaceURI="http://www.ibm.com/addressBook/"),
-		@XmlNs(prefix="per", namespaceURI="http://www.ibm.com/person/"),
-		@XmlNs(prefix="addr", namespaceURI="http://www.ibm.com/address/"),
-		@XmlNs(prefix="mail", namespaceURI="http://www.ibm.com/mail/")
-	}
-)
-@RdfSchema(
-	prefix="ab",
-	rdfNs={
-		@RdfNs(prefix="ab", namespaceURI="http://www.ibm.com/addressBook/"),
-		@RdfNs(prefix="per", namespaceURI="http://www.ibm.com/person/"),
-		@RdfNs(prefix="addr", namespaceURI="http://www.ibm.com/address/"),
-		@RdfNs(prefix="mail", namespaceURI="http://www.ibm.com/mail/")
-	}
-)
-package org.apache.juneau.samples.addressbook;
-import org.apache.juneau.jena.annotation.*;
-import org.apache.juneau.xml.annotation.*;
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/package.html b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/package.html
deleted file mode 100755
index 5ac8abc..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/package.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<html>
-<head>
-	<style type="text/css">
-		/* For viewing in Page Designer */
-		@IMPORT url("../../../../../../org.apache.juneau/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>Javadocs for Address Book Resource Example</p>
-<p>
-	Pretend there is documentation here.
-</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/AdminGuard.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/AdminGuard.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/AdminGuard.java
deleted file mode 100755
index b6e3d1a..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/AdminGuard.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import org.apache.juneau.server.*;
-
-/**
- * Sample guard that only lets administrators through.
- */
-public class AdminGuard extends RestGuard {
-
-	@Override /* RestGuard */
-	public boolean isRequestAllowed(RestRequest req) {
-		return true;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/AtomFeedResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/AtomFeedResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/AtomFeedResource.java
deleted file mode 100755
index 46f9006..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/AtomFeedResource.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static javax.xml.bind.DatatypeConverter.*;
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-import static org.apache.juneau.jena.RdfCommonContext.*;
-import static org.apache.juneau.jena.RdfSerializerContext.*;
-
-import java.net.*;
-
-import org.apache.juneau.dto.atom.*;
-import org.apache.juneau.dto.atom.Content;
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Sample resource that shows how to generate ATOM feeds.
- */
-@RestResource(
-	path="/atom",
-	messages="nls/AtomFeedResource",
-	properties={
-		@Property(name=SERIALIZER_quoteChar, value="'"),
-		@Property(name=RDF_rdfxml_tab, value="5"),
-		@Property(name=RDF_addRootProperty, value="true"),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.AtomFeedResource)'}")
-	},
-	encoders=GzipEncoder.class
-)
-public class AtomFeedResource extends ResourceJena {
-	private static final long serialVersionUID = 1L;
-
-	private Feed feed;     // The root resource object
-
-	@Override /* Servlet */
-	public void init() {
-
-		try {
-			feed = new Feed()
-				.setTitle(new Text("text", "Juneau ATOM specification"))
-				.setSubTitle(new Text("html", "A <em>lot</em> of effort went into making this effortless"))
-				.setUpdated(parseDateTime("2013-05-08T12:29:29Z"))
-				.setId(new Id("tag:juneau.sample.com,2013:1"))
-				.addLinks(
-					new Link("alternate", "text/html", "http://www.sample.com/").setHreflang("en"),
-					new Link("self", "application/atom+xml", "http://www.sample.com/feed.atom")
-				)
-				.setRights(new Text("Copyright (c) 2013, IBM"))
-				.setGenerator(new Generator("Juneau").setUri(new URI("http://juneau.ibm.com/")).setVersion("1.0"))
-				.addEntries(
-					new Entry()
-						.setTitle(new Text("Juneau ATOM specification snapshot"))
-						.addLinks(
-							new Link("alternate", "text/html", "http://www.sample.com/2012/05/08/juneau.atom"),
-							new Link("enclosure", "audio/mpeg", "http://www.sample.com/audio/juneau_podcast.mp3").setLength(12345)
-						)
-						.setId(new Id("tag:juneau.sample.com,2013:1.2345"))
-						.setUpdated(parseDateTime("2013-05-08T12:29:29Z"))
-						.setPublished(parseDateTime("2013-05-08T12:29:29Z"))
-						.addAuthors(new Person("James Bognar").setUri(new URI("http://www.sample.com/")).setEmail("james.bognar@salesforce.com"))
-						.addContributors(
-							new Person("Barry M. Caceres")
-						)
-						.setContent(
-							new Content()
-								.setLang("en")
-								.setBase(new URI("http://www.ibm.com/"))
-								.setType("xhtml")
-								.setText("<div xmlns=\"http://www.w3.org/1999/xhtml\"><p><i>[Update: Juneau supports ATOM.]</i></p></div>")
-						)
-				);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * GET request handler
-	 */
-	@RestMethod(name="GET", path="/")
-	public Feed getFeed() throws Exception {
-		return feed;
-	}
-
-	/**
-	 * PUT request handler.
-	 * Replaces the feed with the specified content, and then mirrors it as the response.
-	 */
-	@RestMethod(name="PUT", path="/")
-	public Feed setFeed(@org.apache.juneau.server.annotation.Content Feed feed) throws Exception {
-		this.feed = feed;
-		return feed;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/CodeFormatterResource.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/CodeFormatterResource.html b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/CodeFormatterResource.html
deleted file mode 100755
index 2523daa..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/CodeFormatterResource.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-	<style type='text/css'>
-		@import '$R{servletURI}/style.css';
-	</style>
-	<script>
-		// Quick and dirty function to allow tabs in textarea.
-		function checkTab(e) {
-		    if (e.keyCode == 9) {
-			    var t = e.target;
-			    var ss = t.selectionStart, se = t.selectionEnd;
-	            t.value = t.value.slice(0,ss).concat('\t').concat(t.value.slice(ss,t.value.length));
-		        e.preventDefault();
-		    }
-		}	
-		// Load results from IFrame into this document.
-		function loadResults(buff) {
-			var doc = buff.contentDocument || buff.contentWindow.document;
-			var buffBody = doc.getElementById('data');
-			if (buffBody != null) {
-				document.getElementById('results').innerHTML = buffBody.innerHTML;
-			}
-		}
-	</script>
-</head>
-<body>
-	<h3 class='title'>Code Formatter</h3>
-	<div class='data'>
-		<form id='form' action='codeFormatter' method='POST' target='buff'>
-			<table>
-				<tr>
-					<th>Language: </th>
-					<td><input name='lang' value='java'></td>
-					<td><button type='submit'>Submit</button><button type='reset'>Reset</button></td>
-				</tr>		
-				<tr>
-					<td colspan='3'><textarea name='code' style='width:100%;height:200px;font-family:Courier;font-size:9pt;' onkeydown='checkTab(event)'></textarea></td>
-				</tr>
-			</table>
-		</form>
-		<div id='results' class='monospace'>
-		</div>
-	</div>
-	<iframe name='buff' style='display:none' onload="parent.loadResults(this)"></iframe>
-</body>
-</html>
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/CodeFormatterResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/CodeFormatterResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/CodeFormatterResource.java
deleted file mode 100755
index b225f96..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/CodeFormatterResource.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.io.*;
-
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Service at <code>/jazz/rawSql</code>.
- * Used for executing SQL queries against the repository database.
- */
-@RestResource(
-	path="/codeFormatter",
-	messages="nls/CodeFormatterResource",
-	properties={
-		@Property(name=HTMLDOC_title, value="Code Formatter"),
-		@Property(name=HTMLDOC_description, value="Add syntax highlighting tags to source code"),
-		@Property(name=HTMLDOC_links, value="{options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.CodeFormatterResource)'}"),
-	}
-)
-@SuppressWarnings("serial")
-public class CodeFormatterResource extends Resource {
-
-	/** [GET /] - Display query entry page. */
-	@RestMethod(name="GET", path="/")
-	public ReaderResource getQueryEntryPage(RestRequest req) throws IOException {
-		return req.getReaderResource("CodeFormatterResource.html", true);
-	}
-
-	/** [POST /] - Execute SQL query. */
-	@RestMethod(name="POST", path="/")
-	public String executeQuery(@Param("code") String code, @Param("lang") String lang) throws Exception {
-		return SourceResource.highlight(code, lang);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/Constants.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/Constants.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/Constants.java
deleted file mode 100755
index 6af83a5..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/Constants.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-
-public class Constants {
-
-	private static String juneauSampleUrl = System.getProperty("JUNO_SAMPLE_URL");
-
-	/**
-	 * Returns the value of the "JUNO_SAMPLE_URL" system property, or throws a {@link RuntimeException}
-	 * if it's not set.
-	 */
-	public static String getSampleUrl() {
-		if (juneauSampleUrl == null)
-			return "http://localhost:10000";
-		return juneauSampleUrl;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/DirectoryResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/DirectoryResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/DirectoryResource.java
deleted file mode 100755
index 9dc71f2..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/DirectoryResource.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-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.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.utils.*;
-
-/**
- * Sample REST resource for exploring local file systems.
- */
-@RestResource(
-	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="rootDir", value="$S{java.io.tmpdir}"),
-		@Property(name="allowViews", value="false"),
-		@Property(name="allowDeletes", value="false"),
-		@Property(name="allowPuts", value="false")
-	}
-)
-public class DirectoryResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	protected File rootDir;     // The root directory
-
-	// Settings enabled through servlet init parameters
-	protected 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("rootDir"));
-		allowViews = p.getBoolean("allowViews", false);
-		allowDeletes = p.getBoolean("allowDeletes", false);
-		allowPuts = p.getBoolean("allowPuts", false);
-	}
-
-	/** Returns the root directory defined by the 'rootDir' init parameter */
-	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 request handler */
-	@RestMethod(name="GET", path="/*", converters={Queryable.class})
-	public Object doGet(RestRequest req, @Properties ObjectMap properties) throws Exception {
-
-		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");
-
-		properties.put("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 request handler */
-	@RestMethod(name="DELETE", path="/*", guards=AdminGuard.class)
-	public Object doDelete(RestRequest req) throws Exception {
-
-		if (! allowDeletes)
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "DELETE not enabled");
-
-		File f = new File(rootDir.getAbsolutePath() + req.getPathInfo());
-		deleteFile(f);
-
-		if (req.getHeader("Accept").contains("text/html"))
-			return new Redirect();
-		return "File deleted";
-	}
-
-	/** PUT request handler */
-	@RestMethod(name="PUT", path="/*", guards=AdminGuard.class)
-	public Object doPut(RestRequest req) throws Exception {
-
-		if (! allowPuts)
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "PUT not enabled");
-
-		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 request handler (overloaded GET for viewing file contents) */
-	@RestMethod(name="VIEW", path="/*")
-	public void doView(RestRequest req, RestResponse res) throws Exception {
-
-		if (! allowViews)
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "VIEW not enabled");
-
-		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.setOutput(new FileReader(f)).setContentType("text/plain");
-	}
-
-	/** DOWNLOAD request handler (overloaded GET for downloading file contents) */
-	@RestMethod(name="DOWNLOAD")
-	public void doDownload(RestRequest req, RestResponse res) throws Exception {
-
-		if (! allowViews)
-			throw new RestException(SC_METHOD_NOT_ALLOWED, "DOWNLOAD not enabled");
-
-		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.setOutput(new FileReader(f)).setContentType("application");
-	}
-
-	/** File POJO */
-	public class FileResource {
-		private File f;
-		private URL url;
-
-		/** Constructor */
-		public FileResource(File f, URL url) {
-			this.f = f;
-			this.url = url;
-		}
-
-		// Bean property getters
-
-		public URL getUrl() {
-			return url;
-		}
-
-		public String getType() {
-			return (f.isDirectory() ? "dir" : "file");
-		}
-
-		public String getName() {
-			return f.getName();
-		}
-
-		public long getSize() {
-			return f.length();
-		}
-
-		public Date getLastModified() {
-			return new Date(f.lastModified());
-		}
-
-		public URL getView() throws Exception {
-			if (allowViews && f.canRead() && ! f.isDirectory())
-				return new URL(url + "?method=VIEW");
-			return null;
-		}
-
-		public URL getDownload() throws Exception {
-			if (allowViews && f.canRead() && ! f.isDirectory())
-				return new URL(url + "?method=DOWNLOAD");
-			return null;
-		}
-
-		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/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/DockerRegistryResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/DockerRegistryResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/DockerRegistryResource.java
deleted file mode 100755
index 6380794..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/DockerRegistryResource.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.util.*;
-
-import javax.servlet.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.labels.*;
-
-/**
- * Sample resource that shows how to mirror query results from a Docker registry.
- */
-@RestResource(
-	path="/docker",
-	label="Sample Docker resource",
-	properties={
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.AtomFeedResource)'}")
-	}
-)
-public class DockerRegistryResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	// Get registry URL from samples.cfg file.
-	private String registryUrl = getConfig().getString("DockerRegistry/url");
-
-	RestClient rc;
-
-	@Override /* Servlet */
-	public void init() throws ServletException {
-		super.init();
-		rc = new RestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-	}
-
-	@Override /* Servlet */
-	public void destroy() {
-		rc.closeQuietly();
-		super.destroy();
-	}
-
-	/** [GET /] - Show child resources. */
-	@SuppressWarnings("nls")
-	@RestMethod(name="GET", path="/")
-	public ResourceDescription[] getChildren(RestRequest req) {
-		return new ResourceDescription[] {
-			new ResourceDescription(req, "search", "Search Registry")
-		};
-	}
-
-	/**
-	 * PUT request handler.
-	 * Replaces the feed with the specified content, and then mirrors it as the response.
-	 */
-	@RestMethod(name="GET", path="/search")
-	public QueryResults query(@Param("q") String q) throws Exception {
-		String url = registryUrl + "/search" + (q == null ? "" : "?q=" + q);
-		synchronized(rc) {
-			return rc.doGet(url).getResponse(QueryResults.class);
-		}
-	}
-
-	public static class QueryResults {
-		public int num_results;
-		public String query;
-		public List<DockerImage> results;
-	}
-
-	public static class DockerImage {
-		public String name, description;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/HelloWorldResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/HelloWorldResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/HelloWorldResource.java
deleted file mode 100755
index bb42b89..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/HelloWorldResource.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Sample REST resource that prints out a simple "Hello world!" message.
- */
-@RestResource(
-	messages="nls/HelloWorldResource",
-	path="/helloWorld",
-	properties={
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS'}")
-	}
-)
-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/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/JsonSchemaResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/JsonSchemaResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/JsonSchemaResource.java
deleted file mode 100755
index 4e66ed4..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/JsonSchemaResource.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import org.apache.juneau.dto.jsonschema.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Sample resource that shows how to serialize JSON-Schema documents.
- */
-@RestResource(
-	path="/jsonSchema",
-	messages="nls/JsonSchemaResource",
-	properties={
-		@Property(name=HTMLDOC_title, value="Sample JSON-Schema document"),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.JsonSchemaResource)'}")
-	}
-)
-public class JsonSchemaResource extends ResourceJena {
-	private static final long serialVersionUID = 1L;
-
-	private Schema schema;     // The schema document
-
-	@Override /* Servlet */
-	public void init() {
-
-		try {
-			schema = new Schema()
-				.setId("http://example.com/sample-schema#")
-				.setSchemaVersionUri("http://json-schema.org/draft-04/schema#")
-				.setTitle("Example Schema")
-				.setType(JsonType.OBJECT)
-				.addProperties(
-					new SchemaProperty("firstName", JsonType.STRING),
-					new SchemaProperty("lastName", JsonType.STRING),
-					new SchemaProperty("age", JsonType.INTEGER)
-						.setDescription("Age in years")
-						.setMinimum(0)
-				)
-				.addRequired("firstName", "lastName");
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/** GET request handler */
-	@RestMethod(name="GET", path="/")
-	public Schema getSchema() throws Exception {
-		return schema;
-	}
-
-	/**
-	 * PUT request handler.
-	 * Replaces the schema document with the specified content, and then mirrors it as the response.
-	 */
-	@RestMethod(name="PUT", path="/")
-	public Schema setSchema(@Content Schema schema) throws Exception {
-		this.schema = schema;
-		return schema;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/MethodExampleResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/MethodExampleResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/MethodExampleResource.java
deleted file mode 100755
index 176e874..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/MethodExampleResource.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.util.*;
-
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Sample REST resource that shows how to define REST methods and OPTIONS pages
- */
-@RestResource(
-	path="/methodExample",
-	messages="nls/MethodExampleResource",
-	properties={
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.MethodExampleResource)'}")
-	}
-)
-public class MethodExampleResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	/** Example GET request that redirects to our example method */
-	@RestMethod(name="GET", path="/")
-	public Redirect doGetExample() throws Exception {
-		return new Redirect("example1/xxx/123/{0}/xRemainder?p1=123&p2=yyy", UUID.randomUUID());
-	}
-
-	/** Example GET request using annotated attributes */
-	@RestMethod(name="GET", path="/example1/{a1}/{a2}/{a3}/*", rc={200})
-	public String doGetExample1(
-			@Method String method,
-			@Attr String a1,
-			@Attr int a2,
-			@Attr UUID a3,
-			@Param("p1") int p1,
-			@Param("p2") String p2,
-			@Param("p3") UUID p3,
-			@PathRemainder String remainder,
-			@Header("Accept-Language") String lang,
-			@Header("Accept") String accept,
-			@Header("DNT") int doNotTrack
-		) {
-		String output = String.format(
-				"method=%s, a1=%s, a2=%d, a3=%s, remainder=%s, p1=%d, p2=%s, p3=%s, lang=%s, accept=%s, dnt=%d",
-				method, a1, a2, a3, remainder, p1, p2, p3, lang, accept, doNotTrack);
-		return output;
-	}
-
-	/** Example GET request using methods on RestRequest and RestResponse */
-	@RestMethod(name="GET", path="/example2/{a1}/{a2}/{a3}/*", rc={200})
-	public void doGetExample2(RestRequest req, RestResponse res) throws Exception {
-		String method = req.getMethod();
-
-		// Attributes (from URL pattern variables)
-		String a1 = req.getAttribute("a1", String.class);
-		int a2 = req.getAttribute("a2", int.class);
-		UUID a3 = req.getAttribute("a3", UUID.class);
-
-		// Optional GET parameters
-		int p1 = req.getParameter("p1", int.class, 0);
-		String p2 = req.getParameter("p2", String.class);
-		UUID p3 = req.getParameter("p3", UUID.class);
-
-		// URL pattern post-match
-		String remainder = req.getPathRemainder();
-
-		// Headers
-		String lang = req.getHeader("Accept-Language");
-		int doNotTrack = req.getHeader("DNT", int.class);
-
-		// Send back a simple String response
-		String output = String.format(
-				"method=%s, a1=%s, a2=%d, a3=%s, remainder=%s, p1=%d, p2=%s, p3=%s, lang=%s, dnt=%d",
-				method, a1, a2, a3, remainder, p1, p2, p3, lang, doNotTrack);
-		res.setOutput(output);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/PhotosResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/PhotosResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/PhotosResource.java
deleted file mode 100755
index 74573fb..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/PhotosResource.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.awt.image.*;
-import java.io.*;
-import java.net.*;
-import java.net.URI;
-import java.util.*;
-
-import javax.imageio.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Sample resource that allows images to be uploaded and retrieved.
- */
-@RestResource(
-	path="/photos",
-	messages="nls/PhotosResource",
-	properties={
-		@Property(name=HTMLDOC_title, value="Photo REST service"),
-		@Property(name=HTMLDOC_description, value="Use a tool like Poster to upload and retrieve jpeg and png images."),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.PhotosResource)'}"),
-		// Resolve all relative URIs so that they're relative to this servlet!
-		@Property(name=SERIALIZER_relativeUriBase, value="$R{servletURI}"),
-	}
-)
-public class PhotosResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	// Our cache of photos
-	private Map<Integer,Photo> photos = new TreeMap<Integer,Photo>();
-
-	@Override /* Servlet */
-	public void init() {
-		try {
-			// Preload an image.
-			InputStream is = getClass().getResourceAsStream("averycutedog.jpg");
-			BufferedImage image = ImageIO.read(is);
-			Photo photo = new Photo(0, image);
-			photos.put(photo.id, photo);
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/** Our bean class for storing photos */
-	public static class Photo {
-		int id;
-		BufferedImage image;
-
-		Photo(int id, BufferedImage image) {
-			this.id = id;
-			this.image = image;
-		}
-
-		public URI getURI() throws URISyntaxException {
-			return new URI(""+id);
-		}
-	}
-
-	/** GET request handler for list of all photos */
-	@RestMethod(name="GET", path="/")
-	public Collection<Photo> getAllPhotos() throws Exception {
-		return photos.values();
-	}
-
-	/** GET request handler for single photo */
-	@RestMethod(name="GET", path="/{id}", serializers=ImageSerializer.class)
-	public BufferedImage getPhoto(@Attr int id) throws Exception {
-		Photo p = photos.get(id);
-		if (p == null)
-			throw new RestException(SC_NOT_FOUND, "Photo not found");
-		return p.image;
-	}
-
-	/** PUT request handler */
-	@RestMethod(name="PUT", path="/{id}", parsers=ImageParser.class)
-	public String addPhoto(@Attr int id, @Content BufferedImage image) throws Exception {
-		photos.put(id, new Photo(id, image));
-		return "OK";
-	}
-
-	/** POST request handler */
-	@RestMethod(name="POST", path="/", parsers=ImageParser.class)
-	public Photo setPhoto(@Content BufferedImage image) throws Exception {
-		int id = photos.size();
-		Photo p = new Photo(id, image);
-		photos.put(id, p);
-		return p;
-	}
-
-	/** DELETE request handler */
-	@RestMethod(name="DELETE", path="/{id}")
-	public String deletePhoto(@Attr int id) throws Exception {
-		Photo p = photos.remove(id);
-		if (p == null)
-			throw new RestException(SC_NOT_FOUND, "Photo not found");
-		return "OK";
-	}
-
-	/** Serializer for converting images to byte streams */
-	@Produces({"image/png","image/jpeg"})
-	public static class ImageSerializer extends OutputStreamSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			RenderedImage image = (RenderedImage)o;
-			String mediaType = session.getProperties().getString("mediaType");
-			ImageIO.write(image, mediaType.substring(mediaType.indexOf('/')+1), session.getOutputStream());
-		}
-	}
-
-	/** Parser for converting byte streams to images */
-	@Consumes({"image/png","image/jpeg"})
-	public static class ImageParser extends InputStreamParser {
-		@Override /* Parser */
-		@SuppressWarnings("unchecked")
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)ImageIO.read(session.getInputStream());
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java
deleted file mode 100755
index c940ed1..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-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.*;
-
-/**
- * Sample REST resource for echoing HttpServletRequests back to the browser.
- */
-@RestResource(
-	path="/echo",
-	messages="nls/RequestEchoResource",
-	properties={
-		@Property(name=SERIALIZER_maxDepth, value="5"),
-		@Property(name=SERIALIZER_detectRecursions, value="true"),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.RequestEchoResource)'}")
-	},
-	transforms={
-		// Interpret these as their parent classes, not subclasses
-		HttpServletRequest.class, HttpSession.class, ServletContext.class,
-		// Add a special filter for Enumerations
-		EnumerationTransform.class
-	}
-)
-public class RequestEchoResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	/** GET request handler */
-	@RestMethod(name="GET", path="/*", converters={Traversable.class,Queryable.class})
-	public HttpServletRequest doGet(RestRequest req, @Properties ObjectMap properties) {
-		// Set the HtmlDocSerializer title programmatically.
-		// This sets the value for this request only.
-		properties.put(HTMLDOC_title, "Contents of HttpServletRequest object");
-
-		// Just echo the request back as the response.
-		return req;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/RootResources.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/RootResources.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/RootResources.java
deleted file mode 100755
index 9de8bf2..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/RootResources.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.microservice.resources.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.samples.addressbook.*;
-
-/**
- * Sample REST resource showing how to implement a "router" resource page.
- */
-@RestResource(
-	path="/",
-	messages="nls/RootResources",
-	properties={
-		@Property(name=HTMLDOC_links, value="{options:'$R{servletURI}?method=OPTIONS',source:'$R{servletURI}/source?classes=(org.apache.juneau.server.samples.RootResources)'}")
-	},
-	children={
-		HelloWorldResource.class,
-		MethodExampleResource.class,
-		RequestEchoResource.class,
-		TempDirResource.class,
-		AddressBookResource.class,
-		SampleRemoteableServlet.class,
-		PhotosResource.class,
-		AtomFeedResource.class,
-		JsonSchemaResource.class,
-		SqlQueryResource.class,
-		TumblrParserResource.class,
-		CodeFormatterResource.class,
-		UrlEncodedFormResource.class,
-		SourceResource.class,
-		ConfigResource.class,
-		LogsResource.class,
-		DockerRegistryResource.class,
-		ShutdownResource.class
-	}
-)
-public class RootResources extends ResourceGroup {
-	private static final long serialVersionUID = 1L;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SampleRemoteableServlet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SampleRemoteableServlet.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SampleRemoteableServlet.java
deleted file mode 100755
index 2f62f11..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SampleRemoteableServlet.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-import static org.apache.juneau.server.RestServletContext.*;
-
-import java.util.*;
-
-import org.apache.juneau.samples.addressbook.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.remoteable.*;
-
-/**
- * Class showing the functionality of the RemoteableServlet class.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@SuppressWarnings("serial")
-@RestResource(
-	path="/remoteable",
-	messages="nls/SampleRemoteableServlet",
-	properties={
-		@Property(name=HTMLDOC_title, value="Remoteable Service Proxy API"),
-		@Property(name=HTMLDOC_description, value="Sample class showing how to use remoteable proxies.  The list below are exposed services that can be retrieved using RestClient.getProxyInterface(Class)."),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.SampleRemoteableServlet)'}"),
-		// Allow us to use method=POST from a browser.
-		@Property(name=REST_allowMethodParam, value="*")
-	},
-	stylesheet="styles/devops.css"
-)
-public class SampleRemoteableServlet extends RemoteableServlet {
-
-	AddressBook addressBook = new AddressBook();
-
-	@Override /* RemoteableServlet */
-	protected Map<Class<?>,Object> getServiceMap() throws Exception {
-		Map<Class<?>,Object> m = new LinkedHashMap<Class<?>,Object>();
-
-		// In this simplified example, we expose the same POJO service under two different interfaces.
-		// One is IAddressBook which only exposes methods defined on that interface, and
-		// the other is AddressBook itself which exposes all methods defined on the class itself.
-		m.put(IAddressBook.class, addressBook);
-		m.put(AddressBook.class, addressBook);
-		return m;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SourceResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SourceResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SourceResource.java
deleted file mode 100755
index 2ea08aa..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SourceResource.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.html.annotation.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Servlet for viewing source code on classes whose Java files are present on the classpath.
- * <p>
- * This class is by no means perfect but is pretty much the best you can get using only regular expression matching.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@SuppressWarnings("serial")
-@RestResource(
-	path="/source",
-	messages="nls/SourceResource",
-	properties={
-		@Property(name=HTMLDOC_title, value="Source code viewer"),
-		@Property(name=HTMLDOC_cssImports, value="$R{servletURI}/htdocs/code-highlighting.css"),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.SourceResource)'}"),
-	}
-)
-public class SourceResource extends Resource {
-
-	/** View source on the specified classes. */
-	@RestMethod(name="GET", path="/")
-	public Object getSource(@Param("classes") String[] classes) throws Exception {
-		if (classes == null)
-			return "Specify classes using ?classes=(class1,class2,....) attribute";
-		List<Object> l = new LinkedList<Object>();
-		for (String c : classes) {
-			try {
-				l.add(new Source(Class.forName(c)));
-			} catch (ClassNotFoundException e) {
-				l.add("Class " + c + " not found");
-			} catch (Exception e) {
-				l.add(e.getLocalizedMessage());
-			}
-		}
-		return l;
-	}
-
-	/**
-	 * POJO that allows us to serialize HTML directly to the output.
-	 */
-	@Html(asPlainText=true)
-	public static class Source {
-		private Class<?> c;
-		private Source(Class<?> c) {
-			this.c = c;
-		}
-		@Override /* Object */
-		public String toString() {
-			String filename = c.getSimpleName() + ".java";
-			InputStream is = c.getResourceAsStream('/' + c.getPackage().getName().replace('.','/') + '/' + filename);
-			if (is == null)
-				return "Source for class " + c.getName() + " not found";
-			StringBuilder sb = new StringBuilder();
-			try {
-					sb.append("<h3>").append(c.getSimpleName()).append(".java").append("</h3>");
-					sb.append("<p class='bcode'>");
-					sb.append(highlight(IOUtils.read(is), "java"));
-					sb.append("</p>");
-			} catch (Exception e) {
-				return e.getLocalizedMessage();
-			}
-			return sb.toString();
-		}
-	}
-
-	public static String highlight(String code, String lang) throws Exception {
-		if (lang.equalsIgnoreCase("xml")) {
-			code = code.replaceAll("&", "&amp;");
-			code = code.replaceAll("<", "&lt;");
-			code = code.replaceAll(">", "&gt;");
-			code = code.replaceAll("(&lt;[^\\s&]+&gt;)", "<xt>$1</xt>");
-			code = code.replaceAll("(&lt;[^\\s&]+)(\\s)", "<xt>$1</xt>$2");
-			code = code.replaceAll("(['\"])(/?&gt;)", "$1<xt>$2</xt>");
-			code = code.replaceAll("([\\S]+)=", "<xa>$1</xa>=");
-			code = code.replaceAll("=(['\"][^'\"]+['\"])", "=<xs>$1</xs>");
-		} else if (lang.equalsIgnoreCase("java")) {
-			code = code.replaceAll("&", "&amp;");
-			code = code.replaceAll("<", "&lt;");
-			code = code.replaceAll(">", "&gt;");
-			code = code.replaceAll("(?s)(\\/\\*\\*.*?\\*\\/)", "<jd>$1</jd>"); // javadoc comments
-			code = code.replaceAll("(@\\w+)", "<ja>$1</ja>"); // annotations
-			code = code.replaceAll("(?s)(?!\\/)(\\/\\*.*?\\*\\/)", "<jc>$1</jc>"); // C style comments
-			code = code.replaceAll("(?m)(\\/\\/.*)", "<jc>$1</jc>"); // C++ style comments
-			code = code.replaceAll("(?m)('[^'\n]*'|\"[^\"\n]*\")", "<js>$1</js>"); // quotes
-			code = code.replaceAll("(?<!@)(import|package|boolean|byte|char|double|float|final|static|transient|synchronized|private|protected|public|int|long|short|abstract|class|interface|extends|implements|null|true|false|void|break|case|catch|continue|default|do|else|finally|for|goto|if|instanceof|native|new|return|super|switch|this|threadsafe|throws|throw|try|while)(?=\\W)", "<jk>$1</jk>"); // quotes
-			code = code.replaceAll("<\\/jk>(\\s+)<jk>", "$1"); // quotes
-		}
-		return code;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SqlQueryResource.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SqlQueryResource.html b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SqlQueryResource.html
deleted file mode 100755
index 4235d94..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SqlQueryResource.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-	<style type='text/css'>
-		@import '$R{servletURI}/style.css';
-	</style>
-	<script>
-		// Quick and dirty function to allow tabs in textarea.
-		function checkTab(e) {
-		    if (e.keyCode == 9) {
-			    var t = e.target;
-			    var ss = t.selectionStart, se = t.selectionEnd;
-	            t.value = t.value.slice(0,ss).concat('\t').concat(t.value.slice(ss,t.value.length));
-		        e.preventDefault();
-		    }
-		}	
-		// Load results from IFrame into this document.
-		function loadResults(b) {
-			var doc = b.contentDocument || b.contentWindow.document;
-			var data = doc.getElementById('data') || doc.getElementsByTagName('body')[0];
-			document.getElementById('results').innerHTML = data.innerHTML;
-		}
-	</script>
-</head>
-<body>
-	<h3 class='title'>SQL Query API</h3>
-	<div class='data'>
-		<form action='sqlQuery' method='POST' target='buf'>
-			<table>
-				<tr>
-					<th>Position (1-10000):</th>
-					<td><input name='pos' type='number' value='1'></td>
-					<th>Limit (1-10000):</th>
-					<td><input name='limit' type='number' value='100'></td>
-					<td><button type='submit'>Submit</button><button type='reset'>Reset</button></td>
-				</tr>
-				<tr>
-					<td colspan="5">
-						<textarea name='sql' style='width:100%;height:200px;font-family:Courier;font-size:9pt;' onkeydown='checkTab(event)'></textarea>
-					</td>	
-				</tr>
-			</table>			 
-		</form>
-		<br>
-		<div id='results'>
-		</div>
-	</div>
-	<iframe name='buf' style='display:none' onload="parent.loadResults(this)"></iframe>
-</body>
-</html>
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SqlQueryResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SqlQueryResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SqlQueryResource.java
deleted file mode 100755
index 586a233..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/SqlQueryResource.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.io.*;
-import java.sql.*;
-import java.util.*;
-
-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.*;
-
-/**
- * Sample resource that shows how Juneau can serialize ResultSets.
- */
-@RestResource(
-	path="/sqlQuery",
-	messages="nls/SqlQueryResource",
-	properties={
-		@Property(name=HTMLDOC_title, value="SQL query service"),
-		@Property(name=HTMLDOC_description, value="Executes queries against the local derby '$C{SqlQueryResource/connectionUrl}' database"),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.SqlQueryResource)'}"),
-	}
-)
-public class SqlQueryResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	private ConfigFile cf = getConfig();
-
-	private String driver = cf.getString("SqlQueryResource/driver");
-	private String connectionUrl = cf.getString("SqlQueryResource/connectionUrl");
-	private boolean
-		allowUpdates = cf.getBoolean("SqlQueryResource/allowUpdates", false),
-		allowTempUpdates = cf.getBoolean("SqlQueryResource/allowTempUpdates", false),
-		includeRowNums = cf.getBoolean("SqlQueryResource/includeRowNums", false);
-
-	@Override /* Servlet */
-	public void init() {
-		try {
-			Class.forName(driver).newInstance();
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/** GET request handler - Display the query entry page. */
-	@RestMethod(name="GET", path="/")
-	public ReaderResource doGet(RestRequest req) throws IOException {
-		return req.getReaderResource("SqlQueryResource.html", true);
-	}
-
-	/** POST request handler - Execute the query. */
-	@RestMethod(name="POST", path="/")
-	public List<Object> doPost(@Content PostInput in) throws Exception {
-
-		List<Object> results = new LinkedList<Object>();
-
-		// Don't try to submit empty input.
-		if (StringUtils.isEmpty(in.sql))
-			return results;
-
-		if (in.pos < 1 || in.pos > 10000)
-			throw new RestException(SC_BAD_REQUEST, "Invalid value for position.  Must be between 1-10000");
-		if (in.limit < 1 || in.limit > 10000)
-			throw new RestException(SC_BAD_REQUEST, "Invalid value for limit.  Must be between 1-10000");
-
-		// Create a connection and statement.
-		// If these fais, let the exception filter up as a 500 error.
-		Connection c = DriverManager.getConnection(connectionUrl);
-		c.setAutoCommit(false);
-		Statement st = c.createStatement();
-		String sql = null;
-
-		try {
-			for (String s : in.sql.split(";")) {
-				sql = s.trim();
-				if (! sql.isEmpty()) {
-					Object o = null;
-					if (allowUpdates || (allowTempUpdates && ! sql.matches("(?:i)commit.*"))) {
-						if (st.execute(sql)) {
-							ResultSet rs = st.getResultSet();
-							o = new ResultSetList(rs, in.pos, in.limit, includeRowNums);
-						} else {
-							o = st.getUpdateCount();
-						}
-					} else {
-						ResultSet rs = st.executeQuery(sql);
-						o = new ResultSetList(rs, in.pos, in.limit, includeRowNums);
-					}
-					results.add(o);
-				}
-			}
-			if (allowUpdates)
-				c.commit();
-			else if (allowTempUpdates)
-				c.rollback();
-		} catch (SQLException e) {
-			c.rollback();
-			throw new RestException(SC_BAD_REQUEST, "Invalid query:  {0}", sql).initCause(e);
-		} finally {
-			c.close();
-		}
-
-		return results;
-	}
-
-	/** The parsed form post */
-	public static class PostInput {
-		public String sql;
-		public int pos = 1, limit = 100;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TempDirResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TempDirResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TempDirResource.java
deleted file mode 100755
index fc99d0b..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TempDirResource.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.io.*;
-
-import org.apache.commons.fileupload.*;
-import org.apache.commons.fileupload.servlet.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Sample resource that extends {@link DirectoryResource} to open up the temp directory as a REST resource.
- */
-@RestResource(
-	path="/tempDir",
-	messages="nls/TempDirResource",
-	properties={
-		@Property(name="rootDir", value="$S{java.io.tmpdir}"),
-		@Property(name="allowViews", value="true"),
-		@Property(name="allowDeletes", value="true"),
-		@Property(name="allowPuts", value="false"),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS',upload:'upload',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.TempDirResource,org.apache.juneau.server.samples.DirectoryResource)'}"),
-	},
-	stylesheet="styles/devops.css"
-)
-public class TempDirResource extends DirectoryResource {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * [GET /upload] - Display the form entry page for uploading a file to the temp directory.
-	 */
-	@RestMethod(name="GET", path="/upload")
-	public ReaderResource getUploadPage(RestRequest req) throws IOException {
-		return req.getReaderResource("TempDirUploadPage.html", true);
-	}
-
-	/**
-	 * [POST /upload] - Upload a file as a multipart form post.
-	 * Shows how to use the Apache Commons ServletFileUpload class for handling multi-part form posts.
-	 */
-	@RestMethod(name="POST", path="/upload", matchers=TempDirResource.MultipartFormDataMatcher.class)
-	public Redirect uploadFile(RestRequest req) throws Exception {
-		ServletFileUpload upload = new ServletFileUpload();
-		FileItemIterator iter = upload.getItemIterator(req);
-		while (iter.hasNext()) {
-			FileItemStream item = iter.next();
-			if (item.getFieldName().equals("contents")) { //$NON-NLS-1$
-				File f = new File(getRootDir(), item.getName());
-				IOPipe.create(item.openStream(), new FileOutputStream(f)).closeOut().run();
-			}
-		}
-		return new Redirect(); // Redirect to the servlet root.
-	}
-
-	/** Causes a 404 if POST isn't multipart/form-data */
-	public static class MultipartFormDataMatcher extends RestMatcher {
-		@Override /* RestMatcher */
-		public boolean matches(RestRequest req) {
-			String contentType = req.getContentType();
-			return contentType != null && contentType.startsWith("multipart/form-data"); //$NON-NLS-1$
-		}
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TempDirUploadPage.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TempDirUploadPage.html b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TempDirUploadPage.html
deleted file mode 100755
index 6410bdf..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TempDirUploadPage.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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">$R{servletDescription}</h5>
-	<div class='data'>
-		<form id='form' action='$R{servletURI}/upload' method='POST' target='buff' enctype="multipart/form-data">
-		<input name="contents" type="file"><button type="submit">Submit</button>
-	</form>
-	</div>
-</body>
-</html>
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TumblrParserResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TumblrParserResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TumblrParserResource.java
deleted file mode 100755
index 414a164..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/TumblrParserResource.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.lang.Object;
-
-import org.apache.juneau.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.dto.Link;
-import org.apache.juneau.html.dto.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.annotation.*;
-
-@RestResource(
-	path="/tumblrParser",
-	messages="nls/TumblrParserResource",
-	properties={
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.TumblrParserResource)'}"),
-		@Property(name=HTMLDOC_title, value="Tumblr parser service"),
-		@Property(name=HTMLDOC_description, value="Specify a URL to a Tumblr blog and parse the results.")
-	}
-)
-public class TumblrParserResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	@RestMethod(name="GET", path="/")
-	public String getInstructions() throws Exception {
-		return "Append the Tumblr blog name to the URL above (e.g. /juneau/sample/tumblrParser/mytumblrblog)";
-	}
-
-	@RestMethod(name="GET", path="/{blogName}")
-	public ObjectList parseBlog(@Attr String blogName) throws Exception {
-		ObjectList l = new ObjectList();
-		RestClient rc = new RestClient(JsonSerializer.class, JsonParser.class);
-		try {
-			String site = "http://" + blogName + ".tumblr.com/api/read/json";
-			ObjectMap m = rc.doGet(site).getResponse(ObjectMap.class);
-			int postsTotal = m.getInt("posts-total");
-			for (int i = 0; i < postsTotal; i += 20) {
-				m = rc.doGet(site + "?start=" + i + "&num=20&filter=text").getResponse(ObjectMap.class);
-				ObjectList ol = m.getObjectList("posts");
-				for (int j = 0; j < ol.size(); j++) {
-					ObjectMap om = ol.getObjectMap(j);
-					String type = om.getString("type");
-					Entry e = new Entry();
-					e.date = om.getString("date");
-					if (type.equals("link"))
-						e.entry = new Link(om.getString("link-text"), om.getString("link-url"));
-					else if (type.equals("audio"))
-						e.entry = new ObjectMap().append("type","audio").append("audio-caption", om.getString("audio-caption"));
-					else if (type.equals("video"))
-						e.entry = new ObjectMap().append("type","video").append("video-caption", om.getString("video-caption"));
-					else if (type.equals("quote"))
-						e.entry = new ObjectMap().append("type","quote").append("quote-source", om.getString("quote-source")).append("quote-text", om.getString("quote-text"));
-					else if (type.equals("regular"))
-						e.entry = om.getString("regular-body");
-					else if (type.equals("photo"))
-						e.entry = new Img(om.getString("photo-url-250"));
-					else
-						e.entry = new ObjectMap().append("type", type);
-					l.add(e);
-				}
-			}
-		} finally {
-			rc.closeQuietly();
-		}
-		return l;
-	}
-
-	public static class Entry {
-		public String date;
-		public Object entry;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedForm.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedForm.html b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedForm.html
deleted file mode 100755
index c530764..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedForm.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!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>
-	<script type="text/javascript">
-		// Load results from IFrame into this document.
-		function loadResults(buff) {
-			var doc = buff.contentDocument || buff.contentWindow.document;
-			var buffBody = doc.getElementById('data');
-			document.getElementById('results').innerHTML = buffBody.innerHTML;
-		}
-	</script>
-</head>
-<body>
-	<h3 class='title'>$R{servletLabel}</h3>
-	<h5 class="description">$R{servletDescription}</h5>
-	<div class='data'>
-		<form id='form' action='$R{servletURI}' method='POST' target='buff'>
-			<table>
-				<tr>
-					<th>$L{aString}</th>
-					<td><input name="aString" type="text"></td>
-				</tr>
-				<tr>
-					<th>$L{aNumber}</th>
-					<td><input name="aNumber" type="number"></td>
-				</tr>
-				<tr>
-					<th>$L{aDate}</th>
-					<td><input name="aDate" type="datetime"> (ISO8601, e.g. "<code>2001-07-04T15:30:45Z</code>")</td>
-				</tr>
-				<tr>
-					<td colspan='2' align='right'><button type="submit">$L{submit}</button></td>
-				</tr>
-			</table>
-		</form>
-		<br>
-		<div id='results'>
-		</div>
-	</div>
-	<iframe name='buff' style='display:none' onload="parent.loadResults(this)"></iframe>
-</body>
-</html>
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedFormResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedFormResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedFormResource.java
deleted file mode 100755
index e30cb7a..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedFormResource.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import java.io.*;
-import java.util.*;
-
-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.transforms.*;
-
-/**
- * Sample REST resource for loading URL-Encoded form posts into POJOs.
- */
-@RestResource(
-	path="/urlEncodedForm",
-	messages="nls/UrlEncodedFormResource"
-)
-public class UrlEncodedFormResource extends Resource {
-	private static final long serialVersionUID = 1L;
-
-	/** GET request handler */
-	@RestMethod(name="GET", path="/")
-	public ReaderResource doGet(RestRequest req) throws IOException {
-		return req.getReaderResource("UrlEncodedForm.html", true);
-	}
-
-	/** POST request handler */
-	@RestMethod(name="POST", path="/")
-	public Object doPost(@Content FormInputBean input) throws Exception {
-		// Just mirror back the request
-		return input;
-	}
-
-	public static class FormInputBean {
-		public String aString;
-		public int aNumber;
-		@BeanProperty(transform=CalendarTransform.ISO8601DT.class)
-		public Calendar aDate;
-	}
-}


[26/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServlet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServlet.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServlet.java
deleted file mode 100755
index 9b5bbb8..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServlet.java
+++ /dev/null
@@ -1,2795 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static java.lang.String.*;
-import static java.util.logging.Level.*;
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.internal.ArrayUtils.*;
-import static org.apache.juneau.internal.ClassUtils.*;
-import static org.apache.juneau.serializer.SerializerContext.*;
-import static org.apache.juneau.server.RestServlet.ParamType.*;
-import static org.apache.juneau.server.RestServletContext.*;
-import static org.apache.juneau.server.annotation.Inherit.*;
-
-import java.io.*;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.*;
-import java.lang.reflect.Method;
-import java.nio.charset.*;
-import java.text.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.logging.*;
-
-import javax.activation.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.encoders.Encoder;
-import org.apache.juneau.ini.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.parser.ParseException;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.annotation.Properties;
-import org.apache.juneau.server.annotation.Var;
-import org.apache.juneau.server.labels.*;
-import org.apache.juneau.server.response.*;
-import org.apache.juneau.server.vars.*;
-import org.apache.juneau.svl.*;
-import org.apache.juneau.svl.vars.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Servlet implementation of a REST resource.
- * <p>
- * 	Refer to <a class='doclink' href='package-summary.html#TOC'>REST Servlet API</a> for information about using this class.
- * </p>
- *
- * @author jbognar
- */
-@SuppressWarnings({"rawtypes","hiding"})
-public abstract class RestServlet extends HttpServlet {
-
-	private static final long serialVersionUID = 1L;
-
-	static final SortedMap<String,Charset> availableCharsets = new TreeMap<String,Charset>(String.CASE_INSENSITIVE_ORDER);
-	static {
-		availableCharsets.putAll(Charset.availableCharsets());
-	}
-	// Map of HTTP method names (e.g. GET/PUT/...) to ResourceMethod implementations for it.  Populated during resource initialization.
-	private final Map<String,ResourceMethod> restMethods = new LinkedHashMap<String,ResourceMethod>();
-
-	// The list of all @RestMethod annotated methods in the order they appear in the class.
-	private final Map<String,MethodMeta> javaRestMethods = new LinkedHashMap<String,MethodMeta>();
-
-	// Child resources of this resource defined through getX() methods on this class.
-	private final Map<String,RestServlet> childResources = new LinkedHashMap<String,RestServlet>();
-
-	private RestServlet parentResource;
-
-	private ServletConfig servletConfig;
-	private volatile boolean isInitialized = false;
-	private Exception initException;                       // Exception thrown by init() method (cached so it can be thrown on all subsequent requests).
-	private JuneauLogger logger;
-	private MessageBundle msgs;                           // NLS messages.
-
-	private Map<Integer,Integer> stackTraceHashes = new HashMap<Integer,Integer>();
-	private String path;
-
-	private LinkedHashMap<Class<?>,RestResource> restResourceAnnotationsChildFirst, restResourceAnnotationsParentFirst;
-
-	private UrlEncodingSerializer urlEncodingSerializer;
-	private UrlEncodingParser urlEncodingParser;
-	private ObjectMap properties;
-	private RestGuard[] guards;
-	private Class<?>[] transforms;
-	private RestConverter[] converters;
-	private TreeMap<String,String> defaultRequestHeaders;
-	private Map<String,Object> defaultResponseHeaders;
-	private EncoderGroup encoders;
-	private SerializerGroup serializers;
-	private ParserGroup parsers;
-	private MimetypesFileTypeMap mimetypesFileTypeMap;
-	private BeanContext beanContext;
-	private VarResolver varResolver;
-	private String label="", description="";
-	private Map<String,byte[]> resourceStreams = new ConcurrentHashMap<String,byte[]>();
-	private Map<String,String> resourceStrings = new ConcurrentHashMap<String,String>();
-	private ConfigFile configFile, resolvingConfigFile;
-	private String configPath;
-	private StreamResource styleSheet, favIcon;
-	private Map<String,String> staticFilesMap;
-	private String[] staticFilesPrefixes;
-	private ResponseHandler[] responseHandlers;
-	private String clientVersionHeader = "";
-
-	RestServletContext context;
-
-	// In-memory cache of images and stylesheets in the org.apache.juneau.server.htdocs package.
-	private Map<String,StreamResource> staticFilesCache = new ConcurrentHashMap<String,StreamResource>();
-
-	// The following code block is executed before the constructor is called to
-	// allow the config file to be accessed during object creation.
-	// e.g. private String myConfig = getConfig().getString("myConfig");
-	{
-		varResolver = createVarResolver();
-
-		// @RestResource annotations from bottom to top.
-		restResourceAnnotationsChildFirst = ReflectionUtils.findAnnotationsMap(RestResource.class, getClass());
-
-		// @RestResource annotations from top to bottom.
-		restResourceAnnotationsParentFirst = CollectionUtils.reverse(restResourceAnnotationsChildFirst);
-
-		for (RestResource r : restResourceAnnotationsParentFirst.values()) {
-			if (! r.config().isEmpty())
-				configPath = r.config();
-		}
-
-		try {
-			configFile = createConfigFile();
-			varResolver.setContextObject(ConfigFileVar.SESSION_config, configFile);
-		} catch (IOException e) {
-			this.initException = e;
-		}
-	}
-
-	@Override /* Servlet */
-	public synchronized void init(ServletConfig servletConfig) throws ServletException {
-		try {
-			log(FINE, "Servlet {0} init called.", getClass().getName());
-			this.servletConfig = servletConfig;
-
-			if (isInitialized)
-				return;
-
-			super.init(servletConfig);
-
-			// Find resource resource bundle location.
-			for (Map.Entry<Class<?>,RestResource> e : restResourceAnnotationsChildFirst.entrySet()) {
-				Class<?> c = e.getKey();
-				RestResource r = e.getValue();
-				if (! r.messages().isEmpty()) {
-					if (msgs == null)
-						msgs = new MessageBundle(c, r.messages());
-					else
-						msgs.addSearchPath(c, r.messages());
-				}
-				if (label.isEmpty())
-					label = r.label();
-				if (description.isEmpty())
-					description = r.description();
-				if (clientVersionHeader.isEmpty())
-					clientVersionHeader = r.clientVersionHeader();
-			}
-			if (msgs == null)
-				msgs = new MessageBundle(this.getClass(), "");
-			if (clientVersionHeader.isEmpty())
-				clientVersionHeader = "X-Client-Version";
-
-			styleSheet = createStyleSheet();
-			favIcon = createFavIcon();
-			staticFilesMap = Collections.unmodifiableMap(createStaticFilesMap());
-			staticFilesPrefixes = staticFilesMap.keySet().toArray(new String[0]);
-
-			properties = createProperties();
-			transforms = createTransforms();
-			context = ContextFactory.create().setProperties(properties).getContext(RestServletContext.class);
-			beanContext = createBeanContext(properties, transforms);
-			urlEncodingSerializer = createUrlEncodingSerializer(properties, transforms).lock();
-			urlEncodingParser = createUrlEncodingParser(properties, transforms).lock();
-			serializers = createSerializers(properties, transforms).lock();
-			parsers = createParsers(properties, transforms).lock();
-			converters = createConverters(properties);
-			encoders = createEncoders(properties);
-			guards = createGuards(properties);
-			mimetypesFileTypeMap = createMimetypesFileTypeMap(properties);
-			defaultRequestHeaders = new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER);
-			defaultRequestHeaders.putAll(createDefaultRequestHeaders(properties));
-			defaultResponseHeaders = createDefaultResponseHeaders(properties);
-			responseHandlers = createResponseHandlers(properties);
-
-			// Discover the @RestMethod methods available on the resource.
-			List<String> methodsFound = new LinkedList<String>();   // Temporary to help debug transient duplicate method issue.
-			for (java.lang.reflect.Method method : this.getClass().getMethods()) {
-				if (method.isAnnotationPresent(RestMethod.class)) {
-					RestMethod a = method.getAnnotation(RestMethod.class);
-					methodsFound.add(method.getName() + "," + a.name() + "," + a.path());
-					try {
-						if (! Modifier.isPublic(method.getModifiers()))
-							throw new RestServletException("@RestMethod method {0}.{1} must be defined as public.", this.getClass().getName(), method.getName());
-
-						MethodMeta sm = new MethodMeta(method);
-						javaRestMethods.put(method.getName(), sm);
-						ResourceMethod rm = restMethods.get(sm.httpMethod);
-						if (rm == null)
-							restMethods.put(sm.httpMethod, sm);
-						else if (rm instanceof MultiMethod)
-							((MultiMethod)rm).addSimpleMethod(sm);
-						else
-							restMethods.put(sm.httpMethod, new MultiMethod((MethodMeta)rm, sm));
-					} catch (RestServletException e) {
-						throw new RestServletException("Problem occurred trying to serialize methods on class {0}, methods={1}", this.getClass().getName(), JsonSerializer.DEFAULT_LAX.serialize(methodsFound)).initCause(e);
-					}
-				}
-			}
-
-			for (ResourceMethod m : restMethods.values())
-				m.complete();
-
-			// Discover the child resources.
-			childResources.putAll(createChildrenMap());
-
-			for (RestServlet child : childResources.values())
-				child.init(servletConfig);
-
-			varResolver.addVars(
-				LocalizationVar.class,
-				RequestAttrVar.class,
-				RequestParamVar.class,
-				RequestVar.class,
-				SerializedRequestAttrVar.class,
-				SerializedRequestParamVar.class,
-				ServletInitParamVar.class,
-				UrlEncodeVar.class
-			);
-
-		} catch (RestException e) {
-			// Thrown RestExceptions are simply caught and rethrown on subsequent calls to service().
-			initException = e;
-			log(SEVERE, e, "Servlet init error on class ''{0}''", getClass().getName());
-			label = String.valueOf(initException.getLocalizedMessage());
-		} catch (ServletException e) {
-			initException = e;
-			log(SEVERE, e, "Servlet init error on class ''{0}''", getClass().getName());
-			label = String.valueOf(initException.getLocalizedMessage());
-			throw e;
-		} catch (Exception e) {
-			initException = e;
-			log(SEVERE, e, "Servlet init error on class ''{0}''", getClass().getName());
-			label = String.valueOf(initException.getLocalizedMessage());
-			throw new ServletException(e);
-		} catch (Throwable e) {
-			initException = new Exception(e);
-			log(SEVERE, e, "Servlet init error on class ''{0}''", getClass().getName());
-			label = String.valueOf(initException.getLocalizedMessage());
-			throw new ServletException(e);
-		} finally {
-			isInitialized = true;
-		}
-	}
-
-	//--------------------------------------------------------------------------------
-	// Initialization methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Creates the child resources of this resource.
-	 * <p>
-	 * 	Default implementation calls {@link #createChildren()} and uses the {@link RestResource#path() @RestResource.path()} annotation
-	 * 		on each child to identify the subpath for the resource which become the keys in this map.
-	 * 	It then calls the {@link #setParent(RestServlet)} method on the child resource.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override this method to programatically create child resources
-	 * 		without using the {@link RestResource#children() @RestResource.children()} annotation.
-	 * 	When overridding this method, you are responsible for calling {@link #setParent(RestServlet)} on the
-	 * 		child resources.
-	 * </p>
-	 *
-	 * @return The new mutable list of child resource instances.
-	 * @throws Exception If an error occurred during servlet instantiation.
-	 */
-	protected Map<String,RestServlet> createChildrenMap() throws Exception {
-		Map<String,RestServlet> m = new LinkedHashMap<String,RestServlet>();
-		for (RestServlet r : createChildren()) {
-			r.setParent(this);
-			String p = r.findPath();
-			if (p == null)
-				throw new RestServletException("Child resource ''{0}'' does not define a ''@RestResource.path'' attribute.", r.getClass().getName());
-			m.put(p, r);
-		}
-		return m;
-	}
-
-	/**
-	 * Creates instances of child resources for this servlet.
-	 * <p>
-	 * 	Default implementation uses the {@link RestResource#children() @RestResource.children()} annotation to identify and
-	 * 		instantiate children.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override this method to programatically create child resources
-	 * 		without using the {@link RestResource#children() @RestResource.children()} annotation.
-	 * </p>
-	 *
-	 * @return The new mutable list of child resource instances.
-	 * @throws Exception If an error occurred during servlet instantiation.
-	 */
-	protected List<RestServlet> createChildren() throws Exception {
-		List<RestServlet> l = new LinkedList<RestServlet>();
-		for (Class<?> c : getChildClasses()) {
-			if (isParentClass(RestServlet.class, c))
-				l.add((RestServlet)c.newInstance());
-			else
-				l.add(resolveChild(c));
-		}
-		return l;
-	}
-
-	/**
-	 * Programmatic equivalent to the {@link RestResource#children() @RestResource.children()} annotation.
-	 * <p>
-	 * 	Subclasses can override this method to provide customized list of child resources.
-	 * 		(e.g. different children based on values specified in the config file).
-	 * </p>
-	 * <p>
-	 * 	Default implementation simply returns the value from the {@link RestResource#children() @RestResource.children()} annotation.
-	 * </p>
-	 *
-	 * @return The new mutable list of child resource instances.
-	 * @throws Exception If an error occurred during servlet instantiation.
-	 */
-	protected Class<?>[] getChildClasses() throws Exception {
-		List<Class<?>> l = new ArrayList<Class<?>>();
-		List<RestResource> rr = ReflectionUtils.findAnnotations(RestResource.class, getClass());
-		for (RestResource r : rr)
-			l.addAll(Arrays.asList(r.children()));
-		return l.toArray(new Class<?>[l.size()]);
-	}
-
-	/**
-	 * Creates the class-level properties associated with this servlet.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own class-level properties for this servlet, typically
-	 * 		by calling <code><jk>super</jk>.createProperties()</code> and appending to the map.
-	 *	 However, in most cases, the existing set of properties can be added to by overridding {@link #getProperties()}
-	 * 		and appending to the map returned by <code><jk>super</jk>.getProperties()</code>
-	 * </p>
-	 * <p>
-	 * 	By default, the map returned by this method contains the following:
-	 * </p>
-	 * <ul class='spaced-list'>
-	 * 	<li>Servlet-init parameters.
-	 * 	<li>{@link RestResource#properties()} annotations in parent-to-child order.
-	 * 	<li>{@link SerializerContext#SERIALIZER_relativeUriBase} from {@link ServletConfig#getServletContext()}.
-	 * </ul>
-	 *
-	 * @return The resource properties as an {@link ObjectMap}.
-	 */
-	protected ObjectMap createProperties() {
-		ObjectMap m = new ObjectMap();
-
-		ServletContext ctx = servletConfig.getServletContext();
-
-		// Workaround for bug in Jetty that causes context path to always end in "null".
-		String ctxPath = ctx.getContextPath();
-		if (ctxPath.endsWith("null"))
-			ctxPath = ctxPath.substring(0, ctxPath.length()-4);
-		m.put(SERIALIZER_relativeUriBase, ctxPath);
-
-		// Get the initialization parameters.
-		for (Enumeration ep = servletConfig.getInitParameterNames(); ep.hasMoreElements();) {
-			String p = (String)ep.nextElement();
-			String initParam = servletConfig.getInitParameter(p);
-			m.put(p, initParam);
-		}
-
-		// Properties are loaded in parent-to-child order to allow overrides.
-		for (RestResource r : restResourceAnnotationsParentFirst.values())
-			for (Property p : r.properties())
-				m.append(getVarResolver().resolve(p.name()), getVarResolver().resolve(p.value()));
-
-		return m;
-	}
-
-	/**
-	 * Creates the class-level POJO transforms associated with this servlet.
-	 * <p>
-	 * Subclasses can override this method to provide their own class-level POJO transforms for this servlet.
-	 * <p>
-	 * By default, returns the transforms specified through the {@link RestResource#transforms() @RestResource.transforms()} annotation in child-to-parent order.
-	 * 	(i.e. transforms will be applied in child-to-parent order with child annotations overriding parent annotations when
-	 * 	the same transforms are applied).
-	 *
-	 * @return The new set of transforms associated with this servet.
-	 */
-	protected Class<?>[] createTransforms() {
-		List<Class<?>> l = new LinkedList<Class<?>>();
-
-		// Transforms are loaded in parent-to-child order to allow overrides.
-		for (RestResource r : restResourceAnnotationsChildFirst.values())
-			for (Class c : r.transforms())
-				l.add(c);
-
-		return l.toArray(new Class<?>[l.size()]);
-	}
-
-	/**
-	 * Creates the {@link BeanContext} object used for parsing path variables and header values.
-	 * <p>
-	 * Subclasses can override this method to provide their own specialized bean context.
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
-	 * @return The new bean context.
-	 * @throws Exception If bean context not be constructed for any reason.
-	 */
-	protected BeanContext createBeanContext(ObjectMap properties, Class<?>[] transforms) throws Exception {
-		return ContextFactory.create().addTransforms(transforms).setProperties(properties).getBeanContext();
-	}
-
-	/**
-	 * Creates the URL-encoding serializer used for serializing object passed to {@link Redirect}.
-	 * <p>
-	 * Subclasses can override this method to provide their own specialized serializer.
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
-	 * @return The new URL-Encoding serializer.
-	 * @throws Exception If the serializer could not be constructed for any reason.
-	 */
-	protected UrlEncodingSerializer createUrlEncodingSerializer(ObjectMap properties, Class<?>[] transforms) throws Exception {
-		return new UrlEncodingSerializer().setProperties(properties).addTransforms(transforms);
-	}
-
-	/**
-	 * Creates the URL-encoding parser used for parsing URL query parameters.
-	 * <p>
-	 * Subclasses can override this method to provide their own specialized parser.
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
-	 * @return The new URL-Encoding parser.
-	 * @throws Exception If the parser could not be constructed for any reason.
-	 */
-	protected UrlEncodingParser createUrlEncodingParser(ObjectMap properties, Class<?>[] transforms) throws Exception {
-		return new UrlEncodingParser().setProperties(properties).addTransforms(transforms);
-	}
-
-	/**
-	 * Creates the serializer group containing serializers used for serializing output POJOs in HTTP responses.
-	 * <p>
-	 * Subclasses can override this method to provide their own set of serializers for this servlet.
-	 * They can do this by either creating a new {@link SerializerGroup} from scratch, or appending to the
-	 * 	group returned by <code><jk>super</jk>.createSerializers()</code>.
-	 * <p>
-	 * By default, returns the serializers defined through {@link RestResource#serializers() @RestResource.serializers()} on this class
-	 * 	and all parent classes.
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
-	 * @return The group of serializers.
-	 * @throws Exception If serializer group could not be constructed for any reason.
-	 */
-	protected SerializerGroup createSerializers(ObjectMap properties, Class<?>[] transforms) throws Exception {
-		SerializerGroup g = new SerializerGroup();
-
-		// Serializers are loaded in parent-to-child order to allow overrides.
-		for (RestResource r : restResourceAnnotationsParentFirst.values())
-			for (Class<? extends Serializer> c : reverse(r.serializers()))
-				try {
-					g.append(c);
-				} catch (Exception e) {
-					throw new RestServletException("Exception occurred while trying to instantiate Serializer ''{0}''", c.getSimpleName()).initCause(e);
-				}
-
-		g.setProperties(properties);
-		g.addTransforms(transforms);
-		return g;
-	}
-
-	/**
-	 * Creates the parser group containing parsers used for parsing input into POJOs from HTTP requests.
-	 * <p>
-	 * Subclasses can override this method to provide their own set of parsers for this servlet.
-	 * They can do this by either creating a new {@link ParserGroup} from scratch, or appending to the
-	 * 	group returned by <code><jk>super</jk>.createParsers()</code>.
-	 * <p>
-	 * By default, returns the parsers defined through {@link RestResource#parsers() @RestResource.parsers()} on this class
-	 * 	and all parent classes.
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
-	 * @return The group of parsers.
-	 * @throws Exception If parser group could not be constructed for any reason.
-	 */
-	protected ParserGroup createParsers(ObjectMap properties, Class<?>[] transforms) throws Exception {
-		ParserGroup g = new ParserGroup();
-
-		// Parsers are loaded in parent-to-child order to allow overrides.
-		for (RestResource r : restResourceAnnotationsParentFirst.values())
-			for (Class<? extends Parser> p : reverse(r.parsers()))
-				try {
-					g.append(p);
-				} catch (Exception e) {
-					throw new RestServletException("Exception occurred while trying to instantiate Parser ''{0}''", p.getSimpleName()).initCause(e);
-				}
-
-		g.setProperties(properties);
-		g.addTransforms(transforms);
-		return g;
-	}
-
-	/**
-	 * Creates the class-level converters associated with this servlet.
-	 * <p>
-	 * Subclasses can override this method to provide their own class-level converters for this servlet.
-	 * <p>
-	 * By default, returns the converters specified through the {@link RestResource#converters() @RestResource.converters()} annotation in child-to-parent order.
-	 * 	(e.g. converters on children will be called before converters on parents).
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @return The new set of transforms associated with this servet.
-	 * @throws RestServletException
-	 */
-	protected RestConverter[] createConverters(ObjectMap properties) throws RestServletException {
-		List<RestConverter> l = new LinkedList<RestConverter>();
-
-		// Converters are loaded in child-to-parent order.
-		for (RestResource r : restResourceAnnotationsChildFirst.values())
-			for (Class<? extends RestConverter> c : r.converters())
-				try {
-					l.add(c.newInstance());
-				} catch (Exception e) {
-					throw new RestServletException("Exception occurred while trying to instantiate RestConverter ''{0}''", c.getSimpleName()).initCause(e);
-				}
-
-		return l.toArray(new RestConverter[l.size()]);
-	}
-
-	/**
-	 * Creates the {@link EncoderGroup} for this servlet for handling various encoding schemes.
-	 * <p>
-	 * Subclasses can override this method to provide their own encoder group, typically by
-	 * 	appending to the group returned by <code><jk>super</jk>.createEncoders()</code>.
-	 * <p>
-	 * By default, returns a group containing {@link IdentityEncoder#INSTANCE} and all encoders
-	 * 	specified through {@link RestResource#encoders() @RestResource.encoders()} annotations in parent-to-child order.
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @return The new encoder group associated with this servet.
-	 * @throws RestServletException
-	 */
-	protected EncoderGroup createEncoders(ObjectMap properties) throws RestServletException {
-		EncoderGroup g = new EncoderGroup().append(IdentityEncoder.INSTANCE);
-
-		// Encoders are loaded in parent-to-child order to allow overrides.
-		for (RestResource r : restResourceAnnotationsParentFirst.values())
-			for (Class<? extends Encoder> c : reverse(r.encoders()))
-				try {
-					g.append(c);
-				} catch (Exception e) {
-					throw new RestServletException("Exception occurred while trying to instantiate Encoder ''{0}''", c.getSimpleName()).initCause(e);
-				}
-
-		return g;
-	}
-
-	/**
-	 * Creates the class-level guards associated with this servlet.
-	 * <p>
-	 * Subclasses can override this method to provide their own class-level guards for this servlet.
-	 * <p>
-	 * By default, returns the guards specified through the {@link RestResource#guards() @RestResource.guards()} annotation in child-to-parent order.
-	 * 	(i.e. guards on children will be called before guards on parents).
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @return The new set of guards associated with this servet.
-	 * @throws RestServletException
-	 */
-	protected RestGuard[] createGuards(ObjectMap properties) throws RestServletException {
-		List<RestGuard> l = new LinkedList<RestGuard>();
-
-		// Guards are loaded in child-to-parent order.
-		for (RestResource r : restResourceAnnotationsChildFirst.values())
-			for (Class<? extends RestGuard> c : reverse(r.guards()))
-				try {
-					l.add(c.newInstance());
-				} catch (Exception e) {
-					throw new RestServletException("Exception occurred while trying to instantiate RestGuard ''{0}''", c.getSimpleName()).initCause(e);
-				}
-
-		return l.toArray(new RestGuard[l.size()]);
-	}
-
-	/**
-	 * Creates an instance of {@link MimetypesFileTypeMap} that is used to determine
-	 * 	the media types of static files.
-	 * <p>
-	 * Subclasses can override this method to provide their own mappings, or augment the existing
-	 * 	map by appending to <code><jk>super</jk>.createMimetypesFileTypeMap()</code>
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @return A new reusable MIME-types map.
-	 */
-	protected MimetypesFileTypeMap createMimetypesFileTypeMap(ObjectMap properties) {
-		MimetypesFileTypeMap m = new MimetypesFileTypeMap();
-		m.addMimeTypes("text/css css CSS");
-		m.addMimeTypes("text/html html htm HTML");
-		m.addMimeTypes("text/plain txt text TXT");
-		m.addMimeTypes("application/javascript js");
-		m.addMimeTypes("image/png png");
-		m.addMimeTypes("image/gif gif");
-		m.addMimeTypes("application/xml xml XML");
-		m.addMimeTypes("application/json json JSON");
-		return m;
-	}
-
-	/**
-	 * Creates the set of default request headers for this servlet.
-	 * <p>
-	 * Default request headers are default values for when HTTP requests do not specify a header value.
-	 * For example, you can specify a default value for <code>Accept</code> if a request does not specify that header value.
-	 * <p>
-	 * Subclasses can override this method to provide their own class-level default request headers for this servlet.
-	 * <p>
-	 * By default, returns the default request headers specified through the {@link RestResource#defaultRequestHeaders() @RestResource.defaultRequestHeaders()}
-	 * 	annotation in parent-to-child order.
-	 * (e.g. headers defined on children will override the same headers defined on parents).
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @return The new set of default request headers associated with this servet.
-	 * @throws RestServletException
-	 */
-	protected Map<String,String> createDefaultRequestHeaders(ObjectMap properties) throws RestServletException {
-		Map<String,String> m = new HashMap<String,String>();
-
-		// Headers are loaded in parent-to-child order to allow overrides.
-		for (RestResource r : restResourceAnnotationsParentFirst.values()) {
-			for (String s : r.defaultRequestHeaders()) {
-				String[] h = parseHeader(s);
-				if (h == null)
-					throw new RestServletException("Invalid default request header specified: ''{0}''.  Must be in the format: ''Header-Name: header-value''", s);
-				m.put(h[0], h[1]);
-			}
-		}
-
-		return m;
-	}
-
-	/**
-	 * Creates the set of default response headers for this servlet.
-	 * <p>
-	 * Default response headers are headers that will be appended to all responses if those headers have not already been
-	 * 	set on the response object.
-	 * <p>
-	 * Subclasses can override this method to provide their own class-level default response headers for this servlet.
-	 * <p>
-	 * By default, returns the default response headers specified through the {@link RestResource#defaultResponseHeaders() @RestResource.defaultResponseHeaders()}
-	 * 	annotation in parent-to-child order.
-	 * (e.g. headers defined on children will override the same headers defined on parents).
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @return The new set of default response headers associated with this servet.
-	 * @throws RestServletException
-	 */
-	protected Map<String,Object> createDefaultResponseHeaders(ObjectMap properties) throws RestServletException {
-		Map<String,Object> m = new LinkedHashMap<String,Object>();
-
-		// Headers are loaded in parent-to-child order to allow overrides.
-		for (RestResource r : restResourceAnnotationsParentFirst.values()) {
-			for (String s : r.defaultResponseHeaders()) {
-				String[] h = parseHeader(s);
-				if (h == null)
-					throw new RestServletException("Invalid default response header specified: ''{0}''.  Must be in the format: ''Header-Name: header-value''", s);
-				m.put(h[0], h[1]);
-			}
-		}
-
-		return m;
-	}
-
-	/**
-	 * Creates the class-level response handlers associated with this servlet.
-	 * <p>
-	 * Subclasses can override this method to provide their own class-level response handlers for this servlet.
-	 * <p>
-	 * By default, returns the handlers specified through the {@link RestResource#responseHandlers() @RestResource.responseHandlers()}
-	 * 	annotation in parent-to-child order.
-	 * (e.g. handlers on children will be called before handlers on parents).
-	 *
-	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @return The new set of response handlers associated with this servet.
-	 * @throws RestException
-	 */
-	protected ResponseHandler[] createResponseHandlers(ObjectMap properties) throws RestException {
-		List<ResponseHandler> l = new LinkedList<ResponseHandler>();
-
-		// Loaded in parent-to-child order to allow overrides.
-		for (RestResource r : restResourceAnnotationsParentFirst.values())
-			for (Class<? extends ResponseHandler> c : r.responseHandlers())
-				try {
-					l.add(c.newInstance());
-				} catch (Exception e) {
-					throw new RestException(SC_INTERNAL_SERVER_ERROR, e);
-				}
-
-		// Add the default handlers.
-		l.add(new StreamableHandler());
-		l.add(new WritableHandler());
-		l.add(new ReaderHandler());
-		l.add(new InputStreamHandler());
-		l.add(new RedirectHandler());
-		l.add(new DefaultHandler());
-
-		return l.toArray(new ResponseHandler[l.size()]);
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Other methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Sets the parent of this resource.
-	 *
-	 * @param parent The parent of this resource.
-	 */
-	protected void setParent(RestServlet parent) {
-		this.parentResource = parent;
-	}
-
-	/**
-	 * Returns the parent of this resource.
-	 *
-	 * @return The parent of this resource, or <jk>null</jk> if resource has no parent.
-	 */
-	public RestServlet getParent() {
-		return this.parentResource;
-	}
-
-	private String[] parseHeader(String s) {
-		int i = s.indexOf(':');
-		if (i == -1)
-			return null;
-		String name = s.substring(0, i).trim().toLowerCase(Locale.ENGLISH);
-		String val = s.substring(i+1).trim();
-		return new String[]{name,val};
-	}
-
-	/**
-	 * Creates a {@link RestRequest} object based on the specified incoming {@link HttpServletRequest} object.
-	 * <p>
-	 * 	Subclasses may choose to override this method to provide a specialized request object.
-	 * </p>
-	 *
-	 * @param req The request object from the {@link #service(HttpServletRequest, HttpServletResponse)} method.
-	 * @return The wrapped request object.
-	 * @throws ServletException If any errors occur trying to interpret the request.
-	 */
-	protected RestRequest createRequest(HttpServletRequest req) throws ServletException {
-		return new RestRequest(this, req);
-	}
-
-	/**
-	 * Creates a {@link RestResponse} object based on the specified incoming {@link HttpServletResponse} object
-	 * 	 and the request returned by {@link #createRequest(HttpServletRequest)}.
-	 * <p>
-	 * 	Subclasses may choose to override this method to provide a specialized response object.
-	 * </p>
-	 *
-	 * @param req The request object returned by {@link #createRequest(HttpServletRequest)}.
-	 * @param res The response object from the {@link #service(HttpServletRequest, HttpServletResponse)} method.
-	 * @return The wrapped response object.
-	 * @throws ServletException If any erros occur trying to interpret the request or response.
-	 */
-	protected RestResponse createResponse(RestRequest req, HttpServletResponse res) throws ServletException {
-		return new RestResponse(this, req, res);
-	}
-
-	/**
-	 * Returns whether this resource class can provide an OPTIONS page.
-	 * <p>
-	 * 	By default, returns <jk>false</jk>.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override this method to cause the <code>options</code> link to show up in the HTML serialized output.
-	 * </p>
-	 *
-	 * @return <jk>true</jk> if this resource has implemented a {@code getOptions()} method.
-	 */
-	public boolean hasOptionsPage() {
-		return false;
-	}
-
-	/**
-	 * Specify a class-level property.
-	 * <p>
-	 * 	Typically, properties in {@link RestServletContext} can be set in the {@link Servlet#init(ServletConfig)} method.
-	 * </p>
-	 *
-	 * @param key The property name.
-	 * @param value The property value.
-	 * @return This object (for method chaining).
-	 */
-	public synchronized RestServlet setProperty(String key, Object value) {
-		getProperties().put(key, value);
-		return this;
-	}
-
-	/**
-	 * The main service method.
-	 * <p>
-	 * 	Subclasses can optionally override this method if they want to tailor the behavior of requests.
-	 * </p>
-	 */
-	@Override /* Servlet */
-	public void service(HttpServletRequest r1, HttpServletResponse r2) throws ServletException, IOException {
-
-		log(FINE, "HTTP: {0} {1}", r1.getMethod(), r1.getRequestURI());
-		long startTime = System.currentTimeMillis();
-
-		try {
-
-			if (initException != null) {
-				if (initException instanceof RestException)
-					throw (RestException)initException;
-				throw new RestException(SC_INTERNAL_SERVER_ERROR, initException);
-			}
-
-			if (! isInitialized)
-				throw new RestException(SC_INTERNAL_SERVER_ERROR, "Servlet has not been initialized");
-
-			String pathInfo = RestUtils.getPathInfoUndecoded(r1);  // Can't use r1.getPathInfo() because we don't want '%2F' resolved.
-
-			// If this resource has child resources, try to recursively call them.
-			if (pathInfo != null && (! childResources.isEmpty()) && (! pathInfo.equals("/"))) {
-				int i = pathInfo.indexOf('/', 1);
-				String pathInfoPart = i == -1 ? pathInfo.substring(1) : pathInfo.substring(1, i);
-				RestServlet childResource = childResources.get(pathInfoPart);
-				if (childResource != null) {
-					final String pathInfoRemainder = (i == -1 ? null : pathInfo.substring(i));
-					final String servletPath = r1.getServletPath() + "/" + pathInfoPart;
-					final HttpServletRequest childRequest = new HttpServletRequestWrapper(r1) {
-						@Override /* ServletRequest */
-						public String getPathInfo() {
-							return RestUtils.decode(pathInfoRemainder);
-						}
-						@Override /* ServletRequest */
-						public String getServletPath() {
-							return servletPath;
-						}
-					};
-					childResource.service(childRequest, r2);
-					return;
-				}
-			}
-
-			RestRequest req = createRequest(r1);
-			RestResponse res = createResponse(req, r2);
-			String method = req.getMethod();
-			String methodUC = method.toUpperCase(Locale.ENGLISH);
-
-			StreamResource r = null;
-			if (pathInfo != null) {
-				String p = pathInfo.substring(1);
-				if (p.equals("favicon.ico"))
-					r = favIcon;
-				else if (p.equals("style.css"))
-					r = styleSheet;
-				else if (StringUtils.pathStartsWith(p, staticFilesPrefixes))
-					r = resolveStaticFile(p);
-			}
-
-			if (r != null) {
-				res.setStatus(SC_OK);
-				res.setOutput(r);
-			} else {
-				// If the specified method has been defined in a subclass, invoke it.
-				int rc = SC_METHOD_NOT_ALLOWED;
-				if (restMethods.containsKey(methodUC)) {
-					rc = restMethods.get(methodUC).invoke(method, pathInfo, this, req, res);
-				} else if (restMethods.containsKey("*")) {
-					rc = restMethods.get("*").invoke(method, pathInfo, this, req, res);
-				}
-
-				// If not invoked above, see if it's an OPTIONs request
-				if (rc != SC_OK)
-					handleNotFound(rc, req, res);
-			}
-
-			if (res.hasOutput()) {
-				Object output = res.getOutput();
-
-				// Do any class-level transforming.
-				for (RestConverter converter : getConverters())
-					output = converter.convert(req, output, getBeanContext().getClassMetaForObject(output));
-
-				res.setOutput(output);
-
-				// Now serialize the output if there was any.
-				// Some subclasses may write to the OutputStream or Writer directly.
-				handleResponse(req, res, output);
-			}
-
-			onSuccess(req, res, System.currentTimeMillis() - startTime);
-
-		} catch (RestException e) {
-			handleError(r1, r2, e);
-		} catch (Throwable e) {
-			handleError(r1, r2, new RestException(SC_INTERNAL_SERVER_ERROR, e));
-		}
-		log(FINE, "HTTP: [{0} {1}] finished in {2}ms", r1.getMethod(), r1.getRequestURI(), System.currentTimeMillis()-startTime);
-	}
-
-	/**
-	 * Handle the case where a matching method was not found.
-	 * <p>
-	 * 	Subclasses can override this method to provide a 2nd-chance for specifying a response.
-	 * 	The default implementation will simply throw an exception with an appropriate message.
-	 * </p>
-	 *
-	 * @param rc The HTTP response code.
-	 * @param req The HTTP request.
-	 * @param res The HTTP response.
-	 * @throws Exception
-	 */
-	protected void handleNotFound(int rc, RestRequest req, RestResponse res) throws Exception {
-		String pathInfo = req.getPathInfo();
-		String methodUC = req.getMethod();
-		String onPath = pathInfo == null ? " on no pathInfo"  : format(" on path '%s'", pathInfo);
-		if (rc == SC_NOT_FOUND)
-			throw new RestException(rc, "Method ''{0}'' not found on resource with matching pattern{1}.", methodUC, onPath);
-		else if (rc == SC_PRECONDITION_FAILED)
-			throw new RestException(rc, "Method ''{0}'' not found on resource{1} with matching matcher.", methodUC, onPath);
-		else if (rc == SC_METHOD_NOT_ALLOWED)
-			throw new RestException(rc, "Method ''{0}'' not found on resource.", methodUC);
-		else
-			throw new ServletException("Invalid method response: " + rc);
-	}
-
-	private synchronized void handleError(HttpServletRequest req, HttpServletResponse res, RestException e) throws IOException {
-		Integer c = 1;
-		if (context.useStackTraceHashes) {
-			int h = e.hashCode();
-			c = stackTraceHashes.get(h);
-			if (c == null)
-				c = 1;
-			else
-				c++;
-			stackTraceHashes.put(h, c);
-			e.setOccurrence(c);
-		}
-		onError(req, res, e);
-		renderError(req, res, e);
-	}
-
-	/**
-	 * Method for rendering response errors.
-	 * <p>
-	 * 	The default implementation renders a plain text English message, optionally with a stack trace
-	 * 		if {@link RestServletContext#REST_renderResponseStackTraces} is enabled.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override this method to provide their own custom error response handling.
-	 * </p>
-	 *
-	 * @param req The servlet request.
-	 * @param res The servlet response.
-	 * @param e The exception that occurred.
-	 * @throws IOException Can be thrown if a problem occurred trying to write to the output stream.
-	 */
-	protected void renderError(HttpServletRequest req, HttpServletResponse res, RestException e) throws IOException {
-
-		int status = e.getStatus();
-		res.setStatus(status);
-		res.setContentType("text/plain");
-		res.setHeader("Content-Encoding", "identity");
-		PrintWriter w = null;
-		try {
-			w = res.getWriter();
-		} catch (IllegalStateException e2) {
-			w = new PrintWriter(new OutputStreamWriter(res.getOutputStream(), IOUtils.UTF8));
-		}
-		String httpMessage = RestUtils.getHttpResponseText(status);
-		if (httpMessage != null)
-			w.append("HTTP ").append(String.valueOf(status)).append(": ").append(httpMessage).append("\n\n");
-		if (context.renderResponseStackTraces)
-			e.printStackTrace(w);
-		else
-			w.append(e.getFullStackMessage(true));
-		w.flush();
-		w.close();
-	}
-
-	/**
-	 * Callback method for logging errors during HTTP requests.
-	 * <p>
-	 * 	Typically, subclasses will override this method and log errors themselves.
-	 * <p>
-	 * </p>
-	 * 	The default implementation simply logs errors to the <code>RestServlet</code> logger.
-	 * </p>
-	 * <p>
-	 * 	Here's a typical implementation showing how stack trace hashing can be used to reduce log file sizes...
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<jk>protected void</jk> onError(HttpServletRequest req, HttpServletResponse res, RestException e, <jk>boolean</jk> noTrace) {
-	 * 		String qs = req.getQueryString();
-	 * 		String msg = <js>"HTTP "</js> + req.getMethod() + <js>" "</js> + e.getStatus() + <js>" "</js> + req.getRequestURI() + (qs == <jk>null</jk> ? <js>""</js> : <js>"?"</js> + qs);
-	 * 		<jk>int</jk> c = e.getOccurrence();
-	 *
-	 * 		<jc>// REST_useStackTraceHashes is disabled, so we have to log the exception every time.</jc>
-	 * 		<jk>if</jk> (c == 0)
-	 * 			myLogger.log(Level.<jsf>WARNING</jsf>, <jsm>format</jsm>(<js>"[%s] %s"</js>, e.getStatus(), msg), e);
-	 *
-	 * 		<jc>// This is the first time we've countered this error, so log a stack trace
-	 * 		// unless ?noTrace was passed in as a URL parameter.</jc>
-	 * 		<jk>else if</jk> (c == 1 && ! noTrace)
-	 * 			myLogger.log(Level.<jsf>WARNING</jsf>, <jsm>format</jsm>(<js>"[%h.%s.%s] %s"</js>, e.hashCode(), e.getStatus(), c, msg), e);
-	 *
-	 * 		<jc>// This error occurred before.
-	 * 		// Only log the message, not the stack trace.</jc>
-	 * 		<jk>else</jk>
-	 * 			myLogger.log(Level.<jsf>WARNING</jsf>, <jsm>format</jsm>(<js>"[%h.%s.%s] %s, %s"</js>, e.hashCode(), e.getStatus(), c, msg, e.getLocalizedMessage()));
-	 * 	}
-	 * </p>
-	 *
-	 * @param req The servlet request object.
-	 * @param res The servlet response object.
-	 * @param e Exception indicating what error occurred.
-	 */
-	protected void onError(HttpServletRequest req, HttpServletResponse res, RestException e) {
-		if (shouldLog(req, res, e)) {
-			String qs = req.getQueryString();
-			String msg = "HTTP " + req.getMethod() + " " + e.getStatus() + " " + req.getRequestURI() + (qs == null ? "" : "?" + qs);
-			int c = e.getOccurrence();
-			if (shouldLogStackTrace(req, res, e)) {
-				msg = '[' + Integer.toHexString(e.hashCode()) + '.' + e.getStatus() + '.' + c + "] " + msg;
-				log(Level.WARNING, e, msg);
-			} else {
-				msg = '[' + Integer.toHexString(e.hashCode()) + '.' + e.getStatus() + '.' + c + "] " + msg + ", " + e.getLocalizedMessage();
-				log(Level.WARNING, msg);
-			}
-		}
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified exception should be logged.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own logic for determining when exceptions are logged.
-	 * </p>
-	 * <p>
-	 * 	The default implementation will return <jk>false</jk> if <js>"noTrace=true"</js> is passed in the query string.
-	 * </p>
-	 *
-	 * @param req The HTTP request.
-	 * @param res The HTTP response.
-	 * @param e The exception.
-	 * @return <jk>true</jk> if exception should be logged.
-	 */
-	protected boolean shouldLog(HttpServletRequest req, HttpServletResponse res, RestException e) {
-		String q = req.getQueryString();
-		return (q == null ? true : q.indexOf("noTrace=true") == -1);
-	}
-
-	/**
-	 * Returns <jk>true</jk> if a stack trace should be logged for this exception.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own logic for determining when stack traces are logged.
-	 * </p>
-	 * <p>
-	 * 	The default implementation will only log a stack trace if {@link RestException#getOccurrence()} returns <code>1</code>
-	 * 		and the exception is not one of the following:
-	 * </p>
-	 * <ul>
-	 * 	<li>{@link HttpServletResponse#SC_UNAUTHORIZED}
-	 * 	<li>{@link HttpServletResponse#SC_FORBIDDEN}
-	 * 	<li>{@link HttpServletResponse#SC_NOT_FOUND}
-	 * </ul>
-	 *
-	 * @param req The HTTP request.
-	 * @param res The HTTP response.
-	 * @param e The exception.
-	 * @return <jk>true</jk> if stack trace should be logged.
-	 */
-	protected boolean shouldLogStackTrace(HttpServletRequest req, HttpServletResponse res, RestException e) {
-		if (e.getOccurrence() == 1) {
-			switch (e.getStatus()) {
-				case SC_UNAUTHORIZED:
-				case SC_FORBIDDEN:
-				case SC_NOT_FOUND:  return false;
-				default:            return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Log a message.
-	 * <p>
-	 * 	Equivalent to calling <code>log(level, <jk>null</jk>, msg, args);</code>
-	 * </p>
-	 *
-	 * @param level The log level.
-	 * @param msg The message to log.
-	 * @param args {@link MessageFormat} style arguments in the message.
-	 */
-	protected void log(Level level, String msg, Object...args) {
-		log(level, null, msg, args);
-	}
-
-	/**
-	 * Same as {@link #log(Level, String, Object...)} excepts runs the
-	 *  arguments through {@link JsonSerializer#DEFAULT_LAX_READABLE}.
-	 * <p>
-	 * 	Serialization of arguments do not occur if message is not logged, so
-	 * 		it's safe to use this method from within debug log statements.
-	 *	</p>
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	logObjects(<jsf>DEBUG</jsf>, <js>"Pojo contents:\n{0}"</js>, myPojo);
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param level The log level.
-	 * @param msg The message to log.
-	 * @param args {@link MessageFormat} style arguments in the message.
-	 */
-	protected void logObjects(Level level, String msg, Object...args) {
-		for (int i = 0; i < args.length; i++)
-			args[i] = JsonSerializer.DEFAULT_LAX_READABLE.toStringObject(args[i]);
-		log(level, null, msg, args);
-	}
-
-	/**
-	 * Log a message to the logger returned by {@link #getLogger()}.
-	 * <p>
-	 * 	Subclasses can override this method if they wish to log messages using a library other than
-	 * 		Java Logging (e.g. Apache Commons Logging).
-	 * </p>
-	 *
-	 * @param level The log level.
-	 * @param cause The cause.
-	 * @param msg The message to log.
-	 * @param args {@link MessageFormat} style arguments in the message.
-	 */
-	protected void log(Level level, Throwable cause, String msg, Object...args) {
-		JuneauLogger log = getLogger();
-		if (args.length > 0)
-			msg = MessageFormat.format(msg, args);
-		log.log(level, msg, cause);
-	}
-
-	/**
-	 * Callback method for listening for successful completion of requests.
-	 * <p>
-	 * 	Subclasses can override this method for gathering performance statistics.
-	 * </p>
-	 * <p>
-	 * 	The default implementation does nothing.
-	 * </p>
-	 *
-	 * @param req The HTTP request.
-	 * @param res The HTTP response.
-	 * @param time The time in milliseconds it took to process the request.
-	 */
-	protected void onSuccess(RestRequest req, RestResponse res, long time) {}
-
-	/**
-	 * Callback method that gets invoked right before the REST Java method is invoked.
-	 * <p>
-	 * 	Subclasses can override this method to override request headers or set request-duration properties
-	 * 		before the Java method is invoked.
-	 * </p>
-	 *
-	 * @param req The HTTP servlet request object.
-	 * @throws RestException If any error occurs.
-	 */
-	protected void onPreCall(RestRequest req) throws RestException {}
-
-	/**
-	 * Callback method that gets invoked right after the REST Java method is invoked, but before
-	 * 	the serializer is invoked.
-	 * <p>
-	 * 	Subclasses can override this method to override request and response headers, or
-	 * 		set/override properties used by the serializer.
-	 * </p>
-	 *
-	 * @param req The HTTP servlet request object.
-	 * @param res The HTTP servlet response object.
-	 * @throws RestException If any error occurs.
-	 */
-	protected void onPostCall(RestRequest req, RestResponse res) throws RestException {}
-
-	/**
-	 * The main method for serializing POJOs passed in through the {@link RestResponse#setOutput(Object)} method.
-	 * <p>
-	 * 	Subclasses may override this method if they wish to modify the way the output is rendered, or support
-	 * 	other output formats.
-	 * </p>
-	 *
-	 * @param req The HTTP request.
-	 * @param res The HTTP response.
-	 * @param output The output to serialize in the response.
-	 * @throws IOException
-	 * @throws RestException
-	 */
-	protected void handleResponse(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
-		// Loop until we find the correct handler for the POJO.
-		for (ResponseHandler h : getResponseHandlers())
-			if (h.handle(req, res, output))
-				return;
-		throw new RestException(SC_NOT_IMPLEMENTED, "No response handlers found to process output of type '"+(output == null ? null : output.getClass().getName())+"'");
-	}
-
-	@Override /* GenericServlet */
-	public ServletConfig getServletConfig() {
-		return servletConfig;
-	}
-
-	@Override /* GenericServlet */
-	public void destroy() {
-		for (RestServlet r : childResources.values())
-			r.destroy();
-		super.destroy();
-	}
-
-	/**
-	 * Resolve a static resource file.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own way to resolve files.
-	 *	</p>
-	 *
-	 * @param pathInfo The unencoded path info.
-	 * @return The resource, or <jk>null</jk> if the resource could not be resolved.
-	 * @throws IOException
-	 */
-	protected StreamResource resolveStaticFile(String pathInfo) throws IOException {
-		if (! staticFilesCache.containsKey(pathInfo)) {
-			String p = RestUtils.decode(RestUtils.trimSlashes(pathInfo));
-			if (p.indexOf("..") != -1)
-				throw new RestException(SC_NOT_FOUND, "Invalid path");
-			for (Map.Entry<String,String> e : staticFilesMap.entrySet()) {
-				String key = RestUtils.trimSlashes(e.getKey());
-				if (p.startsWith(key)) {
-					String remainder = (p.equals(key) ? "" : p.substring(key.length()));
-					if (remainder.isEmpty() || remainder.startsWith("/")) {
-						String p2 = RestUtils.trimSlashes(e.getValue()) + remainder;
-						InputStream is = getResource(p2);
-						if (is != null) {
-							try {
-								int i = p2.lastIndexOf('/');
-								String name = (i == -1 ? p2 : p2.substring(i+1));
-								String mediaType = getMimetypesFileTypeMap().getContentType(name);
-								staticFilesCache.put(pathInfo, new StreamResource(is, mediaType).setHeader("Cache-Control", "max-age=86400, public"));
-								return staticFilesCache.get(pathInfo);
-							} finally {
-								is.close();
-							}
-						}
-					}
-				}
-			}
-		}
-		return staticFilesCache.get(pathInfo);
-	}
-
-	/**
-	 * Returns a list of valid {@code Accept} content types for this resource.
-	 * <p>
-	 * 	Typically used by subclasses during {@code OPTIONS} requests.
-	 * </p>
-	 * <p>
-	 * 	The default implementation resturns the list from {@link ParserGroup#getSupportedMediaTypes()}
-	 * 		from the parser group returned by {@link #getParsers()}.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override or expand this list as they see fit.
-	 * </p>
-	 *
-	 * @return The list of valid {@code Accept} content types for this resource.
-	 * @throws RestServletException
-	 */
-	public Collection<String> getSupportedAcceptTypes() throws RestServletException {
-		return getParsers().getSupportedMediaTypes();
-	}
-
-	/**
-	 * Returns a list of valid {@code Content-Types} for input for this resource.
-	 * <p>
-	 * 	Typically used by subclasses during {@code OPTIONS} requests.
-	 * </p>
-	 * <p>
-	 * 	The default implementation resturns the list from {@link SerializerGroup#getSupportedMediaTypes()}
-	 * 		from the parser group returned by {@link #getSerializers()}.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override or expand this list as they see fit.
-	 * </p>
-	 *
-	 * @return The list of valid {@code Content-Type} header values for this resource.
-	 * @throws RestServletException
-	 */
-	public Collection<String> getSupportedContentTypes() throws RestServletException {
-		return getSerializers().getSupportedMediaTypes();
-	}
-
-	/**
-	 * Returns localized descriptions of all REST methods defined on this class that the user of the current
-	 * 	request is allowed to access.
-	 * <p>
-	 * 	Useful for OPTIONS pages.
-	 * </p>
-	 * <p>
-	 * 	This method does not cache results, since it's expected to be called infrequently.
-	 * </p>
-	 *
-	 * @param req The current request.
-	 * @return Localized descriptions of all REST methods defined on this class.
-	 * @throws RestServletException
-	 */
-	public Collection<MethodDescription> getMethodDescriptions(RestRequest req) throws RestServletException {
-		List<MethodDescription> l = new LinkedList<MethodDescription>();
-		for (MethodMeta sm : javaRestMethods.values())
-			if (sm.isRequestAllowed(req))
-				l.add(getMethodDescription(sm.method, sm, req));
-		return l;
-	}
-
-	/**
-	 * Returns the localized description of this REST resource.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own description.
-	 * </p>
-	 * <p>
-	 * 	The default implementation returns the description from the following locations (whichever matches first):
-	 * </p>
-	 * <ol>
-	 * 	<li>{@link RestResource#description() @RestResource.description()} annotation on this class, and then any parent classes.
-	 * 	<li><ck>[ClassName].description</ck> property in resource bundle identified by {@link RestResource#messages() @RestResource.messages()}
-	 * 		annotation for this class, then any parent classes.
-	 * 	<li><ck>description</ck> property in resource bundle identified by {@link RestResource#messages() @RestResource.messages()}
-	 * 		annotation for this class, then any parent classes.
-	 * </ol>
-	 *
-	 * @param req The current request.
-	 * @return The localized description of this REST resource, or a blank string if no resource description was found.
-	 */
-	public String getDescription(RestRequest req) {
-		if (! description.isEmpty())
-			return req.getVarResolverSession().resolve(description);
-		String description = msgs.findFirstString(req.getLocale(), "description");
-		return (description == null ? "" : req.getVarResolverSession().resolve(description));
-	}
-
-	/**
-	 * Returns the localized description of the specified java method on this servlet.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own description.
-	 * </p>
-	 * <p>
-	 * 	The default implementation returns the description from the following locations (whichever matches first):
-	 * </p>
-	 * <ol>
-	 * 	<li>{@link RestMethod#description() @RestMethod.description()} annotation on the method.
-	 * 	<li><ck>[ClassName].[javaMethodName]</ck> property in resource bundle identified by {@link RestResource#messages() @RestResource.messages()}
-	 * 		annotation for this class, then any parent classes.
-	 * 	<li><ck>[javaMethodName]</ck> property in resource bundle identified by {@link RestResource#messages() @RestResource.messages()}
-	 * 		annotation for this class, then any parent classes.
-	 * </ol>
-	 *
-	 * @param javaMethodName The name of the Java method whose description we're retrieving.
-	 * @param req The current request.
-	 * @return The localized description of the method, or a blank string if no description was found.
-	 */
-	public String getMethodDescription(String javaMethodName, RestRequest req) {
-		MethodMeta m = javaRestMethods.get(javaMethodName);
-		if (m != null)
-			return m.getDescription(req);
-		return "";
-	}
-
-	/**
-	 * Returns the localized label of this REST resource.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own description.
-	 * </p>
-	 * <p>
-	 * 	The default implementation returns the description from the following locations (whichever matches first):
-	 * </p>
-	 * <ol>
-	 * 	<li>{@link RestResource#label() @RestResourcel.label()} annotation on this class, and then any parent classes.
-	 * 	<li><ck>[ClassName].label</ck> property in resource bundle identified by {@link RestResource#messages() @ResourceBundle.messages()}
-	 * 		annotation for this class, then any parent classes.
-	 * 	<li><ck>label</ck> in resource bundle identified by {@link RestResource#messages() @RestResource.messages()}
-	 * 		annotation for this class, then any parent classes.
-	 * </ol>
-	 *
-	 * @param req The current request.
-	 * @return The localized description of this REST resource, or a blank string if no resource description was found.
-	 */
-	public String getLabel(RestRequest req) {
-		if (! label.isEmpty())
-			return req.getVarResolverSession().resolve(label);
-		String label = msgs.findFirstString(req.getLocale(), "label");
-		return (label == null ? "" : req.getVarResolverSession().resolve(label));
-	}
-
-	/**
-	 * Returns the resource bundle identified by the {@link RestResource#messages() @RestResource.messages()} annotation for the default locale.
-	 *
-	 * @return The resource bundle.  Never <jk>null</jk>.
-	 */
-	public MessageBundle getMessages() {
-		return msgs;
-	}
-
-	/**
-	 * Returns the resource bundle identified by the {@link RestResource#messages() @RestResource.messages()} annotation for the specified locale.
-	 *
-	 * @param locale The resource bundle locale.
-	 * @return The resource bundle.  Never <jk>null</jk>.
-	 */
-	public MessageBundle getMessages(Locale locale) {
-		return msgs.getBundle(locale);
-	}
-
-	/**
-	 * Gets a localized message from the resource bundle identified by the {@link RestResource#messages() @RestResource.messages()} annotation.
-	 * <p>
-	 * 	If resource bundle location was not specified, or the resource bundle was not found,
-	 * 	returns the string <js>"{!!key}"</js>.
-	 * </p>
-	 * <p>
-	 * 	If message was not found in the resource bundle, returns the string <js>"{!key}"</js>.
-	 * </p>
-	 *
-	 * @param locale The client locale.
-	 * @param key The resource bundle key.
-	 * @param args Optional {@link java.text.MessageFormat} variable values to replace.
-	 * @return The localized message.
-	 */
-	public String getMessage(Locale locale, String key, Object...args) {
-		return msgs.getString(locale, key, args);
-	}
-
-	/**
-	 * Programmatically adds the specified resource as a child to this resource.
-	 * <p>
-	 * 	This method can be used in a resources {@link #init()} method to define child resources
-	 * 	accessible through a child URL.
-	 * </p>
-	 * <p>
-	 * 	Typically, child methods are defined via {@link RestResource#children() @RestResource.children()}.  However, this
-	 * 	method is provided to handle child resources determined at runtime.
-	 * </p>
-	 *
-	 * @param name The sub-URL under which this resource is accessible.<br>
-	 * 	For example, if the parent resource URL is <js>"/foo"</js>, and this name is <js>"bar"</js>, then
-	 * 	the child resource will be accessible via the URL <js>"/foo/bar"</js>.
-	 * @param resource The child resource.
-	 * @throws ServletException Thrown by the child init() method.
-	 */
-	protected void addChildResource(String name, RestServlet resource) throws ServletException {
-		resource.init(getServletConfig());
-		childResources.put(name, resource);
-	}
-
-	/**
-	 * Returns the child resources associated with this servlet.
-	 *
-	 * @return An unmodifiable map of child resources.
-	 * 	Keys are the {@link RestResource#path() @RestResource.path()} annotation defined on the child resource.
-	 */
-	public Map<String,RestServlet> getChildResources() {
-		return Collections.unmodifiableMap(childResources);
-	}
-
-	/**
-	 * Returns the path for this servlet as defined by the {@link RestResource#path()} annotation
-	 * on this class concatenated with those on all parent classes.
-	 * <p>
-	 * 	If path is not specified, returns <js>"/"</js>.
-	 * </p>
-	 * <p>
-	 * 	Path always starts with <js>"/"</js>.
-	 * </p>
-	 *
-	 * @return The servlet path.
-	 */
-	public String getPath() {
-		if (path == null) {
-			LinkedList<String> l = new LinkedList<String>();
-			RestServlet r = this;
-			while (r != null) {
-				String p = r.findPath();
-				if (p == null)
-					break;
-				l.addFirst(p);
-				r = r.parentResource;
-			}
-			StringBuilder sb = new StringBuilder();
-			for (String p : l)
-				sb.append('/').append(p);
-			path = sb.toString();
-		}
-		return path;
-	}
-
-	private String findPath() {
-		List<RestResource> rrc = ReflectionUtils.findAnnotations(RestResource.class, getClass());
-		for (RestResource rc : rrc) {
-			String p = rc.path();
-			if (StringUtils.startsWith(p, '/'))
-				p = p.substring(1);
-			if (! p.isEmpty())
-				return p;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the config file for this servlet.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own config file.
-	 * </p>
-	 * <p>
-	 * 	The default implementation uses the path defined by the {@link RestResource#config() @RestResource.config()} property resolved
-	 *  		by {@link ConfigMgr#DEFAULT}.
-	 * </p>
-	 *
-	 * @return The config file for this servlet.
-	 * @throws IOException
-	 */
-	protected ConfigFile createConfigFile() throws IOException {
-		String cf = varResolver.resolve(configPath);
-		if (cf.isEmpty())
-			return getConfigMgr().create();
-		return getConfigMgr().get(cf);
-	}
-
-	/**
-	 * Creates the stylesheet for this servlet.
-	 * <p>
-	 * 	The stylesheet is made available on the path <js>"/servlet-path/style.css"</js>.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override this method to provide their own stylesheet.
-	 * </p>
-	 * <p>
-	 * 	The default implementation uses the {@link RestResource#stylesheet() @RestResource.stylesheet()} annotation
-	 * 		to determine the stylesheet name and then searches the classpath then working directory
-	 * 		for that stylesheet.
-	 * </p>
-	 *
-	 * @return The stylesheet to use for this servlet, or <jk>null</jk> if the stylesheet could not be found.
-	 * @throws IOException If stylesheet could not be loaded.
-	 */
-	protected StreamResource createStyleSheet() throws IOException {
-		for (RestResource r : restResourceAnnotationsChildFirst.values()) {
-			if (! r.stylesheet().isEmpty()) {
-				String path = getVarResolver().resolve(r.stylesheet());
-				InputStream is = getResource(path);
-				if (is != null) {
-					try {
-						return new StreamResource(is, "text/css");
-					} finally {
-						is.close();
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Creates the favicon for this servlet.
-	 * <p>
-	 * 	The favicon is made available on the path <js>"/servlet-path/favicon.ico"</js>.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override this method to provide their own favorites icon.
-	 * </p>
-	 * <p>
-	 * 	The default implementation uses the {@link RestResource#favicon() @RestResource.favicon()} annotation
-	 * 		to determine the file name and then searches the classpath then working directory
-	 * 		for that file.
-	 * </p>
-	 *
-	 * @return The icon file to use for this servlet.
-	 * @throws IOException If icon file could not be loaded.
-	 */
-	protected StreamResource createFavIcon() throws IOException {
-		for (RestResource r : restResourceAnnotationsChildFirst.values()) {
-			if (! r.favicon().isEmpty()) {
-				String path = getVarResolver().resolve(r.favicon());
-				InputStream is = getResource(path);
-				if (is != null) {
-					try {
-						return new StreamResource(is, "image/x-icon");
-					} finally {
-						is.close();
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Creates the static files map for this servlet.
-	 * <p>
-	 * 	This map defines static files that can be served up through subpaths on this servlet.
-	 * 	The map keys are subpaths (e.g. <js>"htdocs"</js>) and the values are locations to look in
-	 * 		the classpath and working directory for those files.
-	 * </p>
-	 * <p>
-	 * 	Subclasses can override this method to provide their own mappings.
-	 * </p>
-	 * <p>
-	 * 	The default implementation uses the {@link RestResource#staticFiles() @RestResource.staticFiles()} annotation
-	 * 		to determine the mappings.
-	 * </p>
-	 *
-	 * @return The list of static file mappings.
-	 * @throws ParseException
-	 */
-	@SuppressWarnings("unchecked")
-	protected Map<String,String> createStaticFilesMap() throws ParseException {
-		Map<String,String> m = new LinkedHashMap<String,String>();
-		for (RestResource r : restResourceAnnotationsParentFirst.values())
-			if (! r.staticFiles().isEmpty())
-				m.putAll(JsonParser.DEFAULT.parseMap(getVarResolver().resolve(r.staticFiles()), LinkedHashMap.class, String.class, String.class));
-		return m;
-	}
-
-	/**
-	 * Returns the config manager used to create the config file in {@link #createConfigFile()}.
-	 * <p>
-	 * 	The default implementation return {@link ConfigMgr#DEFAULT}, but subclasses can override
-	 * 		this if they want to provide their own customized config manager.
-	 * </p>
-	 *
-	 * @return The config file manager.
-	 */
-	protected ConfigMgr getConfigMgr() {
-		return ConfigMgr.DEFAULT;
-	}
-
-	/**
-	 * Returns the logger associated with this servlet.
-	 * <p>
-	 * 	Subclasses can override this method to provide their own Java Logging logger.
-	 * </p>
-	 * <p>
-	 * 	Subclasses that use other logging libraries such as Apache Commons Logging should
-	 * 		override the {@link #log(Level, Throwable, String, Object...)} method instead.
-	 * </p>
-	 *
-	 * @return The logger associated with this servlet.
-	 */
-	protected JuneauLogger getLogger() {
-		if (logger == null)
-			logger =  JuneauLogger.getLogger(getClass());
-		return logger;
-	}
-
-	private abstract class ResourceMethod {
-		abstract int invoke(String methodName, String pathInfo, RestServlet resource, RestRequest req, RestResponse res) throws RestException;
-
-		void complete() {
-			// Do nothing by default.
-		}
-	}
-
-	static enum ParamType {
-		REQ, RES, ATTR, CONTENT, HEADER, METHOD, PARAM, QPARAM, HASPARAM, HASQPARAM, PATHREMAINDER, PROPS, MESSAGES;
-
-		boolean isOneOf(ParamType...pt) {
-			for (ParamType ptt : pt)
-				if (this == ptt)
-					return true;
-			return false;
-		}
-	}
-
-	static class MethodParam {
-
-		ParamType paramType;
-		Type type;
-		String name = "";
-		boolean multiPart, plainParams;
-
-		MethodParam(MethodMeta mm, Type type, Method method, Annotation[] annotations) throws ServletException {
-			this.type = type;
-			boolean isClass = type instanceof Class;
-			if (isClass && isParentClass(HttpServletRequest.class, (Class)type))
-				paramType = REQ;
-			else if (isClass && isParentClass(HttpServletResponse.class, (Class)type))
-				paramType = RES;
-			else for (Annotation a : annotations) {
-				if (a instanceof Attr) {
-					Attr a2 = (Attr)a;
-					paramType = ATTR;
-					name = a2.value();
-				} else if (a instanceof Header) {
-					Header h = (Header)a;
-					paramType = HEADER;
-					name = h.value();
-				} else if (a instanceof Param) {
-					Param p = (Param)a;
-					if (p.multipart())
-						assertCollection(type, method);
-					paramType = PARAM;
-					multiPart = p.multipart();
-					plainParams = p.format().equals("INHERIT") ? mm.mPlainParams : p.format().equals("PLAIN");
-					name = p.value();
-				} else if (a instanceof QParam) {
-					QParam p = (QParam)a;
-					if (p.multipart())
-						assertCollection(type, method);
-					paramType = QPARAM;
-					multiPart = p.multipart();
-					plainParams = p.format().equals("INHERIT") ? mm.mPlainParams : p.format().equals("PLAIN");
-					name = p.value();
-				} else if (a instanceof HasParam) {
-					HasParam p = (HasParam)a;
-					paramType = HASPARAM;
-					name = p.value();
-				} else if (a instanceof HasQParam) {
-					HasQParam p = (HasQParam)a;
-					paramType = HASQPARAM;
-					name = p.value();
-				} else if (a instanceof Content) {
-					paramType = CONTENT;
-				} else if (a instanceof org.apache.juneau.server.annotation.Method) {
-					paramType = METHOD;
-					if (type != String.class)
-						throw new ServletException("@Method parameters must be of type String");
-				} else if (a instanceof PathRemainder) {
-					paramType = PATHREMAINDER;
-					if (type != String.class)
-						throw new ServletException("@PathRemainder parameters must be of type String");
-				} else if (a instanceof Properties) {
-					paramType = PROPS;
-					name = "PROPERTIES";
-				} else if (a instanceof Messages) {
-					paramType = MESSAGES;
-					name = "MESSAGES";
-				}
-			}
-			if (paramType == null)
-				paramType = ATTR;
-		}
-
-		/**
-		 * Throws an exception if the specified type isn't an array or collection.
-		 */
-		private void assertCollection(Type t, Method m) throws ServletException {
-			ClassMeta<?> cm = BeanContext.DEFAULT.getClassMeta(t);
-			if (! (cm.isArray() || cm.isCollection()))
-				throw new ServletException("Use of multipart flag on parameter that's not an array or Collection on method" + m);
-		}
-
-		@SuppressWarnings("unchecked")
-		private Object getValue(RestRequest req, RestResponse res) throws Exception {
-			BeanContext bc = req.getServlet().getBeanContext();
-			switch(paramType) {
-				case REQ:        return req;
-				case RES:        return res;
-				case ATTR:       return req.getAttribute(name, type);
-				case CONTENT:    return req.getInput(type);
-				case HEADER:     return req.getHeader(name, type);
-				case METHOD:     return req.getMethod();
-				case PARAM: {
-					if (multiPart)
-						return req.getParameters(name, type);
-					if (plainParams)
-						return bc.convertToType(req.getParameter(name), bc.getClassMeta(type));
-					return req.getParameter(name, type);
-				}
-				case QPARAM: {
-					if (multiPart)
-						return req.getQueryParameters(name, type);
-					if (plainParams)
-						return bc.convertToType(req.getQueryParameter(name), bc.getClassMeta(type));
-					return req.getQueryParameter(name, type);
-				}
-				case HASPARAM:   return bc.convertToType(req.hasParameter(name), bc.getClassMeta(type));
-				case HASQPARAM:   return bc.convertToType(req.hasQueryParameter(name), bc.getClassMeta(type));
-				case PATHREMAINDER:  return req.getPathRemainder();
-				case PROPS: return res.getProperties();
-				case MESSAGES:   return req.getResourceBundle();
-			}
-			return null;
-		}
-	}
-
-	/*
-	 * Represents a single Java servlet method annotated with @RestMethod.
-	 */
-	private class MethodMeta extends ResourceMethod implements Comparable<MethodMeta>  {
-		private String httpMethod;
-		private java.lang.reflect.Method method;
-		private UrlPathPattern pathPattern;
-		private MethodParam[] params;
-		private RestGuard[] guards;
-		private RestMatcher[] optionalMatchers, requiredMatchers;
-		private RestConverter[] mConverters;
-		private SerializerGroup mSerializers;                   // Method-level serializers
-		private ParserGroup mParsers;                           // Method-level parsers
-		private EncoderGroup mEncoders;                         // Method-level encoders
-		private UrlEncodingParser mUrlEncodingParser;           // Method-level URL parameter parser.
-		private UrlEncodingSerializer mUrlEncodingSerializer;   // Method-level URL parameter serializer.
-		private ObjectMap mProperties;                          // Method-level properties
-		private Map<String,String> mDefaultRequestHeaders;      // Method-level default request headers
-		private String mDefaultEncoding;
-		private boolean mPlainParams;
-		private String description;
-		private Integer priority;
-
-		private MethodMeta(java.lang.reflect.Method method) throws RestServletException {
-			try {
-				this.method = method;
-
-				RestMethod m = method.getAnnotation(RestMethod.class);
-				if (m == null)
-					throw new RestServletException("@RestMethod annotation not found on method ''{0}.{1}''", method.getDeclaringClass().getName(), method.getName());
-
-				this.description = m.description();
-				this.mSerializers = getSerializers();
-				this.mParsers = getParsers();
-				this.mUrlEncodingParser = getUrlEncodingParser();
-				this.mUrlEncodingSerializer = getUrlEncodingSerializer();
-				this.mProperties = getProperties();
-				this.mEncoders = getEncoders();
-
-				ArrayList<Inherit> si = new ArrayList<Inherit>(Arrays.asList(m.serializersInherit()));
-				ArrayList<Inherit> pi = new ArrayList<Inherit>(Arrays.asList(m.parsersInherit()));
-
-				if (m.serializers().length > 0 || m.parsers().length > 0 || m.properties().length > 0 || m.transforms().length > 0) {
-					mSerializers = (si.contains(SERIALIZERS) || m.serializers().length == 0 ? mSerializers.clone() : new SerializerGroup());
-					mParsers = (pi.contains(PARSERS) || m.parsers().length == 0 ? mParsers.clone() : new ParserGroup());
-					mUrlEncodingParser = mUrlEncodingParser.clone();
-				}
-
-				httpMethod = m.name().toUpperCase(Locale.ENGLISH);
-				if (httpMethod.equals("") && method.getName().startsWith("do"))
-					httpMethod = method.getName().substring(2).toUpperCase(Locale.ENGLISH);
-				if (httpMethod.equals(""))
-					throw new RestServletException("@RestMethod name not specified on method ''{0}.{1}''", method.getDeclaringClass().getName(), method.getName());
-				if (httpMethod.equals("METHOD"))
-					httpMethod = "*";
-
-				priority = m.priority();
-
-				String p = m.path();
-				mConverters = new RestConverter[m.converters().length];
-				for (int i = 0; i < mConverters.length; i++)
-					mConverters[i] = m.converters()[i].newInstance();
-
-				guards = new RestGuard[m.guards().length];
-				for (int i = 0; i < guards.length; i++)
-					guards[i] = m.guards()[i].newInstance();
-
-				List<RestMatcher> optionalMatchers = new LinkedList<RestMatcher>(), requiredMatchers = new LinkedList<RestMatcher>();
-				for (int i = 0; i < m.matchers().length; i++) {
-					Class<? extends RestMatcher> c = m.matchers()[i];
-					RestMatcher matcher = null;
-					if (ClassUtils.isParentClass(RestMatcherReflecting.class, c))
-						matcher = c.getConstructor(RestServlet.class, Method.class).newInstance(RestServlet.this, method);
-					else
-						matcher = c.newInstance();
-					if (matcher.mustMatch())
-						requiredMatchers.add(matcher);
-					else
-						optionalMatchers.add(matcher);
-				}
-				if (! m.clientVersion().isEmpty())
-					requiredMatchers.add(new ClientVersionMatcher(RestServlet.this, method));
-
-				this.requiredMatchers = requiredMatchers.toArray(new RestMatcher[requiredMatchers.size()]);
-				this.optionalMatchers = optionalMatchers.toArray(new RestMatcher[optionalMatchers.size()]);
-
-				if (m.serializers().length > 0) {
-					mSerializers.append(m.serializers());
-					if (si.contains(TRANSFORMS))
-						mSerializers.addTransforms(getTransforms());
-					if (si.contains(PROPERTIES))
-						mSerializers.setProperties(getProperties());
-				}
-
-				if (m.parsers().length > 0) {
-					mParsers.append(m.parsers());
-					if (pi.contains(TRANSFORMS))
-						mParsers.addTransforms(getTransforms());
-					if (pi.contains(PROPERTIES))
-						mParsers.setProperties(getProperties());
-				}
-
-				if (m.properties().length > 0) {
-					mProperties = new ObjectMap().setInner(getProperties());
-					for (Property p1 : m.properties()) {
-						String n = p1.name(), v = p1.value();
-						mProperties.put(n, v);
-						mSerializers.setProperty(n, v);
-						mParsers.setProperty(n, v);
-						mUrlEncodingParser.setProperty(n, v);
-					}
-				}
-
-				if (m.transforms().length > 0) {
-					mSerializers.addTransforms(m.transforms());
-					mParsers.addTransforms(m.transforms());
-					mUrlEncodingParser.addTransforms(m.transforms());
-				}
-
-				if (m.encoders().length > 0 || ! m.inheritEncoders()) {
-					EncoderGroup g = new EncoderGroup();
-					if (m.inheritEncoders())
-						g.append(mEncoders);
-					else
-						g.append(IdentityEncoder.INSTANCE);
-
-					for (Class<? extends Encoder> c : m.encoders()) {
-						try {
-							g.append(c);
-						} catch (Exception e) {
-							throw new RestServletException("Exception occurred while trying to instantiate Encoder ''{0}''", c.getSimpleName()).initCause(e);
-						}
-					}
-					mEncoders = g;
-				}
-
-				mDefaultRequestHeaders = new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER);
-				for (String s : m.defaultRequestHeaders()) {
-					String[] h = parseHeader(s);
-					if (h == null)
-						throw new RestServletException("Invalid default request header specified: ''{0}''.  Must be in the format: ''Header-Name: header-value''", s);
-					mDefaultRequestHeaders.put(h[0], h[1]);
-				}
-
-				mDefaultEncoding = mProperties.getString(REST_defaultCharset, RestServlet.this.context.defaultCharset);
-				String paramFormat = mProperties.getString(REST_paramFormat, RestServlet.this.context.paramFormat);
-				mPlainParams = paramFormat.equals("PLAIN");
-
-				pathPattern = new UrlPathPattern(p);
-
-				int attrIdx = 0;
-				Type[] pt = method.getGenericParameterTypes();
-				Annotation[][] pa = method.getParameterAnnotations();
-				params = new MethodParam[pt.length];
-				for (int i = 0; i < params.length; i++) {
-					params[i] = new MethodParam(this, pt[i], method, pa[i]);
-					if (params[i].paramType == ATTR && params[i].name.isEmpty()) {
-						if (pathPattern.vars.length <= attrIdx)
-							throw new RestServletException("Number of attribute parameters in method ''{0}'' exceeds the number of URL pattern variables.", method.getName());
-						params[i].name = pathPattern.vars[attrIdx++];
-					}
-				}
-
-				mSerializers.lock();
-				mParsers.lock();
-				mUrlEncodingParser.lock();
-
-				// Need this to access methods in anonymous inner classes.
-				method.setAccessible(true);
-			} catch (Exception e) {
-				throw new RestServletException("Exception occurred while initializing method ''{0}''", method.getName()).initCause(e);
-			}
-		}
-
-		private String getDescription(RestRequest req) {
-			if (! description.isEmpty())
-				return req.getVarResolverSession().resolve(description);
-			String description = msgs.findFirstString(req.getLocale(), method.getName());
-			return (description == null ? "" : req.getVarResolverSession().resolve(description));
-		}
-
-		private boolean isRequestAllowed(RestRequest req) {
-			for (RestGuard guard : guards) {
-				req.javaMethod = method;
-				if (! guard.isRequestAllowed(req))
-					return false;
-			}
-			return true;
-		}
-
-		@Override /* ResourceMethod */
-		int invoke(String methodName, String pathInfo, RestServlet resource, RestRequest req, RestResponse res) throws RestException {
-
-			String[] patternVals = pathPattern.match(pathInfo);
-			if (patternVals == null)
-				return SC_NOT_FOUND;
-
-			String remainder = null;
-			if (patternVals.length > pathPattern.vars.length)
-				remainder = patternVals[pathPattern.vars.length];
-			for (int i = 0; i < pathPattern.vars.length; i++)
-				req.setAttribute(pathPattern.vars[i], patternVals[i]);
-
-			req.init(method, remainder, createRequestProperties(mProperties, req), mDefaultRequestHeaders, mDefaultEncoding, mSerializers, mParsers, mUrlEncodingParser);
-			res.init(req.getProperties(), mDefaultEncoding, mSerializers, mUrlEncodingSerializer, mEncoders);
-
-			// Class-level guards
-			for (RestGuard guard : getGuards())
-				if (! guard.guard(req, res))
-					return SC_UNAUTHORIZED;
-
-			// If the method implements matchers, test them.
-			for (RestMatcher m : requiredMatchers)
-				if (! m.matches(req))
-					return SC_PRECONDITION_FAILED;
-			if (optionalMatchers.length > 0) {
-				boolean matches = false;
-				for (RestMatcher m : optionalMatchers)
-					matches |= m.matches(req);
-				if (! matches)
-					return SC_PRECONDITION_FAILED;
-			}
-
-			onPreCall(req);
-
-			Object[] args = new Object[params.length];
-			for (int i = 0; i < params.length; i++) {
-				try {
-					args[i] = params[i].getValue(req, res);
-				} catch (RestException e) {
-					throw e;
-				} catch (Exception e) {
-					throw new RestException(SC_BAD_REQUEST,
-						"Invalid data conversion.  Could not convert {0} ''{1}'' to type ''{2}'' on method ''{3}.{4}''.",
-						params[i].paramType.name(), params[i].name, params[i].type, method.getDeclaringClass().getName(), method.getName()
-					).initCause(e);
-				}
-			}
-
-			try {
-
-				for (RestGuard guard : guards)
-					if (! guard.guard(req, res))
-						return SC_OK;
-
-				Object output = method.invoke(resource, args);
-				if (! method.getReturnType().equals(Void.TYPE))
-					if (output != null || ! res.getOutputStreamCalled())
-						res.setOutput(output);
-
-				onPostCall(req, res);
-
-				if (res.hasOutput()) {
-					output = res.getOutput();
-					for (RestConverter converter : mConverters)
-						output = converter.convert(req, output, getBeanContext().getClassMetaForObject(output));
-					res.setOutput(output);
-				}
-			} catch (IllegalArgumentException e) {
-				throw new RestException(SC_BAD_REQUEST,
-					"Invalid argument type passed to the following method: ''{0}''.\n\tArgument types: {1}",
-					method.toString(), ClassUtils.getReadableClassNames(args)
-				);
-			} catch (InvocationTargetException e) {
-				Throwable e2 = e.getTargetException();		// Get the throwable thrown from the doX() method.
-				if (e2 instanceof RestException)
-					throw (RestException)e2;
-				if (e2 instanceof ParseException)
-					throw new RestException(SC_BAD_REQUEST, e2);
-				if (e2 instanceof InvalidDataConversionException)
-					throw new RestException(SC_BAD_REQUEST, e2);
-				throw new RestException(SC_INTERNAL_SERVER_ERROR, e2);
-			} catch (RestException e) {
-				throw e;
-			} catch (Exception e) {
-				throw new RestException(SC_INTERNAL_SERVER_ERROR, e);
-			}
-			return SC_OK;
-		}
-
-		@Override /* Object */
-		public String toString() {
-			return "SimpleMethod: name=" + httpMethod + ", path=" + pathPattern.patternString;
-		}
-
-		/*
-		 * compareTo() method is used to keep SimpleMethods ordered in the MultiMethod.tempCache list.
-		 * It maintains the order in which matches are made during requests.
-		 */
-		@Override /* Comparable */
-		public int compareTo(MethodMeta o) {
-			int c;
-
-			c = priority.compareTo(o.priority);
-			if (c != 0)
-				return c;
-
-			c = pathPattern.compareTo(o.pathPattern);
-			if (c != 0)
-				return c;
-
-			c = Utils.compare(o.requiredMatchers.length, requiredMatchers.length);
-			if (c != 0)
-				return c;
-
-			c = Utils.compare(o.optionalMatchers.length, optionalMatchers.length);
-			if (c != 0)
-				return c;
-
-			c = Utils.compare(o.guards.length, guards.length);
-			if (c != 0)
-				return c;
-
-			return 0;
-		}
-
-		@Override /* Object */
-		public boolean equals(Object o) {
-			if (! (o instanceof MethodMeta))
-				return false;
-			return (compareTo((MethodMeta)o) == 0);
-		}
-
-		@Override /* Object */
-		public int hashCode() {
-			return super.hashCode();
-		}
-	}
-
-	/*
-	 * Represents a group of SimpleMethods that all belong to the same HTTP method (e.g. "GET").
-	 */
-	private class MultiMethod extends ResourceMethod {
-		MethodMeta[] childMethods;
-		List<MethodMeta> tempCache = new LinkedList<MethodMeta>();
-		Set<String> collisions = new HashSet<String>();
-
-		private MultiMethod(MethodMeta... simpleMethods) throws RestServletException {
-			for (MethodMeta m : simpleMethods)
-				addSimpleMethod(m);
-		}
-
-		private void addSimpleMethod(MethodMeta m) throws RestServletException {
-			if (m.guards.length == 0 && m.requiredMatchers.length == 0 && m.optionalMatchers.length == 0) {
-				String p = m.httpMethod + ":" + m.pathPattern.toRegEx();
-				if (collisions.contains(p))
-					throw new RestServletException("Duplicate Java methods assigned to the same method/pattern:  method=''{0}'', path=''{1}''", m.httpMethod, m.pathPattern);
-				collisions.add(p);
-			}
-			tempCache.add(m);
-		}
-
-		@Override /* ResourceMethod */
-		void complete() {
-			Collections.sort(tempCache);
-			collisions = null;
-			childMethods = tempCache.toArray(new MethodMeta[tempCache.size()]);
-		}
-
-		@Override /* ResourceMethod */
-		int invoke(String methodName, String pathInfo, RestServlet resource, RestRequest req, RestResponse res) throws RestException {
-			int maxRc = 0;
-			for (MethodMeta m : childMethods) {
-				int rc = m.invoke(methodName, pathInfo, resource, req, res);
-				//if (rc == SC_UNAUTHORIZED)
-				//	return SC_UNAUTHORIZED;
-				if (rc == SC_OK)
-					return SC_OK;
-				maxRc = Math.max(maxRc, rc);
-			}
-			return maxRc;
-		}
-
-		@Override /* Object */
-		public String toString() {
-			StringBuilder sb = new StringBuilder("MultiMethod: [\n");
-			for (MethodMeta sm : childMethods)
-				sb.append("\t" + sm + "\n");
-			sb.append("]");
-			return sb.toString();
-		}
-	}
-
-	/**
-	 * Returns the method description for the specified method for the OPTIONS page of this servlet.
-	 * <p>
-	 * 	Subclasses

<TRUNCATED>

[22/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/RestServletJenaDefault.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/RestServletJenaDefault.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/RestServletJenaDefault.java
deleted file mode 100755
index 00cb56a..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/RestServletJenaDefault.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.jena;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-import static org.apache.juneau.server.RestServletContext.*;
-
-import org.apache.juneau.html.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.jso.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.msgpack.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.labels.*;
-import org.apache.juneau.soap.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Subclass of {@link RestServlet} with default sets of serializers and parsers that include RDF support.
- * <p>
- * 	Extends the {@link org.apache.juneau.server.RestServletDefault} class with additional RDF support.
- * <p>
- * <p>
- * 	Supports the following request <code>Accept</code> header values with the resulting response <code>Content-Type</code>:
- * </p>
- * <table class='styled'>
- * 	<tr>
- * 		<th>Accept</th>
- * 		<th>Content-Type</th>
- * 		<th>Serializer</th>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/json<br>text/json</td>
- * 		<td class='code'>application/json</td>
- * 		<td>{@link JsonSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/json+simple<br>text/json+simple</td>
- * 		<td class='code'>application/json</td>
- * 		<td>{@link org.apache.juneau.json.JsonSerializer.Simple}</td>
- * 	</tr>
- * 		<td class='code'>application/json+schema<br>text/json+schema</td>
- * 		<td class='code'>application/json</td>
- * 		<td>{@link JsonSchemaSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml</td>
- * 		<td class='code'>text/xml</td>
- * 		<td>{@link XmlDocSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml+schema</td>
- * 		<td class='code'>text/xml</td>
- * 		<td>{@link XmlSchemaDocSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/html</td>
- * 		<td class='code'>text/html</td>
- * 		<td>{@link HtmlDocSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/html+stripped</td>
- * 		<td class='code'>text/html</td>
- * 		<td>{@link HtmlStrippedDocSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/uon</td>
- * 		<td class='code'>text/uon</td>
- * 		<td>{@link UonSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/uon-simple</td>
- * 		<td class='code'>text/uon</td>
- * 		<td>{@link org.apache.juneau.urlencoding.UonSerializer.Simple}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/x-www-form-urlencoded</td>
- * 		<td class='code'>application/x-www-form-urlencoded</td>
- * 		<td>{@link UrlEncodingSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/x-www-form-urlencoded-simple</td>
- * 		<td class='code'>application/x-www-form-urlencoded</td>
- * 		<td>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer.Simple}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml+soap</td>
- * 		<td class='code'>text/xml</td>
- * 		<td>{@link SoapXmlSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/plain</td>
- * 		<td class='code'>text/plain</td>
- * 		<td>{@link PlainTextSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/plain</td>
- * 		<td class='code'>text/plain</td>
- * 		<td>{@link PlainTextSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/x-java-serialized-object</td>
- * 		<td class='code'>application/x-java-serialized-object</td>
- * 		<td>{@link JavaSerializedObjectSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml+rdf</td>
- * 		<td class='code'>text/xml+rdf</td>
- * 		<td>{@link org.apache.juneau.jena.RdfSerializer.Xml}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml+rdf+abbrev</td>
- * 		<td class='code'>text/xml+rdf</td>
- * 		<td>{@link org.apache.juneau.jena.RdfSerializer.XmlAbbrev}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/n3</td>
- * 		<td class='code'>text/n3</td>
- * 		<td>{@link org.apache.juneau.jena.RdfSerializer.N3}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/n-triple</td>
- * 		<td class='code'>text/n-triple</td>
- * 		<td>{@link org.apache.juneau.jena.RdfSerializer.NTriple}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/turtle</td>
- * 		<td class='code'>text/turtle</td>
- * 		<td>{@link org.apache.juneau.jena.RdfSerializer.Turtle}</td>
- * 	</tr>
- * </table>
- * <p>
- * 	Supports the following request <code>Content-Type</code> header values:
- * </p>
- * <table class='styled'>
- * 	<tr>
- * 		<th>Content-Type</th>
- * 		<th>Parser</th>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/json<br>text/json</td>
- * 		<td>{@link JsonParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml<br>application/xml</td>
- * 		<td>{@link XmlParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/html<br>text/html+stripped</td>
- * 		<td>{@link HtmlParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/uon</td>
- * 		<td>{@link UonParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/x-www-form-urlencoded</td>
- * 		<td>{@link UrlEncodingParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/plain</td>
- * 		<td>{@link PlainTextParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml+rdf</td>
- * 		<td>{@link org.apache.juneau.jena.RdfParser.Xml}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/n3</td>
- * 		<td>{@link org.apache.juneau.jena.RdfParser.N3}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/n-triple</td>
- * 		<td>{@link org.apache.juneau.jena.RdfParser.NTriple}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/turtle</td>
- * 		<td>{@link org.apache.juneau.jena.RdfParser.Turtle}</td>
- * 	</tr>
- * </table>
- * <p>
- *		Note that the list of serializers and parsers can be appended to using the {@link RestResource#serializers() @RestResource.serializers()}
- *			and {@link RestResource#parsers() @RestResource.parsers()} annotations on subclasses.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@RestResource(
-	serializers={
-		HtmlDocSerializer.class, // HTML must be listed first because Internet Explore does not include text/html in their Accept header.
-		HtmlStrippedDocSerializer.class,
-		HtmlSchemaDocSerializer.class,
-		JsonSerializer.class,
-		JsonSerializer.Simple.class,
-		JsonSchemaSerializer.class,
-		XmlDocSerializer.class,
-		XmlDocSerializer.Simple.class,
-		XmlSchemaDocSerializer.class,
-		UonSerializer.class,
-		UonSerializer.Simple.class,
-		UrlEncodingSerializer.class,
-		UrlEncodingSerializer.Simple.class,
-		MsgPackSerializer.class,
-		SoapXmlSerializer.class,
-		JavaSerializedObjectSerializer.class,
-		PlainTextSerializer.class,
-		RdfSerializer.Xml.class,
-		RdfSerializer.XmlAbbrev.class,
-		RdfSerializer.N3.class,
-		RdfSerializer.NTriple.class,
-		RdfSerializer.Turtle.class,
-	},
-	parsers={
-		JsonParser.class,
-		XmlParser.class,
-		HtmlParser.class,
-		UonParser.class,
-		UrlEncodingParser.class,
-		MsgPackParser.class,
-		RdfParser.Xml.class,
-		RdfParser.N3.class,
-		RdfParser.NTriple.class,
-		RdfParser.Turtle.class
-	},
-	properties={
-		// Allow &method parameter on safe HTTP methods.
-		@Property(name=REST_allowMethodParam, value="OPTIONS"),
-		// Provide a default title on HTML pages.
-		@Property(name=HTMLDOC_title, value="$R{servletLabel}"),
-		// Provide a default description on HTML pages.
-		@Property(name=HTMLDOC_description, value="$R{servletDescription}")
-	},
-	stylesheet="styles/juneau.css",
-	favicon="juneau.ico",
-	staticFiles="{htdocs:'htdocs'}"
-)
-public abstract class RestServletJenaDefault extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * [OPTIONS /*] - Show resource options.
-	 *
-	 * @param req The HTTP request.
-	 * @return The bean containing the contents of the OPTIONS page.
-	 *
-	 */
-	@RestMethod(name="OPTIONS", path="/*",
-		properties={
-			@Property(name=HTMLDOC_links, value="{back:'$R{servletURI}'}"),
-			@Property(name=HTMLDOC_description, value="Resource options")
-		},
-		description="Resource options"
-	)
-	public ResourceOptions getOptions(RestRequest req) {
-		return new ResourceOptions(this, req);
-	}
-
-	@Override /* RestServlet */
-	public boolean hasOptionsPage() {
-		return true;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/RestServletJenaGroupDefault.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/RestServletJenaGroupDefault.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/RestServletJenaGroupDefault.java
deleted file mode 100755
index 56e16f4..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/RestServletJenaGroupDefault.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.jena;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.labels.*;
-
-/**
- * Specialized subclass of {@link RestServletJenaDefault} for showing "group" pages.
- * <p>
- * 	Group pages consist of simple lists of child resource URLs and their labels.
- * 	They're meant to be used as jumping-off points for child resources.
- * <p>
- * 	Child resources are specified using the {@link RestResource#children()} annotation.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@RestResource()
-public abstract class RestServletJenaGroupDefault extends RestServletJenaDefault {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * [GET /] - Get child resources.
-	 *
-	 * @param req The HTTP request
-	 * @return The bean containing links to the child resources.
-	 */
-	@RestMethod(name="GET", path="/", description="Child resources")
-	public ChildResourceDescriptions getChildren(RestRequest req) {
-		return new ChildResourceDescriptions(this, req);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/package.html
deleted file mode 100755
index 3fe0832..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jena/package.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!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>RET servlet API with Jena components</p>
-
-<p>
-	Contains predefined instances of REST API classes with Jena support included.
-</p>
-
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/juneau.ico
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/juneau.ico b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/juneau.ico
deleted file mode 100755
index 737f40a..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/juneau.ico and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java
deleted file mode 100755
index dc4eade..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-
-/**
- * Simple serializable bean description.
- * <p>
- * 	Given a particular class type, this serializes the class into
- * 	the fully-qualified class name and the properties associated with the class.
- * <p>
- * 	Useful for rendering simple information about a bean during REST OPTIONS requests.
- *
- * @param <T> The class type of the bean.
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Bean(properties={"type","properties"})
-public final class BeanDescription<T> {
-
-	/** The bean class type. */
-	public String type;
-
-	/** The bean properties. */
-	public BeanPropertyDescription[] properties;
-
-	/**
-	 * Constructor
-	 * @param c The bean class type.
-	 */
-	public BeanDescription(Class<T> c) {
-		type = c.getName();
-		BeanMeta<T> bm = BeanContext.DEFAULT.getBeanMeta(c);
-		properties = new BeanPropertyDescription[bm.getPropertyMetas().size()];
-		int i = 0;
-		for (BeanPropertyMeta<T> pm : bm.getPropertyMetas())
-			properties[i++] = new BeanPropertyDescription(pm.getName(), pm.getClassMeta());
-	}
-
-	/**
-	 * Information about a bean property.
-	 */
-	public static class BeanPropertyDescription {
-
-		/** The bean property name. */
-		public String name;
-
-		/** The bean property filtered class type. */
-		public String type;
-
-		/**
-		 * Constructor.
-		 *
-		 * @param name The bean property name.
-		 * @param type The bean property class type.
-		 */
-		public BeanPropertyDescription(String name, ClassMeta<?> type) {
-			this.name = name;
-			this.type = type.getTransformedClassMeta().toString();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ChildResourceDescriptions.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ChildResourceDescriptions.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ChildResourceDescriptions.java
deleted file mode 100755
index f965673..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ChildResourceDescriptions.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import java.util.*;
-
-import org.apache.juneau.server.*;
-
-/**
- * A POJO structure that describes the list of child resources associated with a resource.
- * <p>
- * Typically used in top-level GET methods of router resources to render a list of
- * 	available child resources.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class ChildResourceDescriptions extends LinkedList<ResourceDescription> {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param servlet The servlet that this bean describes.
-	 * @param req The HTTP servlet request.
-	 */
-	public ChildResourceDescriptions(RestServlet servlet, RestRequest req) {
-		this(servlet, req, false);
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param servlet The servlet that this bean describes.
-	 * @param req The HTTP servlet request.
-	 * @param sort If <jk>true</jk>, list will be ordered by name alphabetically.
-	 * 	Default is to maintain the order as specified in the annotation.
-	 */
-	public ChildResourceDescriptions(RestServlet servlet, RestRequest req, boolean sort) {
-		String uri = req.getTrimmedRequestURI();
-		for (Map.Entry<String,RestServlet> e : servlet.getChildResources().entrySet())
-			add(new ResourceDescription(uri, e.getKey(), e.getValue().getLabel(req)));
-		if (sort)
-			Collections.sort(this);
-	}
-
-	/**
-	 * Bean constructor.
-	 */
-	public ChildResourceDescriptions() {
-		super();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/DefaultLabels.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/DefaultLabels.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/DefaultLabels.java
deleted file mode 100755
index f55f64c..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/DefaultLabels.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import static java.lang.String.*;
-
-import java.util.*;
-
-import org.apache.juneau.server.converters.*;
-
-/**
- * Reusable label constructs for REST OPTIONS requests.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class DefaultLabels {
-
-	private static String
-		bundleName = DefaultLabels.class.getPackage().getName() + ".nls.DefaultLabels",
-		typeKey = "%s.%s.type",	// "{category}.{name}.type"
-		descKey = "%s.%s.desc";	// "{catetory}.{name}.desc"
-
-	private static Map<Locale,ParamDescription[]> queryableParams = new HashMap<Locale,ParamDescription[]>();
-	private static Map<Locale,ParamDescription[]> headerParams = new HashMap<Locale,ParamDescription[]>();
-
-	/**
-	 * OPTIONS request labels for query/view/sort/paging features on POJOs
-	 * 	when {@link Queryable} filter is associated with a resource method.
-	 * @param locale The client locale.
-	 * @return A list of localized parameter descriptions.
-	 */
-	public static ParamDescription[] getQueryableParamDescriptions(Locale locale) {
-		if (! queryableParams.containsKey(locale)) {
-			ResourceBundle rb = ResourceBundle.getBundle(bundleName, locale);
-			String category = "QueryableParam";
-			String[] p = {"q","v","s","g","i","p","l"};
-			ParamDescription[] l = new ParamDescription[p.length];
-			for (int i = 0; i < p.length; i++)
-				l[i] = new ParamDescription(p[i],
-					rb.getString(format(typeKey, category, p[i])),
-					rb.getString(format(descKey, category, p[i]))
-				);
-			queryableParams.put(locale, l);
-		}
-		return queryableParams.get(locale);
-	}
-
-	/**
-	 * OPTIONS request labels for header values that can be specified as GET parameters.
-	 * @param locale The client locale.
-	 * @return A list of localized parameter descriptions.
-	 */
-	public static ParamDescription[] getHeaderParamDescriptions(Locale locale) {
-		if (! headerParams.containsKey(locale)) {
-			ResourceBundle rb = ResourceBundle.getBundle(bundleName, locale);
-			String category = "HeaderParam";
-			String[] p = {"Accept","Accept-Encoding","Method","Content","plainText"};
-			ParamDescription[] l = new ParamDescription[p.length];
-			for (int i = 0; i < p.length; i++)
-				l[i] = new ParamDescription(p[i],
-					rb.getString(format(typeKey, category, p[i])),
-					rb.getString(format(descKey, category, p[i]))
-				);
-			headerParams.put(locale, l);
-		}
-		return headerParams.get(locale);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/MethodDescription.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/MethodDescription.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/MethodDescription.java
deleted file mode 100755
index bee688a..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/MethodDescription.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.server.*;
-
-/**
- * Simple bean for describing REST methods.
- * <p>
- * 	Primarily used for constructing tables with name/path/description/... columns on REST OPTIONS requests.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Bean(properties={"httpMethod","path","javaMethod","description","input","responses","consumes","produces","matchers","guards","converters"})
-public final class MethodDescription implements Comparable<MethodDescription> {
-	private String javaMethod, httpMethod, path, description;
-	private String[] guards, converters, matchers;
-	private Set<Var> requestVars = new TreeSet<Var>();
-	private Map<Integer,Response> responses = new TreeMap<Integer,Response>();
-	private Collection<String> consumes, produces;
-	private int httpMethodOrder;
-
-	/**
-	 * A possible response status.
-	 */
-	public static class Response {
-
-		/** HTTP status code */
-		public int status;
-
-		/** Response description */
-		public String description;
-
-		/** Response headers set */
-		public Set<Var> output = new TreeSet<Var>();
-
-		/** Bean constructor */
-		public Response() {}
-
-		/**
-		 * Constructor.
-		 *
-		 * @param status HTTP status code.
-		 */
-		public Response(int status) {
-			this.status = status;
-			this.description = RestUtils.getHttpResponseText(status);
-		}
-
-		/**
-		 * Add a response variable to this response.
-		 *
-		 * @param category The response variable category (typically only <js>"header"</js>).
-		 * @param name The response variable name.
-		 * @return The new variable object whose fields can be updated.
-		 */
-		public Var addResponseVar(String category, String name) {
-			for (Var v : output)
-				if (v.matches(category, name))
-					return v;
-			Var v = new Var(category, name);
-			output.add(v);
-			return v;
-		}
-
-		/**
-		 * Sets the description for this response.
-		 *
-		 * @param description The new description.
-		 * @return This object (for method chaining).
-		 */
-		public Response setDescription(String description) {
-			this.description = description;
-			return this;
-		}
-	}
-
-	/** Constructor. */
-	public MethodDescription() {}
-
-	/**
-	 * Returns the javaMethod field on this label.
-	 *
-	 * @return The name.
-	 */
-	public String getJavaMethod() {
-		return javaMethod;
-	}
-
-	/**
-	 * Sets the javaMethod field on this label to a new value.
-	 *
-	 * @param javaMethod The new name.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setJavaMethod(String javaMethod) {
-		this.javaMethod = javaMethod;
-		return this;
-	}
-
-	/**
-	 * Returns the httpMethod field on this label.
-	 *
-	 * @return The name.
-	 */
-	public String getHttpMethod() {
-		return httpMethod;
-	}
-
-	/**
-	 * Sets the httpMethod field on this label to a new value.
-	 *
-	 * @param httpMethod The new name.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setHttpMethod(String httpMethod) {
-		this.httpMethod = httpMethod;
-		this.httpMethodOrder = (httpMethodOrders.containsKey(httpMethod) ? httpMethodOrders.get(httpMethod) : 10);
-		return this;
-	}
-
-	/**
-	 * Returns the path field on this label.
-	 *
-	 * @return The path.
-	 */
-	public String getPath() {
-		return path;
-	}
-
-	/**
-	 * Sets the path field on this label to a new value.
-	 *
-	 * @param path The new path.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setPath(String path) {
-		this.path = path;
-		return this;
-	}
-
-	/**
-	 * Returns the description field on this label.
-	 *
-	 * @return The description.
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Sets the description field on this label to a new value.
-	 *
-	 * @param description The new description.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setDescription(String description) {
-		this.description = description;
-		return this;
-	}
-
-	/**
-	 * Returns the vars field on this label.
-	 *
-	 * @return The vars.
-	 */
-	public Collection<Var> getInput() {
-		return requestVars;
-	}
-
-	/**
-	 * Returns the possible response codes returned by this method.
-	 *
-	 * @return The possible response codes returned by this method.
-	 */
-	public Collection<Response> getResponses() {
-		return responses.values();
-	}
-
-	/**
-	 * Sets the list of <code>Accept</code> header values that this method accepts if it's different
-	 * 	from the servlet.
-	 *
-	 * @param consumes The list of <code>Accept</code> header values.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setConsumes(Collection<String> consumes) {
-		this.consumes = consumes;
-		return this;
-	}
-
-	/**
-	 * Returns the list of <code>Accept</code> header values that this method accepts if it's different
-	 * 	from the servlet.
-	 *
-	 * @return The list of <code>Accept</code> header values.
-	 */
-	public Collection<String> getConsumes() {
-		return consumes;
-	}
-
-	/**
-	 * Sets the list of <code>Content-Type</code> header values that this method accepts if it's different
-	 * 	from the servlet.
-	 *
-	 * @param produces The list of <code>Content-Type</code> header values.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setProduces(Collection<String> produces) {
-		this.produces = produces;
-		return this;
-	}
-
-	/**
-	 * Returns the list of <code>Content-Type</code> header values that this method accepts if it's different
-	 * 	from the servlet.
-	 *
-	 * @return The list of <code>Content-Type</code> header values.
-	 */
-	public Collection<String> getProduces() {
-		return produces;
-	}
-	/**
-	 * Sets the guards field on this label to a new value.
-	 *
-	 * @param guards The guards associated with this method.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setGuards(Class<?>...guards) {
-		this.guards = new String[guards.length];
-		for (int i = 0; i < guards.length; i++)
-			this.guards[i] = guards[i].getSimpleName();
-		return this;
-	}
-
-	/**
-	 * Returns the guards field on this label.
-	 *
-	 * @return The guards.
-	 */
-	public String[] getGuards() {
-		return guards;
-	}
-
-	/**
-	 * Sets the matchers field on this label to a new value.
-	 *
-	 * @param matchers The matchers associated with this method.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setMatchers(Class<?>...matchers) {
-		this.matchers = new String[matchers.length];
-		for (int i = 0; i < matchers.length; i++)
-			this.matchers[i] = matchers[i].getSimpleName();
-		return this;
-	}
-
-	/**
-	 * Returns the matchers field on this label.
-	 *
-	 * @return The matchers.
-	 */
-	public String[] getMatchers() {
-		return matchers;
-	}
-
-	/**
-	 * Sets the converters field on this label to a new value.
-	 *
-	 * @param converters The converters associated with this method.
-	 * @return This object (for method chaining).
-	 */
-	public MethodDescription setConverters(Class<?>...converters) {
-		this.converters = new String[converters.length];
-		for (int i = 0; i < converters.length; i++)
-			this.converters[i] = converters[i].getSimpleName();
-		return this;
-	}
-
-	/**
-	 * Returns the converters field on this label.
-	 *
-	 * @return The converters.
-	 */
-	public String[] getConverters() {
-		return converters;
-	}
-
-	/**
-	 * Add a request variable to this method description.
-	 *
-	 * @param category The variable category (e.g. <js>"attr"</js>, <js>"attr"</js>, <js>"header"</js>, <js>"content"</js>).
-	 * @param name The variable name.
-	 * 	Can be <jk>null</jk> in the case of <js>"content"</js> category.
-	 * @return The new variable whose fields can be modified.
-	 */
-	public Var addRequestVar(String category, String name) {
-		for (Var v : requestVars)
-			if (v.matches(category, name))
-				return v;
-		Var v = new Var(category, name);
-		requestVars.add(v);
-		return v;
-	}
-
-	/**
-	 * Add a possible HTTP response code from this method.
-	 *
-	 * @param httpStatus The HTTP status code.
-	 * @return The new response object whose fields can be modified.
-	 */
-	public Response addResponse(int httpStatus) {
-		if (! responses.containsKey(httpStatus))
-			responses.put(httpStatus, new Response(httpStatus));
-		return responses.get(httpStatus);
-	}
-
-	@Override
-	public int compareTo(MethodDescription md) {
-		int i = Utils.compare(httpMethodOrder, md.httpMethodOrder);
-		if (i == 0)
-			i = path.compareTo(md.path);
-		if (i == 0)
-			i = javaMethod.compareTo(md.javaMethod);
-		return i;
-	}
-
-	@SuppressWarnings("serial")
-	private static final Map<String,Integer> httpMethodOrders = new HashMap<String,Integer>() {{
-		put("GET", 1);
-		put("PUT", 2);
-		put("POST", 3);
-		put("DELETE", 4);
-		put("OPTIONS", 5);
-	}};
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/NameDescription.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/NameDescription.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/NameDescription.java
deleted file mode 100755
index 6172995..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/NameDescription.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import org.apache.juneau.annotation.*;
-
-/**
- * Simple bean with {@code name} and {@code description} properties.
- * <p>
- * 	Primarily used for constructing tables with name/description columns on REST OPTIONS requests.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Bean(properties={"name","description"})
-public class NameDescription {
-
-	private Object name;
-	private Object description;
-
-	/** No-arg constructor.  Used for JUnit testing of OPTIONS pages. */
-	public NameDescription() {}
-
-	/**
-	 * Constructor.
-	 * @param name A name.
-	 * @param description A description.
-	 */
-	public NameDescription(Object name, Object description) {
-		this.name = name;
-		this.description = description;
-	}
-
-	/**
-	 * Returns the name field on this label.
-	 * @return The name.
-	 */
-	public Object getName() {
-		return name;
-	}
-
-	/**
-	 * Sets the name field on this label to a new value.
-	 * @param name The new name.
-	 */
-	public void setName(Object name) {
-		this.name = name;
-	}
-
-	/**
-	 * Returns the description field on this label.
-	 * @return The description.
-	 */
-	public Object getDescription() {
-		return description;
-	}
-
-	/**
-	 * Sets the description field on this label to a new value.
-	 * @param description The new description.
-	 */
-	public void setDescription(Object description) {
-		this.description = description;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ParamDescription.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ParamDescription.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ParamDescription.java
deleted file mode 100755
index f87d08b..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ParamDescription.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import org.apache.juneau.annotation.*;
-
-/**
- * Simple bean for describing GET parameters.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Bean(properties={"name","dataType","description"})
-public final class ParamDescription {
-	private String name;
-	private String dataType;
-	private String description;
-
-	/** No-arg constructor.  Used for JUnit testing of OPTIONS pages. */
-	public ParamDescription() {}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param name A name.
-	 * @param dataType Typically a fully-qualified class name.
-	 * @param description A description.
-	 */
-	public ParamDescription(String name, String dataType, String description) {
-		this.name = name;
-		this.dataType = dataType;
-		this.description = description;
-	}
-
-	/**
-	 * Returns the name field on this label.
-	 *
-	 * @return The name.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Sets the name field on this label to a new value.
-	 *
-	 * @param name The new name.
-	 * @return This object (for method chaining).
-	 */
-	public ParamDescription setName(String name) {
-		this.name = name;
-		return this;
-	}
-
-	/**
-	 * Returns the dataType field on this label.
-	 *
-	 * @return The dataType.
-	 */
-	public String getDataType() {
-		return dataType;
-	}
-
-	/**
-	 * Sets the dataType field on this label to a new value.
-	 *
-	 * @param dataType The new data type.
-	 * @return This object (for method chaining).
-	 */
-	public ParamDescription setDataType(String dataType) {
-		this.dataType = dataType;
-		return this;
-	}
-
-	/**
-	 * Returns the description field on this label.
-	 *
-	 * @return The description.
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Sets the description field on this label to a new value.
-	 *
-	 * @param description The new description.
-	 * @return This object (for method chaining).
-	 */
-	public ParamDescription setDescription(String description) {
-		this.description = description;
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceDescription.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceDescription.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceDescription.java
deleted file mode 100755
index 312fa3c..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceDescription.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import org.apache.juneau.dto.*;
-import org.apache.juneau.server.*;
-
-/**
- * Shortcut label for child resources.  Typically used in router resources.
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Instead of this...</jc>
- * 	<jk>new</jk> NameDescription(<jk>new</jk> Link(<js>"httpTool"</js>, uri + <js>"/httpTool"</js>), <js>"HTTP request test client"</js>);
- *
- * 	<jc>// ...use this simpler equivalent...</jc>
- * 	<jk>new</jk> ResourceLink(uri, <js>"httpTool"</js>, <js>"HTTP request test client"</js>);
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class ResourceDescription extends NameDescription implements Comparable<ResourceDescription> {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param rootUrl The root URI of the child resource (e.g. the URI of the parent resource).
-	 * 		Must not end with <js>'/'</js>.
-	 * 		Must be URL-Encoded.
-	 * @param name The name of the child resource.
-	 * 		This will be URL-encoded and appended onto the root URL to create the hyperlink for the resource.
-	 * @param description The description of the child resource.
-	 */
-	public ResourceDescription(String rootUrl, String name, String description) {
-		super(new Link(name, (rootUrl.equals("/") || rootUrl.isEmpty() ? "/" : rootUrl + "/") + RestUtils.encode(name)), description);
-	}
-
-	/**
-	 * Constructor for resources that are children of a REST resource.
-	 *
-	 * @param req The HTTP request.
-	 * @param childPath The childPath The path of the child resource relative to the servlet.
-	 * @param description The description of the child resource.
-	 */
-	public ResourceDescription(RestRequest req, String childPath, String description) {
-		super(new Link(calcName(childPath), calcHref(req, childPath)), description);
-	}
-
-	private static String calcName(String childPath) {
-		return RestUtils.decode(childPath.indexOf('/') == -1 ? childPath : childPath.substring(childPath.lastIndexOf('/')+1));
-	}
-
-	private static String calcHref(RestRequest req, String childPath) {
-		return req.getServletURIBuilder().append('/').append(childPath).toString();
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param name The name of the child resource.
-	 * @param description The description of the child resource.
-	 */
-	public ResourceDescription(String name, String description) {
-		super(new Link(name, name), description);
-	}
-
-	/** No-arg constructor.  Used for JUnit testing of OPTIONS pages. */
-	public ResourceDescription() {}
-
-	@Override /* NameDescription */
-	public Link getName() {
-		return (Link)super.getName();
-	}
-
-	/**
-	 * Overridden setter.
-	 *
-	 * @param name The new name.
-	 */
-	public void setName(Link name) {
-		super.setName(name);
-	}
-
-	@Override /* Comparable */
-	public int compareTo(ResourceDescription o) {
-		return getName().compareTo(o.getName());
-	}
-
-	@Override /* Object */
-	public boolean equals(Object o) {
-		return (o instanceof ResourceDescription) && ((ResourceDescription)o).getName().equals(getName());
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		return getName().hashCode();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceLink.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceLink.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceLink.java
deleted file mode 100755
index 19376c4..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceLink.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import java.text.*;
-
-import org.apache.juneau.dto.*;
-import org.apache.juneau.server.*;
-
-/**
- * A simple link to a child of a parent resource.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class ResourceLink extends Link {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param req The HTTP request from the parent resource.
-	 * @param childPath The child resource path.
-	 * @param args Optional {@link MessageFormat}-style arguments in the child path.
-	 */
-	public ResourceLink(RestRequest req, String childPath, Object...args) {
-		super(getName(getPath(childPath,args)), getHref(req, getPath(childPath,args)));
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param label The label for the link.
-	 * @param req The HTTP request from the parent resource.
-	 * @param childPath The child resource path.
-	 * @param args Optional {@link MessageFormat}-style arguments in the child path.
-	 */
-	public ResourceLink(String label, RestRequest req, String childPath, Object...args) {
-		super(label, getHref(req, getPath(childPath,args)));
-	}
-
-	private static String getName(String childPath) {
-		String s = childPath;
-		if (childPath.indexOf('/') == -1)
-			s = childPath;
-		else
-			s = childPath.substring(childPath.lastIndexOf('/')+1);
-		return RestUtils.decode(s);
-	}
-
-	private static String getHref(RestRequest req, String childPath) {
-		return req.getServletURIBuilder().append('/').append(childPath).toString();
-	}
-
-	private static String getPath(String childPath, Object...args) {
-		if (args.length > 0)
-			childPath = MessageFormat.format(childPath, args);
-		return childPath;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java
deleted file mode 100755
index ef46926..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import static javax.servlet.http.HttpServletResponse.*;
-
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Default POJO bean used for generating OPTIONS page results.
- * <p>
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Bean(properties={"label","description","className","methods","children","consumes","produces","guards","transforms","converters"})
-public class ResourceOptions {
-	private String label, description;
-	private String className;
-	private Collection<MethodDescription> methods;
-	private ChildResourceDescriptions children;
-	private Collection<String> consumes, produces;
-	private Collection<String> guards;
-	private Collection<String> transforms;
-	private Collection<String> converters;
-
-	/**
-	 * Constructor.
-	 * @param servlet The servlet that this bean describes.
-	 * @param req The HTTP servlet request.
-	 */
-	public ResourceOptions(RestServlet servlet, RestRequest req) {
-		try {
-			setClassName(servlet.getClass().getName());
-			setLabel(servlet.getLabel(req));
-			setDescription(servlet.getDescription(req));
-			setMethods(servlet.getMethodDescriptions(req));
-			setConsumes(servlet.getSupportedAcceptTypes());
-			setProduces(servlet.getSupportedContentTypes());
-			setChildren(new ChildResourceDescriptions(servlet, req));
-			setGuards(servlet.getGuards());
-			setTransforms(servlet.getTransforms());
-			setConverters(servlet.getConverters());
-		} catch (RestServletException e) {
-			throw new RestException(SC_INTERNAL_SERVER_ERROR, e);
-		}
-	}
-
-	/**
-	 * Bean constructor.
-	 */
-	public ResourceOptions() {}
-
-	/**
-	 * Returns the label of the REST resource.
-	 * @return The current bean property value.
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Sets the label of the REST resource.
-	 * @param label The new bean property value.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setLabel(String label) {
-		this.label = label;
-		return this;
-	}
-
-	/**
-	 * Returns the description of the REST resource.
-	 * @return The current bean property value.
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Sets the description of the REST resource.
-	 * @param description The new bean property value.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setDescription(String description) {
-		this.description = description;
-		return this;
-	}
-
-	/**
-	 * Returns the class name of the REST resource.
-	 * @return The current bean property value.
-	 */
-	public String getClassName() {
-		return className;
-	}
-
-	/**
-	 * Sets the class name of the REST resource.
-	 * @param className The new bean property value.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setClassName(String className) {
-		this.className = className;
-		return this;
-	}
-
-	/**
-	 * Returns the methods provided on this REST resource.
-	 * @return The current bean property value.
-	 */
-	public Collection<MethodDescription> getMethods() {
-		return methods;
-	}
-
-	/**
-	 * Sets the methods provided on this REST resource.
-	 * @param methods The new bean property value.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setMethods(Collection<MethodDescription> methods) {
-		List<MethodDescription> l = new ArrayList<MethodDescription>(methods);
-		Collections.sort(l);
-		this.methods = l;
-		return this;
-	}
-
-	/**
-	 * Returns the list of allowable <code>Accept</code> header values on requests.
-	 * @return The current bean property value.
-	 */
-	public Collection<String> getConsumes() {
-		return consumes;
-	}
-
-	/**
-	 * Sets the list of allowable <code>Accept</code> header values on requests.
-	 * @param consumes The new bean property value.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setConsumes(Collection<String> consumes) {
-		this.consumes = consumes;
-		return this;
-	}
-
-	/**
-	 * Returns the list of allowable <code>Content-Type</code> header values on requests.
-	 * @return The current bean property value.
-	 */
-	public Collection<String> getProduces() {
-		return produces;
-	}
-
-	/**
-	 * Sets the list of allowable <code>Content-Type</code> header values on requests.
-	 * @param produces The new bean property value.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setProduces(Collection<String> produces) {
-		this.produces = produces;
-		return this;
-	}
-
-	/**
-	 * Returns the description of child resources with this resource (typically through {@link RestResource#children()} annotation).
-	 * @return The description of child resources of this resource.
-	 */
-	public ChildResourceDescriptions getChildren() {
-		return children;
-	}
-
-	/**
-	 * Sets the child resource descriptions associated with this resource.
-	 * @param children The child resource descriptions.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setChildren(ChildResourceDescriptions children) {
-		this.children = children;
-		return this;
-	}
-
-
-	/**
-	 * Returns the list of class-wide guards associated with this resource (typically through {@link RestResource#guards()} annotation).
-	 * @return The simple class names of the guards.
-	 */
-	public Collection<String> getGuards() {
-		return guards;
-	}
-
-	/**
-	 * Sets the simple class names of the guards associated with this resource.
-	 * @param guards The simple class names of the guards.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setGuards(Collection<String> guards) {
-		this.guards = guards;
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link #setGuards(Collection)} from {@link RestGuard} instances.
-	 * @param guards Instances of guards associated with this resource.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setGuards(RestGuard[] guards) {
-		Collection<String> l = new ArrayList<String>(guards.length);
-		for (RestGuard g : guards)
-			l.add(g.getClass().getSimpleName());
-		return setGuards(l);
-	}
-
-	/**
-	 * Returns the list of class-wide transforms associated with this resource (typically through {@link RestResource#transforms()} annotation).
-	 * @return The simple class names of the transforms.
-	 */
-	public Collection<String> getTransforms() {
-		return transforms;
-	}
-
-	/**
-	 * Sets the simple class names of the transforms associated with this resource.
-	 * @param transforms The simple class names of the transforms.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setTransforms(Collection<String> transforms) {
-		this.transforms = transforms;
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link #setTransforms(Collection)} from {@link Class} instances.
-	 * @param transforms Transform classes associated with this resource.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setTransforms(Class<?>[] transforms) {
-		Collection<String> l = new ArrayList<String>(transforms.length);
-		for (Class<?> c : transforms)
-			l.add(c.getSimpleName());
-		return setTransforms(l);
-	}
-
-	/**
-	 * Returns the list of class-wide converters associated with this resource (typically through {@link RestResource#converters()} annotation).
-	 * @return The simple class names of the converters.
-	 */
-	public Collection<String> getConverters() {
-		return converters;
-	}
-
-	/**
-	 * Sets the simple class names of the converters associated with this resource.
-	 * @param converters The simple class names of the converters.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setConverters(Collection<String> converters) {
-		this.converters = converters;
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link #setConverters(Collection)} from {@link RestConverter} instances.
-	 * @param converters Converter classes associated with this resource.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setConverters(RestConverter[] converters) {
-		Collection<String> l = new ArrayList<String>(converters.length);
-		for (RestConverter c : converters)
-			l.add(c.getClass().getSimpleName());
-		return setConverters(l);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/Var.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/Var.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/Var.java
deleted file mode 100755
index 1f5b274..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/Var.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.labels;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
-
-/**
- * A request or response variable.
- */
-@Bean(properties={"category","name","description"})
-public class Var implements Comparable<Var> {
-
-	/** Variable category (e.g. <js>"header"</js>, <js>"content"</js>) */
-	public String category;
-
-	/** Variable name (e.g. <js>"Content-Type"</js>) */
-	public String name;
-
-	/** Variable description */
-	public String description;
-
-	/** Bean constructor */
-	public Var() {}
-
-	/**
-	 *
-	 * Constructor.
-	 * @param category Variable category (e.g. "ATTR", "PARAM").
-	 * @param name Variable name.
-	 */
-	public Var(String category, String name) {
-		this.category = category;
-		this.name = name;
-	}
-
-	@SuppressWarnings("hiding")
-	boolean matches(String category, String name) {
-		if (this.category.equals(category))
-			if (name == null || name.equals(this.name))
-				return true;
-		return false;
-	}
-
-	/**
-	 * Sets the description for this variable.
-	 *
-	 * @param description The new description.
-	 * @return This object (for method chaining).
-	 */
-	public Var setDescription(String description) {
-		this.description = description;
-		return this;
-	}
-
-	@Override /* Comparable */
-	public int compareTo(Var o) {
-		int i = category.compareTo(o.category);
-		if (i == 0)
-			i = (name == null ? -1 : name.compareTo(o.name));
-		return i;
-	}
-
-	@Override /* Object */
-	public boolean equals(Object o) {
-		if (o instanceof Var) {
-			Var v = (Var)o;
-			return (v.category.equals(category) && StringUtils.isEquals(name, v.name));
-		}
-		return false;
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		return category.hashCode() + (name == null ? 0 : name.hashCode());
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/nls/DefaultLabels.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/nls/DefaultLabels.properties b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/nls/DefaultLabels.properties
deleted file mode 100755
index 82c4da4..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/nls/DefaultLabels.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-# ***************************************************************************************************************************
-# * 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
-
-QueryableParam.q.type = Map<String,String>
-QueryableParam.q.desc = Query parameter.\nUse to return rows that match a specified search string.\nExample:&q={name:'Bill*',birthDate:'>2000'}.\nSee DateMatcher for syntax of search parameters on objects of type Date and Calendar.\nSee NumberMatcher for syntax of search parameters on objects of type Number.\nSee StringMatcher for syntax of search parameters on objects of all other types.
-QueryableParam.v.type = List<String> or String (comma-delimited list)
-QueryableParam.v.desc = View parameter.\nUse to return a specified set of columns.\nExample:  &v=['name','birthDate']
-QueryableParam.s.type = Map<String,Character>
-QueryableParam.s.desc = Sort parameter.\nUse to sort results by the specified columns.\nThe JSON object keys are the column names, and the values are either 'A' for ascending or 'D' for descending.\nExample:  &s={name:'A',birthDate:'D'}
-QueryableParam.g.type = List<String> or String (comma-delimited-list)
-QueryableParam.g.desc = Group-by parameter.\nUse to perform a group-by rollup on the specified columns.\nEssentially, this returns the specified list of columns, plus an additional 'count' column showing the grouped results.\nThis is very similar to the group-by functionality in SQL.
-QueryableParam.i.type = boolean
-QueryableParam.i.desc = Case-insensitive parameter.\nUse for case-insensitive matching on the &q parameter.
-QueryableParam.p.type = int
-QueryableParam.p.desc = Position parameter.\nUse to only return rows at the specified index position (zero-indexed).
-QueryableParam.l.type = int
-QueryableParam.l.desc = Limit parameter.\nUse to only return the specified number of rows.\n0 returns all rows.
-
-HeaderParam.accept.type = String
-HeaderParam.accept.desc = Specify the HTTP Accept header (e.g. &accept=text/xml).
-HeaderParam.accept-encoding.type = String
-HeaderParam.accept-encoding.desc = Specify the HTTP Accept-Encoding header (e.g. &accept-encoding=SJIS).
-HeaderParam.method.type = String
-HeaderParam.method.desc = Override the HTTP method (e.g. &method=HEAD).\nThis can also be used to invoke non-HTTP-standard methods.
-HeaderParam.content.type = *
-HeaderParam.content.desc = Can be used to pass in content for PUT/POST methods.\nTypically the content will be a JSON object or array.
-HeaderParam.plainText.type = Boolean
-HeaderParam.plainText.desc = Forces the response Content-Type to be 'text/plain' regardless of what's specified on the Accept header.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/package.html
deleted file mode 100755
index 4e03390..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/labels/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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>Various REST interface label classes</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/MultipartFormDataMatcher.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/MultipartFormDataMatcher.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/MultipartFormDataMatcher.java
deleted file mode 100755
index d2583f0..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/MultipartFormDataMatcher.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.matchers;
-
-import org.apache.juneau.server.*;
-
-/**
- * Predefined matcher for matching requests with content type <js>"multipart/form-data"</js>.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class MultipartFormDataMatcher extends RestMatcher {
-	@Override /* RestMatcher */
-	public boolean matches(RestRequest req) {
-		String contentType = req.getContentType();
-		return contentType != null && contentType.startsWith("multipart/form-data"); //$NON-NLS-1$
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/UrlEncodedFormMatcher.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/UrlEncodedFormMatcher.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/UrlEncodedFormMatcher.java
deleted file mode 100755
index 8b4f1de..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/UrlEncodedFormMatcher.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.matchers;
-
-import org.apache.juneau.server.*;
-
-/**
- * Predefined matcher for matching requests with content type <js>"application/x-www-form-urlencoded"</js>.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class UrlEncodedFormMatcher extends RestMatcher {
-	@Override /* RestMatcher */
-	public boolean matches(RestRequest req) {
-		String contentType = req.getContentType();
-		return contentType != null && contentType.equals("application/x-www-form-urlencoded"); //$NON-NLS-1$
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/package.html
deleted file mode 100755
index 7eacf3a..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/matchers/package.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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>
-</head>
-<body>
-<p>Predefined Matchers</p>
-</body>
-</html>
\ No newline at end of file


[49/51] [abbrv] [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/2c3a7cb5/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
deleted file mode 100755
index 8b79d13..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCall.java
+++ /dev/null
@@ -1,947 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index ced55d7..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallException.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 0de9533..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallInterceptor.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 3960a98..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestCallLogger.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/***************************************************************************************************************************
- * 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);
-		}
-	}
-}


[45/51] [abbrv] [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/2c3a7cb5/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
deleted file mode 100755
index 371a163..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java
+++ /dev/null
@@ -1,553 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 008c6b5..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 9e55346..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/build2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index f5f0c7c..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/helloworld1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 1234828..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 4589f19..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 21808c0..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index b5e8471..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions4.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 50504de..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions5.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index e730d32..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/instructions6.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 77604c1..0000000
Binary files a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/doc-files/manifest1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 291d0d4..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/package.html
+++ /dev/null
@@ -1,949 +0,0 @@
-<!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/2c3a7cb5/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
deleted file mode 100755
index 1ae3a80..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigEdit.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!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/2c3a7cb5/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
deleted file mode 100755
index eb70cae..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-	}
-}


[21/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/package.html
deleted file mode 100755
index a498e78..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/package.html
+++ /dev/null
@@ -1,3600 +0,0 @@
-<!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 Servlet 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>
-
-<p>
-	Defines an API for defining REST resources as servlets.
-</p>
-
-<a name='TOC'></a><h5 class='toc'>Table of Contents</h5>
-<ol class='toc'>
-	<li><p><a class='doclink' href='#Intro'>Introduction</a></p>
-	<li><p><a class='doclink' href='#HelloWorldResource'>Hello World Example</a></p>
-	<li><p><a class='doclink' href='#ClassHierarchy'>Class Hierarchy</a></p>
-	<li><p><a class='doclink' href='#RestServlets'>REST Servlets</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#RestServlets.MethodSignature'>REST Java Method Signature</a></p>
-		<ol>
-			<li><p><a class='doclink' href='#RestServlets.MethodSignature.Path'>Path</a></p>
-			<li><p><a class='doclink' href='#RestServlets.MethodSignature.Matchers'>Matchers</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#RestServlets.RequestContent'>Request Content</a></p>
-	<ol>
-			<li><p><a class='doclink' href='#RestServlets.RequestContent.FormPosts'>Form Posts</a></p>
-			<li><p><a class='doclink' href='#RestServlets.RequestContent'>Multipart Form Posts</a></p>
-		</ol>
-		<li><p><a class='doclink' href='#RestServlets.ResponseContent'>Response Content</a></p>
-		<li><p><a class='doclink' href='#RestServlets.OptionsPages'>OPTIONS Pages</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Serializers'>Serializers</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Parsers'>Parsers</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Properties'>Properties</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Transforms'>Transforms</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Guards'>Guards</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Converters'>Converters</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Children'>Child Resources</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Labels'>Localized Messages</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Encoders'>Encoders</a></p>
-		<li><p><a class='doclink' href='#RestServlets.SvlVars'>SVL Vars</a></p>
-		<li><p><a class='doclink' href='#RestServlets.StaticFiles'>Static Files</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Listeners'>Listener Methods</a></p>	
-		<li><p><a class='doclink' href='#RestServlets.Stylesheet'>Stylesheet</a></p>	
-		<li><p><a class='doclink' href='#RestServlets.Headers'>Default Headers</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Errors'>Handling Errors / Logging</a></p>
-		<li><p><a class='doclink' href='#RestServlets.ConfigFile'>Configuration Files</a></p>
-		<li><p><a class='doclink' href='#RestServlets.Inheritence'>Annotation Inheritence</a></p>
-		<li><p><a class='doclink' href='#RestServlets.HttpStatusCodes'>HTTP Status Codes</a></p>
-		<li><p><a class='doclink' href='#RestServlets.OverloadedHttpMethods'>Overloaded HTTP Methods</a></p>
-		<li><p><a class='doclink' href='#RestServlets.BuildInParams'>Built-In Parameters</a></p>
-		<li><p><a class='doclink' href='#RestServlets.CustomSerializersParsers'>Defining your own serializers/parsers</a></p>
-		<li><p><a class='doclink' href='#RestServlets.ResponseHandlers'>Response Handlers</a></p>
-		<li><p><a class='doclink' href='#RestServlets.OtherNotes'>Other Notes</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#Osgi'>Using with OSGi</a></p>
-	<li><p><a class='doclink' href='#PojosConvertableFromString'>POJOs Convertable From Strings</a></p>
-	<li><p><a class='doclink' href='#AddressBookResource'>Address Book Resource</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a name="Intro"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Introduction</h2>
-<div class='topic'>
-	<p>
-		The <l>juneau-server.jar</l> library allows you to quickly wrap POJOs and expose them as full-fledged REST resources served up in a servlet container using a bare-minimum amount of code.
-		The primary goal for Juneau was to make it as easy as possible to implement easy-to-read and self-documenting REST resources using very little code.
-	</p>
-	<p>
-		One of the biggest advantages of the Juneau REST framework over similar architectures is that it hides the serialization layer from the developer.  
-		The developer can work entirely with POJOs and let the Juneau framework handle all the serialization and parsing work.  
-		The developer need never know what the <l>Accept</l> or <l>Content-Type</l> or <l>Accept-Encoding</l> (etc...) header values are because those details are all handled by the framework. 
-	</p>
-	<p> 
-		The API builds upon the existing JEE Servlet API.  
-		The root class, {@link org.apache.juneau.server.RestServlet} is nothing but a specialized {@link javax.servlet.http.HttpServlet}, and the
-			{@link org.apache.juneau.server.RestRequest} and {@link org.apache.juneau.server.RestResponse} classes are nothing more than specialized {@link javax.servlet.http.HttpServletRequest} and 
-			{@link javax.servlet.http.HttpServletResponse} objects.  
-		This allows maximum flexibility for the developer since you can let Juneau handle operations such as serialization, or you can revert 
-			to the existing servlet APIs to do low-level processing of requests yourself.	
-		It also means you need nothing more than a Servlet container such as Jetty to use the REST framework.
-	</p>
-	<h6 class='topic'>Features</h6>
-	<ul class='spaced-list'>
-		<li>Serializes POJOs to JSON, XML, HTML, URL-Encoding, UON, RDF/XML, N-Triple, Turtle, N3, SOAP, or Java-serialized-object based on
-			value of <l>Accept</l> header.  <br>
-			No user code is required to handle these types.
-			<br>
-			<ul>
-				<li>Extensible design that provides ability to override existing content type handlers, or add the ability to handle other kinds of content types.
-			</ul>
-			<br>
-		<li>Parses content of POST/PUT request bodies to POJOs.
-			<br><br>
-		<li>Automatic built-in ability to serialize POJO metadata to JSON+SCHEMA, XML+SCHEMA, or HTML+SCHEMA based on <l>Accept</l> header.
-			<br><br>
-		<li>Automatic negotiation of output Writer based on HTTP headers.
-			<br>
-			<ul>
-				<li>Automatic handling of <l>Accept-Charset</l> header for all character sets supported by the JVM.
-				<li>Automatic handling of <l>Accept-Encoding</l> header with registered encoders.
-			</ul>
-			<br>
-		<li>Automatic error handling.
-			<br>
-			<ul>
-				<li>Automatic 401 errors (Unauthorized) on failed guards.
-				<li>Automatic 404 errors (Not Found) on unmatched path patterns.
-				<li>Automatic 405 errors (Method Not Implemented) on unimplemented methods.
-				<li>Automatic 406 errors (Not Acceptable) when no matching serializer was found to handle the <l>Accept</l> header.
-				<li>Automatic 412 errors (Precondition Failed) when all matchers failed to match.
-				<li>Automatic 415 errors (Unsupported Media Type) when no matching parser was found was found to handle the <l>Content-Type</l> header.
-				<li>Automatic 500 errors on uncaught exceptions.
-			</ul>
-			<br>
-		<li>Self-documenting REST interfaces.
-			<br>
-		<li>Various useful debugging features that make debugging using a browser extremely simple...
-			<br>
-			<ul>
-				<li>Ability to pass HTTP header values as URL GET parameters (e.g. <l>&amp;Accept=text/xml</l>).
-				<li>Ability to pass HTTP content on PUT/POST requests as a URL GET parameter (e.g. <l>&amp;content={foo:"bar"}</l>).
-				<li>Ability to simulate non-GET requests using a <l>&amp;method</l> GET parameter (e.g. <l>&amp;method=POST</l>).
-				<li>Ability to force <ss>"text/plain"</ss> on response using GET parameter <l>&amp;plainText=true</l>.
-			</ul>
-			<br>
-		<li>Ability to implement overloaded HTTP methods through the use of the <l>&amp;method</l> attribute (e.g. <l>&amp;method=FOO</l>).
-			<br><br>
-		<li>Ability to match URL patterns (e.g. <l>/foo/{fooId}/bar/{barId}</l>) against URLs (e.g. <l>/foo/123/bar/456/bing</l>).
-			<br><br>
-		<li>Ability to associate guards at the resource or method levels through annotations.<br>
-			Typically useful for security, but can be used for a variety of purposes.
-			<br><br>
-		<li>Ability to associate converters at the resource or method levels through annotations.<br>
-			Typically useful for performing conversions on input and output, such as for supporting older input and output formats.
-	</ul>
-	<p>
-		Many of the examples in this document are pulled directly from the <l>microservice-samples-project.zip</l> project.
-	</p>
-</div>
-	
-<!-- ======================================================================================================== -->
-<a name="HelloWorldResource"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Hello World Example</h2>
-<div class='topic'>
-	<p>
-		A REST resource is an implementation of {@link org.apache.juneau.server.RestServlet}, which itself is simply an extension of {@link javax.servlet.http.HttpServlet}.  
-	</p>
-	<p>
-		In this example, we define a resource called <l>HelloWorldResource</l>.  
-		This example is located in the <l>microservice-samples-project.zip</l> project.
-		It's assumed the reader is familiar with defining servlets in web applications.
-	</p>
-	<p>
-		Like any servlet, we could define our resource in the <l>web.xml</l> file of the web application like so...
-	</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;web-app</xt> <xa>version</xa>=<xs>"2.3"</xs><xt>&gt;</xt>
-		<xt>&lt;servlet&gt;</xt>
-			<xt>&lt;servlet-name&gt;</xt>HelloWorldResource<xt>&lt;/servlet-name&gt;</xt>
-			<xt>&lt;servlet-class&gt;</xt>com.ibm.sample.HelloWorldResource<xt>&lt;/servlet-class&gt;</xt>
-		<xt>&lt;/servlet&gt;</xt>
-		<xt>&lt;servlet-mapping&gt;</xt>
-			<xt>&lt;servlet-name&gt;</xt>HelloWorldResource<xt>&lt;/servlet-name&gt;</xt>
-			<xt>&lt;url-pattern&gt;</xt>/*<xt>&lt;/url-pattern&gt;</xt>
-		<xt>&lt;/servlet-mapping&gt;</xt>
-	<xt>&lt;/web-app&gt;</xt>
-	</p>
-	<p>
-		Our servlet code is shown below:
-	</p>
-	<p class='bcode'>
-	<jd>/** 
-	 * Sample REST resource that prints out a simple "Hello world!" message.
-	 */</jd>
-	<ja>@RestResource</ja>(
-		messages=<js>"nls/HelloWorldResource"</js>, 
-		properties={
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{up:'$R{requestParentURI}',options:'?method=OPTIONS'}"</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 <l>messages</l> annotation points to a properties file on the classpath whose contents are shown below:
-	</p>
-	<p class='bcode'>
-	<cc>#--------------------------------------------------------------------------------
-	# HelloWorldResource labels
-	#--------------------------------------------------------------------------------</cc>
-	<ck>label</ck> = <cv>Hello World sample resource</cv>
-	<ck>description</ck> = <cv>Simplest possible resource</cv>
-	<ck>sayHello</ck> = <cv>Responds with "Hello world!"</cv> 
-	</p>	
-	<p>
-		It doesn't much simpler than that.  
-		In this case, we're simply returning a string that will be converted to any of the supported languages (e.g. JSON, XML, HTML, ...).
-		However, we could have returned any POJO consisting of beans, maps, collections, etc...
-	</p>
-	<p>
-		The {@link org.apache.juneau.server.RestServletDefault} class that we're using here is a subclass of {@link org.apache.juneau.server.RestServlet} that provides default support for a variety of content types.  
-		Implementers can choose to use this class, or create their own subclass of {@link org.apache.juneau.server.RestServlet} with their own specialized serializers and parsers.
-	</p>
-	<p>
-		If you were to start up this servlet and view it with a browser, you would see this:
-	</p>
-	<img class='bordered' src="doc-files/HelloWorldResource1.png">
-	<p>
-		The Juneau REST interface is designed to make it easy to interact with resources using nothing but a browser.  
-		Therefore, several built-in features are provided for making it easy to do so.  
-		Specifically, we'll be using these available URL parameters...
-	</p>
-	<ul class='normal'>
-		<li><l>&amp;plainText=true</l> - If specified, then the <l>Content-Type</l> on the response is always <l>"text/plain"</l> regardless of the data format.
-			<br><br>
-		<li><l>&amp;Accept=X</l> - Specify the content type of the response.  
-			In a browser, <l>"text/html"</l> is the default content type, but this parameter can be used to override the content type on the response.<br>
-			Note:  The behavior is identical to setting the <l>Accept</l> header on the request.  
-			In fact, Juneau allows ANY HTTP request headers to be specified as URL parameters for debugging purposes.
-	</ul>
-	<p>
-		Using the <l>plainText</l> parameter, we can view the HTML as plain text...	  
-	</p>
-	<img class='bordered' src="doc-files/HelloWorldResource2.png">
-	<p>
-		You'll notice that the HTML view has a simple stylesheet associated with it to improve the look of the interface.  
-		It is possible to specify your own stylesheet, but the default styles will usually suffice for most purposes. 
-	</p>
-	<p>
-		When accessed through a browser, the content type will default to HTML (based on the value of the <l>Accept</l> HTTP header).  
-	</p>
-	<p>
-		Let's use the <l>&amp;Accept</l> URL paramter to override the <l>Accept</l> HTTP header to view this servlet in other formats...
-	</p>
-	<p>
-		In the case of <l>JSON</l>, we're serialize a single string, so it gets rendered as a JSON fragment....
-	</p>
-	<img class='bordered' src="doc-files/HelloWorldResource3.png">
-	<p>
-		...or as <l>XML</l>...
-	</p>	
-	<img class='bordered' src="doc-files/HelloWorldResource4.png">
-	<p>
-		...or any of the other supported languages.
-	</p>
-	<p>
-		If you click the OPTIONS link on the page, you'll see the results from an <l>HTTP OPTIONS</l> request:	  
-	</p>
-	<img class='bordered' src="doc-files/HelloWorldResourceOptions.png">
-	<p>
-		The OPTIONS page is generated automatically by introspection of the class itself combined with
-			labels in the messages properties file.
-		It's composed of a POJO that gets serialized just like any other POJO.  
-		Therefore, the POJO can be searialized to any of the supported languages, like JSON.	  
-	</p>
-	<img class='bordered' src="doc-files/HelloWorldResourceOptionsJson.png">
-</div>
-	
-<!-- ======================================================================================================== -->
-<a name="ClassHierarchy"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - Class Hierarchy</h2>
-<div class='topic'>
-	<p>
-		The class hierarchy for the REST servlet class is shown below:
-	</p>
-	<ul class='javahierarchy'>
-		<li class='a'>{@link javax.servlet.http.HttpServlet javax.servlet.http.HttpServlet} 
-		<ul>
-			<li class='a'>{@link org.apache.juneau.server.RestServlet org.apache.juneau.server.RestServlet}
-				<br>Contains all the main logic.
-			<ul>
-				<li class='a'>{@link org.apache.juneau.server.RestServletDefault org.apache.juneau.server.RestServletDefault}
-				<br>Provides a default set of serializers, parsers, options page, stylesheet, and other common settings.
-				<br><b>Developers will typically subclass this when creating REST resources in JEE environments.</b> 
-				<ul>
-					<li class='a'>{@link org.apache.juneau.microservice.Resource org.apache.juneau.microservice.Resource}
-					<br>Subclass intented to be used in REST microservices.
-					<br><b>Developers will typically subclass this when creating microservices.</b> 
-					<li class='a'>{@link org.apache.juneau.server.RestServletGroupDefault org.apache.juneau.server.RestServletGroupDefault}
-					<br>A default implementation for "router" pages.
-					<ul>
-						<li class='a'>{@link org.apache.juneau.microservice.ResourceGroup org.apache.juneau.microservice.ResourceGroup}
-						<br>Subclass intented to be used in REST microservices.
-					</ul>
-					<li class='c'>{@link org.apache.juneau.server.remoteable.RemoteableServlet org.apache.juneau.server.remoteable.RemoteableServlet}
-					<br>REST servlet for implementing remoteable proxy interfaces.
-				</ul>
-				<li class='a'>{@link org.apache.juneau.server.jena.RestServletJenaDefault org.apache.juneau.server.jena.RestServletJenaDefault}
-				<br>Same as {@link org.apache.juneau.server.RestServletDefault}, but adds RDF support.
-				<ul>
-					<li class='a'>{@link org.apache.juneau.microservice.ResourceJena org.apache.juneau.microservice.ResourceJena}
-					<br>Subclass intented to be used in REST microservices.
-					<li class='a'>{@link org.apache.juneau.server.jena.RestServletJenaGroupDefault org.apache.juneau.server.jena.RestServletJenaGroupDefault}
-					<br>Same as {@link org.apache.juneau.server.RestServletGroupDefault}, but adds RDF support.
-				</ul>
-				<li class='a'><code>com.ibm.team.repository.service.JazzRestResource</code>
-				<br>Parent class in Jazz Foundation for REST-based services.
-				<ul>
-					<li class='a'><code>com.ibm.team.repository.service.JazzDefaultRestResource</code>
-					<br>Provides a default set of serializers, parsers, options page, stylesheet, and other common settings.
-				</ul>
-			</ul>
-		</ul>
-	</ul>
-	<p>
-		The servlets with RDF support require Jena on the classpath.  
-		All other serializers and parsers do not have any external library dependencies.
-		For this reason, we have separate servlets for supporting RDF so that you don't need Jena if you don't need to support RDF. 
-	</p>
-	<p>
-		The {@link org.apache.juneau.server.RestRequest} and {@link org.apache.juneau.server.RestResponse} classes described later also extend from their servlet equivalents:
-	</p> 
-	<ul class='javahierarchy'>
-		<li class='i'>{@link javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletRequest}
-		<ul>
-			<li class='c'>{@link org.apache.juneau.server.RestRequest org.apache.juneau.server.RestRequest} - Augmented with specialized REST methods.
-		</ul> 
-		<li class='i'>{@link javax.servlet.http.HttpServletResponse javax.servlet.http.HttpServletResponse}
-		<ul>
-			<li class='c'>{@link org.apache.juneau.server.RestResponse org.apache.juneau.server.RestResponse} - Augmented with specialized REST methods.
-		</ul> 
-	</ul>
-</div>
-
-	<!-- ======================================================================================================== -->
-<a name="RestResources"></a>
-<h2 class='topic' onclick='toggle(this)'>4 - REST Servlets</h2>
-	<div class='topic'>
-		<p>
-		Since REST servlets are subclasses of <l>HttpServlet</l>, they can be deployed in a J2EE
-			container like any other servlet, typically inside a <l>web.xml</l> file.
-		The REST servlet framework does not depend on any classloader scanning or external setup
-			other than registering the servlet with the J2EE container.
-		</p>
-		<p>
-		REST servlets can also be deployed by declaring them as children of other REST servlets (described later).
-		</p>
-		<p>
- 		A REST servlet consists of an instance of {@link org.apache.juneau.server.RestServlet} 
- 			annotated with {@link org.apache.juneau.server.annotation.RestResource @RestResource} containing
-			public Java methods annotated with {@link org.apache.juneau.server.annotation.RestMethod @RestMethod}.
-		</p>
-		<p>
-		Developers will typically subclass directly from {@link org.apache.juneau.server.RestServletDefault}
-			since it provides a default set of serializers and parsers for a variety of 
-			<l>Accept</l> and <l>Content-Type</l> types.
-		</p>
-	<h6 class='figure'>Valid Accept headers for RestServletDefault</h6>
-	<table class='styled'>
-		<tr>
-			<th>Accept</th>
-			<th>Content-Type</th>
-			<th>Serializer</th>
-		</tr>
-		<tr>
-			<td class='code'>application/json<br>text/json</td>
-			<td class='code'>application/json</td>
-			<td>{@link org.apache.juneau.json.JsonSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>application/json+simple<br>text/json+simple</td>
-			<td class='code'>application/json</td>
-			<td>{@link org.apache.juneau.json.JsonSerializer.Simple}</td>
-		</tr>
-			<td class='code'>application/json+schema<br>text/json+schema</td>
-			<td class='code'>application/json</td>
-			<td>{@link org.apache.juneau.json.JsonSchemaSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/xml</td>
-			<td class='code'>text/xml</td>
-			<td>{@link org.apache.juneau.xml.XmlDocSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/xml+schema</td>
-			<td class='code'>text/xml</td>
-			<td>{@link org.apache.juneau.xml.XmlSchemaDocSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/html</td>
-	 		<td class='code'>text/html</td>
-			<td>{@link org.apache.juneau.html.HtmlDocSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/html+stripped</td>
-			<td class='code'>text/html</td>
-			<td>{@link org.apache.juneau.html.HtmlStrippedDocSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/uon</td>
-			<td class='code'>text/uon</td>
-			<td>{@link org.apache.juneau.urlencoding.UonSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/uon-simple</td>
-	 		<td class='code'>text/uon</td>
-	 		<td>{@link org.apache.juneau.urlencoding.UonSerializer.Simple}</td>
-		</tr>
-		<tr>
-			<td class='code'>application/x-www-form-urlencoded</td>
-			<td class='code'>application/x-www-form-urlencoded</td>
-			<td>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer}</td>
-		</tr>
-		<tr>
-	 		<td class='code'>application/x-www-form-urlencoded-simple</td>
-	 		<td class='code'>application/x-www-form-urlencoded</td>
-			<td>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer.Simple}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/xml+soap</td>
-			<td class='code'>text/xml</td>
-			<td>{@link org.apache.juneau.soap.SoapXmlSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/plain</td>
-			<td class='code'>text/plain</td>
-			<td>{@link org.apache.juneau.plaintext.PlainTextSerializer}</td>
-		</tr>
-		<tr>
-			<td class='code'>application/x-java-serialized-object</td>
-			<td class='code'>application/x-java-serialized-object</td>
-			<td>{@link org.apache.juneau.jso.JavaSerializedObjectSerializer}</td>
-		</tr>
-	</table>
-	<h6 class='figure'>Valid Content-Type headers for RestServletDefault</h6>
-	<table class='styled'>
-		<tr>
-			<th>Content-Type</th>
-			<th>Parser</th>
-		</tr>
-		<tr>
-			<td class='code'>application/json<br>text/json</td>
-			<td>{@link org.apache.juneau.json.JsonParser}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/xml<br>application/xml</td>
-			<td>{@link org.apache.juneau.xml.XmlParser}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/html<br>text/html+stripped</td>
-			<td>{@link org.apache.juneau.html.HtmlParser}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/uon</td>
-			<td>{@link org.apache.juneau.urlencoding.UonParser}</td>
-		</tr>
-		<tr>
-			<td class='code'>application/x-www-form-urlencoded</td>
-			<td>{@link org.apache.juneau.urlencoding.UrlEncodingParser}</td>
-		</tr>
-		<tr>
-			<td class='code'>text/plain</td>
-			<td>{@link org.apache.juneau.plaintext.PlainTextParser}</td>
-		</tr>
-	</table>
-	<p>
- 		{@link org.apache.juneau.server.RestServletDefault} also provides a default OPTIONS page by implementing 
- 			a {@link org.apache.juneau.server.RestServletDefault#getOptions(RestRequest)} method that returns a POJO consisting
- 			of beans describing the class.
- 		This is what produces the output for the OPTIONS page on the Hello World sample above.
-		</p>
-	
-	<h6 class='topic'>Additional Information</h6>
-	<ul class='javahierarchy'>
-		<li class='a'>{@link org.apache.juneau.server.RestServletDefault}
-		<li class='a'>{@link org.apache.juneau.server.jena.RestServletJenaDefault}	
-	</ul>
-
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.MethodSignature"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.1 - REST Java Method Signature</h3>
-	<div class='topic'>
-		<p>
-			REST Java methods are identified on REST servlets using the {@link org.apache.juneau.server.annotation.RestMethod @RestMethod} annotation. 
-			The annotation allows the framework to identify the available REST methods through reflection.
-		</p>
-		<p class='bcode'>
-	<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>
-		<h6 class='topic'>Method Name</h6>
-		<p>
-			There are no restrictions on the name of the Java method.  However, if you plan on making use of the 
-				{@link org.apache.juneau.server.annotation.RestResource#messages() @RestResource.messages()} 
-				annotation (described later), the method names must be unique to make it possible to identify unique keys for labels in the resource bundle.
-			Therefore, you should not define two identically-named <l>doFoo(...)</l> methods that differ only by parameters.
-			If you're not using messages for NLS support, then name them whatever you want!
-		</p>
-		<h6 class='topic'>Method Return Type</h6>
-		<p>
-			The return type can be any serializable POJO as defined in <a class='doclink' href='../../../../overview-summary.html#Core.PojoCategories'>POJO Categories</a>.
-			It can also be <jk>void</jk> if the method is not sending any output (e.g. a request redirect) or
-				is setting the output using the {@link org.apache.juneau.server.RestResponse#setOutput(Object)} method.
-			Calling the {@link org.apache.juneau.server.RestResponse#setOutput(Object)} method is functionally equivalent to returning a value.
-		</p>
-		<p class='bcode'>
-	<jc>// Equivalent method 1</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
-	<jk>public void</jk> doGet(RestResponse res) {
-		res.setOutput(<js>"Hello World!"</js>);
-	}
-
- 	<jc>// Equivalent method 2</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
-	<jk>public</jk> String doGet() {
-		<jk>return</jk> <js>"Hello World!"</js>;
-	}
-		</p>
-		<p>
-			The return type can also be any of the following special object types:
-		</p>
-		<ul class='javahierarchy'>
-			<li class='c'>{@link java.io.InputStream}
-				<br>The contents are simply piped to the output stream returned by {@link org.apache.juneau.server.RestResponse#getNegotiatedOutputStream()}.
-				<br>Note that you should call {@link org.apache.juneau.server.RestResponse#setContentType(String)} to set the <l>Content-Type</l> header if you use this object type.
-			<li class='c'>{@link java.io.Reader}
-				<br>The contents are simply piped to the output stream returned by {@link org.apache.juneau.server.RestResponse#getNegotiatedWriter()}.
-				<br>Note that you should call {@link org.apache.juneau.server.RestResponse#setContentType(String)} to set the <l>Content-Type</l> header if you use this object type.
-			<li class='c'>{@link org.apache.juneau.server.Redirect}
-				<br>Represents an HTTP redirect response.
-			<li class='i'>{@link org.apache.juneau.Streamable}
-				<br>Interface that identifies that an object can be serialized directly to an output stream.
-			<li class='i'>{@link org.apache.juneau.Writable}
-				<br>Interface that identifies that an object can be serialized directly to a writer.
-			<li class='c'>{@link org.apache.juneau.utils.ZipFileList}
-				<br>Special interface for sending zip files as responses.
-		</ul>
-		<p>
-			Additional "special types" can be defined through the {@link org.apache.juneau.server.ResponseHandler} interface (described later).
-		</p>
-		<h6 class='topic'>Method Parameters</h6>
-		<p>
-			The method can contain any of the following parameters in any order:
-		</p>
-		<ul class='spaced-list'>
-			<li>Parameter of type {@link org.apache.juneau.server.RestRequest}
-			<li>Parameter of type {@link javax.servlet.http.HttpServletRequest}
-			<li>Parameter of type {@link org.apache.juneau.server.RestResponse}
-			<li>Parameter of type {@link javax.servlet.http.HttpServletResponse}
-			<li>Parameters annotated with {@link org.apache.juneau.server.annotation.Attr @Attr}
-				<br>These match variables in matched URL path patterns.
-			<li>Parameters annotated with with {@link org.apache.juneau.server.annotation.Param @Param}
-				<br>These denote query parameter values.
-			<li>Parameters annotated with {@link org.apache.juneau.server.annotation.HasParam @HasParam}
-				<br>Similar to <ja>@Param</ja>, but resolves to a simple boolean <jk>true/false</jk> denoting whether the query parameter exists.
-			<li>Parameters annotated with {@link org.apache.juneau.server.annotation.QParam @QParam} 
-				<br>Same as <ja>@Param</ja>, but only looks for actual query parameters, not form post query parameters.
-				<br>Using this prevents the HTTP body from being processed as a URL-Encoded form post.
-			<li>Parameters annotated with {@link org.apache.juneau.server.annotation.HasQParam @HasQParam}
-				<br>Similar to <ja>@QParam</ja>, but resolves to a simple boolean <jk>true/false</jk> denoting whether the query parameter exists.
-			<li>Parameters annotated with {@link org.apache.juneau.server.annotation.Header @Header}
-				<br>These denote header values.
-			<li>Parameter annotated with {@link org.apache.juneau.server.annotation.Method @Method} 
-				<br>This denotes the HTTP method name.
-			<li>Parameter annotated with {@link org.apache.juneau.server.annotation.PathRemainder @PathRemainder}
-				<br>This denotes the path remainder value after path pattern match.
-			<li>Parameter annotated with {@link org.apache.juneau.server.annotation.Content @Content} 
-				<br>This denotes the HTTP content parsed as a POJO.
-				<br>The type can be any parsable POJO type as defined in <a class='doclink' href='../../../../overview-summary.html#Core.PojoCategories'>POJO Categories</a>
-			<li>Parameter annotated with {@link org.apache.juneau.server.annotation.Messages @Messages} 
-				<br>This gives you access to the resource bundle for the servlet localized to the language on the request.
-			<li>Parameter annotated with {@link org.apache.juneau.server.annotation.Properties @Properties} 
-				<br>This gives you access to the serializer/parser/servlet properties so they can be read or altered on the request.
-		</ul>
-		<p class='bcode'>
-	<jc>// Example GET request using annotated attributes</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example1/{a1}/{a2}/{a3}/*"</js>)
-	<jk>public</jk> String doGetExample1(
-		RestRequest req,
-		RestResponse res,
-		<ja>@Method</ja> String method,
-		<ja>@Attr</ja> String a1,
-		<ja>@Attr</ja> <jk>int</jk> a2,
-		<ja>@Attr</ja> UUID a3,
-		<ja>@Param</ja>(<js>"p1"</js>) <jk>int</jk> p1,
-		<ja>@Param</ja>(<js>"p2"</js>) String p2,
-		<ja>@Param</ja>(<js>"p3"</js>) UUID p3,
-		<ja>@HasParam</ja>(<js>"p3"</js>) boolean hasP3,
-		<ja>@PathRemainder</ja> String remainder,
-		<ja>@Header</ja>(<js>"Accept-Language"</js>) String lang,
-		<ja>@Header</ja>(<js>"Accept"</js>) String accept,
-		<ja>@Header</ja>(<js>"DNT"</js>) <jk>int</jk> doNotTrack,
-		<ja>@Properties</ja> ObjectMap properties,
-		<ja>@Messages</ja> ResourceBundle nls
-	) {
-		<jc>// Do something with all of those</jc>
-	}
-		</p>
-		<p>
-			All the annotated parameters (with the exception of <l>@Content</l>) can be any POJO type convertable from a <l>String</l>.
-			(See <a class='doclink' href='#PojosConvertableFromString'>POJOs Convertable From String</a>)
-		</p>
-		<p>
-			For example, headers can be accessed as Strings or UUIDs...
-		</p>
-		<p class='bcode'>
-	<jc>// Example GET with access to HTTP headers</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>)
-	<jk>public</jk> String doGet(<ja>@Header</ja>(<js>"Accept-Language"</js>) String lang, <ja>@Header</ja>(<js>"ETag"</js>) UUID eTag) <jk>throws</jk> Exception {
-		...
-	}
-		</p>
-		<p>
-			All annotations have programmatic equivalents on the {@link org.apache.juneau.server.RestRequest} class:
-		</p>
-		<ul class='javahierarchy'>
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getAttribute(String,Class)}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getParameter(String,Class)}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#hasParameter(String)}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getQueryParameter(String,Class)}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#hasQueryParameter(String)}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getInput(Class)}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getHeader(String,Class)}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getMethod()}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getPathRemainder()}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getMessage(String,Object[])}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getProperties()}
-		</ul>
-		
-		<!-- ======================================================================================================== -->
-		<a name="RestResources.MethodSignature.Path"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.1 - Path</h4>
-		<div class='topic'>
-			<p>
-				The {@link org.apache.juneau.server.annotation.RestMethod#path() @RestMethod.path()} annotation 
-					allows you to define URL path patterns to match against.
-				These patterns can contain variables of the form <l>"{xxx}"</l> that can be passed in directly to the
-					Java methods as extra parameters.
-		</p>
-		<p>
-				In the following example, 3 separate GET request handlers are defined with different path patterns.
-				Note how the variables are passed in as additional arguments on the method, and how those arguments are automatically
-					converted to the specified class type...
-		</p>
-		<p class='bcode'>
-	<jc>// Default method</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>)
-	<jk>public void</jk> doGetDefault() {
-		...
-	}
-
-	<jc>// Method with path pattern</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/xxx"</js>)
-	<jk>public void</jk> doGetNoArgs(...) {
-		...
-	}
-
-	<jc>// Method with path pattern with arguments</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/xxx/{foo}/{bar}/{baz}/{bing}"</js>)
-	<jk>public void</jk> doGetWithArgs(<ja>@Attr</ja> String foo, <ja>@Attr</ja> <jk>int</jk> bar, <ja>@Attr</ja> MyEnum baz, <ja>@Attr</ja> UUID bing) {
-		...
-	}
-		</p>
-		<p>
-				By default, path patterns are matched using a best-match heuristic. 
-				When overlaps occur, URLs are matched from most-specific to most-general order:
-		</p>
-		<p class='bcode'>
-	<jc>// Try first </jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo/bar"</js>)
-	<jk>public void</jk> method1() {
-		...
-	}
-
-	<jc>// Try second</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo/{bar}"</js>)
-	<jk>public void</jk> method2(...) {
-		...
-	}
-
-	<jc>// Try third</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo/*"</js>)
-	<jk>public void</jk> method3(...) {
-		...
-	}
-
-	<jc>// Try last</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>)
-	<jk>public void</jk> method4(...) {
-		...
-	}
-		</p>
-		<p>
-				The match heuristic behavior can be overridden by the {@link org.apache.juneau.server.annotation.RestMethod#priority() @RestMethod.priority()} annotation property.
-				However, in practice this is almost never needed.
-		</p>
-		<p>
-				Paths that end with <js>"/*"</js> will do a prefix match on the incoming URL.  
-				Any remainder after the match can be accessed through {@link org.apache.juneau.server.RestRequest#getPathRemainder()} 
-					or parameters with the {@link org.apache.juneau.server.annotation.PathRemainder @PathRemainder} annotation.
-				On the other hand, paths that don't end with <js>"/*"</js> (e.g. <js>"/"</js> or <js>"/foo"</js>) will require
-					an exact URL match, and if any remainder exists, a 404 (not found) error will be thrown.
-		</p>
-		<p>
-				The following example shows the distinction.
-			</p>
-			<p class='bcode'>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>)
-	<jk>public void</jk> doGet(<ja>@PathRemainder</ja> String remainder) {
-		<jc>// URL path pattern can have remainder accessible through req.getRemainder().</jc>
-	}
-
-	<ja>@RestMethod</ja>(name=<js>"PUT"</js>, path=<js>"/"</js>)
-	<jk>public void</jk> doPut() {
-		<jc>// URL path pattern must match exactly and will cause a 404 error if a remainder exists.</jc>
-	}
-		</p>
-		<p>
-				Annotations are provided for easy access to URL parameters with automatic conversion to any parsable object type.
-				For example, the following example can process the URL <l>"/urlWithParams?foo=foo&amp;bar=[1,2,3]&amp;baz=067e6162-3b6f-4ae2-a171-2470b63dff00"</l>...
-			</p>
-			<p class='bcode'>
-	<jc>// Example GET request with access to query parameters</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/urlWithParams"</js>)
-	<jk>public</jk> String doGetWithParams(<ja>@Param</ja>(<js>"foo"</js>) String foo, <ja>@Param</ja>(<js>"bar"</js>) <jk>int</jk> bar, <ja>@Param</ja>(<js>"baz"</js>) UUID baz) <jk>throws</jk> Exception {
-		<jk>return</jk> <js>"GET /urlWithParams?foo="</js>+foo+<js>"&amp;bar="</js>+bar+<js>"&amp;baz="</js>+baz);
-	}
-		</p>
-		</div>
-		
-		<!-- ======================================================================================================== -->
-		<a name="RestResources.MethodSignature.Matchers"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.1.2 - Matchers</h4>
-		<div class='topic'>
-		<p>
-				{@link org.apache.juneau.server.RestMatcher RestMatchers} are used to allow multiple Java methods to be tied to the same HTTP method and path, but
-					differentiated by some request attribute such as a specific header value.
-			<p class='bcode'>
-	<jc>// GET method that gets invoked for administrators</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>, matchers=IsAdminMatcher.<jk>class</jk>)
-	<jk>public</jk> Object doGetForAdmin() {
-		...
-	}
-
-	<jc>// GET method that gets invoked for everyone else</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>)
-	<jk>public</jk> Object doGetForEveryoneElse() {
-		...
-	}
-		</p>
-		<p>
-				The interface for matchers is simple:
-			</p>
-			<p class='bcode'>
-	<jk>public class</jk> IsAdminMatcher <jk>extends</jk> RestMatcher {
-		<ja>@Override</ja>
-		<jk>public boolean</jk> matches(RestRequest req) {
-			<jk>return</jk> req.isUserInRole(<js>"ADMINS_GROUP"</js>);
-		}
-	}
-		</p>
-			<h6 class='topic'>Other Notes</h6>
-			<ul class='spaced-list'>
-				<li>If no methods are found with a matching matcher, a <l>412 Precondition Failed</l> status is returned.
-				<li>If multiple matchers are specified on the same method, ONLY ONE matcher needs to match for the method to be invoked.
-				<li>Note that you CANNOT define identical paths on different methods UNLESS you use matchers.
-					<br>That includes paths that are only different in variable names (e.g. <l>"/foo/{bar}"</l> and <l>"/foo/{baz}"</l>).
-					<br>If you try to do so, a <l>ServletException</l> will be thrown on startup.
-				<li>Methods with matchers take precedence over methods without.
-					<br>Otherwise, methods are attempted in the order they appear in the class.
-			</ul>
-	</div>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.RequestContent"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.2 - Request Content</h3>
-	<div class='topic'>
-		<p>
-			Annotations are provided for easy access to HTTP body content as any parsable POJO type
-			(See <a class='doclink' href='../../../../overview-summary.html#Core.PojoCategories'>POJO Categories</a>).
-			In the example below, we're POSTing beans.
-		</p>
-		<p class='bcode'>
-	<jc>// Example POST of a bean</jc>
-	<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/"</js>)
-	<jk>public void</jk> doPost(<ja>@Content</ja> Person person) <jk>throws</jk> Exception {
-		<jc>// Do something with person.</jc>
-	}
-		</p>
-		<p>
-			The HTTP body of a request can be retrieved as a parsed POJO using either the 
-				{@link org.apache.juneau.server.RestRequest#getInput(Class)} method, or a parameter 
-				annotated with {@link org.apache.juneau.server.annotation.Content @Content}.
-		</p>
-		<p class='bcode'>
-	<jc>// Equivalent method 1</jc>
-	<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/example1"</js>)
-	<jk>public void</jk> doPost1(<ja>@Content</ja> Person p) {
-		<jc>// Do something with p.</jc>
-	}
-
-	<jc>// Equivalent method 2</jc>
-	<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/example2"</js>)
-	<jk>public void</jk> doPost2(RestRequest req) {
-		Person p = req.getInput(Person.<jk>class</jk>);
-		<jc>// Do something with p.</jc>
-	}
-		</p>
-		<p>
-			The Juneau framework will automatically determine the appropriate <l>Parser</l> to use based on the 
-			<l>Content-Type</l> HTTP header.  So the body content could be JSON or XML or any other supported parsing types.
-		</p>
-		
-	<!-- ======================================================================================================== -->
-		<a name="RestResources.RequestContent.FormPosts"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.2.1 - Form Posts</h4>
-	<div class='topic'>	
-		<p>
-				URL-Encoded form posts require their own topic since they can be handled in multiple ways.
-			</p>
-			<p>
-				The best way to handle a form post is by using an input bean.
-				The samples include a <l>UrlEncodedFormResource</l> class that takes in URL-Encoded
-					form post of the form <l>"aString=foo&aNumber=123&aDate=2001-07-04T15:30:45Z"</l>.
-				The code is shown here:
-		</p>
-		<p class='bcode'>				
-	<ja>@RestResource</ja>(
-		path=<js>"/urlEncodedForm"</js>
-	)
-	<jk>public class</jk> UrlEncodedFormResource <jk>extends</jk> Resource {
-
-		<jd>/** POST request handler */</jd>
-		<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/"</js>)
-		<jk>public</jk> Object doPost(<ja>@Content</ja> FormInputBean input) <jk>throws</jk> Exception {
-			<jc>// Just mirror back the request</jc>
-			<jk>return</jk> input;
-		}
-	
-		<jk>public static class</jk> FormInputBean {
-			<jk>public</jk> String <jf>aString</jf>;
-			<jk>public int</jk> <jf>aNumber</jf>;
-			<ja>@BeanProperty</ja>(transform=CalendarTransform.<jsf>ISO8601DT</jsf>.<jk>class</jk>)
-			<jk>public</jk> Calendar <jf>aDate</jf>;
-		}
-	}		
-		</p>	
-		<p>
-				Another possibility is to access the form parameters individually:	
-			</p>	
-			<p class='bcode'>
-	<jd>/** POST request handler */</jd>
-	<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/"</js>)
-	<jk>public</jk> Object doPost(<ja>@Param</ja>(<js>"aString"</js>) String aString, <ja>@Param</ja>(<js>"aNumber"</js>) <jk>int</jk> aNumber, <ja>@Param</ja>(<js>"aDate"</js>) Calendar aDate) <jk>throws</jk> Exception {
-		...
-	}
-		</p>
-		<p>
-				The advantage to the form input bean is that it can handle any of the parsable types (e.g. JSON, XML...) 
-					in addition to URL-Encoding.  The latter approach only supports URL-Encoding.
-			</p>
-			<p class='severe'>
-				If you're using form input beans, DO NOT use the <l>@Param</l> attribute
-					or {@link org.apache.juneau.server.RestRequest#getParameter(String)} method since this will
-					cause the underlying JEE servlet to parse the HTTP body as a form post.
-				Your input bean will end up being null since there won't be any content left
-					after the servlet has parsed the body of the request.
-				This applies to WHENEVER you use <l>@Content</l> or {@link org.apache.juneau.server.RestRequest#getInput(Class)}.
-		</p>	
-		</div>
-
-		<!-- ======================================================================================================== -->
-		<a name="RestResources.RequestContent"></a>
-		<h4 class='topic' onclick='toggle(this)'>4.2.2 - Multipart Form Posts</h4>
-		<div class='topic'>
-		<p>
-				The Juneau framework does not natively support multipart form posts.  
-				However, it can be used in conjunction wih the Apache Commons File Upload library to do so.
-		</p>	
-		<p>
-				The samples include a <l>TempDirResource</l> class that uses the File Upload library
-					to allow files to be uploaded as multipart form posts.
-			</p>
-			<p class='bcode'>
-	<ja>@RestResource</ja>(
-		path=<js>"/tempDir"</js>
-	)
-	<jk>public class</jk> TempDirResource <jk>extends</jk> DirectoryResource {
-	
-		<jd>/**
-		 * [POST /upload] - Upload a file as a multipart form post.
-		 * Shows how to use the Apache Commons ServletFileUpload class for handling multi-part form posts.
-		 */</jd>
-		<ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/upload"</js>, matchers=TempDirResource.MultipartFormDataMatcher.<jk>class</jk>)
-		<jk>public</jk> Redirect uploadFile(RestRequest req) <jk>throws</jk> Exception {
-			ServletFileUpload upload = <jk>new</jk> ServletFileUpload();
-			FileItemIterator iter = upload.getItemIterator(req);
-			<jk>while</jk> (iter.hasNext()) {
-				FileItemStream item = iter.next();
-				<jk>if</jk> (item.getFieldName().equals(<js>"contents"</js>)) { 
-					File f = <jk>new</jk> File(getRootDir(), item.getName());
-					IOPipe.<jsm>create</jsm>(item.openStream(), <jk>new</jk> FileOutputStream(f)).closeOut().run();
-				}
-			}
-			<jk>return new</jk> Redirect(); <jc>// Redirect to the servlet root.</jc>
-		}
-	
-		<jd>/** Causes a 404 if POST isn't multipart/form-data */</jd>
-		<jk>public static class</jk> MultipartFormDataMatcher <jk>extends</jk> RestMatcher {
-			<ja>@Override</ja> <jc>/* RestMatcher */</jc>
-			<jk>public boolean</jk> matches(RestRequest req) {
-				String contentType = req.getContentType();
-				<jk>return</jk> contentType != <jk>null</jk> && contentType.startsWith(<js>"multipart/form-data"</js>); 
-			}
-		}
-		</p>
-		</div>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.ResponseContent"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.3 - Response Content</h3>
-	<div class='topic'>
-		<p>
-			REST Java methods can generate output in any of the following ways:
-		</p>
-		<ul class='spaced-list'>
-			<li>By returning a serializable POJO, or any of the following:
-				<br>{@link java.io.Reader}, {@link java.io.InputStream}, {@link org.apache.juneau.Streamable}, {@link org.apache.juneau.Writable} 
-			<li>By calling {@link org.apache.juneau.server.RestResponse#setOutput(Object)} with any of the types above.
-			<li>By accessing the {@link java.io.Writer} directly by calling {@link org.apache.juneau.server.RestResponse#getNegotiatedWriter()} and writing the output
-				yourself.
-		</ul>
-		<p class='bcode'>
-	<jc>// Equivalent method 1</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example1/{personId}"</js>)
-	<jk>public</jk> Person doGet1(<ja>@Attr</ja> UUID personId) {
-		Person p = getPersonById(personId);
-		<jk>return</jk> p;
-	}
-
-	<jc>// Equivalent method 2</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example2/{personId}"</js>)
-	<jk>public void</jk> doGet2(RestResponse res, <ja>@Attr</ja> UUID personId) {
-		Person p = getPersonById(personId);
-		res.setOutput(p);
-	}
-
-	<jc>// (Sorta) Equivalent method 3</jc>
-	<jc>// (Ignores any converters or method-level properties)</jc>
-	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example3/{personId}"</js>)
-	<jk>public void</jk> doGet3(RestRequest req, RestResponse res, <ja>@Attr</ja> UUID personId) {
-		Person p = getPersonById(personId);
-		String accept = req.getHeader(<js>"Accept"</js>, <js>"text/json"</js>);
-		WriterSerializer s = res.getSerializerGroup().getWriterSerializer(accept);
-		res.setContentType(s.getResponseContentType());
-		s.serialize(p, res.getNegotiatedWriter());
-	}
-		</p>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.OptionsPages"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.4 - OPTIONS Pages</h3>
-	<div class='topic'>
-		<p>
-			One of the most useful features of Juneau is that it can produce OPTIONS pages for self-documenting designs (i.e. REST interfaces that document themselves).
-		</p>
-		<h6 class='figure'>OPTIONS page for HelloWorld sample resource</h6>
-	 	<img class='bordered' src='doc-files/OptionsPage.png'>
-		<p>
-			To facilitate this, the {@link org.apache.juneau.server.labels.ResourceOptions} class is provided that 
-				inspects a <l>RestServlet</l> and its methods, and returns a serializable POJO data structure
-				that describes the options for that resource and pulling localized strings from the resource
-				bundle associated with the servlet.
-		</p>
-		<p>
-	 		{@link org.apache.juneau.server.RestServletDefault} provides a default OPTIONS page by implementing 
-	 			a {@link org.apache.juneau.server.RestServletDefault#getOptions(RestRequest)} method that returns a POJO consisting
-	 			of beans describing the class.
-	 	</p>
-	 	<p class='bcode'>
-	<jd>/**
-	 * [OPTIONS /*] - Show resource options.
-	 *
-	 * <ja>@param</ja> req The HTTP request.
-	 * <ja>@return</ja> A bean containing the contents for the OPTIONS page.
-	 */</jd>
-	<ja>@RestMethod</ja>(name=<js>"OPTIONS"</js>, path=<js>"/*"</js>,
-		properties={
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{back:'$R{servletURI}'}"</js>),
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_description</jsf>, value=<js>"Resource options"</js>)
-		},
-		description=<js>"Resource options"</js>
-	)
-	<jk>public</jk> ResourceOptions getOptions(RestRequest req) {
-		<jk>return new</jk> ResourceOptions(<jk>this</jk>, req);
-	}
-	 	</p>
-	 	<p>
-	 		The <l>AddressBookResource</l> class in the samples shows an example of augmenting the existing 
-	 			{@link org.apache.juneau.server.labels.ResourceOptions} bean with some additional information.
-		</p>
-		<p class='bcode'>
-	<jd>/** OPTIONS request handler */</jd>
-	<ja>@Override</ja> <jc>/* RestServletJenaDefault */</jc>
-	<ja>@RestMethod</ja>(name=<js>"OPTIONS"</js>, path=<js>"/*"</js>)
-	<jk>public</jk> ResourceOptions getOptions(RestRequest req) {
-		<jk>return new</jk> Options(req);
-	}			
-
-	<jd>/**
-	 * Output POJO for OPTIONS requests.
-	 * Note that we're extending the existing ResourceOptions class.
-	 */</jd>
-	<jk>public class</jk> Options <jk>extends</jk> ResourceOptions {
-		<jk>public</jk> ParamDescription[] queryableParameters;
-		<jk>public</jk> String[] otherNotes;
-
-		<jk>public</jk> Options(RestRequest req) {
-			<jk>super</jk>(AddressBookResource.<jk>this</jk>, req);
-			Locale locale = req.getLocale();
-			queryableParameters = getQueryableParamDescriptions(locale);
-			otherNotes = getMessage(locale, <js>"otherNotes"</js>).split(<js>"\\.\\s*"</js>);
-		}
-	}
-	 	</p>
-	 	<p>
-	 		Refer to <a class='doclink' href='#AddressBookResource'>Address Book Resource</a> for a complete example.
-	 	</p>
-	 	<h6 class='topic'>Label and Description</h6>
-	 	<p>
-	 		The label and description can be defined in two ways.
-	 	</p>
-		<p>
-	 		If you don't care about internationalization, then the easiest way is to use annotations on the servlet.
-	 	</p>
-		<p class='bcode'>
-	<ja>@RestResource</ja>(
-		path=<js>"/example"</js>,
-		label=<js>"Example Resource"</js>,
-		description=<js>"This shows how to use labels and descriptions."</js>
-	)
-	<jk>public class</jk> ExampleResource <jk>extends</jk> RestServletDefault {
-		</p>	 	
-		<p>
-			The second approach which supports internationalization is to use the 
-				{@link org.apache.juneau.server.annotation.RestResource#messages() @RestResource.messages()}
-				annotation to point to a resource bundle, and then use predefined properties
-				that identify the label and description.
-		</p>
-		<p class='bcode'>
-	<ja>@RestResource</ja>(
-		messages=<js>"nls/Messages"</js>
-	)
-	<jk>public class</jk> ExampleResource <jk>extends</jk> RestServletDefault {
-		</p>	 	
-		<p>
-			The label and description are specified as special properties in the resource bundle:
-		</p>
-		<p class='bcode'>
-	<cc>#--------------------------------------------------------------------------------
-	# Contents of Messages.properties
-	#--------------------------------------------------------------------------------</cc>
-	<ck>label</ck> = <cv>Example Resource</cv>
-	<ck>description</ck> = <cv>This shows how to use labels and descriptions.</cv>
-		</p>	 	
-		<p>
-			Message keys can optionally be prefixed by the short class name if the resource bundle is shared by multiple servlets:
-		</p>
-		<p class='bcode'>
-	<cc>#--------------------------------------------------------------------------------
-	# Contents of Messages.properties
-	#--------------------------------------------------------------------------------</cc>
-	<ck>ExampleResource.label</ck> = <cv>Example Resource</cv>
-	<ck>ExampleResource.description</ck> = <cv>This shows how to use labels and descriptions.</cv>
-		</p>	 	
-	 	<p>
-	 		When both annotations and properties are used, annotations take precedence.
-	 	</p>
-	 	<p>
-	 		The localized label and description are also available through the following methods:
-		</p>
-	 	<ul class='javahierarchy'>
-	 		<li class='m'>{@link org.apache.juneau.server.RestRequest#getServletLabel()}
-	 		<li class='m'>{@link org.apache.juneau.server.RestRequest#getServletDescription()}
-	 	</ul>
-		<p>
-	 		They are also made available as the request string variables <js>"$R{servletLabel}"</js> and <js>"$R{servletDescription}"</js>.
-	 		These variable facilitate the localized label and descriptions on the HTML pages when using {@link org.apache.juneau.server.RestServletDefault}:
-		</p>
-		<p class='bcode'>
-	<ja>@RestResource</ja>(
-		properties={
-			<jc>// Provide a default title on HTML pages.</jc>
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_title</jsf>, value=<js>"$R{servletLabel}"</js>),
-			<jc>// Provide a default description on HTML pages.</jc>
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_description</jsf>, value=<js>"$R{servletDescription}"</js>)
-		}
-	)
-	<jk>public abstract class</jk> RestServletDefault <jk>extends</jk> RestServlet {
-	 	</p>
-	 	<p>
-	 		The label and description annotations support string variables.
-	 		So in theory, you could also provide localized messages using <js>"$L"</js> variables pointing to your own resource bundle properties:
-	 	</p>
-		<p class='bcode'>
-	<ja>@RestResource</ja>(
-		path=<js>"/example"</js>,
-		messages=<js>"nls/Messages"</js>
-		label=<js>"$L{my.resource.label}"</js>,
-		description=<js>"$L{my.resource.description}"</js>
-	)
-	<jk>public class</jk> ExampleResource <jk>extends</jk> RestServletDefault {
-		</p>
-		<p>
-			Another option is to override the {@link org.apache.juneau.server.RestServlet#getLabel(RestRequest)} 
-				and {@link org.apache.juneau.server.RestServlet#getDescription(RestRequest)} methods.
-		</p>	 	
-	 	<h6 class='topic'>Method Description, Input, and Responses</h6>
-	 	<p>
-	 		The <l>methods</l> field in the OPTIONS page is mostly populated through reflection.
-	 		However, the description, input, and responses field can be specified through either 
-	 			annotations or resource properties. 
-	 	</p>
-	 	<p>
-	 		For example, the <l>AddressBookResource</l> has a <l>getPerson()</l> method
-	 			that gets rendered in the OPTIONS page like so...
-	 	</p>
-		<img class='bordered' src='doc-files/Options2.png'>
-		<p>
-			This method is described through the {@link org.apache.juneau.server.annotation.RestMethod#description() @RestMethod.description()}, 
-				{@link org.apache.juneau.server.annotation.RestMethod#input() @RestMethod.input()},
-				and {@link org.apache.juneau.server.annotation.RestMethod#responses() @RestMethod.responses()} annotations.
-		</p>
-		<p class='bcode'>
-	<ja>@RestMethod</ja>(
-		name=<js>"GET"</js>, 
-		path=<js>"/people/{id}/*"</js>, 
-		converters={Traversable.<jk>class</jk>,Queryable.<jk>class</jk>,Introspectable.<jk>class</jk>}, 
-		description=<js>"Get a person by id in the address book"</js>,
-		input={
-			<ja>@Var</ja>(category=VarCategory.<jsf>ATTR</jsf>, name=<js>"id"</js>, description=<js>"Person UUID"</js>)
-		},
-		responses={
-			<ja>@Response</ja>(
-				value=200,
-				output={
-					<ja>@Var</ja>(category=VarCategory.<jsf>CONTENT</jsf>, description=<js>"Person bean"</js>)
-				}
-			),
-			<ja>@Response</ja>(value=404, description=<js>"Person with specified id not found"</js>)
-		}
-	)
-	<jk>public</jk> Person getPerson(<ja>@Attr</ja> <jk>int</jk> id) throws Exception {
-		<jk>return</jk> findPerson(id);
-	}
-		</p> 	
-		<p>
-			These labels can also be localized by instead specifying them in the servlet properties file:		
-		</p>		
-		<p class='bcode'>
-	<ja>@RestMethod</ja>(
-		name=<js>"GET"</js>, 
-		path=<js>"/people/{id}/*"</js>, 
-		converters={Traversable.<jk>class</jk>,Queryable.<jk>class</jk>,Introspectable.<jk>class</jk>}
-		<jc>// Don't specify annotations for labels...they'll be detected in resource bundle.</jc> 
-	)
-	<jk>public</jk> Person getPerson(<ja>@Attr</ja> <jk>int</jk> id) throws Exception {
-		<jk>return</jk> findPerson(id);
-	}
-		</p> 	
-		<p class='bcode'>
-	<cc>#--------------------------------------------------------------------------------
-	# Contents of AddressBookResource.properties
-	#--------------------------------------------------------------------------------</cc>
-	<ck>getPerson</ck> = <cv>Get a person by id in the address book</cv>
-	<ck>getPerson.req.attr.id</ck> = <cv>Person UUID</cv>
-	<ck>getPerson.res.200</ck> = <cv>Person found</cv>
-	<ck>getPerson.res.404</ck> = <cv>Person with specified id not found</cv>
-		</p>		
-		<p>
-			The following table shows the predefined resource bundle message property names:
-		</p>
-		<table class='styled'>
-			<tr>
-				<th>Property</th>
-				<th>Description</th>
-				<th>Equivalent Annotation</th>
-				<th>Equivalent Method</th>
-			</tr>
-			<tr>
-				<td><ck>label</ck></td>
-				<td>Servlet label</td>
-				<td>{@link org.apache.juneau.server.annotation.RestResource#label() @RestResource.label()}</td>
-				<td>{@link org.apache.juneau.server.RestServlet#getLabel(RestRequest)}</td>
-			</tr>
-			<tr>
-				<td><ck>description</ck></td>
-				<td>Servlet description</td>
-				<td>{@link org.apache.juneau.server.annotation.RestResource#description() @RestResource.description()}</td>
-				<td>{@link org.apache.juneau.server.RestServlet#getDescription(RestRequest)}</td>
-			</tr>
-			<tr>
-				<td><ck>[javaMethodName]</ck></td>
-				<td>Java method description</td>
-				<td>{@link org.apache.juneau.server.annotation.RestMethod#description() @RestMethod.description()}</td>
-				<td>{@link org.apache.juneau.server.RestServlet#getMethodDescriptions(RestRequest)}</td>
-			</tr>
-			<tr>
-				<td><ck>[javaMethodName].req.content</ck></td>
-				<td>
-					A description of the HTTP request content.
-				</td>
-				<td>{@link org.apache.juneau.server.annotation.RestMethod#input() @RestMethod.input()}</td>
-				<td>{@link org.apache.juneau.server.RestServlet#getMethodDescriptions(RestRequest)}</td>
-			</tr>
-			<tr>
-				<td><ck>[javaMethodName].req.[category].[name]</ck></td>
-				<td>
-					A request input variable.
-					<br>Categories: <l>ATTR, PARAM, HEADER</l>
-				</td>
-				<td>{@link org.apache.juneau.server.annotation.RestMethod#input() @RestMethod.input()}</td>
-				<td>{@link org.apache.juneau.server.RestServlet#getMethodDescriptions(RestRequest)}</td>
-			</tr>
-			<tr>
-				<td><ck>[javaMethodName].res.[code]</ck></td>
-				<td>
-					A possible HTTP response code and description.
-				</td>
-				<td>{@link org.apache.juneau.server.annotation.RestMethod#responses() @RestMethod.responses()}</td>
-				<td>{@link org.apache.juneau.server.RestServlet#getMethodDescriptions(RestRequest)}</td>
-			</tr>
-			<tr>
-				<td><ck>[javaMethodName].res.[code].content</ck></td>
-				<td>
-					A description of response content for the specified HTTP response.
-				</td>
-				<td>{@link org.apache.juneau.server.annotation.RestMethod#responses() @RestMethod.responses()}</td>
-				<td>{@link org.apache.juneau.server.RestServlet#getMethodDescriptions(RestRequest)}</td>
-			</tr>
-			<tr>
-				<td><ck>[javaMethodName].res.[code].[category].[name]</ck></td>
-				<td>
-					A response output variable.
-					<br>Categories: <l>ATTR, PARAM, HEADER</l>
-				</td>
-				<td>{@link org.apache.juneau.server.annotation.RestMethod#responses() @RestMethod.responses()}</td>
-				<td>{@link org.apache.juneau.server.RestServlet#getMethodDescriptions(RestRequest)}</td>
-			</tr>
-		</table>
-		<h6 class='topic'>Additional Information</h6>
-		<ul class='javahierarchy'>
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#description() @RestMethod.description()}
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#input() @RestMethod.input()}
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#responses() @RestMethod.responses()}
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#rc() @RestMethod.rc()}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getServletLabel()}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getServletDescription()}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getMethodDescription()}
-			<li class='m'>{@link org.apache.juneau.server.RestRequest#getMethodDescriptions()}
-		</ul>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.Serializers"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.5 - Serializers</h3>
-	<div class='topic'>
-		<p>
-			REST servlets use the {@link org.apache.juneau.serializer.Serializer} API for defining serializers for serializing response POJOs.
-		</p>
-		<p>
-			The servlet will pick which serializer to use by matching the request <l>Accept</l> header with the
-				media types defined through the {@link org.apache.juneau.serializer.Serializer#getMediaTypes()} method 
-				(which itself usually comes from the {@link org.apache.juneau.annotation.Produces @Produces} annotation).
-		</p>
-		<p>
-			Serializers can be associated with REST servlets in the following ways:
-		</p>
-		<ul class='javahierarchy'>
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestResource#serializers() @RestResource.serializers()} - Annotation on servlet class.
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#serializers() @RestMethod.serializers()} - Annotation on individual servlet methods.
-			<li class='m'>{@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[])} - Override method to set the serializers programmatically.
-		</ul>
-		<p>
-			The following are equivalent ways of defining serializers used by a servlet...
-		</p> 		
-		<p class='bcode'>
-	<jc>// Example #1 - Serializers defined on servlet through annotation</jc>
-	<ja>@RestResource</ja>(
-		serializers={JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>}
-	)
-	<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-		...
-	}
-
- 	<jc>// Example #2 - Serializers defined on method through annotation</jc>
- 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>
- 		serializers={JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>}
- 	)
-	<jk>public</jk> Object doGet() {
- 		...
-	}
-
-	<jc>// Example #3 - Serializers defined on servlet by overriding the createSerializers(ObjectMap,Class[]) method</jc>
-	<ja>@Override</ja>
-	<jk>public</jk> SerializerGroup createSerializers(ObjectMap,Class[]) {
-
- 		SerializerGroup g = <jk>new</jk> SerializerGroup()
- 			.append(JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>);
-
-		<jk>return</jk> g;
-	}
-		</p>
-		<p class='info'>
-			When debugging the output from REST servlets, it's almost always easier to bypass the REST servlet and try to serialize
-				the POJOs using the serializers directly using the {@link org.apache.juneau.serializer.WriterSerializer#toString(Object)} method.
-		</p>
-		<h6 class='topic'>Additional Information</h6>
-		<ul class='javahierarchy'>
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#serializersInherit() @RestMethod.serializersInherit()}
-				<br>Controls how serializers are inherited from the servlet class.
-		</ul>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.Parsers"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.6 - Parsers</h3>
-	<div class='topic'>
-		<p>
-			REST servlets use the {@link org.apache.juneau.parser.Parser} API for defining parsers for parsing request body content and converting them into POJOs.
-		</p>
-		<p>
-			The servlet will pick which parser to use by matching the request <l>Content-Type</l> header with the
-				media types defined through the {@link org.apache.juneau.parser.Parser#getMediaTypes()} method (which itself
-				usually comes from the {@link org.apache.juneau.annotation.Consumes @Consumes} annotation).
-		</p>
-		<p>
-			Parsers can be associated with REST servlets in the following ways:
-		</p>
-		<ul class='javahierarchy'>
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestResource#parsers() @RestResource.parsers()} - Annotation on servlet class.
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#parsers() @RestMethod.parsers()} - Annotation on individual servlet methods.
-			<li class='m'>{@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[])} - Override method to set the parsers programmatically.
-		</ul>
-		<p>
-			The following are equivalent ways of defining parsers used by a servlet...
-		</p>
-		<p class='bcode'>
-		<jc>// Example #1 - Parsers defined on servlet through annotation</jc>
-		<ja>@RestResource</ja>(
-			parsers={JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>}
-		)
-		<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-			...
-		}
-	
-	 	<jc>// Example #2 - Parsers defined on method through annotation</jc>
-	 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>
-			parsers={JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>}
-		)
-		<jk>public void</jk> doPut(<ja>@Content</ja> Foo input) {
-			...
-		}
-	
-		<jc>// Example #3 - Parsers defined on servlet by overriding the getParserGroup method</jc>
-		<ja>@Override</ja>
-		<jk>public</jk> ParserGroup getParserGroup() {
-	
-	 		ParserGroup g = <jk>new</jk> ParserGroup()
-				.append(JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>);
-	
-	 		<jk>return</jk> g;
-	 	}
-		</p>
-		<h6 class='topic'>Additional Information</h6>
-		<ul class='javahierarchy'>
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#parsersInherit() @RestMethod.parsersInherit()} 
-				<br>Controls how parsers are inherited from the servlet class.
-		</ul>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.Properties"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.7 - Properties</h3>
-	<div class='topic'>
-		<p>
-			The Juneau serializers and parsers are highly-configurable through properties.
-			(See <a class='doclink' href='../../../../overview-summary.html#Core.ConfigurableProperties'>Configurable Properties</a>)
-		</p>
-		<p>
-			There are several ways of defining properties in the REST API.
-			The most common way is going to be through the {@link org.apache.juneau.server.annotation.RestResource#properties() @RestResource.properties()}
-			and {@link org.apache.juneau.server.annotation.RestMethod#properties() @RestMethod.properties()} annotations.
-		</p>
-		<p>
-			The {@link org.apache.juneau.server.annotation.RestResource#properties() @RestResource.properties()} annotation 
-				can be used as a convenient way to set various serializer and parser
-				properties to all serializers and parsers registered with the servlet.
-		</p>
-		<p class='bcode'>
-	<jk>import static</jk> org.apache.juneau.SerializerContext.*;
-	<jk>import static</jk> org.apache.juneau.xml.XmlSerializerContext.*;
-	<jk>import static</jk> org.apache.juneau.server.serializers.HtmlSerializerContext.*;
-
-	<jc>// Servlet with properties applied</jc>
-	<ja>@RestResource</ja>(
-		properties={
-			<jc>// Nulls should not be serialized</jc>
-			<ja>@Property</ja>(name=<jsf>TRIM_NULLS</jsf>, value=<js>"true"</js>),
-
-			<jc>// Empty lists should not be serialized</jc>
-			<ja>@Property</ja>(name=<jsf>SERIALIZER_trimEmptyLists</jsf>, value=<js>"true"</js>),
-
-			<jc>// Specify the default namespaces for the XML serializer</jc>
-			<ja>@Property</ja>(name=<jsf>XML_defaultNamespaceUriS</jsf>,
-				value=<js>"{jp06:'http://jazz.net/xmlns/prod/jazz/process/0.6/',jp:'http://jazz.net/xmlns/prod/jazz/process/1.0/'}"</js>),
-
-			<jc>// Specify a default title for the HtmlSerializer serializer</jc>
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_title</jsf>, value=<js>"My resource"</js>)
-		}
-	)
-	<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-		...
-	}
-		</p>
-		<p>
-			The {@link org.apache.juneau.server.annotation.RestMethod#properties() @RestMethod.properties()} annotation 
-				can be used to define method-level properties that can alter the behavior of serializers and parsers at the method level only.
-		</p>
-		<p class='bcode'>
-	<jc>// GET method with method-level properties</jc>
-	<ja>@RestMethod</ja>(
-		name=<js>"GET"</js>, path=<js>"/*"</js>,
-		properties={
-			<jc>// Nulls should not be serialized</jc>
-			<ja>@Property</ja>(name=<jsf>TRIM_NULLS</jsf>, value=<js>"true"</js>),
-
-			<jc>// Empty lists should not be serialized</jc>
-			<ja>@Property</ja>(name=<jsf>SERIALIZER_trimEmptyLists</jsf>, value=<js>"true"</js>),
-
-			<jc>// Specify the default namespaces for the XML serializer</jc>
-			<ja>@Property</ja>(name=<jsf>XML_defaultNamespaceUriS</jsf>,
-				value=<js>"{jp06:'http://jazz.net/xmlns/prod/jazz/process/0.6/',jp:'http://jazz.net/xmlns/prod/jazz/process/1.0/'}"</js>),
-
-			<jc>// Specify a default title for the HtmlSerializer serializer</jc>
-			<ja>@Property</ja>(name=<jsf>HTMLDOC_title</jsf>, value=<js>"My resource"</js>)
-		}
-	<jk>public</jk> Object doGet() {
-		...
-	}
-		</p>
-		<p>
-			In particular, the {@link org.apache.juneau.server.RestServletContext} class has a variety of properties
-			for controlling the behavior of the {@link org.apache.juneau.server.RestServlet} class itself.
-		</p>
-		<p>
-			There are also ways to provide properties programmatically.
-		</p>
-		<ul class='spaced-list'>
-			<li>By overriding the {@link org.apache.juneau.server.RestServlet#createProperties()} method.
-			<li>By overriding the {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[])} and 
-				{@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[])} methods and setting properties on the 
-				serializers and parsers directly.
-			
-		</ul>
-		<h6 class='topic'>Additional Information</h6>
-		<ul class='javahierarchy'>
-			<li class='c'>{@link org.apache.juneau.server.RestServletContext}
-				<br>Properties associated with the {@link org.apache.juneau.server.RestServlet} class.
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#serializersInherit @RestMethod.serializersInherit()} 
-				<br>Controls how serializers inherit properties from the servlet class.
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#parsersInherit @RestMethod.parsersInheritInherit()} 
-				<br>Controls how parsers inherit properties from the servlet class.
-		</ul>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.Transforms"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.8 - Transforms</h3>
-	<div class='topic'>
-		<p>
-			The Juneau serializers and parsers can be configured on how to handle POJOs through the use of Transforms.
-			(See <a class='doclink' href='../../../../overview-summary.html#Core.Transforms'>Transforms</a>)
-		</p>
-		<p>
-			The {@link org.apache.juneau.server.annotation.RestResource#transforms() @RestResource.transforms()} annotation 
-			can be used as a convenient way to add POJO transforms to the serializers and parsers
-			registered with the servlet.
-		</p>
-		<p class='bcode'>
-	<jc>// Servlet with transforms applied</jc>
-	<ja>@RestResource</ja>(
-		transforms={
-			<jc>// Calendars should be serialized/parsed as ISO8601 date-time strings</jc>
-			CalendarTransform.<jsf>DEFAULT_ISO8601DT</jsf>.<jk>class</jk>,
-
-			<jc>// Byte arrays should be serialized/parsed as BASE64-encoded strings</jc>
-			ByteArrayBase64Transform.<jk>class</jk>,
-
-			<jc>// Subclasses of MyInterface will be treated as MyInterface objects.</jc>
-			<jc>// Bean properties not defined on that interface will be ignored.</jc>
-			MyInterface.<jk>class</jk>
-		}
-	)
-	<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-		...
-	}
-		</p>
-		<p>
-			{@link org.apache.juneau.server.annotation.RestMethod#transforms() @RestMethod.transforms()}
-				is the equivalent annotation for individual Java methods.
-		</p>
-		<p>
-			Transforms can also be defined programmatically through the following:
-		</p>
-		<ul class='spaced-list'>
-			<li>By overriding the {@link org.apache.juneau.server.RestServlet#createTransforms()} method.
-			<li>By overriding the {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[])} and 
-				{@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[])} methods and setting transforms on the 
-				serializers and parsers directly.
-			
-		</ul>
-		<h6 class='topic'>Additional Information</h6>
-		<ul class='javahierarchy'>
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#serializersInherit @RestMethod.serializersInherit()} 
-				<br>Controls how serializers inherit transforms from the servlet class.
-			<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#parsersInherit @RestMethod.parsersInherit()} 
-				<br>Controls how parsers inherit transforms from the servlet class.
-		</ul>
-	</div>	
-	
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.Guards"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.9 - Guards</h3>
-	<div class='topic'>
-		<p>
-			Guards are classes that control access to REST servlets and methods.
-		</p>
-		<p>
-			The {@link org.apache.juneau.server.annotation.RestResource#guards @RestResource.guards()} annotation 
-				can be used to associate one or more class-level {@link org.apache.juneau.server.RestGuard RestGuards} with a servlet.
-		</p>
-		<p class='bcode'>
-	<jc>// Servlet with class-level guard applied</jc>
-	<ja>@RestResource</ja>(guards=BillyGuard.<jk>class</jk>)
-	<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-
- 		<jc>// Delete method that only Billy is allowed to call.</jc>
-		<jk>public</jk> doDelete(RestRequest req, RestResponse res) <jk>throws</jk> Exception {...}
- 	}
-
-	<jc>// Define a guard that only lets Billy make a request</jc>
-	<jk>public</jk> BillyGuard <jk>extends</jk> RestGuard {
-
-	<ja>@Override</ja>
-		<jk>public boolean</jk> isRequestAllowed(RestRequest req) {
-			return req.getUserPrincipal().getName().equals(<js>"Billy"</js>);
-		}
-	}
-		</p>
-		<p>
-			A common use for guards is to only allow admin access to certain Java methods...
-		</p>
-		<p class='bcode'>
-	<jc>// DELETE method</jc>
-	<ja>@RestMethod</ja>(name=<js>"DELETE"</js>, guards={AdminGuard.<jk>class</jk>})
-	<jk>public void</jk> doDelete(RestRequest req, RestResponse res) <jk>throws</jk> Exception {
-		...
-		</p>
-		<p class='bcode'>
-	<jk>public class</jk> AdminGuard <jk>extends</jk> RestGuard {
-		<ja>@Override</ja>
-		<jk>public boolean</jk> isRequestAllowed(RestRequest req) {
-			<jk>return</jk> req.getUserPrincipal().isUserInRole(<js>"ADMIN"</js>);
-		}
-	}
-		</p>
-		<p>
-			A guard failure results in an <l>HTTP 401 Unauthorized</l> response.
-			However, this can be configured by overriding the {@link org.apache.juneau.server.RestGuard#guard(RestRequest,RestResponse)} 
-				and processing the response yourself.
-		</p>
-		<p>
-			When guards are associated at the class-level, it's equivalent to associating guards on all Java methods on the servlet.
-		</p>
-		<p>
-			Class-level guards can also be created programmatically by overriding the {@link org.apache.juneau.server.RestServlet#createGuards(ObjectMap)} method.
-		</p>
-		<h6 class='topic'>Additional Information</h6>
-		<ul class='javahierarchy'>
-			<li class='a'>{@link org.apache.juneau.server.RestGuard} 
-		</ul>
-	</div>
-	
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.Converters"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.10 - Converters</h3>
-	<div class='topic'>
-		<p>
-			Converters can be thought of as a "post-processor" for POJOs before they get passed to the serializers.
-		</p>
-		<p>
-			The {@link org.apache.juneau.server.annotation.RestResource#converters @RestResource.converters()} annotation 
-				can be used as a convenient way to add {@link org.apache.juneau.server.RestConverter RestConverters} to
-				all Java REST methods on a servlet.
-		</p>
-		<p class='bcode'>
-	<jc>// Associate the Traversable converter to all Java REST methods in this servlet</jc>
-	<ja>@RestResource</ja>(converters=Traversable.<jk>class</jk>)
-	<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-		...
-	}
-		</p>
-		<p>
-			The {@link org.apache.juneau.server.annotation.RestMethod#converters() @RestMethod.converters()} annotation 
-				can be used to associate converters on individual methods.
-		</p>
-		<p class='bcode'>
-	<jc>// GET person request handler.</jc>
-	<jc>// Traversable conversion enabled to allow nodes in returned POJO tree to be addressed.</jc>
-	<jc>// Queryable conversion enabled to allow returned POJO to be searched/viewed/sorted.</jc>
-	<ja>@RestMethod</ja>(
-			name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>,
-			converters={Traversable.<jk>class</jk>,Queryable.<jk>class</jk>}
-	)
-	<jk>public</jk> Person getPerson(<ja>@Attr</ja> <jk>int</jk> id) {
-		<jk>return</jk> findPerson(id);
-	}
-		</p>	
-		<p>
-			The following converter is used to provide support for addressing child nodes in a POJO tree with
-				URL path remainders.  
-			<br>In this code, the 3rd parameter is the object that was returned by the Java method (or set through <l>request.setObject(o);</l>).
-			<br>The converter uses the {@link org.apache.juneau.utils.PojoRest} wrapper class to address nodes in the tree.
-		</p>
-		<p class='bcode'>
-	<jd>/**
-	 * Converter for enablement of PojoRest support on response objects returned by a @RestMethod method.
-	 * When enabled, objects in a POJO tree returned by the REST method can be addressed through additional URL path information.
-	 */</jd>
-	<jk>public class</jk> Traversable <jk>implements</jk> RestConverter {
-	
-		<ja>@Override</ja>
-		<jk>public</jk> Object convert(RestServlet resource, RestRequest req, Object o) {
-			if (o == <jk>null</jk>)
-				<jk>return null</jk>;
-	
-			BeanContext beanContext = resource.getBeanContext();
-			
-			<jk>if</jk> (req.getRemainder() != <jk>null</jk>) {
-				PojoRest p = <jk>new</jk> PojoRest(o, beanContext);
-				<jk>try</jk> {
-					o = p.get(req.getRemainder());
-				} <jk>catch</jk> (PojoRestException e) {
-					<jk>throw new</jk> RestException(e.getStatus(), e.getMessage(), e);
-				}
-			}
-			
-			<jk>return</jk> o;
-		}
-	}
-		</p>	
-		<p>
-			Juneau defines the following converters out-of-the-box:
-		</p>
-		<ul class='javahierarchy'>
-			<li class='i'>{@link org.apache.juneau.server.RestConverter}
-			<ul>
-				<li class='c'>{@link org.apache.juneau.server.converters.Queryable}
-					<br>Provides query parameters that can be used to transform the response (i.e. search/view/sort the POJO response before being serialized).
-				<li class='c'>{@link org.apache.juneau.server.converters.Traversable}
-					<br>Allows nodes in the POJO response tree to be individually accessed through additional path info on the request.
-				<li class='c'>{@link org.apache.juneau.server.converters.Introspectable}
-					<br>Allows method calls to be made on the response POJO, and for the result of that method call to be serialized as the response.
-			</ul>
-		</ul>
-		<p>
-			Class-level converters can be created programmatically by overriding the {@link org.apache.juneau.server.RestServlet#createConverters(ObjectMap)} method.
-		</p>
-		<p>
-			Note that from the example above, you can specify more than one converter.
-			When multiple converters are used, they're executed in the order they're specified in the annotation
-			(e.g. first the results will be traversed, then the resulting node will be searched/sorted).
-			
-		</p>
-		<h6 class='topic'>Additional Information</h6>
-		<ul class='javahierarchy'>
-			<li class='i'>{@link org.apache.juneau.server.RestConverter} 
-		</ul>
-	</div>
-
-	<!-- ======================================================================================================== -->
-	<a name="RestResources.Children"></a>
-	<h3 class='topic' onclick='toggle(this)'>4.11 - Child Resources</h3>
-	<div class='topic'>		
-		<p>
-			Child Resources are REST servlets that are linked to parent servlets through the 
-				{@link org.apache.juneau.server.annotation.RestResource#children() @RestResource.children()} annnotation.
-		</p>
-		<p class='bcode'>
-	<jd>/** Parent Resource */</jd>
-	<ja>@RestResource</ja>(
-		path=<js>"/parent"</js>,
-		children={Foo.<jk>class</jk>}
-	)
-	<jk>public</jk> MyResource <jk>extends</jk> RestServlet {
-		...
-		</p>
-		<p class='bcode'>
-	<jd>/** Child Resource */</jd>
- 	<ja>@RestResource</ja>(
-		path=<js>"/foo"</js>  // Path relative to parent resource.
-	)
-	<jk>public</jk> FooResource <jk>extends</jk> RestServlet {
-		...
-		</p>
-		<p>
-			A HUGE advantage of using child resources is that they do not need to be declared in the JEE <l>web.xml</l> file.
-			Initialization of and access to the child resources occurs through the parent resource.
-			Children can be nested arbitrary deep to create complex REST interfaces with a single top-level REST servlet.
-		</p>
-		<p>
-			The path of the child resource gets appended to the path of the parent resource. 
-			So in the example above, the child resource is accessed through the URL <l>/parent/foo</l>.
-		</p>
-		<p>
-			The {@link org.apache.juneau.server.RestServletGroupDefault} class provides a default "router" page for 
-				child resources when a parent resource is nothing more than a grouping of child resources.
-		</p>		
-		<p>
-			The <l>RootResources</l> class in the Samples project is an example of a router page:
-		</p>
-		<p class='bcode'>		
-	<jd>/**
-	 * Sample REST resource showing how to implement a "router" resource page.
-	 */</jd>
-	<ja>@RestResource</ja>(
-		path=<js>"/"</js>,
-		messages=<js>"nls/RootResources"</js>,
-		properties={
-			<ja>@Property</ja>(name=HTMLDOC_links, value=<js>"{options:'$R{servletURI}?method=OPTIONS',source:'$R{servletURI}/source?classes=(org.apache.juneau.server.samples.RootResources)'}"</js>)
-		},
-		children={
-			HelloWorldResource.<jk>class</jk>,
-			MethodExampleResource.<jk>class</jk>,
-			RequestEchoResource.<jk>class</jk>,
-			TempDirResource.<jk>class</jk>,
-			AddressBookResource.<jk>class</jk>,
-			SampleRemoteableServlet.<jk>class</jk>,
-			PhotosResource.<jk>class</jk>,
-			AtomFeedResource.<jk>class</jk>,
-			JsonSchemaResource.<jk>class</jk>,
-			SqlQueryResource.<jk>class</jk>,
-			TumblrParserResource.<jk>class</jk>,
-			CodeFormatterResource.<jk>class</jk>,
-			UrlEncodedFormResource.<jk>class</jk>,
-			SourceResource.<jk>class</jk>,
-			ConfigResource.<jk>class</jk>,
-			LogsResource.<jk>class</jk>,
-			DockerRegistryResource.<jk>class</jk>,
-			ShutdownResource.<jk>class</jk>
-		}
-	)
-	<jk>public class</jk> RootResources <jk>extends</jk> ResourceGroup {
-		<jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L;
-	}
-		</p>
-		<p>
-			When you bring up this resource in a browser, you see the following:
-		</p>
-		<img class='bordered' src="doc-files/Samples_RootResources.png"/>
-		<p> 
-			The <l>RestServletGrou

<TRUNCATED>

[18/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index 4d9ce5d..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,406 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-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
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.processAnnotations=disabled
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.jdt.ui.prefs b/com.ibm.team.juno/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100755
index 444417e..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,126 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=false
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=true
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-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=_Juneau
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Juneau
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-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" standalone\="no"?><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">/**\n * Bean property getter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\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.\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">/**\n * Bean property setter\:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.\n *\n * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on
  this bean.\n * @return This object (for method chaining).\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">/**\n * TODO\n * \n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/***************************************************************************************************************************\n * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the "Li
 cense"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http\://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an\n * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations under the License.\n ***************************************************************************************************************************/\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">/**\n * TODO\n * &lt;p&gt;\n * \n * @author James Bognar (james.bognar@salesforce.com)\n * ${tags}\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">/**\n * \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">/**\n * TODO\n * \n * ${tags}\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)\n * ${see_to_overridden}\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">/**\n * TODO\n * \n * ${
 tags}\n * ${see_to_target}\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}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\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\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}\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=false
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=true
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=false
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=false
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.update_ibm_copyright_to_current_year=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-sp_cleanup.use_type_arguments=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.ltk.core.refactoring.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.ltk.core.refactoring.prefs b/com.ibm.team.juno/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100755
index 4823f83..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Feb 03 13:34:43 EST 2009
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.m2e.core.prefs b/com.ibm.team.juno/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.pde.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.pde.core.prefs b/com.ibm.team.juno/.settings/org.eclipse.pde.core.prefs
deleted file mode 100755
index ecf8088..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 05 14:46:11 EST 2009
-eclipse.preferences.version=1
-resolve.requirebundle=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.pde.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.pde.prefs b/com.ibm.team.juno/.settings/org.eclipse.pde.prefs
deleted file mode 100755
index a9e32da..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Thu Feb 05 14:13:09 EST 2009
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.wst.common.component
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.wst.common.component b/com.ibm.team.juno/.settings/org.eclipse.wst.common.component
deleted file mode 100755
index d5aed24..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
-    <wb-module deploy-name="org.apache.juneau">
-        <wb-resource deploy-path="/" source-path="/src/main/java"/>
-        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
-        <wb-resource deploy-path="/" source-path="/src/test/java"/>
-        <wb-resource deploy-path="/" source-path="/src/test/resources"/>
-    </wb-module>
-</project-modules>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.wst.common.project.facet.core.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.wst.common.project.facet.core.xml b/com.ibm.team.juno/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100755
index 6c4c744..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ***************************************************************************************************************************
- * 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"/>
-  <installed facet="jst.utility" version="1.0"/>
-  <installed facet="jst.java" version="1.6"/>
-</faceted-project>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.wst.html.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.wst.html.core.prefs b/com.ibm.team.juno/.settings/org.eclipse.wst.html.core.prefs
deleted file mode 100755
index 00c4f29..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.wst.html.core.prefs
+++ /dev/null
@@ -1,37 +0,0 @@
-#Wed Sep 26 17:17:38 EDT 2012
-elemUnnecessaryEnd=2
-elemCoexistence=2
-attrUndefValue=2
-attrUndefName=2
-piInvalidContent=2
-elemMissingStart=2
-elemInvalidEmptyTag=2
-docDuplicateTag=1
-docInvalidChar=2
-piUndefined=2
-docInvalidContent=2
-elemStartInvalidCase=2
-commentInvalidContent=2
-use-project-settings=true
-attrInvalidName=2
-elemUnclosedStartTag=1
-attrNameMismatch=2
-elemInvalidContent=2
-elemDuplicate=2
-cdataInvalidContent=2
-piUnclosed=1
-commentUnclosed=1
-attrDuplicate=2
-docDoctypeUnclosed=1
-eclipse.preferences.version=1
-attrInvalidValue=2
-cdataUnclosed=1
-refInvalidContent=2
-attrValueUnclosed=2
-elemEndInvalidCase=1
-elemMissingEnd=2
-attrValueMismatch=1
-elemInvalidName=1
-elemInvalidDirective=1
-elemUnknownName=-1
-elemUnclosedEndTag=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.wst.validation.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.wst.validation.prefs b/com.ibm.team.juno/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100755
index c6b7b01..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,10 +0,0 @@
-DELEGATES_PREFERENCE=delegateValidatorList
-USER_BUILD_PREFERENCE=enabledBuildValidatorList
-USER_MANUAL_PREFERENCE=enabledManualValidatorList
-USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.402.v201212031633
-disabled=06target
-eclipse.preferences.version=1
-override=true
-suspend=false
-vals/org.eclipse.wst.html.core.HTMLValidator/global=TF01
-vf.version=3

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/META-INF/MANIFEST.MF b/com.ibm.team.juno/META-INF/MANIFEST.MF
deleted file mode 100755
index 7d520c2..0000000
--- a/com.ibm.team.juno/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,42 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Juneau Cloud Tools - Core
-Bundle-SymbolicName: org.apache.juneau
-Bundle-Version: 5.2.1000.qualifier
-Bundle-Vendor: IBM
-DynamicImport-Package: 
- com.hp.hpl.jena.rdf.model,
- com.hp.hpl.jena.shared
-Export-Package: org.apache.juneau,
- org.apache.juneau.annotation,
- org.apache.juneau.csv,
- org.apache.juneau.dto,
- org.apache.juneau.dto.atom,
- org.apache.juneau.dto.cognos,
- org.apache.juneau.dto.jsonschema,
- org.apache.juneau.encoders,
- org.apache.juneau.html,
- org.apache.juneau.html.annotation,
- org.apache.juneau.html.dto,
- org.apache.juneau.ini,
- org.apache.juneau.internal,
- org.apache.juneau.jena,
- org.apache.juneau.jena.annotation,
- org.apache.juneau.jso,
- org.apache.juneau.json,
- org.apache.juneau.json.annotation,
- 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.transform,
- org.apache.juneau.transforms,
- org.apache.juneau.urlencoding,
- org.apache.juneau.urlencoding.annotation,
- org.apache.juneau.utils,
- org.apache.juneau.xml,
- org.apache.juneau.xml.annotation
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/OSGI-INF/l10n/plugin.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/OSGI-INF/l10n/plugin.properties b/com.ibm.team.juno/OSGI-INF/l10n/plugin.properties
deleted file mode 100755
index 4db9575..0000000
--- a/com.ibm.team.juno/OSGI-INF/l10n/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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 = Juneau Cloud Tools - Core component, serializers, parsers
-bundle.vendor = IBM

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/build.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/build.properties b/com.ibm.team.juno/build.properties
deleted file mode 100755
index d8d99b6..0000000
--- a/com.ibm.team.juno/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# ***************************************************************************************************************************
-# * 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/,\
-           src/main/resources/,\
-           src/test/java/,\
-           src/test/resources/
-output.. = target/classes
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/
-bin.excludes = **/overview.html, **/doc-files/**
-nls_exclude=**/*.html

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/launches/Debug org.apache.juneau.launch
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/launches/Debug org.apache.juneau.launch b/com.ibm.team.juno/launches/Debug org.apache.juneau.launch
deleted file mode 100644
index 7563c8b..0000000
--- a/com.ibm.team.juno/launches/Debug org.apache.juneau.launch	
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">
-<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>
-<stringAttribute key="M2_GOALS" value="-Dtest=CT_Visibility -DforkCount=0 test"/>
-<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>
-<booleanAttribute key="M2_OFFLINE" value="false"/>
-<stringAttribute key="M2_PROFILES" value=""/>
-<listAttribute key="M2_PROPERTIES"/>
-<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>
-<booleanAttribute key="M2_SKIP_TESTS" value="false"/>
-<intAttribute key="M2_THREADS" value="1"/>
-<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>
-<stringAttribute key="M2_USER_SETTINGS" value=""/>
-<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
-<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/org.apache.juneau}"/>
-</launchConfiguration>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/launches/Package org.apache.juneau.launch
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/launches/Package org.apache.juneau.launch b/com.ibm.team.juno/launches/Package org.apache.juneau.launch
deleted file mode 100644
index 7146f2c..0000000
--- a/com.ibm.team.juno/launches/Package org.apache.juneau.launch	
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">
-<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>
-<stringAttribute key="M2_GOALS" value="clean package install"/>
-<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>
-<booleanAttribute key="M2_OFFLINE" value="false"/>
-<stringAttribute key="M2_PROFILES" value=""/>
-<listAttribute key="M2_PROPERTIES"/>
-<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>
-<booleanAttribute key="M2_SKIP_TESTS" value="false"/>
-<intAttribute key="M2_THREADS" value="1"/>
-<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>
-<stringAttribute key="M2_USER_SETTINGS" value=""/>
-<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;resources&gt;&#10;&lt;item path=&quot;/org.apache.juneau/target&quot; type=&quot;2&quot;/&gt;&#10;&lt;/resources&gt;}"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
-<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/org.apache.juneau}"/>
-</launchConfiguration>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/pom.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/pom.xml b/com.ibm.team.juno/pom.xml
deleted file mode 100644
index a1af27b..0000000
--- a/com.ibm.team.juno/pom.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.juneau</groupId>
-	<artifactId>juneau-core</artifactId>
-	<version>6.0.0-SNAPSHOT</version>
-	<name>org.apache.juneau</name>
-	<description>org.apache.juneau</description>
-	<properties>
-		<encoding>UTF-8</encoding>
-	</properties>
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.jena</groupId>
-			<artifactId>jena-core</artifactId>
-			<version>2.7.1</version>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.10</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-	<build>
-		<plugins>
-			<plugin>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.3</version>
-				<configuration>
-					<source>1.6</source>
-					<target>1.6</target>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<version>2.19.1</version>
-				<configuration>
-					<includes>
-						<include>**/CT_*.class</include>
-					</includes>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Microservices.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Microservices.1.png b/com.ibm.team.juno/src/main/java/doc-files/Microservices.1.png
deleted file mode 100644
index e730d32..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Microservices.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.1.png
deleted file mode 100644
index 96426b7..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.2.png
deleted file mode 100644
index 36c3e42..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.1.png
deleted file mode 100644
index 28f9f50..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.10.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.10.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.10.png
deleted file mode 100644
index 88813e3..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.10.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.2.png
deleted file mode 100644
index d12c2a6..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.3.png
deleted file mode 100644
index 026f40a..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.4.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.4.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.4.png
deleted file mode 100644
index 9196c5c..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.4.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.5.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.5.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.5.png
deleted file mode 100644
index 3db4c82..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.5.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.6.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.6.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.6.png
deleted file mode 100644
index bf1c752..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.6.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.7.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.7.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.7.png
deleted file mode 100644
index 820beaa..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.7.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.8.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.8.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.8.png
deleted file mode 100644
index 901adf8..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.8.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.9.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.9.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.9.png
deleted file mode 100644
index 57f2ee5..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Demo.9.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Introspectable.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Introspectable.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Introspectable.1.png
deleted file mode 100644
index b6a7ca6..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Introspectable.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.1.png
deleted file mode 100644
index 8072bb0..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.2.png
deleted file mode 100644
index 5dfe9ac..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.3.png
deleted file mode 100644
index f6ec90a..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Queryable.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Traversable.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Traversable.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Traversable.1.png
deleted file mode 100644
index 324bc9e..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Traversable.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Traversable.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Traversable.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Traversable.2.png
deleted file mode 100644
index cb36527..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AddressBookResource.Traversable.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.1.png
deleted file mode 100644
index b4918ad..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.2.png
deleted file mode 100644
index 9f7007b..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.3.png
deleted file mode 100644
index 9e9226e..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.AtomFeedResource.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.Building.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.Building.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.Building.1.png
deleted file mode 100644
index b87be9e..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.Building.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.Building.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.Building.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.Building.2.png
deleted file mode 100644
index 7f4e892..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.Building.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.1.png
deleted file mode 100644
index cdcbbe7..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.2.png
deleted file mode 100644
index ec748e4..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.3.png
deleted file mode 100644
index 8e9a3d9..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.ConfigResource.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.DockerRegistryResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.DockerRegistryResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.DockerRegistryResource.1.png
deleted file mode 100644
index 2db968b..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.DockerRegistryResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.DockerRegistryResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.DockerRegistryResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.DockerRegistryResource.2.png
deleted file mode 100644
index f40f603..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.DockerRegistryResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.1.png
deleted file mode 100644
index bbc4afa..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.2.png
deleted file mode 100644
index 0cf55f9..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.3.png
deleted file mode 100644
index c493099..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.HelloWorldResource.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.1.png
deleted file mode 100644
index 81c6239..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.2.png
deleted file mode 100644
index 9873f17..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.3.png
deleted file mode 100644
index 9c3fd34..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.Installing.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.JsonSchemaResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.JsonSchemaResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.JsonSchemaResource.1.png
deleted file mode 100644
index 23d69da..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.JsonSchemaResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.JsonSchemaResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.JsonSchemaResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.JsonSchemaResource.2.png
deleted file mode 100644
index 02c15c6..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.JsonSchemaResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.1.png
deleted file mode 100644
index 6cc890a..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.2.png
deleted file mode 100644
index 49c74a0..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.3.png
deleted file mode 100644
index 51594d8..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.LogsResource.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.MethodExampleResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.MethodExampleResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.MethodExampleResource.1.png
deleted file mode 100644
index d64ea00..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.MethodExampleResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.MethodExampleResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.MethodExampleResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.MethodExampleResource.2.png
deleted file mode 100644
index a621767..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.MethodExampleResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.PhotosResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.PhotosResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.PhotosResource.1.png
deleted file mode 100644
index a050101..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.PhotosResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.PhotosResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.PhotosResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.PhotosResource.2.png
deleted file mode 100644
index fe472a8..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.PhotosResource.2.png and /dev/null differ



[29/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/TestUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/TestUtils.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/TestUtils.java
deleted file mode 100755
index 996a185..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/TestUtils.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.text.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transforms.*;
-import org.junit.Assert;
-
-import junit.framework.*;
-
-public class TestUtils {
-
-	private static JsonSerializer js2 = new JsonSerializer.Simple()
-		.addTransforms(IteratorTransform.class, EnumerationTransform.class);
-
-	/**
-	 * Assert that the object equals the specified string after running it through JsonSerializer.DEFAULT_LAX.toString().
-	 */
-	public static void assertObjectEquals(String s, Object o) {
-		assertObjectEquals(s, o, js2);
-	}
-
-	/**
-	 * Assert that the object equals the specified string after running it through ws.toString().
-	 */
-	public static void assertObjectEquals(String s, Object o, WriterSerializer ws) {
-		Assert.assertEquals(s, ws.toString(o));
-	}
-
-	public static void checkErrorResponse(boolean debug, RestCallException e, int status, String...contains) throws AssertionFailedError {
-		String r = e.getResponseMessage();
-		if (debug) {
-			System.err.println(r);
-			e.printStackTrace();
-		}
-		if (status != e.getResponseCode())
-			throw new AssertionFailedError(MessageFormat.format("Response status code was not correct.  Expected: ''{0}''.  Actual: ''{1}''", status, e.getResponseCode()));
-		for (String s : contains) {
-			if (r == null || ! r.contains(s)) {
-				if (! debug)
-					System.err.println(r);
-				throw new AssertionFailedError(MessageFormat.format("Response did not have the following expected text: ''{0}''", s));
-			}
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.DS_Store b/com.ibm.team.juno.server/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/com.ibm.team.juno.server/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.classpath b/com.ibm.team.juno.server/.classpath
deleted file mode 100755
index a953066..0000000
--- a/com.ibm.team.juno.server/.classpath
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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="src" path="src/test/java"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/org.apache.juneau.releng"/>
-	<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"/>
-	<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/2c3a7cb5/com.ibm.team.juno.server/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.gitignore b/com.ibm.team.juno.server/.gitignore
deleted file mode 100644
index 30e1a65..0000000
--- a/com.ibm.team.juno.server/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin/
-/target/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.project b/com.ibm.team.juno.server/.project
deleted file mode 100755
index 9f06158..0000000
--- a/com.ibm.team.juno.server/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau.server</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<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>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/com.ibm.etools.references.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/com.ibm.etools.references.prefs b/com.ibm.team.juno.server/.settings/com.ibm.etools.references.prefs
deleted file mode 100755
index 60e92fc..0000000
--- a/com.ibm.team.juno.server/.settings/com.ibm.etools.references.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Sep 28 14:37:35 EDT 2012
-com.ibm.etools.references.ui.validation.projectPropertiesEnabled=true
-eclipse.preferences.version=1
-com.ibm.etools.references.ui.validation.severityLevel=0

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/com.ibm.etools.webtools.packagepreferences.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/com.ibm.etools.webtools.packagepreferences.prefs b/com.ibm.team.juno.server/.settings/com.ibm.etools.webtools.packagepreferences.prefs
deleted file mode 100755
index fea8f8b..0000000
--- a/com.ibm.team.juno.server/.settings/com.ibm.etools.webtools.packagepreferences.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jan 24 16:55:50 EST 2014
-use-project-settings=false
-eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.jdt.apt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.jdt.apt.core.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.jdt.apt.core.prefs
deleted file mode 100755
index ec0c557..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.jdt.apt.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.apt.aptEnabled=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index 73f18fb..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,402 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-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
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.processAnnotations=disabled
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.jdt.ui.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100755
index d54ca08..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,120 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=false
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=true
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-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=_Juneau
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Juneau
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-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.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 (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
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.update_ibm_copyright_to_current_year=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.ltk.core.refactoring.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.ltk.core.refactoring.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100755
index 4823f83..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Feb 03 13:34:43 EST 2009
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.m2e.core.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.pde.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.pde.core.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.pde.core.prefs
deleted file mode 100755
index ecf8088..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 05 14:46:11 EST 2009
-eclipse.preferences.version=1
-resolve.requirebundle=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.pde.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.pde.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.pde.prefs
deleted file mode 100755
index a9e32da..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Thu Feb 05 14:13:09 EST 2009
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.wst.common.component
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.wst.common.component b/com.ibm.team.juno.server/.settings/org.eclipse.wst.common.component
deleted file mode 100755
index fcc037e..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
-    <wb-module deploy-name="org.apache.juneau.server">
-        <wb-resource deploy-path="/" source-path="/src/main/java"/>
-        <wb-resource deploy-path="/" source-path="/src/test/java"/>
-    </wb-module>
-</project-modules>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.wst.common.project.facet.core.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.wst.common.project.facet.core.xml b/com.ibm.team.juno.server/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100755
index 6c4c744..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ***************************************************************************************************************************
- * 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"/>
-  <installed facet="jst.utility" version="1.0"/>
-  <installed facet="jst.java" version="1.6"/>
-</faceted-project>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.wst.html.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.wst.html.core.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.wst.html.core.prefs
deleted file mode 100755
index 00c4f29..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.wst.html.core.prefs
+++ /dev/null
@@ -1,37 +0,0 @@
-#Wed Sep 26 17:17:38 EDT 2012
-elemUnnecessaryEnd=2
-elemCoexistence=2
-attrUndefValue=2
-attrUndefName=2
-piInvalidContent=2
-elemMissingStart=2
-elemInvalidEmptyTag=2
-docDuplicateTag=1
-docInvalidChar=2
-piUndefined=2
-docInvalidContent=2
-elemStartInvalidCase=2
-commentInvalidContent=2
-use-project-settings=true
-attrInvalidName=2
-elemUnclosedStartTag=1
-attrNameMismatch=2
-elemInvalidContent=2
-elemDuplicate=2
-cdataInvalidContent=2
-piUnclosed=1
-commentUnclosed=1
-attrDuplicate=2
-docDoctypeUnclosed=1
-eclipse.preferences.version=1
-attrInvalidValue=2
-cdataUnclosed=1
-refInvalidContent=2
-attrValueUnclosed=2
-elemEndInvalidCase=1
-elemMissingEnd=2
-attrValueMismatch=1
-elemInvalidName=1
-elemInvalidDirective=1
-elemUnknownName=-1
-elemUnclosedEndTag=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/.settings/org.eclipse.wst.validation.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/.settings/org.eclipse.wst.validation.prefs b/com.ibm.team.juno.server/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100755
index 1d71887..0000000
--- a/com.ibm.team.juno.server/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,9 +0,0 @@
-DELEGATES_PREFERENCE=delegateValidatorList
-USER_BUILD_PREFERENCE=enabledBuildValidatorList
-USER_MANUAL_PREFERENCE=enabledManualValidatorList
-USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.402.v201212031633
-eclipse.preferences.version=1
-override=true
-suspend=false
-vals/org.eclipse.wst.html.core.HTMLValidator/global=TF01
-vf.version=3

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/META-INF/MANIFEST.MF b/com.ibm.team.juno.server/META-INF/MANIFEST.MF
deleted file mode 100755
index 39fa87f..0000000
--- a/com.ibm.team.juno.server/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Juneau Cloud Tools - Server
-Bundle-SymbolicName: org.apache.juneau.server
-Bundle-Version: 5.2.1000.qualifier
-Bundle-Vendor: IBM
-Require-Bundle: 
- org.apache.juneau
-Import-Package: 
- com.hp.hpl.jena.rdf.model;resolution:=optional,
- com.hp.hpl.jena.shared;resolution:=optional,
- javax.servlet,
- javax.servlet.http,
- javax.ws.rs;resolution:=optional,
- javax.ws.rs.core;resolution:=optional,
- javax.ws.rs.ext;resolution:=optional
-Export-Package: 
- org.apache.juneau.server,
- org.apache.juneau.server.annotation,
- org.apache.juneau.server.converters,
- org.apache.juneau.server.jaxrs,
- org.apache.juneau.server.jena,
- org.apache.juneau.server.labels,
- org.apache.juneau.server.matchers,
- org.apache.juneau.server.remoteable,
- org.apache.juneau.server.response
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/OSGI-INF/l10n/plugin.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/OSGI-INF/l10n/plugin.properties b/com.ibm.team.juno.server/OSGI-INF/l10n/plugin.properties
deleted file mode 100755
index 0505c8a..0000000
--- a/com.ibm.team.juno.server/OSGI-INF/l10n/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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 = Juneau Cloud Tools - REST server component
-bundle.vendor = IBM

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/build.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/build.properties b/com.ibm.team.juno.server/build.properties
deleted file mode 100755
index 8273e93..0000000
--- a/com.ibm.team.juno.server/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# ***************************************************************************************************************************
-# * 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/,\
-           src/test/java/
-output.. = target/classes
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/
-bin.excludes = **/doc-files/**
-# We include JAX-RS in the extra classpath since it's not available in Jazz.  
-jars.extra.classpath = lib/jaxrs/jsr311-api-1.1.1.jar
-nls_exclude=**/*.html

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/lib/jaxrs/jsr311-api-1.1.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/lib/jaxrs/jsr311-api-1.1.1.jar b/com.ibm.team.juno.server/lib/jaxrs/jsr311-api-1.1.1.jar
deleted file mode 100755
index ec8bc81..0000000
Binary files a/com.ibm.team.juno.server/lib/jaxrs/jsr311-api-1.1.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/pom.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/pom.xml b/com.ibm.team.juno.server/pom.xml
deleted file mode 100644
index bec70b6..0000000
--- a/com.ibm.team.juno.server/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.juneau</groupId>
-  <artifactId>juneau-server</artifactId>
-  <version>6.0.0-SNAPSHOT</version>
-  <name>org.apache.juneau.server</name>
-  <description>org.apache.juneau.server</description>
-	<dependencies>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.10</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/java</directory>
-        <excludes>
-          <exclude>**/*.java</exclude>
-        </excludes>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.3</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ClientVersionMatcher.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ClientVersionMatcher.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ClientVersionMatcher.java
deleted file mode 100644
index 16cee12..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ClientVersionMatcher.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Specialized matcher for matching client versions.
- * <p>
- * See {@link RestResource#clientVersionHeader} and {@link RestMethod#clientVersion} for more info.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class ClientVersionMatcher extends RestMatcherReflecting {
-
-	private final String clientVersionHeader;
-	private final VersionRange range;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param servlet The servlet.
-	 * @param javaMethod The version string that the client version must match.
-	 */
-	protected ClientVersionMatcher(RestServlet servlet, java.lang.reflect.Method javaMethod) {
-		super(servlet, javaMethod);
-		this.clientVersionHeader = servlet.getClientVersionHeader();
-		RestMethod m = javaMethod.getAnnotation(RestMethod.class);
-		range = new VersionRange(m.clientVersion());
-	}
-
-	@Override /* RestMatcher */
-	public boolean matches(RestRequest req) {
-		return range.matches(req.getHeader(clientVersionHeader));
-	}
-
-	@Override /* RestMatcher */
-	public boolean mustMatch() {
-		return true;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ReaderResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ReaderResource.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ReaderResource.java
deleted file mode 100755
index 77c207b..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ReaderResource.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.response.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Represents the contents of a text file with convenience methods for resolving
- * 	{@link Var} variables and adding HTTP response headers.
- * <p>
- * This class is handled special by the {@link WritableHandler} class.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class ReaderResource implements Writable {
-
-	private String contents;
-	private String mediaType;
-	private VarResolverSession varSession;
-	private Map<String,String> headers = new LinkedHashMap<String,String>();
-
-	/**
-	 * Constructor.
-	 *
-	 * @param contents The contents of this resource.
-	 * @param mediaType The HTTP media type.
-	 */
-	protected ReaderResource(String contents, String mediaType) {
-		this.contents = contents;
-		this.mediaType = mediaType;
-	}
-
-	/**
-	 * Add an HTTP response header.
-	 *
-	 * @param name The header name.
-	 * @param value The header value converted to a string using {@link Object#toString()}.
-	 * @return This object (for method chaining).
-	 */
-	public ReaderResource setHeader(String name, Object value) {
-		headers.put(name, value == null ? "" : value.toString());
-		return this;
-	}
-
-	/**
-	 * Use the specified {@link VarResolver} to resolve any {@link Var StringVars} in the
-	 * contents of this file when the {@link #writeTo(Writer)} or {@link #toString()} methods are called.
-	 *
-	 * @param varSession The string variable resolver to use to resolve string variables.
-	 * @return This object (for method chaining).
-	 */
-	public ReaderResource setVarSession(VarResolverSession varSession) {
-		this.varSession = varSession;
-		return this;
-	}
-
-	/**
-	 * Get the HTTP response headers.
-	 *
-	 * @return The HTTP response headers.
-	 */
-	public Map<String,String> getHeaders() {
-		return headers;
-	}
-
-	@Override /* Writeable */
-	public void writeTo(Writer w) throws IOException {
-		if (varSession != null)
-			varSession.resolveTo(contents, w);
-		else
-			w.write(contents);
-	}
-
-	@Override /* Streamable */
-	public String getMediaType() {
-		return mediaType;
-	}
-
-	@Override /* Object */
-	public String toString() {
-		if (varSession != null)
-			return varSession.resolve(contents);
-		return contents;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/Redirect.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/Redirect.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/Redirect.java
deleted file mode 100755
index 7e1a489..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/Redirect.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.net.*;
-import java.text.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.urlencoding.*;
-
-/**
- * REST methods can return this object as a shortcut for performing <code>HTTP 302</code> redirects.
- * <p>
- * The following example shows the difference between handling redirects via the {@link RestRequest}/{@link RestResponse},
- * 	and the simplified approach of using this class.
- * <p class='bcode'>
- * 	<jc>// Redirect to "/contextPath/servletPath/foobar"</jc>
- *
- * 	<jc>// Using RestRequest and RestResponse</jc>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example1"</js>)
- * 	<jk>public void</jk> example1(RestRequest req, RestResponse res) <jk>throws</jk> IOException {
- * 		res.sendRedirect(req.getServletURI() + <js>"/foobar"</js>);
- * 	}
- *
- * 	<jc>// Using Redirect</jc>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example2"</js>)
- * 	<jk>public</jk> Redirect example2() {
- * 		<jk>return new</jk> Redirect(<js>"foobar"</js>);
- * 	}
- * </p>
- * <p>
- * The constructor can use a {@link MessageFormat}-style pattern with multiple arguments:
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example3"</js>)
- * 	<jk>public</jk> Redirect example3() {
- * 		<jk>return new</jk> Redirect(<js>"foo/{0}/bar/{1}"</js>, id1, id2);
- * 	}
- * </p>
- * <p>
- * The arguments are serialized to strings using the servlet's {@link UrlEncodingSerializer},
- * 	so any filters defined on the serializer or REST method/class will be used when present.
- * The arguments will also be automatically URL-encoded.
- * <p>
- * Redirecting to the servlet root can be accomplished by simply using the no-arg constructor.
- * <p class='bcode'>
- * 	<jc>// Simply redirect to the servlet root.
- * 	// Equivalent to res.sendRedirect(req.getServletURI()).</jc>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example4"</js>)
- * 	<jk>public</jk> Redirect exmaple4() {
- * 		<jk>return new</jk> Redirect();
- * 	}
- * </p>
- * <p>
- * This class is handled by {@link org.apache.juneau.server.response.RedirectHandler}, a built-in default
- * 	response handler created by {@link RestServlet#createResponseHandlers(ObjectMap)}.
- */
-public final class Redirect {
-
-	private int httpResponseCode;
-	private String url;
-	private Object[] args;
-
-	/**
-	 * Redirect to the specified URL.
-	 * Relative paths are interpreted as relative to the servlet path.
-	 *
-	 * @param url The URL to redirect to.
-	 * @param args Optional {@link MessageFormat} arguments to replace in the URL string.
-	 */
-	public Redirect(CharSequence url, Object...args) {
-		this.url = (url == null ? null : url.toString());
-		this.args = args;
-	}
-
-	/**
-	 * Convenience method for redirecting to instance of {@link URL} and {@link URI}.
-	 * Same as calling <code>toString()</code> on the object and using the other constructor.
-	 *
-	 * @param url The URL to redirect to.
-	 */
-	public Redirect(Object url) {
-		this.url = (url == null ? null : url.toString());
-	}
-
-	/**
-	 * Redirect to the specified URL.
-	 * Relative paths are interpreted as relative to the servlet path.
-	 *
-	 * @param httpResponseCode The HTTP response code.
-	 * @param url The URL to redirect to.
-	 * @param args Optional {@link MessageFormat} arguments to replace in the URL string.
-	 */
-	public Redirect(int httpResponseCode, CharSequence url, Object...args) {
-		this.httpResponseCode = httpResponseCode;
-		this.url = (url == null ? null : url.toString());
-		this.args = args;
-	}
-
-	/**
-	 * Shortcut for redirecting to the servlet root.
-	 */
-	public Redirect() {
-	}
-
-	/**
-	 * Calculates the URL to redirect to.
-	 *
-	 * @param s Use this serializer to encode arguments using the {@link UrlEncodingSerializer#serializeUrlPart(Object)} method.
-	 * @return The URL to redirect to.
-	 */
-	public String toUrl(UrlEncodingSerializer s) {
-		if (url != null && args != null && args.length > 0) {
-			for (int i = 0; i < args.length; i++)
-				args[i] = s.serializeUrlPart(args[i]);
-			url = MessageFormat.format(url, args);
-		}
-		return url;
-	}
-
-	/**
-	 * Returns the response code passed in through the constructor.
-	 *
-	 * @return The response code passed in through the constructor, or <code>0</code> if response code wasn't specified.
-	 */
-	public int getHttpResponseCode() {
-		return httpResponseCode;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ResponseHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ResponseHandler.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ResponseHandler.java
deleted file mode 100755
index c37ac71..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/ResponseHandler.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.response.*;
-
-/**
- * Defines the interface for handlers that convert POJOs to appropriate HTTP responses.
- * <p>
- * The {@link RestServlet} API uses the concept of registered response handlers for
- * 	converting objects returned by REST methods or set through {@link RestResponse#setOutput(Object)}
- * 	into appropriate HTTP responses.
- * <p>
- * Response handlers can be associated with {@link RestServlet RestServlets} through the following ways:
- * <ul class='spaced-list'>
- * 	<li>Through the {@link RestResource#responseHandlers @RestResource.responseHandlers} annotation.
- * 	<li>By overriding {@link RestServlet#createResponseHandlers(ObjectMap)} and augmenting or creating your
- * 		own list of handlers.
- * </ul>
- * <p>
- * By default, {@link RestServlet RestServlets} are registered with the following response handlers:
- * <ul class='spaced-list'>
- * 	<li>{@link DefaultHandler} - Serializes POJOs using the Juneau serializer API.
- * 	<li>{@link ReaderHandler} - Pipes the output of {@link Reader Readers} to the response writer ({@link RestResponse#getWriter()}).
- * 	<li>{@link InputStreamHandler} - Pipes the output of {@link InputStream InputStreams} to the response output stream ({@link RestResponse#getOutputStream()}).
- * 	<li>{@link RedirectHandler} - Handles {@link Redirect} objects.
- * </ul>
- * <p>
- * Response handlers can be used to process POJOs that cannot normally be handled through Juneau serializers, or
- * 	because it's simply easier to define response handlers for special cases.
- * <p>
- * The following example shows how to create a response handler to handle special <code>Foo</code> objects outside the normal
- * 	Juneau architecture.
- * <p class='bcode'>
- * 	<ja>@RestResource</ja>(
- * 		path=<js>"/example"</js>,
- * 		responseHandlers=FooHandler.<jk>class</jk>
- * 	)
- * 	<jk>public class</jk> Example <jk>extends</jk> RestServlet {
- *
- * 		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/"</js>)
- * 		<jk>public</jk> Foo test1() {
- * 			<jk>return new</jk> Foo(<js>"123"</js>);
- * 		}
- *
- * 		<jk>public static class</jk> FooHandler <jk>implements</jk> ResponseHandler {
- * 			<ja>@Override</ja>
- * 			<jk>public boolean</jk> handle(RestRequest req, RestResponse res, Object output) <jk>throws</jk> IOException, RestException {
- * 				<jk>if</jk> (output <jk>instanceof</jk> Foo) {
- * 					Foo foo = (Foo)output;
- * 					<jc>// Set some headers and body content.</jc>
- * 					res.setHeader(<js>"Foo-ID"</js>, foo.getId());
- * 					res.getWriter().write(<js>"foo.id="</js> + foo.getId());
- * 					<jk>return true</jk>;  <jc>// We handled it.</jc>
- * 				}
- * 				<jk>return false</jk>;  <jc>// We didn't handle it.</jc>
- * 			}
- * 		}
- * 	}
- * </p>
- */
-public interface ResponseHandler {
-
-	/**
-	 * Process this response if possible.
-	 * This method should return <jk>false</jk> if it wasn't able to process the response.
-	 *
-	 * @param req The HTTP servlet request.
-	 * @param res The HTTP servlet response;
-	 * @param output The POJO returned by the REST method that now needs to be sent to the response.
-	 * @return true If this handler handled the response.
-	 * @throws IOException - If low-level exception occurred on output stream.  Results in a {@link HttpServletResponse#SC_INTERNAL_SERVER_ERROR} error.
-	 * @throws RestException - If some other exception occurred.  Can be used to provide an appropriate HTTP response code and message.
-	 */
-	boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException;
-}


[50/51] [abbrv] [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/2c3a7cb5/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
deleted file mode 100755
index 73f18fb..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,402 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-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
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.processAnnotations=disabled
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index d54ca08..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,120 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=false
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=true
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-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=_Juneau
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Juneau
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-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.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 (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
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.update_ibm_copyright_to_current_year=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/org.eclipse.ltk.core.refactoring.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.ltk.core.refactoring.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100755
index 4823f83..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Feb 03 13:34:43 EST 2009
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.m2e.core.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/org.eclipse.pde.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.pde.core.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.pde.core.prefs
deleted file mode 100755
index ecf8088..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 05 14:46:11 EST 2009
-eclipse.preferences.version=1
-resolve.requirebundle=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/org.eclipse.pde.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.pde.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.pde.prefs
deleted file mode 100755
index a9e32da..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Thu Feb 05 14:13:09 EST 2009
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 6f3093f..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,5 +0,0 @@
-<?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/2c3a7cb5/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
deleted file mode 100755
index 6c4c744..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ***************************************************************************************************************************
- * 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"/>
-  <installed facet="jst.utility" version="1.0"/>
-  <installed facet="jst.java" version="1.6"/>
-</faceted-project>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/org.eclipse.wst.html.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.wst.html.core.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.wst.html.core.prefs
deleted file mode 100755
index 00c4f29..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.wst.html.core.prefs
+++ /dev/null
@@ -1,37 +0,0 @@
-#Wed Sep 26 17:17:38 EDT 2012
-elemUnnecessaryEnd=2
-elemCoexistence=2
-attrUndefValue=2
-attrUndefName=2
-piInvalidContent=2
-elemMissingStart=2
-elemInvalidEmptyTag=2
-docDuplicateTag=1
-docInvalidChar=2
-piUndefined=2
-docInvalidContent=2
-elemStartInvalidCase=2
-commentInvalidContent=2
-use-project-settings=true
-attrInvalidName=2
-elemUnclosedStartTag=1
-attrNameMismatch=2
-elemInvalidContent=2
-elemDuplicate=2
-cdataInvalidContent=2
-piUnclosed=1
-commentUnclosed=1
-attrDuplicate=2
-docDoctypeUnclosed=1
-eclipse.preferences.version=1
-attrInvalidValue=2
-cdataUnclosed=1
-refInvalidContent=2
-attrValueUnclosed=2
-elemEndInvalidCase=1
-elemMissingEnd=2
-attrValueMismatch=1
-elemInvalidName=1
-elemInvalidDirective=1
-elemUnknownName=-1
-elemUnclosedEndTag=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/org.eclipse.wst.validation.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.wst.validation.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100755
index 1d71887..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,9 +0,0 @@
-DELEGATES_PREFERENCE=delegateValidatorList
-USER_BUILD_PREFERENCE=enabledBuildValidatorList
-USER_MANUAL_PREFERENCE=enabledManualValidatorList
-USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.402.v201212031633
-eclipse.preferences.version=1
-override=true
-suspend=false
-vals/org.eclipse.wst.html.core.HTMLValidator/global=TF01
-vf.version=3

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 93db195..0000000
--- a/com.ibm.team.juno.client/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,36 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Juneau Cloud Tools - Client
-Bundle-SymbolicName: org.apache.juneau.client
-Bundle-Version: 5.2.1000.qualifier
-Bundle-Vendor: IBM
-Require-Bundle: 
- org.apache.juneau
-Import-Package: 
- org.apache.http,
- org.apache.http.auth,
- org.apache.http.client,
- org.apache.http.client.config,
- org.apache.http.client.entity,
- org.apache.http.client.methods,
- org.apache.http.client.params,
- org.apache.http.client.utils,
- org.apache.http.config,
- org.apache.http.conn,
- org.apache.http.conn.routing,
- org.apache.http.conn.scheme,
- org.apache.http.conn.socket,
- org.apache.http.conn.ssl,
- org.apache.http.conn.util,
- org.apache.http.cookie,
- org.apache.http.entity,
- org.apache.http.impl.client,
- org.apache.http.impl.conn,
- org.apache.http.impl.cookie,
- org.apache.http.message,
- org.apache.http.params,
- org.apache.http.protocol,
- org.apache.http.util
-Export-Package: 
- org.apache.juneau.client
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index de1ae69..0000000
--- a/com.ibm.team.juno.client/OSGI-INF/l10n/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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 = Juneau Cloud Tools - REST client component
-bundle.vendor = IBM

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index fec46c9..0000000
--- a/com.ibm.team.juno.client/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-# ***************************************************************************************************************************
-# * 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/
-bin.excludes = **/doc-files/**
-nls_exclude=**/*.html

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/pom.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/pom.xml b/com.ibm.team.juno.client/pom.xml
deleted file mode 100644
index 3d83d24..0000000
--- a/com.ibm.team.juno.client/pom.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.juneau</groupId>
-  <artifactId>org.apache.juneau.client</artifactId>
-  <version>6.0.0-SNAPSHOT</version>
-  <name>org.apache.juneau.client</name>
-  <description>org.apache.juneau.client</description>
-  <build>
-    <sourceDirectory>src</sourceDirectory>
-    <resources>
-      <resource>
-        <directory>src</directory>
-        <excludes>
-          <exclude>**/*.java</exclude>
-        </excludes>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.3</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 2d6c85e..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/AllowAllRedirects.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 98cb1fd..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/DateHeader.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index c3d068f..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/HttpMethod.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index bbd6a1f..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/NameValuePairs.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 4ba7717..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/ResponsePattern.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/***************************************************************************************************************************
- * 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 {}
-}


[12/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ObjectList.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ObjectList.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ObjectList.java
deleted file mode 100644
index 4c15d3f..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ObjectList.java
+++ /dev/null
@@ -1,569 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.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>
- * <p>
- * 	This class is not thread safe.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class ObjectList extends LinkedList<Object> {
-	private static final long serialVersionUID = 1L;
-
-	private transient BeanContext beanContext = BeanContext.DEFAULT;
-	private transient PojoRest pojoRest;
-
-	/**
-	 * 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, Parser p) throws ParseException {
-		this(p == null ? BeanContext.DEFAULT : p.getBeanContext());
-		if (p == null)
-			p = JsonParser.DEFAULT;
-		if (s != null)
-			p.parseIntoCollection(s, this, beanContext.object());
-	}
-
-	/**
-	 * 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, Parser p) throws ParseException, IOException {
-		parseReader(r, p);
-	}
-
-	private void parseReader(Reader r, Parser p) throws ParseException {
-		if (p == null)
-			p = JsonParser.DEFAULT;
-		p.parseIntoCollection(r, 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 transforms 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);
-	}
-
-	/**
-	 * Same as {@link #get(Class,int) get(Class,int)}, but the key is a slash-delimited
-	 * 	path used to traverse entries in this POJO.
-	 * <p>
-	 * 	For example, the following code is equivalent:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	ObjectMap m = getObjectMap();
-	 *
-	 * 	<jc>// Long way</jc>
-	 * 	<jk>long</jk> l = m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).getLong(<js>"baz"</js>);
-	 *
-	 * 	<jc>// Using this method</jc>
-	 * 	<jk>long</jk> l = m.getAt(<jk>long</jk>.<jk>class</jk>, <js>"foo/bar/0/baz"</js>);
-	 * </p>
-	 * <p>
-	 * 	This method uses the {@link PojoRest} class to perform the lookup, so the map can contain
-	 * 		any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).
-	 * </p>
-	 *
-	 * @param <T> The class type.
-	 * @param type The class type.
-	 * @param path The path to the entry.
-	 * @return The value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public <T> T getAt(Class<T> type, String path) {
-		return getPojoRest().get(type, path);
-	}
-
-	/**
-	 * Same as {@link #set(int,Object) set(int,Object)}, but the key is a slash-delimited
-	 * 	path used to traverse entries in this POJO.
-	 * <p>
-	 * 	For example, the following code is equivalent:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	ObjectMap m = getObjectMap();
-	 *
-	 * 	<jc>// Long way</jc>
-	 * 	m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).put(<js>"baz"</js>, 123);
-	 *
-	 * 	<jc>// Using this method</jc>
-	 * 	m.putAt(<js>"foo/bar/0/baz"</js>, 123);
-	 * </p>
-	 * <p>
-	 * 	This method uses the {@link PojoRest} class to perform the lookup, so the map can contain
-	 * 		any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).
-	 * </p>
-	 *
-	 * @param path The path to the entry.
-	 * @param o The new value.
-	 * @return The previous value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public Object putAt(String path, Object o) {
-		return getPojoRest().put(path, o);
-	}
-
-	/**
-	 * Similar to {@link #putAt(String,Object) putAt(String,Object)}, but used to append
-	 * 	to collections and arrays.
-	 * <p>
-	 * 	For example, the following code is equivalent:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	ObjectMap m = getObjectMap();
-	 *
-	 * 	<jc>// Long way</jc>
-	 * 	m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).append(123);
-	 *
-	 * 	<jc>// Using this method</jc>
-	 * 	m.postAt(<js>"foo/bar"</js>, 123);
-	 * </p>
-	 * <p>
-	 * 	This method uses the {@link PojoRest} class to perform the lookup, so the map can contain
-	 * 		any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).
-	 * </p>
-	 *
-	 * @param path The path to the entry.
-	 * @param o The new value.
-	 * @return The previous value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public Object postAt(String path, Object o) {
-		return getPojoRest().post(path, o);
-	}
-
-	/**
-	 * Similar to {@link #remove(int) remove(int)},but the key is a slash-delimited
-	 * 	path used to traverse entries in this POJO.
-	 * <p>
-	 * 	For example, the following code is equivalent:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	ObjectMap m = getObjectMap();
-	 *
-	 * 	<jc>// Long way</jc>
-	 * 	m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(1).remove(<js>"baz"</js>);
-	 *
-	 * 	<jc>// Using this method</jc>
-	 * 	m.deleteAt(<js>"foo/bar/0/baz"</js>);
-	 * </p>
-	 * <p>
-	 * 	This method uses the {@link PojoRest} class to perform the lookup, so the map can contain
-	 * 		any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).
-	 * </p>
-	 *
-	 * @param path The path to the entry.
-	 * @return The previous value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public Object deleteAt(String path) {
-		return getPojoRest().delete(path);
-	}
-
-	/**
-	 * 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));
-	}
-
-	private PojoRest getPojoRest() {
-		if (pojoRest == null)
-			pojoRest = new PojoRest(this);
-		return pojoRest;
-	}
-
-	/**
-	 * 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ObjectMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ObjectMap.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ObjectMap.java
deleted file mode 100644
index 7bbbc8c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ObjectMap.java
+++ /dev/null
@@ -1,1404 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import static org.apache.juneau.internal.ClassUtils.*;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.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>
- * <p>
- * 	This class is not thread safe.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class ObjectMap extends LinkedHashMap<String,Object> {
-	private static final long serialVersionUID = 1L;
-
-	private transient BeanContext beanContext = BeanContext.DEFAULT;
-	private ObjectMap inner;
-	private transient PojoRest pojoRest;
-
-	/**
-	 * 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, Parser p) throws ParseException {
-		this(p == null ? BeanContext.DEFAULT : p.getBeanContext());
-		if (p == null)
-			p = JsonParser.DEFAULT;
-		if (s != null)
-			p.parseIntoMap(s, this, beanContext.string(), beanContext.object());
-	}
-
-	/**
-	 * 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, Parser 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, Parser p) throws ParseException {
-		if (p == null)
-			p = JsonParser.DEFAULT;
-		p.parseIntoMap(r, 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 transforms 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 transform.
-	 *
-	 * @param <T> The transformed class type.
-	 * @param transform The transform class used to convert the raw type to a transformed type.
-	 * @param key The key.
-	 * @return The value, or <jk>null</jk> if the entry doesn't exist.
-	 * @throws ParseException Thrown by the transform if a problem occurred trying to parse the value.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	public <T> T get(PojoTransform<T,?> transform, String key) throws ParseException {
-		Object o = super.get(key);
-		if (o == null)
-			return null;
-		PojoTransform f = transform;
-		return (T)f.normalize(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;
-	}
-
-	/**
-	 * Same as {@link #get(Class,String) get(Class,String)}, but the key is a slash-delimited
-	 * 	path used to traverse entries in this POJO.
-	 * <p>
-	 * 	For example, the following code is equivalent:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	ObjectMap m = getObjectMap();
-	 *
-	 * 	<jc>// Long way</jc>
-	 * 	<jk>long</jk> l = m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).getLong(<js>"baz"</js>);
-	 *
-	 * 	<jc>// Using this method</jc>
-	 * 	<jk>long</jk> l = m.getAt(<jk>long</jk>.<jk>class</jk>, <js>"foo/bar/0/baz"</js>);
-	 * </p>
-	 * <p>
-	 * 	This method uses the {@link PojoRest} class to perform the lookup, so the map can contain
-	 * 		any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).
-	 * </p>
-	 *
-	 * @param <T> The class type.
-	 * @param type The class type.
-	 * @param path The path to the entry.
-	 * @return The value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public <T> T getAt(Class<T> type, String path) {
-		return getPojoRest().get(type, path);
-	}
-
-	/**
-	 * Same as <code>put(String,Object)</code>, but the key is a slash-delimited
-	 * 	path used to traverse entries in this POJO.
-	 * <p>
-	 * 	For example, the following code is equivalent:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	ObjectMap m = getObjectMap();
-	 *
-	 * 	<jc>// Long way</jc>
-	 * 	m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).put(<js>"baz"</js>, 123);
-	 *
-	 * 	<jc>// Using this method</jc>
-	 * 	m.putAt(<js>"foo/bar/0/baz"</js>, 123);
-	 * </p>
-	 * <p>
-	 * 	This method uses the {@link PojoRest} class to perform the lookup, so the map can contain
-	 * 		any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).
-	 * </p>
-	 *
-	 * @param path The path to the entry.
-	 * @param o The new value.
-	 * @return The previous value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public Object putAt(String path, Object o) {
-		return getPojoRest().put(path, o);
-	}
-
-	/**
-	 * Similar to {@link #putAt(String,Object) putAt(String,Object)}, but used to append
-	 * 	to collections and arrays.
-	 * <p>
-	 * 	For example, the following code is equivalent:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	ObjectMap m = getObjectMap();
-	 *
-	 * 	<jc>// Long way</jc>
-	 * 	m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).append(123);
-	 *
-	 * 	<jc>// Using this method</jc>
-	 * 	m.postAt(<js>"foo/bar"</js>, 123);
-	 * </p>
-	 * <p>
-	 * 	This method uses the {@link PojoRest} class to perform the lookup, so the map can contain
-	 * 		any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).
-	 * </p>
-	 *
-	 * @param path The path to the entry.
-	 * @param o The new value.
-	 * @return The previous value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public Object postAt(String path, Object o) {
-		return getPojoRest().post(path, o);
-	}
-
-	/**
-	 * Similar to {@link #remove(Object) remove(Object)},but the key is a slash-delimited
-	 * 	path used to traverse entries in this POJO.
-	 * <p>
-	 * 	For example, the following code is equivalent:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	ObjectMap m = getObjectMap();
-	 *
-	 * 	<jc>// Long way</jc>
-	 * 	m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(1).remove(<js>"baz"</js>);
-	 *
-	 * 	<jc>// Using this method</jc>
-	 * 	m.deleteAt(<js>"foo/bar/0/baz"</js>);
-	 * </p>
-	 * <p>
-	 * 	This method uses the {@link PojoRest} class to perform the lookup, so the map can contain
-	 * 		any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).
-	 * </p>
-	 *
-	 * @param path The path to the entry.
-	 * @return The previous value, or <jk>null</jk> if the entry doesn't exist.
-	 */
-	public Object deleteAt(String path) {
-		return getPojoRest().delete(path);
-	}
-
-	/**
-	 * 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 CalendarTransform} 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());
-	}
-
-	private PojoRest getPojoRest() {
-		if (pojoRest == null)
-			pojoRest = new PojoRest(this);
-		return pojoRest;
-	}
-
-	/**
-	 * 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamer.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamer.java
deleted file mode 100644
index 9aa2897..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import org.apache.juneau.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamerDashedLC.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamerDashedLC.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamerDashedLC.java
deleted file mode 100644
index d1b1e7e..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamerDashedLC.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-/**
- * 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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamerDefault.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamerDefault.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamerDefault.java
deleted file mode 100644
index 9193e1d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/PropertyNamerDefault.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/Session.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/Session.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/Session.java
deleted file mode 100644
index 653194e..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/Session.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-/**
- * A one-time-use non-thread-safe object that's meant to be used once and then thrown away.
- * <p>
- * Serializers and parsers use context objects to retrieve config properties and to use it
- * 	as a scratchpad during serialize and parse actions.
- *
- * @see ContextFactory
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public abstract class Session {
-
-	/**
-	 * Default constructor.
-	 *
-	 * @param ctx The context creating this session object.
-	 * 	The context contains all the configuration settings for the session.
-	 */
-	protected Session(Context ctx) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/Streamable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/Streamable.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/Streamable.java
deleted file mode 100644
index 0d99b52..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/Streamable.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-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 (james.bognar@salesforce.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();
-}


[17/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.htmlschema.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.htmlschema.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.htmlschema.png
deleted file mode 100644
index 0e822c0..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.htmlschema.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.json.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.json.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.json.png
deleted file mode 100644
index 67bc6b8..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.json.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonschema.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonschema.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonschema.png
deleted file mode 100644
index dbd6db3..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonschema.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonsimple.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonsimple.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonsimple.png
deleted file mode 100644
index da569c0..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonsimple.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.png
deleted file mode 100644
index 305c913..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.uon.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.uon.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.uon.png
deleted file mode 100644
index 4329dc4..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.uon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.urlencoding.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.urlencoding.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.urlencoding.png
deleted file mode 100644
index 4982033..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.urlencoding.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.xml.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.xml.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.xml.png
deleted file mode 100644
index d563523..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.xml.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.xmlschema.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.xmlschema.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.xmlschema.png
deleted file mode 100644
index 25b3de7..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.1.xmlschema.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.2.png
deleted file mode 100644
index ffb5b24..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.3.png
deleted file mode 100644
index 606dad7..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.4.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.4.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.4.png
deleted file mode 100644
index 78df80a..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.RequestEchoResource.4.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.1.png
deleted file mode 100644
index b963769..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.2.png
deleted file mode 100644
index 1ea5e51..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.3.png
deleted file mode 100644
index c2f37b4..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.Running.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.1.png
deleted file mode 100644
index 11e8220..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.2.png
deleted file mode 100644
index ed6b88c..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.3.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.3.png
deleted file mode 100644
index 5674912..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.SampleRemoteableServlet.3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.SqlQueryResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.SqlQueryResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.SqlQueryResource.1.png
deleted file mode 100644
index 21e32a6..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.SqlQueryResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.SqlQueryResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.SqlQueryResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.SqlQueryResource.2.png
deleted file mode 100644
index 206013f..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.SqlQueryResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.TempDirResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.TempDirResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.TempDirResource.1.png
deleted file mode 100644
index bd6c854..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.TempDirResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.TempDirResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.TempDirResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.TempDirResource.2.png
deleted file mode 100644
index 0c78b77..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.TempDirResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.TumblrParserResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.TumblrParserResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.TumblrParserResource.1.png
deleted file mode 100644
index 9fac852..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.TumblrParserResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.UrlEncodedFormResource.1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.UrlEncodedFormResource.1.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.UrlEncodedFormResource.1.png
deleted file mode 100644
index 0599e93..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.UrlEncodedFormResource.1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Samples.UrlEncodedFormResource.2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Samples.UrlEncodedFormResource.2.png b/com.ibm.team.juno/src/main/java/doc-files/Samples.UrlEncodedFormResource.2.png
deleted file mode 100644
index 0ed8b80..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Samples.UrlEncodedFormResource.2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.Html.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.Html.png b/com.ibm.team.juno/src/main/java/doc-files/Server.Html.png
deleted file mode 100644
index 87565c5..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.Html.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.Json.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.Json.png b/com.ibm.team.juno/src/main/java/doc-files/Server.Json.png
deleted file mode 100644
index 1bd3738..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.Json.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.N3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.N3.png b/com.ibm.team.juno/src/main/java/doc-files/Server.N3.png
deleted file mode 100644
index 8ada07c..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.N3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.NTuple.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.NTuple.png b/com.ibm.team.juno/src/main/java/doc-files/Server.NTuple.png
deleted file mode 100644
index 1e25554..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.NTuple.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.Options.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.Options.png b/com.ibm.team.juno/src/main/java/doc-files/Server.Options.png
deleted file mode 100644
index f89fea0..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.Options.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.RdfXml.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.RdfXml.png b/com.ibm.team.juno/src/main/java/doc-files/Server.RdfXml.png
deleted file mode 100644
index 7a8b02c..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.RdfXml.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.SimpleXml.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.SimpleXml.png b/com.ibm.team.juno/src/main/java/doc-files/Server.SimpleXml.png
deleted file mode 100644
index 9eb1fcd..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.SimpleXml.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.Turtle.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.Turtle.png b/com.ibm.team.juno/src/main/java/doc-files/Server.Turtle.png
deleted file mode 100644
index 77ec6ad..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.Turtle.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.Uon.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.Uon.png b/com.ibm.team.juno/src/main/java/doc-files/Server.Uon.png
deleted file mode 100644
index 28e4baf..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.Uon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.UrlEncoding.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.UrlEncoding.png b/com.ibm.team.juno/src/main/java/doc-files/Server.UrlEncoding.png
deleted file mode 100644
index 1572968..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.UrlEncoding.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/doc-files/Server.Xml.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/doc-files/Server.Xml.png b/com.ibm.team.juno/src/main/java/doc-files/Server.Xml.png
deleted file mode 100644
index 1012ea0..0000000
Binary files a/com.ibm.team.juno/src/main/java/doc-files/Server.Xml.png and /dev/null differ


[33/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestDefaultContentTypes.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestDefaultContentTypes.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestDefaultContentTypes.java
deleted file mode 100755
index 089c0fb..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestDefaultContentTypes.java
+++ /dev/null
@@ -1,497 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-
-public class CT_TestDefaultContentTypes {
-
-	private static String URL = "/testDefaultContentTypes";
-	private static boolean debug = false;
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on servlet annotation are picked up.
-	//====================================================================================================
-	@Test
-	public void testDefaultHeadersOnServletAnnotation() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-
-		String url = URL + "/testDefaultHeadersOnServletAnnotation";
-
-		client.setAccept("").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		client.setAccept("text/s1").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p2", r);
-
-		client.setAccept("").setContentType("text/p1");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p1", r);
-
-		client.setAccept("text/s1").setContentType("text/p1");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p1", r);
-
-		client.setAccept("text/s2").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		client.setAccept("").setContentType("text/p2");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		client.setAccept("text/s2").setContentType("text/p2");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		try {
-			client.setAccept("text/s3").setContentType("");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/s3'",
-				"Supported media-types: [text/s1, text/s2]"
-			);
-		}
-
-		try {
-			client.setAccept("").setContentType("text/p3");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p3'",
-				"Supported media-types: [text/p1, text/p2]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s3").setContentType("text/p3");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p3'",
-				"Supported media-types: [text/p1, text/p2]"
-			);
-		}
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on servlet annotation are picked up
-	// when @RestMethod.parsers/serializers annotations are used.
-	//====================================================================================================
-	@Test
-	public void testRestMethodParsersSerializers() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-
-		String url = URL + "/testRestMethodParsersSerializers";
-
-		try {
-			client.setAccept("").setContentType("");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s1").setContentType("");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("").setContentType("text/p1");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p1'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s1").setContentType("text/p1");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p1'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s2").setContentType("");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("").setContentType("text/p2");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s2").setContentType("text/p2");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s3").setContentType("");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("").setContentType("text/p3");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/s2'",
-				"Supported media-types: [text/s3]"
-			);
-		}
-
-		client.setAccept("text/s3").setContentType("text/p3");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on servlet annotation are picked up
-	// when @RestMethod.addParsers/addSerializers annotations are used.
-	//====================================================================================================
-	@Test
-	public void testRestMethodAddParsersSerializers() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-
-		String url = URL + "/testRestMethodAddParsersSerializers";
-
-		client.setAccept("").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		client.setAccept("text/s1").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p2", r);
-
-		client.setAccept("").setContentType("text/p1");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p1", r);
-
-		client.setAccept("text/s1").setContentType("text/p1");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p1", r);
-
-		client.setAccept("text/s2").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		client.setAccept("").setContentType("text/p2");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		client.setAccept("text/s2").setContentType("text/p2");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		client.setAccept("text/s3").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p2", r);
-
-		client.setAccept("").setContentType("text/p3");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p3", r);
-
-		client.setAccept("text/s3").setContentType("text/p3");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		try {
-			client.setAccept("").setContentType("text/p4");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			// Note that parsers defined on method are listed before parsers defined on class.
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p4'",
-				"Supported media-types: [text/p3, text/p1, text/p2]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s4").setContentType("");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			// Note that serializers defined on method are listed before serializers defined on class.
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/s4'",
-				"Supported media-types: [text/s3, text/s1, text/s2]"
-			);
-		}
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Various Accept incantations.
-	//====================================================================================================
-	@Test
-	public void testAccept() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT).setContentType("text/p1");
-		String r;
-
-		String url = URL + "/testAccept";
-
-		// "*/*" should match the first serializer, not the default serializer.
-		client.setAccept("*/*");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p1", r);
-
-		// "text/*" should match the first serializer, not the default serializer.
-		client.setAccept("text/*");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p1", r);
-
-		try {
-			client.setAccept("bad/*");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'bad/*'",
-				"Supported media-types: [text/s1, text/s2]"
-			);
-		}
-
-		client.setAccept("bad/*,text/*");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p1", r);
-
-		client.setAccept("text/*,bad/*");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p1", r);
-
-		client.setAccept("text/s1;q=0.5,text/s2");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p1", r);
-
-		client.setAccept("text/s1,text/s2;q=0.5");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p1", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on method annotation are picked up
-	// when @RestMethod.parsers/serializers annotations are used.
-	//====================================================================================================
-	@Test
-	public void testRestMethodParserSerializerAnnotations() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-
-		String url = URL + "/testRestMethodParserSerializerAnnotations";
-
-		client.setAccept("").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		try {
-			client.setAccept("text/s1").setContentType("");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/s1'",
-				"Supported media-types: [text/s3]"
-			);
-		}
-
-		try {
-			client.setAccept("").setContentType("text/p1");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p1'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s1").setContentType("text/p1");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p1'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s2").setContentType("");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/s2'",
-				"Supported media-types: [text/s3]"
-			);
-		}
-
-		try {
-			client.setAccept("").setContentType("text/p2");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s2").setContentType("text/p2");
-			r = client.doPut(url+"?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
-				"Supported media-types: [text/p3]"
-			);
-		}
-
-		client.setAccept("text/s3").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		client.setAccept("").setContentType("text/p3");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		client.setAccept("text/s3").setContentType("text/p3");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on method annotation are picked up
-	// 	when @RestMethod.addParsers/addSerializers annotations are used.
-	//====================================================================================================
-	@Test
-	public void testRestMethodAddParsersSerializersAnnotations() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-
-		String url = URL + "/testRestMethodAddParsersSerializersAnnotations";
-
-		client.setAccept("").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		client.setAccept("text/s1").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p3", r);
-
-		client.setAccept("").setContentType("text/p1");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p1", r);
-
-		client.setAccept("text/s1").setContentType("text/p1");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s1/p1", r);
-
-		client.setAccept("text/s2").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p3", r);
-
-		client.setAccept("").setContentType("text/p2");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p2", r);
-
-		client.setAccept("text/s2").setContentType("text/p2");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s2/p2", r);
-
-		client.setAccept("text/s3").setContentType("");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		client.setAccept("").setContentType("text/p3");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		client.setAccept("text/s3").setContentType("text/p3");
-		r = client.doPut(url, "").getResponseAsString();
-		assertEquals("s3/p3", r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestErrorConditions.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestErrorConditions.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestErrorConditions.java
deleted file mode 100755
index 760399a..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestErrorConditions.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-
-public class CT_TestErrorConditions {
-
-	private static String URL = "/testErrorConditions";
-	private static boolean debug = false;
-	private static RestClient client;
-
-	@BeforeClass
-	public static void beforeClass() {
-		 client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-	}
-
-	@AfterClass
-	public static void afterClass() {
-		 client.closeQuietly();
-	}
-	//====================================================================================================
-	// Test non-existent properties
-	//====================================================================================================
-	@Test
-	public void testNonExistentBeanProperties() throws Exception {
-		String url = URL + "/testNonExistentBeanProperties";
-
-		try {
-			client.doPut(url + "?noTrace=true", new ObjectMap("{f2:'foo'}")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Could not convert request body content to class type 'org.apache.juneau.server.TestErrorConditions$Test1' using parser 'org.apache.juneau.json.JsonParser'",
-				"Unknown property 'f2' encountered while trying to parse into class 'org.apache.juneau.server.TestErrorConditions$Test1'");
-		}
-
-		try {
-			client.doPut(url + "?noTrace=true", new ObjectMap("{f1:'foo', f2:'foo'}")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Could not convert request body content to class type 'org.apache.juneau.server.TestErrorConditions$Test1' using parser 'org.apache.juneau.json.JsonParser'",
-				"Unknown property 'f2' encountered while trying to parse into class 'org.apache.juneau.server.TestErrorConditions$Test1'");
-		}
-	}
-
-	//====================================================================================================
-	// Test trying to set properties to wrong data type
-	//====================================================================================================
-	@Test
-	public void testWrongDataType() throws Exception {
-		String url = URL + "/testWrongDataType";
-		try {
-			client.doPut(url + "?noTrace=true", new ObjectMap("{f1:'foo'}")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Could not convert request body content to class type 'org.apache.juneau.server.TestErrorConditions$Test2' using parser 'org.apache.juneau.json.JsonParser'.",
-				"Could not convert string 'foo' to class 'int'");
-		}
-	}
-
-	//====================================================================================================
-	// Test trying to parse into class with non-public no-arg constructor.
-	//====================================================================================================
-	@Test
-	public void testParseIntoNonConstructableBean() throws Exception {
-		String url = URL + "/testParseIntoNonConstructableBean";
-		try {
-			client.doPut(url + "?noTrace=true", new ObjectMap("{f1:1}")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Class 'org.apache.juneau.server.TestErrorConditions$Test3a' could not be instantiated.");
-		}
-	}
-
-	//====================================================================================================
-	// Test trying to parse into non-static inner class
-	//====================================================================================================
-	@Test
-	public void testParseIntoNonStaticInnerClass() throws Exception {
-		String url = URL + "/testParseIntoNonStaticInnerClass";
-		try {
-			client.doPut(url + "?noTrace=true", new ObjectMap("{f1:1}")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Class 'org.apache.juneau.server.TestErrorConditions$Test3b' could not be instantiated.  Reason: 'No properties detected on bean class'");
-		}
-	}
-
-	//====================================================================================================
-	// Test trying to parse into non-public inner class
-	//====================================================================================================
-	@Test
-	public void testParseIntoNonPublicInnerClass() throws Exception {
-		String url = URL + "/testParseIntoNonPublicInnerClass";
-		try {
-			client.doPut(url + "?noTrace=true", new ObjectMap("{f1:1}")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Class 'org.apache.juneau.server.TestErrorConditions$Test3b1' could not be instantiated",
-				"Class is not public");
-		}
-	}
-
-	//====================================================================================================
-	// Test exception thrown during bean construction.
-	//====================================================================================================
-	@Test
-	public void testThrownConstructorException() throws Exception {
-		String url = URL + "/testThrownConstructorException";
-		try {
-			client.doPut(url + "?noTrace=true", "'foo'").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Could not convert request body content to class type 'org.apache.juneau.server.TestErrorConditions$Test3c' using parser 'org.apache.juneau.json.JsonParser'.",
-				"Caused by (RuntimeException): Test error");
-		}
-	}
-
-	//====================================================================================================
-	// Test trying to set parameters to invalid types.
-	//====================================================================================================
-	@Test
-	public void testSetParameterToInvalidTypes() throws Exception {
-		String url = URL + "/testSetParameterToInvalidTypes";
-		try {
-			client.doPut(url + "/1?noTrace=true&p1=foo", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Could not convert PARAM 'p1' to type 'int' on method 'org.apache.juneau.server.TestErrorConditions.testSetParameterToInvalidTypes'");
-		}
-
-		try {
-			client.doPut(url + "/foo?noTrace=true&p1=1", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Could not convert ATTR 'a1' to type 'int' on method 'org.apache.juneau.server.TestErrorConditions.testSetParameterToInvalidTypes'");
-		}
-
-		try {
-			client.doPut(url + "/1?noTrace=true&p1=1", "").setHeader("h1", "foo").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Could not convert HEADER 'h1' to type 'int' on method 'org.apache.juneau.server.TestErrorConditions.testSetParameterToInvalidTypes'");
-		}
-	}
-
-	//====================================================================================================
-	// Test SC_NOT_FOUND & SC_METHOD_NOT_ALLOWED
-	//====================================================================================================
-	@Test
-	public void test404and405() throws Exception {
-		String url = URL + "/test404and405";
-		try {
-			client.doGet(URL + "/testNonExistent?noTrace=true").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_FOUND,
-				"Method 'GET' not found on resource with matching pattern on path '/testNonExistent'");
-		}
-
-		try {
-			client.doPut(url + "?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_FOUND,
-				"Method 'PUT' not found on resource with matching pattern on path '/test404and405'");
-		}
-
-		try {
-			client.doPost(url + "?noTrace=true", "").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_METHOD_NOT_ALLOWED,
-				"Method 'POST' not found on resource.");
-		}
-	}
-
-	//====================================================================================================
-	// Test SC_PRECONDITION_FAILED
-	//====================================================================================================
-	@Test
-	public void test412() throws Exception {
-		String url = URL + "/test412";
-		try {
-			client.doGet(url + "?noTrace=true").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_PRECONDITION_FAILED,
-				"Method 'GET' not found on resource on path '/test412' with matching matcher.");
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestGroups.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestGroups.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestGroups.java
deleted file mode 100755
index 4e43e5e..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestGroups.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import java.io.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-
-public class CT_TestGroups {
-
-	private static String URL = "/testGroups";
-	private static boolean debug = false;
-
-	//====================================================================================================
-	// Serializer defined on class.
-	//====================================================================================================
-	@Test
-	public void testSerializerDefinedOnClass() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String url = URL + "/testSerializerDefinedOnClass";
-		String r;
-
-		try {
-			client.setContentType("text/p1");
-			r = client.doGet(url+"?noTrace=true").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'application/json'",
-				"Supported media-types: [text/s1, text/s2]"
-			);
-		}
-
-		client.setAccept("text/s1").setContentType("");
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("text/s,GET", r);
-
-		client.setAccept("text/s2").setContentType("");
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("text/s,GET", r);
-
-		try {
-			client.setAccept("text/s3").setContentType("");
-			r = client.doGet(url+"?noTrace=true").getResponseAsString();
-			assertEquals("text/s,GET", r);
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/s3'",
-				"Supported media-types: [text/s1, text/s2]"
-			);
-		}
-
-		try {
-			client.setAccept("text/json").setContentType("text/p1");
-			r = client.doPut(url+"?noTrace=true", new StringReader("foo")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/json'",
-				"Supported media-types: [text/s1, text/s2]"
-			);
-		}
-
-		try {
-			client.setAccept("text/s1").setContentType("text/json");
-			r = client.doPut(url+"?noTrace=true", new StringReader("foo")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/json'",
-				"Supported media-types: [text/p1, text/p2]"
-			);
-		}
-
-		client.setContentType("text/p1").setAccept("text/s1");
-		r = client.doPut(url, new StringReader("foo")).getResponseAsString();
-		assertEquals("text/s,foo", r);
-
-		client.setContentType("text/p2").setAccept("text/s2");
-		r = client.doPut(url, new StringReader("foo")).getResponseAsString();
-		assertEquals("text/s,foo", r);
-
-		try {
-			client.setContentType("text/p1").setAccept("text/s3");
-			r = client.doPut(url+"?noTrace=true", new StringReader("foo")).getResponseAsString();
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/s3'",
-				"Supported media-types: [text/s1, text/s2]"
-			);
-		}
-
-		try {
-			client.setContentType("text/p3").setAccept("text/s1");
-			r = client.doPut(url+"?noTrace=true", new StringReader("foo")).getResponseAsString();
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/p3'",
-				"Supported media-types: [text/p1, text/p2]"
-			);
-		}
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestGzip.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestGzip.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestGzip.java
deleted file mode 100755
index 954186e..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestGzip.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import java.io.*;
-import java.util.zip.*;
-
-import org.apache.http.impl.client.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.internal.*;
-import org.junit.*;
-
-/**
- * Test Accept-Encoding and Content-Encoding handling.
- *
- * Note:  WAS does automatic gzip decompression on http request messages, so we have to invent
- * 	our own 'mycoding' compression.
- */
-public class CT_TestGzip {
-
-	private static boolean debug = false;
-
-	private static String testGzipOff = "/testGzipOff";
-	private static String testGzipOn = "/testGzipOn";
-
-	// Converts string into a GZipped input stream.
-	private static InputStream compress(String contents) throws Exception {
-		ByteArrayOutputStream baos = new ByteArrayOutputStream(contents.length()>>1);
-		GZIPOutputStream gos = new GZIPOutputStream(baos);
-		gos.write(contents.getBytes());
-		gos.finish();
-		gos.close();
-		return new ByteArrayInputStream(baos.toByteArray());
-	}
-
-	private static String decompress(InputStream is) throws Exception {
-		return IOUtils.read(new GZIPInputStream(is));
-	}
-
-	//====================================================================================================
-	// Test with no compression enabled.
-	//====================================================================================================
-	@Test
-	public void testGzipOff() throws Exception {
-		RestClient c = new TestRestClient().setAccept("text/plain").setContentType("text/plain");
-		RestCall r;
-		String url = testGzipOff;
-
-		// *** GET ***
-
-		r = c.doGet(url);
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doGet(url).setHeader("Accept-Encoding", "");
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doGet(url).setHeader("Accept-Encoding", "*");
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doGet(url).setHeader("Accept-Encoding", "identity");
-		assertEquals("foo", r.getResponseAsString());
-
-		// Should match identity.
-		r = c.doGet(url).setHeader("Accept-Encoding", "mycoding");
-		assertEquals("foo", r.getResponseAsString());
-
-		// Shouldn't match.
-		try {
-			r = c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "mycoding,identity;q=0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': 'mycoding,identity;q=0'",
-				"Supported codings: [identity]"
-			);
-		}
-
-		// Shouldn't match.
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "mycoding,*;q=0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': 'mycoding,*;q=0'",
-				"Supported codings: [identity]"
-			);
-		}
-
-		// Should match identity
-		r = c.doGet(url).setHeader("Accept-Encoding", "identity;q=0.8,mycoding;q=0.6");
-		assertEquals("foo", r.getResponseAsString());
-
-		// Should match identity
-		r = c.doGet(url).setHeader("Accept-Encoding", "mycoding;q=0.8,identity;q=0.6");
-		assertEquals("foo", r.getResponseAsString());
-
-		// Should match identity
-		r = c.doGet(url).setHeader("Accept-Encoding", "mycoding;q=0.8,*;q=0.6");
-		assertEquals("foo", r.getResponseAsString());
-
-		// Should match identity
-		r = c.doGet(url).setHeader("Accept-Encoding", "*;q=0.8,myencoding;q=0.6");
-		assertEquals("foo", r.getResponseAsString());
-
-		// Shouldn't match
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "identity;q=0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': 'identity;q=0'",
-				"Supported codings: [identity]"
-			);
-		}
-
-		// Shouldn't match
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "identity;q=0.0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': 'identity;q=0.0'",
-				"Supported codings: [identity]"
-			);
-		}
-
-		// Shouldn't match
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "*;q=0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': '*;q=0'",
-				"Supported codings: [identity]"
-			);
-		}
-
-		// Shouldn't match
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "*;q=0.0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': '*;q=0.0'",
-				"Supported codings: [identity]"
-			);
-		}
-
-
-		// *** PUT ***
-
-		r = c.doPut(url, new StringReader("foo"));
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doPut(url, new StringReader("foo")).setHeader("Content-Encoding", "");
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doPut(url, new StringReader("foo")).setHeader("Content-Encoding", "identity");
-		assertEquals("foo", r.getResponseAsString());
-
-		try {
-			c.doPut(url+"?noTrace=true", compress("foo")).setHeader("Content-Encoding", "mycoding").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported encoding in request header 'Content-Encoding': 'mycoding'",
-				"Supported codings: [identity]"
-			);
-		}
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test with compression enabled.
-	//====================================================================================================
-	@Test
-	public void testGzipOn() throws Exception {
-
-		// Create a client that disables content compression support so that we can get the gzipped content directly.
-		CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(TestRestClient.getSSLSocketFactory()).disableContentCompression().build();
-
-		RestClient c = new TestRestClient(httpClient).setAccept("text/plain").setContentType("text/plain");
-		RestCall r;
-		String url = testGzipOn;
-
-		// *** GET ***
-
-		r = c.doGet(url);
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doGet(url).setHeader("Accept-Encoding", "");
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doGet(url).setHeader("Accept-Encoding", "*");
-		assertEquals("foo", decompress(r.getInputStream()));
-
-		r = c.doGet(url).setHeader("Accept-Encoding", "identity");
-		assertEquals("foo", r.getResponseAsString());
-
-		// Should match identity.
-		r = c.doGet(url).setHeader("Accept-Encoding", "mycoding");
-		assertEquals("foo", decompress(r.getInputStream()));
-
-		r = c.doGet(url).setHeader("Accept-Encoding", "mycoding,identity;q=0").connect();
-		assertEquals("foo", decompress(r.getInputStream()));
-
-		r = c.doGet(url).setHeader("Accept-Encoding", "mycoding,*;q=0").connect();
-		assertEquals("foo", decompress(r.getInputStream()));
-
-		// Should match identity
-		r = c.doGet(url).setHeader("Accept-Encoding", "identity;q=0.8,mycoding;q=0.6");
-		assertEquals("foo", r.getResponseAsString());
-
-		// Should match mycoding
-		r = c.doGet(url).setHeader("Accept-Encoding", "mycoding;q=0.8,identity;q=0.6");
-		assertEquals("foo", decompress(r.getInputStream()));
-
-		// Should match mycoding
-		r = c.doGet(url).setHeader("Accept-Encoding", "mycoding;q=0.8,*;q=0.6");
-		assertEquals("foo", decompress(r.getInputStream()));
-
-		// Should match identity
-		r = c.doGet(url).setHeader("Accept-Encoding", "*;q=0.8,myencoding;q=0.6");
-		assertEquals("foo", decompress(r.getInputStream()));
-
-		// Shouldn't match
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "identity;q=0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': 'identity;q=0'",
-				"Supported codings: [mycoding, identity]"
-			);
-		}
-
-		// Shouldn't match
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "identity;q=0.0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': 'identity;q=0.0'",
-				"Supported codings: [mycoding, identity]"
-			);
-		}
-
-		// Shouldn't match
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "*;q=0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': '*;q=0'",
-				"Supported codings: [mycoding, identity]"
-			);
-		}
-
-		// Shouldn't match
-		try {
-			c.doGet(url+"?noTrace=true").setHeader("Accept-Encoding", "*;q=0.0").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported encoding in request header 'Accept-Encoding': '*;q=0.0'",
-				"Supported codings: [mycoding, identity]"
-			);
-		}
-
-
-		// *** PUT ***
-
-		r = c.doPut(url, new StringReader("foo"));
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doPut(url, new StringReader("foo")).setHeader("Content-Encoding", "");
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doPut(url, new StringReader("foo")).setHeader("Content-Encoding", "identity");
-		assertEquals("foo", r.getResponseAsString());
-
-		r = c.doPut(url, compress("foo")).setHeader("Content-Encoding", "mycoding");
-		assertEquals("foo", r.getResponseAsString());
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test with compression enabled but with servlet using output stream directly.
-	//====================================================================================================
-	@Test
-	public void testGzipOnDirect() throws Exception {
-		// Create a client that disables content compression support so that we can get the gzipped content directly.
-		CloseableHttpClient httpClient = HttpClientBuilder.create().setSSLSocketFactory(TestRestClient.getSSLSocketFactory()).build();
-		RestClient c = new TestRestClient(httpClient).setAccept("text/plain").setContentType("text/plain");
-		RestCall r = null;
-		String s = null;
-
-		// res.getOutputStream() called....should bypass encoding.
-		r = c.doGet(testGzipOn + "/direct").setHeader("Accept-Encoding", "mycoding");
-		s = r.getResponseAsString();
-		assertEquals("test", s);
-		assertTrue(r.getResponse().getHeaders("Content-Type")[0].getValue().contains("text/direct")); // Should get header set manually.
-		assertEquals(0, r.getResponse().getHeaders("Content-Encoding").length);                // Should not be set.
-
-		// res.getWriter() called....should bypass encoding.
-		r = c.doGet(testGzipOn + "/direct2").setHeader("Accept-Encoding", "mycoding");
-		s = r.getResponseAsString();
-		assertEquals("test", s);
-		assertEquals(0, r.getResponse().getHeaders("Content-Encoding").length);                // Should not be set.
-
-		// res.getNegotiateWriter() called....should NOT bypass encoding.
-		r = c.doGet(testGzipOn + "/direct3").setHeader("Accept-Encoding", "mycoding");
-		try {
-			assertEquals("mycoding", r.getResponse().getHeaders("content-encoding")[0].getValue());
-		} catch (RestCallException e) {
-			// OK - HttpClient doesn't know what mycoding is.
-			// Newer versions of HttpClient ignore this condition.
-		}
-
-		// res.getNegotiateWriter() called but @RestMethod(encoders={})...should bypass encoding.
-		r = c.doGet(testGzipOn + "/direct4").setHeader("Accept-Encoding", "mycoding");
-		s = r.getResponseAsString();
-		assertEquals("test", s);
-		assertEquals(0, r.getResponse().getHeaders("Content-Encoding").length);                // Should not be set.
-
-		c.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestInheritance.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestInheritance.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestInheritance.java
deleted file mode 100755
index e9f0fb7..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestInheritance.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestInheritance {
-
-	private static RestClient client;
-
-	@BeforeClass
-	public static void beforeClass() {
-		client = new TestRestClient();
-	}
-
-	@AfterClass
-	public static void afterClass() {
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test serializer inheritance.
-	//====================================================================================================
-	@Test
-	public void testSerializers() throws Exception {
-		String r;
-		String url = "/testInheritanceSerializers";
-		r = client.doGet(url + "/test1").getResponseAsString();
-		assertEquals("['text/s3','text/s4','text/s1','text/s2']", r);
-
-		r = client.doGet(url + "/test2").getResponseAsString();
-		assertEquals("['text/s5']", r);
-
-		r = client.doGet(url + "/test3").getResponseAsString();
-		assertEquals("['text/s5','text/s3','text/s4','text/s1','text/s2']", r);
-	}
-
-	//====================================================================================================
-	// Test parser inheritance.
-	//====================================================================================================
-	@Test
-	public void testParsers() throws Exception {
-		String r;
-		String url = "/testInheritanceParsers";
-		r = client.doGet(url + "/test1").getResponseAsString();
-		assertEquals("['text/p3','text/p4','text/p1','text/p2']", r);
-
-		r = client.doGet(url + "/test2").getResponseAsString();
-		assertEquals("['text/p5']", r);
-
-		r = client.doGet(url + "/test3").getResponseAsString();
-		assertEquals("['text/p5','text/p3','text/p4','text/p1','text/p2']", r);
-	}
-
-	//====================================================================================================
-	// Test encoder inheritance.
-	//====================================================================================================
-	@Test
-	public void testEncoders() throws Exception {
-		String url = "/testInheritanceEncoders";
-		String r = client.doGet(url + "/test").getResponseAsString();
-		assertEquals("['e3','e4','e1','e2','identity']", r);
-	}
-
-	//====================================================================================================
-	// Test filter inheritance.
-	//====================================================================================================
-	@Test
-	@SuppressWarnings("hiding")
-	public void testTransforms() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.class, JsonParser.class).setAccept("text/json+simple");
-		String r;
-		String url = "/testInheritanceTransforms";
-
-		r = client.doGet(url + "/test1").getResponseAsString();
-		assertEquals("['F1','F2','Foo3']", r);
-
-		r = client.doGet(url + "/test2").getResponseAsString();
-		assertEquals("['F1','F2','F3']", r);
-
-		r = client.doGet(url + "/test3").getResponseAsString();
-		assertEquals("['F1','F2','F3']", r);
-
-		r = client.doGet(url + "/test4").getResponseAsString();
-		assertEquals("['Foo1','Foo2','F3']", r);
-
-		r = client.doGet(url + "/test5").getResponseAsString();
-		assertEquals("['F1','F2','F3']", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test properties inheritance.
-	//====================================================================================================
-	@Test
-	@SuppressWarnings("hiding")
-	public void testProperties() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.class, JsonParser.class).setAccept("text/json+simple");
-		String r;
-		String url = "/testInheritanceProperties";
-
-		r = client.doGet(url + "/test1").getResponseAsString();
-		assertEquals("{p1:'v1',p2:'v2a',p3:'v3',p4:'v4'}", r);
-
-		r = client.doGet(url + "/test2?override").getResponseAsString();
-		assertEquals("{p1:'x',p2:'x',p3:'x',p4:'x',p5:'x'}", r);
-
-		r = client.doGet(url + "/test2").getResponseAsString();
-		assertEquals("{p1:'v1',p2:'v2a',p3:'v3',p4:'v4a',p5:'v5'}", r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestLargePojos.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestLargePojos.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestLargePojos.java
deleted file mode 100755
index dfbc494..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestLargePojos.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.xml.*;
-import org.junit.*;
-
-@Ignore
-public class CT_TestLargePojos {
-
-	private static String URL = "/testLargePojos";
-	boolean debug = false;
-
-	//====================================================================================================
-	// Test how long it takes to serialize/parse various content types.
-	//====================================================================================================
-	@Test
-	public void test() throws Exception {
-		LargePojo p;
-		long t;
-		RestClient c;
-
-		System.err.println("\n---Testing JSON---");
-		c = new TestRestClient(JsonSerializer.class, JsonParser.class);
-		for (int i = 1; i <= 3; i++) {
-			t = System.currentTimeMillis();
-			p = c.doGet(URL).getResponse(LargePojo.class);
-			System.err.println("Download: ["+(System.currentTimeMillis() - t)+"] ms");
-			t = System.currentTimeMillis();
-			c.doPut(URL, p).run();
-			System.err.println("Upload: ["+(System.currentTimeMillis() - t)+"] ms");
-		}
-
-		System.err.println("\n---Testing XML---");
-		c = new TestRestClient(XmlSerializer.class, XmlParser.class);
-		for (int i = 1; i <= 3; i++) {
-			t = System.currentTimeMillis();
-			p = c.doGet(URL).getResponse(LargePojo.class);
-			System.err.println("Download: ["+(System.currentTimeMillis() - t)+"] ms");
-			t = System.currentTimeMillis();
-			c.doPut(URL, p).run();
-			System.err.println("Upload: ["+(System.currentTimeMillis() - t)+"] ms");
-		}
-
-		System.err.println("\n---Testing HTML---");
-		c = new TestRestClient(HtmlSerializer.class, HtmlParser.class).setAccept("text/html+stripped");
-		for (int i = 1; i <= 3; i++) {
-			t = System.currentTimeMillis();
-			p = c.doGet(URL).getResponse(LargePojo.class);
-			System.err.println("Download: ["+(System.currentTimeMillis() - t)+"] ms");
-			t = System.currentTimeMillis();
-			c.doPut(URL, p).run();
-			System.err.println("Upload: ["+(System.currentTimeMillis() - t)+"] ms");
-		}
-
-		System.err.println("\n---Testing UrlEncoding---");
-		c = new TestRestClient(UonSerializer.class, UonParser.class);
-		for (int i = 1; i <= 3; i++) {
-			t = System.currentTimeMillis();
-			p = c.doGet(URL).getResponse(LargePojo.class);
-			System.err.println("Download: ["+(System.currentTimeMillis() - t)+"] ms");
-			t = System.currentTimeMillis();
-			c.doPut(URL, p).run();
-			System.err.println("Upload: ["+(System.currentTimeMillis() - t)+"] ms");
-		}
-
-		c.closeQuietly();
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestMessages.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestMessages.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestMessages.java
deleted file mode 100755
index 563ece7..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestMessages.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.TestUtils.*;
-
-import java.util.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-/**
- * Validates that resource bundles can be defined on both parent and child classes.
- */
-public class CT_TestMessages {
-
-	//====================================================================================================
-	// Return contents of resource bundle.
-	//====================================================================================================
-	@SuppressWarnings("rawtypes")
-	@Test
-	public void test() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.class,JsonParser.class);
-
-		// Parent resource should just pick up values from its bundle.
-		TreeMap r = client.doGet("/testMessages/test").getResponse(TreeMap.class);
-		assertObjectEquals("{key1:'value1a',key2:'value2a'}", r);
-
-		// Child resource should pick up values from both parent and child,
-		// ordered child before parent.
-		r = client.doGet("/testMessages2/test").getResponse(TreeMap.class);
-		assertObjectEquals("{key1:'value1a',key2:'value2b',key3:'value3b'}", r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNls.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNls.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNls.java
deleted file mode 100755
index 6bd4372..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNls.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestNls {
-
-	private static String URL = "/testNls";
-
-	// ====================================================================================================
-	// test1 - Pull labels from annotations only.
-	// ====================================================================================================
-	@Test
-	public void test1() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r = null;
-		String expected = null;
-
-		// Labels all pulled from annotations.
-		r = client.doOptions(URL + "/test1").getResponse(ObjectMap.class);
-		assertEquals("Test1.a", r.getString("label"));
-		assertEquals("Test1.b", r.getString("description"));
-		r = r.getObjectList("methods").getObjectMap(0);
-		assertEquals("test1", r.getString("javaMethod"));
-		assertEquals("POST", r.getString("httpMethod"));
-		expected = "[{category:'attr',name:'a',description:'Test1.d'},{category:'attr',name:'a2',description:'Test1.h'},{category:'attr',name:'e'},{category:'content',name:'',description:'Test1.f'},{category:'foo',name:'bar',description:'Test1.k'},{category:'header',name:'D',description:'Test1.g'},{category:'header',name:'D2',description:'Test1.j'},{category:'header',name:'g'},{category:'param',name:'b',description:'Test1.e'},{category:'param',name:'b2',description:'Test1.i'},{category:'param',name:'f'}]";
-		assertEquals(expected, r.getObjectList("input").toString());
-		expected = "[{status:200,description:'OK',output:[]},{status:201,description:'Test1.l',output:[{category:'foo',name:'bar',description:'Test1.m'}]}]";
-		assertEquals(expected, r.getObjectList("responses").toString());
-
-		client.closeQuietly();
-	}
-
-	// ====================================================================================================
-	// test2 - Pull labels from resource bundles only - simple keys.
-	// ====================================================================================================
-	@Test
-	public void test2() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r = null;
-		String expected = null;
-
-		// Labels all pulled from annotations.
-		r = client.doOptions(URL + "/test2").getResponse(ObjectMap.class);
-		assertEquals("Test2.a", r.getString("label"));
-		assertEquals("Test2.b", r.getString("description"));
-		r = r.getObjectList("methods").getObjectMap(0);
-		assertEquals("test2", r.getString("javaMethod"));
-		assertEquals("POST", r.getString("httpMethod"));
-		expected = "[{category:'attr',name:'a',description:'Test2.d'},{category:'attr',name:'a2',description:'Test2.h'},{category:'attr',name:'e'},{category:'content',name:'',description:'Test2.f'},{category:'foo',name:'bar',description:'Test2.k'},{category:'header',name:'D',description:'Test2.g'},{category:'header',name:'D2',description:'Test2.j'},{category:'header',name:'g'},{category:'param',name:'b',description:'Test2.e'},{category:'param',name:'b2',description:'Test2.i'},{category:'param',name:'f'}]";
-		assertEquals(expected, r.getObjectList("input").toString());
-		expected = "[{status:200,description:'OK2',output:[]},{status:201,description:'Test2.l',output:[{category:'foo',name:'bar',description:'Test2.m'}]}]";
-		assertEquals(expected, r.getObjectList("responses").toString());
-
-		client.closeQuietly();
-	}
-
-	// ====================================================================================================
-	// test3 - Pull labels from resource bundles only - keys with class names.
-	// ====================================================================================================
-	@Test
-	public void test3() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r = null;
-		String expected = null;
-
-		// Labels all pulled from annotations.
-		r = client.doOptions(URL + "/test3").getResponse(ObjectMap.class);
-		assertEquals("Test3.a", r.getString("label"));
-		assertEquals("Test3.b", r.getString("description"));
-		r = r.getObjectList("methods").getObjectMap(1);
-		assertEquals("test3", r.getString("javaMethod"));
-		assertEquals("POST", r.getString("httpMethod"));
-		expected = "[{category:'attr',name:'a',description:'Test3.d'},{category:'attr',name:'a2',description:'Test3.h'},{category:'attr',name:'e'},{category:'content',name:'',description:'Test3.f'},{category:'foo',name:'bar',description:'Test3.k'},{category:'header',name:'D',description:'Test3.g'},{category:'header',name:'D2',description:'Test3.j'},{category:'header',name:'g'},{category:'param',name:'b',description:'Test3.e'},{category:'param',name:'b2',description:'Test3.i'},{category:'param',name:'f'}]";
-		assertEquals(expected, r.getObjectList("input").toString());
-		expected = "[{status:200,description:'OK3',output:[]},{status:201,description:'Test3.l',output:[{category:'foo',name:'bar',description:'Test3.m'}]}]";
-		assertEquals(expected, r.getObjectList("responses").toString());
-
-		client.closeQuietly();
-	}
-
-	// ====================================================================================================
-	// test4 - Pull labels from resource bundles only. Values have localized variables to resolve.
-	// ====================================================================================================
-	@Test
-	public void test4() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r = null;
-		String expected = null;
-
-		// Labels all pulled from annotations.
-		r = client.doOptions(URL + "/test4").getResponse(ObjectMap.class);
-		assertEquals("baz", r.getString("label"));
-		assertEquals("baz", r.getString("description"));
-		r = r.getObjectList("methods").getObjectMap(0);
-		assertEquals("test4", r.getString("javaMethod"));
-		assertEquals("POST", r.getString("httpMethod"));
-		expected = "[{category:'attr',name:'a',description:'baz'},{category:'attr',name:'a2',description:'baz'},{category:'attr',name:'e'},{category:'content',name:'',description:'baz'},{category:'foo',name:'bar',description:'baz'},{category:'header',name:'D',description:'baz'},{category:'header',name:'D2',description:'baz'},{category:'header',name:'g'},{category:'param',name:'b',description:'baz'},{category:'param',name:'b2',description:'baz'},{category:'param',name:'f'}]";
-		assertEquals(expected, r.getObjectList("input").toString());
-		expected = "[{status:200,description:'foobazfoobazfoo',output:[]},{status:201,description:'baz',output:[{category:'foo',name:'bar',description:'baz'}]}]";
-		assertEquals(expected, r.getObjectList("responses").toString());
-
-		client.closeQuietly();
-	}
-
-	// ====================================================================================================
-	// test5 - Pull labels from resource bundles only. Values have request variables to resolve.
-	// ====================================================================================================
-	@Test
-	public void test5() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r = null;
-		String expected = null;
-
-		// Labels all pulled from annotations.
-		r = client.doOptions(URL + "/test5").getResponse(ObjectMap.class);
-		assertEquals("baz2", r.getString("label"));
-		assertEquals("baz2", r.getString("description"));
-		r = r.getObjectList("methods").getObjectMap(0);
-		assertEquals("test5", r.getString("javaMethod"));
-		assertEquals("POST", r.getString("httpMethod"));
-		expected = "[{category:'attr',name:'a',description:'baz2'},{category:'attr',name:'a2',description:'baz2'},{category:'attr',name:'e'},{category:'content',name:'',description:'baz2'},{category:'foo',name:'bar',description:'baz2'},{category:'header',name:'D',description:'baz2'},{category:'header',name:'D2',description:'baz2'},{category:'header',name:'g'},{category:'param',name:'b',description:'baz2'},{category:'param',name:'b2',description:'baz2'},{category:'param',name:'f'}]";
-		assertEquals(expected, r.getObjectList("input").toString());
-		expected = "[{status:200,description:'foobaz2foobaz2foo',output:[]},{status:201,description:'baz2',output:[{category:'foo',name:'bar',description:'baz2'}]}]";
-		assertEquals(expected, r.getObjectList("responses").toString());
-
-		client.closeQuietly();
-	}
-
-	// ====================================================================================================
-	// test6 - Pull labels from annotations only, but annotations contain variables.
-	// ====================================================================================================
-	@Test
-	public void test6() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r = null;
-		String expected = null;
-
-		// Labels all pulled from annotations.
-		r = client.doOptions(URL + "/test6").getResponse(ObjectMap.class);
-		assertEquals("baz", r.getString("label"));
-		assertEquals("baz", r.getString("description"));
-		r = r.getObjectList("methods").getObjectMap(0);
-		assertEquals("test6", r.getString("javaMethod"));
-		assertEquals("POST", r.getString("httpMethod"));
-		expected = "[{category:'attr',name:'a',description:'baz'},{category:'attr',name:'a2',description:'baz'},{category:'attr',name:'e'},{category:'content',name:'',description:'baz'},{category:'foo',name:'bar',description:'baz'},{category:'header',name:'D',description:'baz'},{category:'header',name:'D2',description:'baz'},{category:'header',name:'g'},{category:'param',name:'b',description:'baz'},{category:'param',name:'b2',description:'baz'},{category:'param',name:'f'}]";
-		assertEquals(expected, r.getObjectList("input").toString());
-		expected = "[{status:200,description:'OK',output:[]},{status:201,description:'baz',output:[{category:'foo',name:'bar',description:'baz'}]}]";
-		assertEquals(expected, r.getObjectList("responses").toString());
-
-		client.closeQuietly();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNlsProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNlsProperty.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNlsProperty.java
deleted file mode 100755
index f8c0a1f..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNlsProperty.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.plaintext.*;
-import org.junit.*;
-
-public class CT_TestNlsProperty {
-
-	private static String URL = "/testNlsProperty";
-
-	//====================================================================================================
-	// Test getting an NLS property defined on a class.
-	//====================================================================================================
-	@Test
-	public void testInheritedFromClass() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String r = client.doGet(URL + "/testInheritedFromClass").getResponseAsString();
-		assertEquals("value1", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test getting an NLS property defined on a method.
-	//====================================================================================================
-	@Test
-	public void testInheritedFromMethod() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String r = client.doGet(URL + "/testInheritedFromMethod").getResponseAsString();
-		assertEquals("value2", r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNoParserInput.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNoParserInput.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNoParserInput.java
deleted file mode 100755
index 06b03e0..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestNoParserInput.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.plaintext.*;
-import org.junit.*;
-
-public class CT_TestNoParserInput {
-
-	private static String URL = "/testNoParserInput";
-	private static boolean debug = false;
-
-	//====================================================================================================
-	// @Content annotated InputStream.
-	//====================================================================================================
-	@Test
-	public void testInputStream() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String r = client.doPut(URL + "/testInputStream", "foo").getResponseAsString();
-		assertEquals("foo", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @Content annotated Reader.
-	//====================================================================================================
-	@Test
-	public void testReader() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String r = client.doPut(URL + "/testReader", "foo").getResponseAsString();
-		assertEquals("foo", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @Content annotated PushbackReader.
-	// This should always fail since the servlet reader is not a pushback reader.
-	//====================================================================================================
-	@Test
-	public void testPushbackReader() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		try {
-			client.doPut(URL + "/testPushbackReader?noTrace=true", "foo").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_BAD_REQUEST,
-				"Invalid argument type passed to the following method:",
-				"'public java.lang.String org.apache.juneau.server.TestNoParserInput.testPushbackReader(java.io.PushbackReader) throws java.lang.Exception'");
-		}
-
-		client.closeQuietly();
-	}
-}


[34/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestTransforms.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestTransforms.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestTransforms.java
deleted file mode 100755
index d5673e7..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestTransforms.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-
-import org.apache.juneau.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.transform.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testTransforms",
-	transforms={TestTransforms.TransformA2.class}
-)
-public class TestTransforms extends TestTransformsParent {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Test class transform overrides parent class transform
-	// Should return "A2-1".
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testClassTransformOverridesParentClassTransform")
-	public A testClassTransformOverridesParentClassTransform() {
-		return new A();
-	}
-	@RestMethod(name="PUT", path="/testClassTransformOverridesParentClassTransform")
-	public A test1b(@Content A a) {
-		return a;
-	}
-	@RestMethod(name="PUT", path="/testClassTransformOverridesParentClassTransform/{a}")
-	public A test1c(@Attr A a) {
-		return a;
-	}
-
-	//====================================================================================================
-	// Test method transform overrides class transform
-	// Should return "A3-1".
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testMethodTransformOverridesClassTransform", transforms={TransformA3.class})
-	public A test2a() {
-		return new A();
-	}
-	@RestMethod(name="PUT", path="/testMethodTransformOverridesClassTransform", transforms={TransformA3.class})
-	public A test2b(@Content A a) {
-		return a;
-	}
-	@RestMethod(name="PUT", path="/testMethodTransformOverridesClassTransform/{a}", transforms={TransformA3.class})
-	public A test2c(@Attr A a) {
-		return a;
-	}
-
-
-	public static class A {
-		public int f1;
-	}
-
-	public static class TransformA1 extends PojoTransform<A,String> {
-		@Override /* PojoTransform */
-		public String transform(A a) throws SerializeException {
-			return "A1-" + a.f1;
-		}
-		@Override /* PojoTransform */
-		public A normalize(String in, ClassMeta<?> hint) throws ParseException {
-			if (! in.startsWith("A1"))
-				throw new RuntimeException("Invalid input for TransformA1!");
-			A a = new A();
-			a.f1 = Integer.parseInt(in.substring(3));
-			return a;
-		}
-	}
-
-	public static class TransformA2 extends PojoTransform<A,String> {
-		@Override /* PojoTransform */
-		public String transform(A a) throws SerializeException {
-			return "A2-" + a.f1;
-		}
-		@Override /* PojoTransform */
-		public A normalize(String in, ClassMeta<?> hint) throws ParseException {
-			if (! in.startsWith("A2"))
-				throw new RuntimeException("Invalid input for TransformA2!");
-			A a = new A();
-			a.f1 = Integer.parseInt(in.substring(3));
-			return a;
-		}
-	}
-
-	public static class TransformA3 extends PojoTransform<A,String> {
-		@Override /* PojoTransform */
-		public String transform(A a) throws SerializeException {
-			return "A3-" + a.f1;
-		}
-		@Override /* PojoTransform */
-		public A normalize(String in, ClassMeta<?> hint) throws ParseException {
-			if (! in.startsWith("A3"))
-				throw new RuntimeException("Invalid input for TransformA3!");
-			A a = new A();
-			a.f1 = Integer.parseInt(in.substring(3));
-			return a;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestTransformsParent.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestTransformsParent.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestTransformsParent.java
deleted file mode 100755
index 986083d..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestTransformsParent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	transforms={TestTransforms.TransformA1.class}
-)
-public class TestTransformsParent extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestUris.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestUris.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestUris.java
deleted file mode 100755
index b2db727..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestUris.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.annotation.*;
-
-@RestResource(
-	path="/testuris",
-	children={
-		TestUris.Child.class
-	}
-)
-public class TestUris extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	@RestMethod(name="GET", path="/*")
-	public ObjectMap test1(RestRequest req) throws Exception {
-		return getPathInfoObject(req).append("testMethod", "root.test1");
-	}
-
-	@RestMethod(name="GET", path="/test2/*")
-	public ObjectMap test2(RestRequest req) throws Exception {
-		return getPathInfoObject(req).append("testMethod", "root.test2");
-	}
-
-	@RestMethod(name="GET", path="/test3%2Ftest3/*")
-	public ObjectMap test3(RestRequest req) throws Exception {
-		return getPathInfoObject(req).append("testMethod", "root.test3");
-	}
-
-	@RestMethod(name="GET", path="/test4/test4/*")
-	public ObjectMap test4(RestRequest req) throws Exception {
-		return getPathInfoObject(req).append("testMethod", "root.test4");
-	}
-
-	@RestResource(
-		path="/child",
-		children={
-			GrandChild.class
-		}
-	)
-	public static class Child extends RestServletDefault {
-		private static final long serialVersionUID = 1L;
-
-		@RestMethod(name="GET", path="/*")
-		public ObjectMap test1(RestRequest req) throws Exception {
-			return getPathInfoObject(req).append("testMethod", "child.test1");
-		}
-
-		@RestMethod(name="GET", path="/test2/*")
-		public ObjectMap test2(RestRequest req) throws Exception {
-			return getPathInfoObject(req).append("testMethod", "child.test2");
-		}
-
-		@RestMethod(name="GET", path="/test3%2Ftest3/*")
-		public ObjectMap test3(RestRequest req) throws Exception {
-			return getPathInfoObject(req).append("testMethod", "child.test3");
-		}
-
-		@RestMethod(name="GET", path="/test4/test4/*")
-		public ObjectMap test4(RestRequest req) throws Exception {
-			return getPathInfoObject(req).append("testMethod", "child.test4");
-		}
-	}
-
-	@RestResource(
-		path="/grandchild"
-	)
-	public static class GrandChild extends RestServletDefault {
-		private static final long serialVersionUID = 1L;
-
-		@RestMethod(name="GET", path="/*")
-		public ObjectMap test1(RestRequest req) throws Exception {
-			return getPathInfoObject(req).append("testMethod", "grandchild.test1");
-		}
-
-		@RestMethod(name="GET", path="/test2/*")
-		public ObjectMap test2(RestRequest req) throws Exception {
-			return getPathInfoObject(req).append("testMethod", "grandchild.test2");
-		}
-
-		@RestMethod(name="GET", path="/test3%2Ftest3/*")
-		public ObjectMap test3(RestRequest req) throws Exception {
-			return getPathInfoObject(req).append("testMethod", "grandchild.test3");
-		}
-
-		@RestMethod(name="GET", path="/test4/test4/*")
-		public ObjectMap test4(RestRequest req) throws Exception {
-			return getPathInfoObject(req).append("testMethod", "grandchild.test4");
-		}
-	}
-
-	static ObjectMap getPathInfoObject(RestRequest req) throws Exception {
-		ObjectMap m = new ObjectMap();
-		m.put("contextPath", req.getContextPath());
-		m.put("pathInfo", req.getPathInfo());
-		m.put("pathRemainder", req.getPathRemainder());
-		m.put("pathTranslated", req.getPathTranslated());
-		m.put("requestParentURI", req.getRequestParentURI());
-		m.put("requestURI", req.getRequestURI());
-		m.put("requestURL", req.getRequestURL());
-		m.put("servletPath", req.getServletPath());
-		m.put("servletURI", req.getServletURI());
-		m.put("testURL1", req.getURL("testURL"));
-		m.put("testURL2", req.getURL("/testURL"));
-		m.put("testURL3", req.getURL("http://testURL"));
-		return m;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestUrlContent.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestUrlContent.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestUrlContent.java
deleted file mode 100755
index ad0c64d..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestUrlContent.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.json.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testUrlContent",
-	serializers={PlainTextSerializer.class},
-	parsers={JsonParser.class}
-)
-public class TestUrlContent extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	@RestMethod(name="GET", path="/testString")
-	public String testString(@Content String content) {
-		return String.format("class=%s, value=%s", content.getClass().getName(), content.toString());
-	}
-
-	@RestMethod(name="GET", path="/testEnum")
-	public String testEnum(@Content TestEnum content) {
-		return String.format("class=%s, value=%s", content.getClass().getName(), content.toString());
-	}
-
-	public static enum TestEnum {
-		X1
-	}
-
-	@RestMethod(name="GET", path="/testBean")
-	public String testBean(@Content TestBean content) throws Exception {
-		return String.format("class=%s, value=%s", content.getClass().getName(), JsonSerializer.DEFAULT_LAX.serialize(content));
-	}
-
-	public static class TestBean {
-		public int f1;
-		public String f2;
-	}
-
-	@RestMethod(name="GET", path="/testInt")
-	public String testString(@Content Integer content) {
-		return String.format("class=%s, value=%s", content.getClass().getName(), content.toString());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/xdocs/test.txt
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/xdocs/test.txt b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/xdocs/test.txt
deleted file mode 100755
index 17116ed..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/xdocs/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-OK-1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/xdocs/xdocs/test.txt
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/xdocs/xdocs/test.txt b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/xdocs/xdocs/test.txt
deleted file mode 100755
index 0e35120..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/xdocs/xdocs/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-OK-2
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_JacocoDummy.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_JacocoDummy.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_JacocoDummy.java
deleted file mode 100755
index 8c7ebf7..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_JacocoDummy.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.lang.reflect.*;
-
-import org.junit.*;
-
-public class CT_JacocoDummy {
-
-	//====================================================================================================
-	// Dummy code to add test coverage in Jacoco.
-	//====================================================================================================
-	@Test
-	public void accessPrivateConstructorsOnStaticUtilityClasses() throws Exception {
-
-		Class<?>[] classes = new Class[] {
-			RestUtils.class
-		};
-
-		for (Class<?> c : classes) {
-			Constructor<?> c1 = c.getDeclaredConstructor();
-			c1.setAccessible(true);
-			c1.newInstance();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_RestUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_RestUtils.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_RestUtils.java
deleted file mode 100755
index e97ee08..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_RestUtils.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.RestUtils.*;
-import static org.junit.Assert.*;
-
-import org.junit.*;
-
-public class CT_RestUtils {
-
-	//====================================================================================================
-	// decode(String)
-	//====================================================================================================
-	@Test
-	public void testDecode() throws Exception {
-		assertNull(decode(null));
-		assertEquals("foo/bar baz  bing", decode("foo%2Fbar+baz++bing"));
-	}
-
-	//====================================================================================================
-	// encode(String)
-	//====================================================================================================
-	@Test
-	public void testEncode() throws Exception {
-		assertNull(encode(null));
-		assertEquals("foo%2Fbar+baz++bing", encode("foo/bar baz  bing"));
-		assertEquals("foobar", encode("foobar"));
-		assertEquals("+", encode(" "));
-		assertEquals("%2F", encode("/"));
-	}
-
-	//====================================================================================================
-	// trimPathInfo(String,String)
-	//====================================================================================================
-	@Test
-	public void testGetServletURI() throws Exception {
-		String e, sp, cp;
-
-		e = "http://hostname";
-		sp = "";
-		cp = "";
-
-		for (String s : new String[]{
-				"http://hostname",
-				"http://hostname/foo",
-				"http://hostname?foo",
-				"http://hostname/?foo"})
-			assertEquals(e, trimPathInfo(new StringBuffer(s), cp, sp).toString());
-
-		for (String s : new String[]{
-				"http:/hostname?foo"}) {
-			try {
-				trimPathInfo(new StringBuffer(s), cp, sp);
-				fail("Exception expected - " + s);
-			} catch (RuntimeException ex) {}
-		}
-
-
-		e = "http://hostname";
-		sp = "/";
-		cp = "/";
-
-		for (String s : new String[]{
-				"http://hostname",
-				"http://hostname/foo",
-				"http://hostname?foo",
-				"http://hostname/?foo"})
-			assertEquals(e, trimPathInfo(new StringBuffer(s), cp, sp).toString());
-
-		e = "http://hostname/foo";
-		sp = "/foo";
-		cp = "/";
-
-		for (String s : new String[]{
-				"http://hostname/foo",
-				"http://hostname/foo/bar",
-				"http://hostname/foo?bar"})
-			assertEquals(e, trimPathInfo(new StringBuffer(s), cp, sp).toString());
-
-		for (String s : new String[]{
-				"http://hostname/foo2",
-				"http://hostname/fo2",
-				"http://hostname?foo",
-				"http://hostname/fo?bar",
-				"http:/hostname/foo"}) {
-			try {
-				trimPathInfo(new StringBuffer(s), cp, sp);
-				fail("Exception expected - " + s);
-			} catch (RuntimeException ex) {}
-		}
-
-		e = "http://hostname/foo/bar";
-		sp = "/foo/bar";
-		cp = "/";
-
-		for (String s : new String[]{
-				"http://hostname/foo/bar",
-				"http://hostname/foo/bar/baz",
-				"http://hostname/foo/bar?baz"})
-			assertEquals(e, trimPathInfo(new StringBuffer(s), cp, sp).toString());
-
-		for (String s : new String[]{
-				"http://hostname/foo2/bar",
-				"http://hostname/foo/bar2"
-			}) {
-			try {
-				trimPathInfo(new StringBuffer(s), cp, sp);
-				fail("Exception expected - " + s);
-			} catch (RuntimeException ex) {}
-		}
-
-		e = "http://hostname/foo/bar";
-		sp = "/bar";
-		cp = "/foo";
-
-		for (String s : new String[]{
-				"http://hostname/foo/bar",
-				"http://hostname/foo/bar/baz",
-				"http://hostname/foo/bar?baz"})
-			assertEquals(e, trimPathInfo(new StringBuffer(s), cp, sp).toString());
-
-		for (String s : new String[]{
-				"http://hostname/foo2/bar",
-				"http://hostname/foo/bar2"
-			}) {
-			try {
-				trimPathInfo(new StringBuffer(s), cp, sp);
-				fail("Exception expected - " + s);
-			} catch (RuntimeException ex) {}
-		}
-	}
-
-	//====================================================================================================
-	// trimSlashes(String)
-	//====================================================================================================
-	@Test
-	public void testTrimSlashes() throws Exception {
-		assertNull(trimSlashes(null));
-		assertEquals("", trimSlashes(""));
-		assertEquals("", trimSlashes("/"));
-		assertEquals("", trimSlashes("//"));
-		assertEquals("foo/bar", trimSlashes("foo/bar"));
-		assertEquals("foo/bar", trimSlashes("foo/bar//"));
-		assertEquals("foo/bar", trimSlashes("/foo/bar//"));
-		assertEquals("foo/bar", trimSlashes("//foo/bar//"));
-	}
-
-	//====================================================================================================
-	// trimTrailingSlashes(String)
-	//====================================================================================================
-	@Test
-	public void testTrimTrailingSlashes() throws Exception {
-		assertNull(trimTrailingSlashes((String)null));
-		assertEquals("", trimTrailingSlashes(""));
-		assertEquals("", trimTrailingSlashes("/"));
-		assertEquals("", trimTrailingSlashes("//"));
-		assertEquals("foo/bar", trimTrailingSlashes("foo/bar"));
-		assertEquals("foo/bar", trimTrailingSlashes("foo/bar//"));
-		assertEquals("/foo/bar", trimTrailingSlashes("/foo/bar//"));
-		assertEquals("//foo/bar", trimTrailingSlashes("//foo/bar//"));
-	}
-
-	//====================================================================================================
-	// trimTrailingSlashes(StringBuffer)
-	//====================================================================================================
-	@Test
-	public void testTrimTrailingSlashes2() throws Exception {
-		assertNull(trimTrailingSlashes((StringBuffer)null));
-		assertEquals("", trimTrailingSlashes(new StringBuffer("")).toString());
-		assertEquals("", trimTrailingSlashes(new StringBuffer("/")).toString());
-		assertEquals("", trimTrailingSlashes(new StringBuffer("//")).toString());
-		assertEquals("foo/bar", trimTrailingSlashes(new StringBuffer("foo/bar")).toString());
-		assertEquals("foo/bar", trimTrailingSlashes(new StringBuffer("foo/bar//")).toString());
-		assertEquals("/foo/bar", trimTrailingSlashes(new StringBuffer("/foo/bar//")).toString());
-		assertEquals("//foo/bar", trimTrailingSlashes(new StringBuffer("//foo/bar//")).toString());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestAcceptCharset.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestAcceptCharset.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestAcceptCharset.java
deleted file mode 100755
index 9162208..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestAcceptCharset.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import java.io.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.internal.*;
-import org.junit.*;
-
-public class CT_TestAcceptCharset {
-
-	boolean debug = false;
-
-	//====================================================================================================
-	// Test that Q-values are being resolved correctly.
-	//====================================================================================================
-	@Test
-	public void testQValues() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-
-		check1(client, "utf-8", "utf-8");
-		check1(client, "iso-8859-1", "iso-8859-1");
-		check1(client, "bad,utf-8", "utf-8");
-		check1(client, "utf-8,bad", "utf-8");
-		check1(client, "bad;q=0.9,utf-8;q=0.1", "utf-8");
-		check1(client, "bad;q=0.1,utf-8;q=0.9", "utf-8");
-		check1(client, "utf-8,iso-8859-1", "utf-8");
-		check1(client, "iso-8859-1,utf-8", "utf-8");
-		check1(client, "utf-8;q=0.9,iso-8859-1;q=0.1", "utf-8");
-		check1(client, "utf-8;q=0.1,iso-8859-1;q=0.9", "iso-8859-1");
-		check1(client, "*", "utf-8");
-		check1(client, "bad,iso-8859-1;q=0.5,*;q=0.1", "iso-8859-1");
-		check1(client, "bad,iso-8859-1;q=0.1,*;q=0.5", "utf-8");
-
-		client.closeQuietly();
-	}
-
-	private void check1(RestClient client, String requestCharset, String responseCharset) throws Exception {
-		RestCall r;
-		InputStream is;
-		String url = "/testAcceptCharset/testQValues";
-		r = client.doGet(url).setHeader("Accept-Charset", requestCharset).connect();
-		assertTrue(r.getResponse().getFirstHeader("Content-Type").getValue().toLowerCase().contains(responseCharset));
-		is = r.getInputStream();
-		assertEquals("foo", IOUtils.read(new InputStreamReader(is, responseCharset)));
-	}
-
-	//====================================================================================================
-	// Validate various Accept-Charset variations.
-	//====================================================================================================
-	@Test
-	public void testCharsetOnResponse() throws Exception {
-		RestClient client = new TestRestClient().setAccept("text/plain").setContentType("text/plain");
-		String url = "/testAcceptCharset/testCharsetOnResponse";
-		String r;
-
-		r = client.doPut(url, new StringReader("")).getResponseAsString();
-		assertEquals("utf-8/utf-8", r.toLowerCase());
-
-		r = client.doPut(url, new StringReader("")).setHeader("Accept-Charset", "Shift_JIS").getResponseAsString();
-		assertEquals("utf-8/shift_jis", r.toLowerCase());
-
-		try {
-			r = client.doPut(url+"?noTrace=true", new StringReader("")).setHeader("Accept-Charset", "BAD").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE, "No supported charsets in header 'Accept-Charset': 'BAD'");
-		}
-
-		r = client.doPut(url, new StringReader("")).setHeader("Accept-Charset", "UTF-8").getResponseAsString();
-		assertEquals("utf-8/utf-8", r.toLowerCase());
-
-		r = client.doPut(url, new StringReader("")).setHeader("Accept-Charset", "bad,iso-8859-1").getResponseAsString();
-		assertEquals("utf-8/iso-8859-1", r.toLowerCase());
-
-		r = client.doPut(url, new StringReader("")).setHeader("Accept-Charset", "bad;q=0.9,iso-8859-1;q=0.1").getResponseAsString();
-		assertEquals("utf-8/iso-8859-1", r.toLowerCase());
-
-		r = client.doPut(url, new StringReader("")).setHeader("Accept-Charset", "bad;q=0.1,iso-8859-1;q=0.9").getResponseAsString();
-		assertEquals("utf-8/iso-8859-1", r.toLowerCase());
-
-		client.setHeader("Accept-Charset", "utf-8");
-
-		r = client.doPut(url, new StringReader("")).setHeader("Content-Type", "text/plain").getResponseAsString();
-		assertEquals("utf-8/utf-8", r.toLowerCase());
-
-		r = client.doPut(url, new StringReader("")).setHeader("Content-Type", "text/plain;charset=utf-8").getResponseAsString();
-		assertEquals("utf-8/utf-8", r.toLowerCase());
-
-		r = client.doPut(url, new StringReader("")).setHeader("Content-Type", "text/plain;charset=UTF-8").getResponseAsString();
-		assertEquals("utf-8/utf-8", r.toLowerCase());
-
-		r = client.doPut(url, new StringReader("")).setHeader("Content-Type", "text/plain;charset=iso-8859-1").getResponseAsString();
-		assertEquals("iso-8859-1/utf-8", r.toLowerCase());
-
-		r = client.doPut(url, new StringReader("")).setHeader("Content-Type", "text/plain;charset=Shift_JIS").getResponseAsString();
-		assertEquals("shift_jis/utf-8", r.toLowerCase());
-
-		try {
-			r = client.doPut(url + "?noTrace=true&Content-Type=text/plain;charset=BAD", new StringReader("")).getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE, "Unsupported charset in header 'Content-Type': 'text/plain;charset=BAD'");
-		}
-
-		client.closeQuietly();
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestBeanContextProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestBeanContextProperties.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestBeanContextProperties.java
deleted file mode 100755
index 3358d26..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestBeanContextProperties.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestBeanContextProperties {
-
-	boolean debug = false;
-
-	//====================================================================================================
-	// Validate that filters defined on class filter to underlying bean context.
-	//====================================================================================================
-	@Test
-	public void testClassTransforms() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.class, JsonParser.class);
-		String r;
-		r = client.doGet("/testBeanContext/testClassTransforms/2001-07-04T15:30:45Z?d2=2001-07-05T15:30:45Z").setHeader("X-D3", "2001-07-06T15:30:45Z").getResponseAsString();
-		assertEquals("d1=2001-07-04T15:30:45Z,d2=2001-07-05T15:30:45Z,d3=2001-07-06T15:30:45Z", r);
-
-		client.closeQuietly();
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestCallbackStrings.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestCallbackStrings.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestCallbackStrings.java
deleted file mode 100755
index c1891d8..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestCallbackStrings.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.junit.*;
-
-public class CT_TestCallbackStrings {
-
-	//====================================================================================================
-	// Basic tests using &Content parameter
-	//====================================================================================================
-	@Test
-	public void test() throws Exception {
-		RestClient c = new TestRestClient().setAccept("text/json+simple");
-		String r;
-
-		r = c.doCallback("GET /testCallback").getResponseAsString();
-		assertEquals("{method:'GET',headers:{},content:''}", r);
-
-		r = c.doCallback("GET /testCallback some sample content").getResponseAsString();
-		assertEquals("{method:'GET',headers:{},content:'some sample content'}", r);
-
-		r = c.doCallback("GET {Foo-X:123,Foo-Y:'abc'} /testCallback").getResponseAsString();
-		assertEquals("{method:'GET',headers:{'Foo-X':'123','Foo-Y':'abc'},content:''}", r);
-
-		r = c.doCallback("GET  { Foo-X : 123, Foo-Y : 'abc' } /testCallback").getResponseAsString();
-		assertEquals("{method:'GET',headers:{'Foo-X':'123','Foo-Y':'abc'},content:''}", r);
-
-		r = c.doCallback("GET {Foo-X:123,Foo-Y:'abc'} /testCallback   some sample content  ").getResponseAsString();
-		assertEquals("{method:'GET',headers:{'Foo-X':'123','Foo-Y':'abc'},content:'some sample content'}", r);
-
-		r = c.doCallback("PUT {Foo-X:123,Foo-Y:'abc'} /testCallback   some sample content  ").getResponseAsString();
-		assertEquals("{method:'PUT',headers:{'Foo-X':'123','Foo-Y':'abc'},content:'some sample content'}", r);
-
-		c.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestCharsetEncodings.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestCharsetEncodings.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestCharsetEncodings.java
deleted file mode 100755
index 3b34af6..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestCharsetEncodings.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import java.io.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.internal.*;
-import org.junit.*;
-
-
-public class CT_TestCharsetEncodings {
-
-	private static boolean debug = false;
-
-	/**
-	 * Basic tests to ensure that the correct charsets are found and used
-	 * under a variety of scenarios.
-	 */
-	@Test
-	public void test() throws Exception {
-		String url = "/testCharsetEncodings";
-		RestClient client = new TestRestClient().setAccept("text/s").setContentType("text/p");
-		InputStream is;
-		String r;
-
-		r = client.doPut(url, new StringReader("foo")).getResponseAsString();
-		if (debug) System.err.println(r);
-		assertEquals("utf-8/foo/utf-8", r);
-
-		is = client.doPut(url, new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "utf-8"));
-		if (debug) System.err.println(r);
-		assertEquals("utf-8/foo/utf-8", r);
-
-		client.setHeader("Accept-Charset", "utf-8").setContentType("text/p;charset=utf-8");
-		is = client.doPut(url, new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "utf-8"));
-		if (debug) System.err.println(r);
-		assertEquals("utf-8/foo/utf-8", r);
-
-		client.setHeader("Accept-Charset", "Shift_JIS").setContentType("text/p;charset=shift_jis");
-		is = client.doPut(url, new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "Shift_JIS"));
-		if (debug) System.err.println(r);
-		assertEquals("shift_jis/foo/shift_jis", r);
-
-		try {
-			client.setHeader("Accept-Charset", "BAD").setContentType("text/p;charset=sjis");
-			is = client.doPut(url + "?noTrace=true", new StringReader("foo")).getInputStream();
-			r = IOUtils.read(new InputStreamReader(is, "sjis"));
-			if (debug) System.err.println(r);
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE, "No supported charsets in header 'Accept-Charset': 'BAD'");
-		}
-
-		client.setAccept("text/s").setHeader("Accept-Charset", "utf-8").setContentType("text/p");
-		is = client.doPut(url+"?Content-Type=text/p", new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "utf-8"));
-		if (debug) System.err.println(r);
-		assertEquals("utf-8/foo/utf-8", r);
-
-		client.setAccept("text/s").setContentType("text/bad").setHeader("Accept-Charset", "utf-8");
-		is = client.doPut(url+"?Content-Type=text/p;charset=utf-8", new StringReader("foo")).getInputStream();
-		r = IOUtils.read(new InputStreamReader(is, "utf-8"));
-		if (debug) System.err.println(r);
-		assertEquals("utf-8/foo/utf-8", r);
-
-		try {
-			client.setAccept("text/s").setContentType("text/p").setHeader("Accept-Charset", "utf-8");
-			is = client.doPut(url+"?Content-Type=text/p;charset=BAD&noTrace=true", new StringReader("foo")).getInputStream();
-			r = IOUtils.read(new InputStreamReader(is, "utf-8"));
-			if (debug) System.err.println(r);
-			assertEquals("utf-8/foo/utf-8", r);
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE, "Unsupported charset in header 'Content-Type': 'text/p;charset=BAD'");
-		}
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestClientVersion.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestClientVersion.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestClientVersion.java
deleted file mode 100644
index 253bcae..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestClientVersion.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.plaintext.*;
-import org.junit.*;
-
-public class CT_TestClientVersion {
-
-	private static String URL = "/testClientVersion";
-
-	//====================================================================================================
-	// Basic tests - default X-Client-Version header.
-	//====================================================================================================
-	@Test
-	public void testDefaultHeader() throws Exception {
-		RestClient c = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String url = URL + "/defaultHeader";
-
-		assertEquals("no-version", c.doGet(url).getResponseAsString());
-
-		for (String s : "0, 0.0, 0.1, .1, .9, .99".split("\\s*,\\s*")) {
-			c.setClientVersion(s);
-			assertEquals("[0.0,1.0)", c.doGet(url).getResponseAsString());
-		}
-
-		for (String s : "1, 1.0, 1.0.0, 1.0.1".split("\\s*,\\s*")) {
-			c.setClientVersion(s);
-			assertEquals("[1.0,1.0]", c.doGet(url).getResponseAsString());
-		}
-
-		for (String s : "1.1, 1.1.1, 1.2, 1.9.9".split("\\s*,\\s*")) {
-			c.setClientVersion(s);
-			assertEquals("[1.1,2)", c.doGet(url).getResponseAsString());
-		}
-
-		for (String s : "2, 2.0, 2.1, 9, 9.9".split("\\s*,\\s*")) {
-			c.setClientVersion(s);
-			assertEquals("2", c.doGet(url).getResponseAsString());
-		}
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Basic tests - Custom-Client-Version header.
-	//====================================================================================================
-	@Test
-	public void testCustomHeader() throws Exception {
-		RestClient c = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String url = URL + "/customHeader";
-
-		assertEquals("no-version", c.doGet(url).getResponseAsString());
-
-		for (String s : "0, 0.0, 0.1, .1, .9, .99".split("\\s*,\\s*")) {
-			c.setHeader("Custom-Client-Version", s);
-			assertEquals("[0.0,1.0)", c.doGet(url).getResponseAsString());
-		}
-
-		for (String s : "1, 1.0, 1.0.0, 1.0.1".split("\\s*,\\s*")) {
-			c.setHeader("Custom-Client-Version", s);
-			assertEquals("[1.0,1.0]", c.doGet(url).getResponseAsString());
-		}
-
-		for (String s : "1.1, 1.1.1, 1.2, 1.9.9".split("\\s*,\\s*")) {
-			c.setHeader("Custom-Client-Version", s);
-			assertEquals("[1.1,2)", c.doGet(url).getResponseAsString());
-		}
-
-		for (String s : "2, 2.0, 2.1, 9, 9.9".split("\\s*,\\s*")) {
-			c.setHeader("Custom-Client-Version", s);
-			assertEquals("2", c.doGet(url).getResponseAsString());
-		}
-
-		c.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestConfig.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestConfig.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestConfig.java
deleted file mode 100755
index d2e4844..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestConfig.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.ini.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestConfig {
-
-	private static String URL = "/testConfig";
-
-	//====================================================================================================
-	// Basic tests
-	//====================================================================================================
-	@Test
-	public void test() throws Exception {
-		RestClient c = new TestRestClient(JsonSerializer.class, JsonParser.class).setAccept("text/json+simple");
-
-		ConfigFile cf = c.doGet(URL).getResponse(ConfigFileImpl.class);
-
-		assertObjectEquals("{int1:'1',int2:'1,2,3',int3:'$C{Test/int1, -1}',int4:'$C{Test/int3, -1}',int5:'$C{XXX, -1}',boolean1:'true',boolean2:'true,true',path:'$E{PATH}',mainClass:'$MF{Main-Class}',importPackage:'$MF{Import-Package}'}", cf.get("Test"));
-
-		assertEquals("'1'", c.doGet(URL + "/Test%2Fint1/" + getName(String.class)).getResponseAsString());
-		assertEquals("['1']", c.doGet(URL + "/Test%2Fint1/" + getName(String[].class)).getResponseAsString());
-		assertEquals("'1,2,3'", c.doGet(URL + "/Test%2Fint2/" + getName(String.class)).getResponseAsString());
-		assertEquals("['1','2','3']", c.doGet(URL + "/Test%2Fint2/" + getName(String[].class)).getResponseAsString());
-		assertEquals("[1,2,3]", c.doGet(URL + "/Test%2Fint2/" + getName(int[].class)).getResponseAsString());
-		assertEquals("[1,2,3]", c.doGet(URL + "/Test%2Fint2/" + getName(Integer[].class)).getResponseAsString());
-		assertEquals("[1]", c.doGet(URL + "/Test%2Fint3/" + getName(int[].class)).getResponseAsString());
-		assertEquals("[1]", c.doGet(URL + "/Test%2Fint4/" + getName(int[].class)).getResponseAsString());
-		assertEquals("[-1]", c.doGet(URL + "/Test%2Fint5/" + getName(int[].class)).getResponseAsString());
-		assertEquals("true", c.doGet(URL + "/Test%2Fboolean1/" + getName(Boolean.class)).getResponseAsString());
-		assertEquals("[true,true]", c.doGet(URL + "/Test%2Fboolean2/" + getName(Boolean[].class)).getResponseAsString());
-		assertTrue(c.doGet(URL + "/Test%2Fpath/" + getName(String.class)).getResponseAsString().length() > 10);
-		assertEquals("'org.apache.juneau.microservice.RestMicroservice'", c.doGet(URL + "/Test%2FmainClass/" + getName(String.class)).getResponseAsString());
-
-		c.closeQuietly();
-	}
-
-	private String getName(Class<?> c) {
-		return RestUtils.encode(c.getName());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestContent.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestContent.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestContent.java
deleted file mode 100755
index 5e3546a..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestContent.java
+++ /dev/null
@@ -1,706 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import java.io.*;
-import java.net.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.urlencoding.*;
-import org.junit.*;
-
-public class CT_TestContent {
-
-	private static String URL = "/testContent";
-
-	//====================================================================================================
-	// Basic tests using &Content parameter
-	//====================================================================================================
-	@Test
-	public void testUsingContentParam() throws Exception {
-		RestClient c = new TestRestClient().setAccept("text/json+simple");
-		String r;
-
-		//	@RestMethod(name="POST", path="/boolean")
-		//	public boolean testBool(@Content boolean b) {
-		//		return b;
-		//	}
-		r = c.doPost(URL + "/boolean?content=true", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/boolean?content=(true)", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/boolean?content=$b(true)", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/boolean?content=false", null).getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/boolean?content=(false)", null).getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/boolean?content=$b(false)", null).getResponseAsString();
-		assertEquals("false", r);
-		try {
-			r = c.doPost(URL + "/boolean?content=%00&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/boolean?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-
-		//	@RestMethod(name="POST", path="/Boolean")
-		//	public Boolean testBoolean(@Content Boolean b) {
-		//		return b;
-		//	}
-		r = c.doPost(URL + "/Boolean?content=true", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/Boolean?content=(true)", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/Boolean?content=$b(true)", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/Boolean?content=false", null).getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/Boolean?content=(false)", null).getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/Boolean?content=$b(false)", null).getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/Boolean?content=%00", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Boolean?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/int")
-		//	public int testInt(@Content int i) {
-		//		return i;
-		//	}
-		r = c.doPost(URL + "/int?content=-123", null).getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/int?content=(-123)", null).getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/int?content=$n(-123)", null).getResponseAsString();
-		assertEquals("-123", r);
-		try {
-			r = c.doPost(URL + "/int?content=%00&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/int?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Integer")
-		//	public Integer testInteger(@Content Integer i) {
-		//		return i;
-		//	}
-		r = c.doPost(URL + "/Integer?content=-123", null).getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/Integer?content=(-123)", null).getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/Integer?content=$n(-123)", null).getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/Integer?content=%00", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Integer?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/float")
-		//	public float testFloat(@Content float f) {
-		//		return f;
-		//	}
-		r = c.doPost(URL + "/float?content=-1.23", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/float?content=(-1.23)", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/float?content=$n(-1.23)", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		try {
-			r = c.doPost(URL + "/float?content=%00&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/float?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Float")
-		//	public Float testFloat2(@Content Float f) {
-		//		return f;
-		//	}
-		r = c.doPost(URL + "/Float?content=-1.23", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/Float?content=(-1.23)", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/Float?content=$n(-1.23)", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/Float?content=%00", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Float?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Map")
-		//	public TreeMap<String,String> testMap(@Content TreeMap<String,String> m) {
-		//		return m;
-		//	}
-		r = c.doPost(URL + "/Map?content=(a=b,c=d)", null).getResponseAsString();
-		assertEquals("{a:'b',c:'d'}", r);
-		r = c.doPost(URL + "/Map?content=%00", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Map?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/B")
-		//	public DTO2s.B testPojo1(@Content DTO2s.B b) {
-		//		return b;
-		//	}
-		DTOs.B b = DTOs.B.create();
-		r = c.doPost(URL + "/B?content=" + UonSerializer.DEFAULT.serialize(b), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-		r = c.doPost(URL + "/B?content=" + UonSerializer.DEFAULT_SIMPLE.serialize(b), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-
-		//	@RestMethod(name="POST", path="/C")
-		//	public DTO2s.C testPojo2(@Content DTO2s.C c) {
-		//		return c;
-		//	}
-		DTOs.C x = DTOs.C.create();
-		r = c.doPost(URL + "/C?content=" + UonSerializer.DEFAULT.serialize(x), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-		r = c.doPost(URL + "/C?content=" + UonSerializer.DEFAULT_SIMPLE.serialize(x), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Basic tests using &Content parameter with &Accept=text/json
-	//====================================================================================================
-	@Test
-	public void testUsingContentParamJsonHeader() throws Exception {
-		RestClient c = new TestRestClient().setAccept("text/json+simple").setHeader("Content-Type", "text/json");
-		String r;
-
-		//	@RestMethod(name="POST", path="/boolean")
-		//	public boolean testBool(@Content boolean b) {
-		//		return b;
-		//	}
-		r = c.doPost(URL + "/boolean?content=true", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/boolean?content=false", null).getResponseAsString();
-		assertEquals("false", r);
-		try {
-			r = c.doPost(URL + "/boolean?content=null&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/boolean?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-
-		//	@RestMethod(name="POST", path="/Boolean")
-		//	public Boolean testBoolean(@Content Boolean b) {
-		//		return b;
-		//	}
-		r = c.doPost(URL + "/Boolean?content=true", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/Boolean?content=false", null).getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/Boolean?content=null", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Boolean?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/int")
-		//	public int testInt(@Content int i) {
-		//		return i;
-		//	}
-		r = c.doPost(URL + "/int?content=-123", null).getResponseAsString();
-		assertEquals("-123", r);
-		try {
-			r = c.doPost(URL + "/int?content=null&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/int?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Integer")
-		//	public Integer testInteger(@Content Integer i) {
-		//		return i;
-		//	}
-		r = c.doPost(URL + "/Integer?content=-123", null).getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/Integer?content=null", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Integer?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/float")
-		//	public float testFloat(@Content float f) {
-		//		return f;
-		//	}
-		r = c.doPost(URL + "/float?content=-1.23", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		try {
-			r = c.doPost(URL + "/float?content=null&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/float?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Float")
-		//	public Float testFloat2(@Content Float f) {
-		//		return f;
-		//	}
-		r = c.doPost(URL + "/Float?content=-1.23", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/Float?content=null", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Float?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Map")
-		//	public TreeMap<String,String> testMap(@Content TreeMap<String,String> m) {
-		//		return m;
-		//	}
-		r = c.doPost(URL + "/Map?content=" + encode("{a:'b',c:'d'}"), null).getResponseAsString();
-		assertEquals("{a:'b',c:'d'}", r);
-		r = c.doPost(URL + "/Map?content=null", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Map?content=bad&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/B")
-		//	public DTO2s.B testPojo1(@Content DTO2s.B b) {
-		//		return b;
-		//	}
-		DTOs.B b = DTOs.B.create();
-		r = c.doPost(URL + "/B?content=" + encode(JsonSerializer.DEFAULT_LAX.serialize(b)), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-
-		//	@RestMethod(name="POST", path="/C")
-		//	public DTO2s.C testPojo2(@Content DTO2s.C c) {
-		//		return c;
-		//	}
-		DTOs.C x = DTOs.C.create();
-		r = c.doPost(URL + "/C?content=" + encode(JsonSerializer.DEFAULT_LAX.serialize(x)), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Basic tests using &Content parameter with &Accept=text/json
-	//====================================================================================================
-	@Test
-	public void testUsingContentParamJsonParam() throws Exception {
-		RestClient c = new TestRestClient().setAccept("text/json+simple");
-		String r;
-
-		//	@RestMethod(name="POST", path="/boolean")
-		//	public boolean testBool(@Content boolean b) {
-		//		return b;
-		//	}
-		r = c.doPost(URL + "/boolean?content=true&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/boolean?content=false&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("false", r);
-		try {
-			r = c.doPost(URL + "/boolean?content=null&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/boolean?content=bad&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-
-		//	@RestMethod(name="POST", path="/Boolean")
-		//	public Boolean testBoolean(@Content Boolean b) {
-		//		return b;
-		//	}
-		r = c.doPost(URL + "/Boolean?content=true&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/Boolean?content=false&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/Boolean?content=null&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Boolean?content=bad&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/int")
-		//	public int testInt(@Content int i) {
-		//		return i;
-		//	}
-		r = c.doPost(URL + "/int?content=-123&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("-123", r);
-		try {
-			r = c.doPost(URL + "/int?content=null&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/int?content=bad&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Integer")
-		//	public Integer testInteger(@Content Integer i) {
-		//		return i;
-		//	}
-		r = c.doPost(URL + "/Integer?content=-123&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/Integer?content=null&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Integer?content=bad&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/float")
-		//	public float testFloat(@Content float f) {
-		//		return f;
-		//	}
-		r = c.doPost(URL + "/float?content=-1.23&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		try {
-			r = c.doPost(URL + "/float?content=null&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/float?content=bad&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Float")
-		//	public Float testFloat2(@Content Float f) {
-		//		return f;
-		//	}
-		r = c.doPost(URL + "/Float?content=-1.23&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/Float?content=null&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Float?content=bad&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Map")
-		//	public TreeMap<String,String> testMap(@Content TreeMap<String,String> m) {
-		//		return m;
-		//	}
-		r = c.doPost(URL + "/Map?content=" + encode("{a:'b',c:'d'}") + "&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("{a:'b',c:'d'}", r);
-		r = c.doPost(URL + "/Map?content=null&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Map?content=bad&Content-Type=text/json&noTrace=true", null).getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/B")
-		//	public DTO2s.B testPojo1(@Content DTO2s.B b) {
-		//		return b;
-		//	}
-		DTOs.B b = DTOs.B.create();
-		r = c.doPost(URL + "/B?content=" + encode(JsonSerializer.DEFAULT_LAX.serialize(b)) + "&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-
-		//	@RestMethod(name="POST", path="/C")
-		//	public DTO2s.C testPojo2(@Content DTO2s.C c) {
-		//		return c;
-		//	}
-		DTOs.C x = DTOs.C.create();
-		r = c.doPost(URL + "/C?content=" + encode(JsonSerializer.DEFAULT_LAX.serialize(x)) + "&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Basic tests using HTTP body content
-	//====================================================================================================
-	@Test
-	public void testUsingContent() throws Exception {
-		RestClient c = new TestRestClient().setAccept("text/json+simple").setHeader("Content-Type", "text/uon").setSerializer(PlainTextSerializer.class);
-		String r;
-
-		//	@RestMethod(name="POST", path="/boolean")
-		//	public boolean testBool(@Content boolean b) {
-		//		return b;
-		//	}
-		r = c.doPost(URL + "/boolean", "true").getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/boolean", "(true)").getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/boolean", "$b(true)").getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/boolean", "false").getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/boolean", "(false)").getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/boolean", "$b(false)").getResponseAsString();
-		assertEquals("false", r);
-		try {
-			r = c.doPost(URL + "/boolean?noTrace=true", "%00").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/boolean?noTrace=true", "bad").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-
-		//	@RestMethod(name="POST", path="/Boolean")
-		//	public Boolean testBoolean(@Content Boolean b) {
-		//		return b;
-		//	}
-		r = c.doPost(URL + "/Boolean", "true").getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/Boolean", "(true)").getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/Boolean", "$b(true)").getResponseAsString();
-		assertEquals("true", r);
-		r = c.doPost(URL + "/Boolean", "false").getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/Boolean", "(false)").getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/Boolean", "$b(false)").getResponseAsString();
-		assertEquals("false", r);
-		r = c.doPost(URL + "/Boolean", "\u0000").getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Boolean?noTrace=true", "bad").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/int")
-		//	public int testInt(@Content int i) {
-		//		return i;
-		//	}
-		r = c.doPost(URL + "/int", "-123").getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/int", "(-123)").getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/int", "$n(-123)").getResponseAsString();
-		assertEquals("-123", r);
-		try {
-			r = c.doPost(URL + "/int?noTrace=true", "%00").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/int?noTrace=true", "bad").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Integer")
-		//	public Integer testInteger(@Content Integer i) {
-		//		return i;
-		//	}
-		r = c.doPost(URL + "/Integer", "-123").getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/Integer", "(-123)").getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/Integer", "$n(-123)").getResponseAsString();
-		assertEquals("-123", r);
-		r = c.doPost(URL + "/Integer", "\u0000").getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Integer?noTrace=true", "bad").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/float")
-		//	public float testFloat(@Content float f) {
-		//		return f;
-		//	}
-		r = c.doPost(URL + "/float", "-1.23").getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/float", "(-1.23)").getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/float", "$n(-1.23)").getResponseAsString();
-		assertEquals("-1.23", r);
-		try {
-			r = c.doPost(URL + "/float?noTrace=true", "\u0000").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-		try {
-			r = c.doPost(URL + "/float?noTrace=true", "bad").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Float")
-		//	public Float testFloat2(@Content Float f) {
-		//		return f;
-		//	}
-		r = c.doPost(URL + "/Float", "-1.23").getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/Float", "(-1.23)").getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/Float", "$n(-1.23)").getResponseAsString();
-		assertEquals("-1.23", r);
-		r = c.doPost(URL + "/Float", "\u0000").getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Float?noTrace=true", "bad").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/Map")
-		//	public TreeMap<String,String> testMap(@Content TreeMap<String,String> m) {
-		//		return m;
-		//	}
-		r = c.doPost(URL + "/Map", "(a=b,c=d)").getResponseAsString();
-		assertEquals("{a:'b',c:'d'}", r);
-		r = c.doPost(URL + "/Map", "\u0000").getResponseAsString();
-		assertEquals("null", r);
-		try {
-			r = c.doPost(URL + "/Map?noTrace=true", "bad").getResponseAsString();
-			fail("Exception expected!");
-		} catch (RestCallException e) {
-			assertEquals(400, e.getResponseCode());
-		}
-
-		//	@RestMethod(name="POST", path="/B")
-		//	public DTO2s.B testPojo1(@Content DTO2s.B b) {
-		//		return b;
-		//	}
-		DTOs.B b = DTOs.B.create();
-		r = c.doPost(URL + "/B", "" + UonSerializer.DEFAULT.serialize(b)).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-		r = c.doPost(URL + "/B", "" + UonSerializer.DEFAULT_SIMPLE.serialize(b)).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-
-		//	@RestMethod(name="POST", path="/C")
-		//	public DTO2s.C testPojo2(@Content DTO2s.C c) {
-		//		return c;
-		//	}
-		DTOs.C x = DTOs.C.create();
-		r = c.doPost(URL + "/C", "" + UonSerializer.DEFAULT.serialize(x)).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-		r = c.doPost(URL + "/C", "" + UonSerializer.DEFAULT_SIMPLE.serialize(x)).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
-
-		c.closeQuietly();
-	}
-
-
-	private String encode(String s) {
-		try {
-			return URLEncoder.encode(s, "UTF-8");
-		} catch (UnsupportedEncodingException e) {
-			throw new RuntimeException(e);
-		}
-	}
-}


[46/51] [abbrv] [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/2c3a7cb5/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
deleted file mode 100755
index 54e4bf5..0000000
--- a/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,306 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-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
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-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
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 47bdfe0..0000000
--- a/com.ibm.team.juno.microservice/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=false
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=true
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-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=_Juneau
-cleanup_settings_version=2
-eclipse.preferences.version=1
-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 (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/2c3a7cb5/com.ibm.team.juno.microservice/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.settings/org.eclipse.m2e.core.prefs b/com.ibm.team.juno.microservice/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/com.ibm.team.juno.microservice/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/Dockerfile
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/Dockerfile b/com.ibm.team.juno.microservice/Dockerfile
deleted file mode 100755
index c1766b0..0000000
--- a/com.ibm.team.juno.microservice/Dockerfile
+++ /dev/null
@@ -1,16 +0,0 @@
-# Dockerfile for creating a Juneau microservice container
-
-FROM ubuntu
-
-# Change this to whatever port you wish to use.
-EXPOSE 10000
-
-# Install Java
-apt-get update
-apt-get install default-jre
-
-# Copy our jar
-copy build/microservice.jar /
-
-ENTRYPOINT []
-CMD /bin/sh -c "java -jar microservice.jar 10000"

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index af2d406..0000000
--- a/com.ibm.team.juno.microservice/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-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

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 8fe52e5..0000000
--- a/com.ibm.team.juno.microservice/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# ***************************************************************************************************************************
-# * 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
-jre.compilation.profile = JavaSE-1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/commons-codec-1.9.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/commons-codec-1.9.jar b/com.ibm.team.juno.microservice/lib/commons-codec-1.9.jar
deleted file mode 100755
index ef35f1c..0000000
Binary files a/com.ibm.team.juno.microservice/lib/commons-codec-1.9.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/commons-io-1.2.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/commons-io-1.2.jar b/com.ibm.team.juno.microservice/lib/commons-io-1.2.jar
deleted file mode 100755
index b2867cd..0000000
Binary files a/com.ibm.team.juno.microservice/lib/commons-io-1.2.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/commons-logging-1.1.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/commons-logging-1.1.1.jar b/com.ibm.team.juno.microservice/lib/commons-logging-1.1.1.jar
deleted file mode 100755
index 1deef14..0000000
Binary files a/com.ibm.team.juno.microservice/lib/commons-logging-1.1.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/httpclient-4.5.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/httpclient-4.5.jar b/com.ibm.team.juno.microservice/lib/httpclient-4.5.jar
deleted file mode 100755
index 970c989..0000000
Binary files a/com.ibm.team.juno.microservice/lib/httpclient-4.5.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/httpcore-4.4.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/httpcore-4.4.1.jar b/com.ibm.team.juno.microservice/lib/httpcore-4.4.1.jar
deleted file mode 100755
index 99715b6..0000000
Binary files a/com.ibm.team.juno.microservice/lib/httpcore-4.4.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/httpmime-4.5.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/httpmime-4.5.jar b/com.ibm.team.juno.microservice/lib/httpmime-4.5.jar
deleted file mode 100755
index b631ceb..0000000
Binary files a/com.ibm.team.juno.microservice/lib/httpmime-4.5.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/javax.servlet-api-3.0.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/javax.servlet-api-3.0.jar b/com.ibm.team.juno.microservice/lib/javax.servlet-api-3.0.jar
deleted file mode 100755
index 4e2edcc..0000000
Binary files a/com.ibm.team.juno.microservice/lib/javax.servlet-api-3.0.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/jetty-all-8.1.0.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/jetty-all-8.1.0.jar b/com.ibm.team.juno.microservice/lib/jetty-all-8.1.0.jar
deleted file mode 100755
index 1d74933..0000000
Binary files a/com.ibm.team.juno.microservice/lib/jetty-all-8.1.0.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/lib/org.apache.commons.fileupload_1.3.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/lib/org.apache.commons.fileupload_1.3.1.jar b/com.ibm.team.juno.microservice/lib/org.apache.commons.fileupload_1.3.1.jar
deleted file mode 100755
index af0cda2..0000000
Binary files a/com.ibm.team.juno.microservice/lib/org.apache.commons.fileupload_1.3.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/pom.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/pom.xml b/com.ibm.team.juno.microservice/pom.xml
deleted file mode 100644
index 1a343aa..0000000
--- a/com.ibm.team.juno.microservice/pom.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.juneau</groupId>
-  <artifactId>org.apache.juneau.microservice</artifactId>
-  <version>6.0.0-SNAPSHOT</version>
-  <name>org.apache.juneau.microservice</name>
-  <description>org.apache.juneau.microservice</description>
-  <build>
-    <sourceDirectory>src</sourceDirectory>
-    <resources>
-      <resource>
-        <directory>src</directory>
-        <excludes>
-          <exclude>**/*.java</exclude>
-        </excludes>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.3</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 55fcead..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Microservice.java
+++ /dev/null
@@ -1,495 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index ccfc967..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/Resource.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index c6e0d6b..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceGroup.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 43cf2c6..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/ResourceJena.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/***************************************************************************************************************************
- * 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 {}


[02/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/temp.txt
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/temp.txt b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/temp.txt
deleted file mode 100644
index cd769ed..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/temp.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-\u24d8 a \u2013 hyperlink CHANGED
-\u24d8 abbr \u2013 abbreviation
-\u24d8 address \u2013 contact information
-\u24d8 area \u2013 image-map hyperlink
-\u24d8 article \u2013 article NEW
-\u24d8 aside \u2013 tangential content NEW
-\u24d8 audio \u2013 audio stream NEW
-\u24d8 b \u2013 offset text conventionally styled in bold CHANGED
-\u24d8 base \u2013 base URL
-\u24d8 bdi \u2013 BiDi isolate NEW
-\u24d8 bdo \u2013 BiDi override
-\u24d8 blockquote \u2013 block quotation
-\u24d8 body \u2013 document body
-\u24d8 br \u2013 line break
-\u24d8 button \u2013 button
-\u24d8 button type=submit \u2013 submit button
-\u24d8 button type=reset \u2013 reset button
-\u24d8 button type=button \u2013 button with no additional semantics
-\u24d8 canvas \u2013 canvas for dynamic graphics NEW
-\u24d8 caption \u2013 table title
-\u24d8 cite \u2013 cited title of a work CHANGED
-\u24d8 code \u2013 code fragment
-\u24d8 col \u2013 table column
-\u24d8 colgroup \u2013 table column group
-\u24d8 command \u2013 command NEW
-\u24d8 command type=command \u2013 command with an associated action NEW
-\u24d8 command type=radio \u2013 selection of one item from a list of items NEW
-\u24d8 command type=checkbox \u2013 state or option that can be toggled NEW
-\u24d8 datalist \u2013 predefined options for other controls NEW
-\u24d8 dd \u2013 description or value
-\u24d8 del \u2013 deleted text
-\u24d8 details \u2013 control for additional on-demand information NEW
-\u24d8 dfn \u2013 defining instance
-\u24d8 div \u2013 generic flow container
-\u24d8 dl \u2013 description list
-\u24d8 dt \u2013 term or name
-\u24d8 em \u2013 emphatic stress
-\u24d8 embed \u2013 integration point for plugins NEW
-\u24d8 fieldset \u2013 set of related form controls
-\u24d8 figcaption \u2013 figure caption NEW
-\u24d8 figure \u2013 figure with optional caption NEW
-\u24d8 footer \u2013 footer NEW
-\u24d8 form \u2013 user-submittable form
-\u24d8 h1 \u2013 heading
-\u24d8 h2 \u2013 heading
-\u24d8 h3 \u2013 heading
-\u24d8 h4 \u2013 heading
-\u24d8 h5 \u2013 heading
-\u24d8 h6 \u2013 heading
-\u24d8 head \u2013 document metadata container
-\u24d8 header \u2013 header NEW
-\u24d8 hgroup \u2013 heading group NEW
-\u24d8 hr \u2013 thematic break CHANGED
-\u24d8 html \u2013 root element
-\u24d8 i \u2013 offset text conventionally styled in italic CHANGED
-\u24d8 iframe \u2013 nested browsing context (inline frame)
-\u24d8 img \u2013 image
-\u24d8 input \u2013 input control CHANGED
-\u24d8 input type=text \u2013 text-input field
-\u24d8 input type=password \u2013 password-input field
-\u24d8 input type=checkbox \u2013 checkbox
-\u24d8 input type=radio \u2013 radio button
-\u24d8 input type=button \u2013 button
-\u24d8 input type=submit \u2013 submit button
-\u24d8 input type=reset \u2013 reset button
-\u24d8 input type=file \u2013 file upload control
-\u24d8 input type=hidden \u2013 hidden input control
-\u24d8 input type=image \u2013 image-coordinates input control
-\u24d8 input type=datetime \u2013 global date-and-time input control NEW
-\u24d8 input type=datetime-local \u2013 local date-and-time input control NEW
-\u24d8 input type=date \u2013 date input control NEW
-\u24d8 input type=month \u2013 year-and-month input control NEW
-\u24d8 input type=time \u2013 time input control NEW
-\u24d8 input type=week \u2013 year-and-week input control NEW
-\u24d8 input type=number \u2013 number input control NEW
-\u24d8 input type=range \u2013 imprecise number-input control NEW
-\u24d8 input type=email \u2013 e-mail address input control NEW
-\u24d8 input type=url \u2013 URL input control NEW
-\u24d8 input type=search \u2013 search field NEW
-\u24d8 input type=tel \u2013 telephone-number-input field NEW
-\u24d8 input type=color \u2013 color-well control NEW
-\u24d8 ins \u2013 inserted text
-\u24d8 kbd \u2013 user input
-\u24d8 keygen \u2013 key-pair generator/input control NEW
-\u24d8 label \u2013 caption for a form control
-\u24d8 legend \u2013 title or explanatory caption
-\u24d8 li \u2013 list item
-\u24d8 link \u2013 inter-document relationship metadata
-\u24d8 map \u2013 image-map definition
-\u24d8 mark \u2013 marked (highlighted) text NEW
-\u24d8 menu \u2013 list of commands CHANGED
-\u24d8 meta \u2013 metadata CHANGED
-\u24d8 meta name \u2013 name-value metadata
-\u24d8 meta http-equiv=refresh \u2013 \u201crefresh\u201d pragma directive
-\u24d8 meta http-equiv=default-style \u2013 \u201cpreferred stylesheet\u201d pragma directive
-\u24d8 meta charset \u2013 document character-encoding declaration NEW
-\u24d8 meta http-equiv=content-type \u2013 document character-encoding declaration
-\u24d8 meter \u2013 scalar gauge NEW
-\u24d8 nav \u2013 group of navigational links NEW
-\u24d8 noscript \u2013 fallback content for script
-\u24d8 object \u2013 generic external content
-\u24d8 ol \u2013 ordered list
-\u24d8 optgroup \u2013 group of options
-\u24d8 option \u2013 option
-\u24d8 output \u2013 result of a calculation in a form NEW
-\u24d8 p \u2013 paragraph
-\u24d8 param \u2013 initialization parameters for plugins
-\u24d8 pre \u2013 preformatted text
-\u24d8 progress \u2013 progress indicator NEW
-\u24d8 q \u2013 quoted text
-\u24d8 rp \u2013 ruby parenthesis NEW
-\u24d8 rt \u2013 ruby text NEW
-\u24d8 ruby \u2013 ruby annotation NEW
-\u24d8 s \u2013 struck text CHANGED
-\u24d8 samp \u2013 (sample) output
-\u24d8 script \u2013 embedded script
-\u24d8 section \u2013 section NEW
-\u24d8 select \u2013 option-selection form control
-\u24d8 small \u2013 small print CHANGED
-\u24d8 source \u2013 media source NEW
-\u24d8 span \u2013 generic span
-\u24d8 strong \u2013 strong importance
-\u24d8 style \u2013 style (presentation) information
-\u24d8 sub \u2013 subscript
-\u24d8 summary \u2013 summary, caption, or legend for a details control NEW
-\u24d8 sup \u2013 superscript
-\u24d8 table \u2013 table
-\u24d8 tbody \u2013 table row group
-\u24d8 td \u2013 table cell
-\u24d8 textarea \u2013 text input area
-\u24d8 tfoot \u2013 table footer row group
-\u24d8 th \u2013 table header cell
-\u24d8 thead \u2013 table heading group
-\u24d8 time \u2013 date and/or time NEW
-\u24d8 title \u2013 document title
-\u24d8 tr \u2013 table row
-\u24d8 track \u2013 supplementary media track NEW
-\u24d8 u \u2013 offset text conventionally styled with an underline CHANGED
-\u24d8 ul \u2013 unordered list
-\u24d8 var \u2013 variable or placeholder text
-\u24d8 video \u2013 video NEW
-\u24d8 wbr \u2013 line-break opportunity NEW
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/package.html
deleted file mode 100644
index 371c8c4..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/package.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!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>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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFile.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFile.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFile.java
deleted file mode 100644
index 08e78ec..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFile.java
+++ /dev/null
@@ -1,766 +0,0 @@
-/***************************************************************************************************************************
- * 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.ini;
-
-import static java.lang.reflect.Modifier.*;
-import static org.apache.juneau.ini.ConfigFileFormat.*;
-import static org.apache.juneau.ini.ConfigUtils.*;
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
-import java.beans.*;
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-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.svl.*;
-
-/**
- * Implements the API for accessing the contents of a config file.
- * <p>
- * Refer to {@link org.apache.juneau.ini} for more information.
- *
- * @author James Bognar (james.bognar@salesforce.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 class='spaced-list'>
-	 * 	<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 class='spaced-list'>
-	 * 	<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 (StringUtils.isEmpty(s) && def != 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 class='spaced-list'>
-	 * 	<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 class='spaced-list'>
-	 * 	<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 class='spaced-list'>
-	 * 	<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 class='spaced-list'>
-	 * 			<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 class='spaced-list'>
-	 * 	<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 VarResolver}.
-	 *
-	 * @param vr The {@link VarResolver} for resolving variables in values.
-	 * @return This config file wrapped in an instance of {@link ConfigFileWrapped}.
-	 */
-	public abstract ConfigFile getResolving(VarResolver vr);
-
-	/**
-	 * Returns a wrapped instance of this config file where calls to getters
-	 * 	have their values first resolved by the specified {@link VarResolverSession}.
-	 *
-	 * @param vs The {@link VarResolverSession} for resolving variables in values.
-	 * @return This config file wrapped in an instance of {@link ConfigFileWrapped}.
-	 */
-	public abstract ConfigFile getResolving(VarResolverSession vs);
-
-	/**
-	 * Returns a wrapped instance of this config file where calls to getters have their values
-	 * 	first resolved by a default {@link VarResolver}.
-	 *
-	 *  The default {@link VarResolver} is registered with the following {@link Var StringVars}:
-	 * <ul class='spaced-list'>
-	 * 	<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();
-
-	/**
-	 * @return The string var resolver associated with this config file.
-	 */
-	protected VarResolver getVarResolver() {
-		// Only ConfigFileWrapped returns a value.
-		return null;
-	}
-
-
-	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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileFormat.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileFormat.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileFormat.java
deleted file mode 100644
index 821f7d3..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileFormat.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/***************************************************************************************************************************
- * 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.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
deleted file mode 100644
index 4aaaa46..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileImpl.java
+++ /dev/null
@@ -1,747 +0,0 @@
-/***************************************************************************************************************************
- * 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.ini;
-
-import static org.apache.juneau.ini.ConfigUtils.*;
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
-import java.io.*;
-import java.nio.charset.*;
-import java.util.*;
-import java.util.concurrent.locks.*;
-
-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.svl.*;
-import org.apache.juneau.svl.vars.*;
-
-/**
- * Implementation class for {@link ConfigFile}.
- *
- * @author James Bognar (james.bognar@salesforce.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);
-					ArrayList<String> lines = new ArrayList<String>();
-					boolean canAppend = false;
-					while ((line = in.readLine()) != null) {
-						if (isSection(line)) {
-							section.addLines(null, lines.toArray(new String[lines.size()]));
-							lines.clear();
-							canAppend = false;
-							String sn = StringUtils.replaceUnicodeSequences(line.substring(line.indexOf('[')+1, line.indexOf(']')).trim());
-							section = getSection(sn, true).addHeaderComments(section.removeTrailingComments());
-						} else {
-							char c = line.isEmpty() ? 0 : line.charAt(0);
-							if ((c == ' ' || c == '\t') && canAppend && ! (isComment(line) || isAssignment(line)))
-								lines.add(lines.remove(lines.size()-1) + '\n' + line.substring(1));
-							else {
-								lines.add(line);
-								if (isAssignment(line))
-									canAppend = true;
-								else
-									canAppend = canAppend && ! (StringUtils.isEmpty(line) || isComment(line));
-							}
-						}
-					}
-					section.addLines(null, lines.toArray(new String[lines.size()]));
-					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(VarResolver vr) {
-		assertFieldNotNull(vr, "vr");
-		return new ConfigFileWrapped(this, vr);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile getResolving(VarResolverSession vs) {
-		assertFieldNotNull(vs, "vs");
-		return new ConfigFileWrapped(this, vs);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile getResolving() {
-		return getResolving(VarResolver.DEFAULT.clone().addVars(ConfigFileVar.class).setContextObject(ConfigFileVar.SESSION_config, this));
-	}
-
-	/*
-	 * 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileListener.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileListener.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileListener.java
deleted file mode 100644
index 3a1d37a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileListener.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/***************************************************************************************************************************
- * 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.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileWrapped.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileWrapped.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileWrapped.java
deleted file mode 100644
index c9175d4..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileWrapped.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/***************************************************************************************************************************
- * 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.ini;
-
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.svl.*;
-import org.apache.juneau.svl.vars.*;
-
-/**
- * Wraps an instance of {@link ConfigFileImpl} in an interface that will
- * 	automatically replace {@link VarResolver} variables.
- * <p>
- * The {@link ConfigFile#getResolving(VarResolver)} 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 (james.bognar@salesforce.com)
- */
-public final class ConfigFileWrapped extends ConfigFile {
-
-	private final ConfigFileImpl cf;
-	private final VarResolverSession vs;
-
-	ConfigFileWrapped(ConfigFileImpl cf, VarResolver vr) {
-		this.cf = cf;
-		this.vs = vr.clone()
-			.addVars(ConfigFileVar.class)
-			.setContextObject(ConfigFileVar.SESSION_config, cf)
-			.createSession();
-	}
-
-	ConfigFileWrapped(ConfigFileImpl cf, VarResolverSession vs) {
-		this.cf = cf;
-		this.vs = vs;
-	}
-
-	@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 */
-	public ConfigFile getResolving(VarResolver varResolver) {
-		assertFieldNotNull(varResolver, "vr");
-		return new ConfigFileWrapped(cf, varResolver);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile getResolving(VarResolverSession varSession) {
-		assertFieldNotNull(varSession, "vs");
-		return new ConfigFileWrapped(cf, varSession);
-	}
-
-	@Override /* ConfigFile */
-	public ConfigFile getResolving() {
-		return new ConfigFileWrapped(cf, VarResolver.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 vs.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileWritable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileWritable.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileWritable.java
deleted file mode 100644
index 1d076fa..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ini/ConfigFileWritable.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/***************************************************************************************************************************
- * 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.ini;
-
-import java.io.*;
-
-import org.apache.juneau.*;
-
-/**
- * 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";
-	}
-}


[13/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ContextFactory.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ContextFactory.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ContextFactory.java
deleted file mode 100644
index becf8f1..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ContextFactory.java
+++ /dev/null
@@ -1,1298 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import static org.apache.juneau.BeanContext.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.locks.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-
-/**
- * A factory for instantiating {@link Context} objects.
- * <p>
- * 	The hierarchy of these objects are...
- * 	<ul class='spaced-list'>
- * 		<li>{@link ContextFactory} - A thread-safe, modifiable context property store.<br>
- * 			Used to create {@link Context} objects.
- * 		<li>{@link Context} - A reusable, cachable, thread-safe, read-only context with configuration properties copied from the factory.<br>
- * 			Often used to create {@link Session} objects.
- *	 		<li>{@link Session} - A one-time-use non-thread-safe object.<br>
- * 				Used by serializers and parsers to retrieve context properties and to be used as scratchpads.
- * 	</ul>
- *
- *
- * <h6 class='topic'>ContextFactory objects</h6>
- * <p>
- * 	Context factories can be thought of as consisting of the following:
- * 	<ul class='spaced-list'>
- * 		<li>A <code>Map&lt;String,Object&gt;</code> of context properties.
- * 		<li>A <code>Map&lt;Class,Context&gt;</code> of context instances.
- * 	</ul>
- * <p>
- * 	Context factories are used to create and cache {@link Context} objects using the {@link #getContext(Class)} method.
- * <p>
- * 	As a general rule, {@link ContextFactory} objects are 'slow'.<br>
- * 	Setting and retrieving properties on a factory can involve relatively slow data conversion and synchronization.<br>
- * 	However, the {@link #getContext(Class)} method is fast, and will return cached context objects if the context properties have not changed.
- * <p>
- * 	Context factories can be used to store context properties for a variety of contexts.<br>
- * 	For example, a single factory can store context properties for the JSON serializer, XML serializer, HTML serializer
- * 	etc... and can thus be used to retrieve context objects for those serializers.<br>
- * <p>
- * 	Other notes:
- * 	<ul class='spaced-list'>
- * 		<li>Context factories can be locked using the {@link #lock()} method.<br>
- * 			This prevents the context properties from being further modified.
- * 		<li>Context factories can be cloned using the {@link #clone} method.<br>
- * 			This will return a new unlocked factory with the same context properties.
- *		</ul>
- *
- * <h6 class='topic'>Context properties</h6>
- * <p>
- * 	Context properties are 'settings' for serializers and parsers.<br>
- * 	For example, the {@link BeanContext#BEAN_sortProperties} context property defines whether
- * 	bean properties should be serialized in alphabetical order.
- * <p>
- * 	Each {@link Context} object should contain the context properties that apply to it as static
- * 	fields (e.g {@link BeanContext#BEAN_sortProperties}).
- * <p>
- * 	Context properties can be of the following types:
- * 	<ul class='spaced-list'>
- * 		<li><l>SIMPLE</l> - A simple property.<br>
- * 			Examples include:  booleans, integers, Strings, Classes, etc...<br>
- * 			<br>
- * 			An example of this would be the {@link BeanContext#BEAN_sortProperties} property.<br>
- * 			It's name is simply <js>"BeanContext.sortProperties"</js>.
- *
- * 		<li><l>SET</l> - A sorted set of objects.<br>
- * 			These are denoted by appending <js>".set"</js> to the property name.<br>
- * 			Objects can be of any type, even complex types.<br>
- * 			Sorted sets use tree sets to maintain the value in alphabetical order.<br>
- * 			<br>
- * 			For example, the {@link BeanContext#BEAN_notBeanClasses} property is used to store classes that should not be treated like beans.<br>
- * 			It's name is <js>"BeanContext.notBeanClasses.set"</js>.
- *
- * 		<li><l>LIST</l> - A list of unique objects.<br>
- * 			These are denoted by appending <js>".list"</js> to the property name.<br>
- * 			Objects can be of any type, even complex types.<br>
- * 			Use lists if the ordering of the values in the set is important (similar to how the order of entries in a classpath is important).<br>
- * 			<br>
- * 			For example, the {@link BeanContext#BEAN_transforms} property is used to store transform classes.<br>
- * 			It's name is <js>"BeanContext.transforms.list"</js>.
- *
- * 		<li><l>MAP</l> - A sorted map of key-value pairs.<br>
- * 			These are denoted by appending <js>".map"</js> to the property name.<br>
- * 			Keys can be any type directly convertable to and from Strings.
- * 			Values can be of any type, even complex types.<br>
- * 			<br>
- * 			For example, the {@link BeanContext#BEAN_implClasses} property is used to specify the names of implementation classes for interfaces.<br>
- * 			It's name is <js>"BeanContext.implClasses.map"</js>.<br>
- * 	</ul>
- * <p>
- * 	All context properties are set using the {@link #setProperty(String, Object)} method.
- * <p>
- * 	Default values for context properties can be specified globally as system properties.<br>
- * 	Example: <code>System.<jsm>setProperty</jsm>(<jsf>BEAN_sortProperties</jsf>, <jk>true</jk>);</code>
- * <p>
- * 	SET and LIST properties can be added to using the {@link #addToProperty(String, Object)} method and removed from using the {@link #removeFromProperty(String, Object)} method.
- * <p>
- * 	SET and LIST properties can also be added to and removed from by appending <js>".add"</js> or <js>".remove"</js> to the property name and using the {@link #setProperty(String, Object)} method.
- * <p>
- * 	The following shows the two different ways to append to a set or list property:
- * <p class='bcode'>
- * 	Config config = <jk>new</jk> Config().set(<js>"BeanContext.notBeanClasses.set"</js>, Collections.<jsm>emptySet</jsm>());
- *
- * 	<jc>// Append to set property using addTo().</jc>
- * 	config.addTo(<js>"BeanContext.notBeanClasses.set"</js>, MyNotBeanClass.<jk>class</jk>);
- *
- * 	<jc>// Append to set property using set().</jc>
- * 	config.set(<js>"BeanContext.notBeanClasses.set.add"</js>, MyNotBeanClass.<jk>class</jk>);
- * </p>
- * <p>
- * 	Lists are appended to the beginning of the set so that behavior can be overridden.<br>
- * <p>
- * 	For sample, the following code shows the order in which POJO transforms are applied.<br>
- * 	In this case, we want F3 and F4 to appear at the beginning of the set so that they
- * 	take precedence over F1 and F2....
- * <p class='bcode'>
- * 	<jc>// Result will be F3,F4,F1,F2</jc>
- * 	config.addTo(<js>"BeanContext.transforms.list"</js>, Arrays.<jsm>asList</jsm>(F1.<jk>class</jk>, F2.<jk>class</jk>));
- * 	config.addTo(<js>"BeanContext.transforms.list"</js>, Arrays.<jsm>asList</jsm>(F3.<jk>class</jk>,F4.<jk>class</jk>));
- * </p>
- * <p>
- * 	SET and LIST properties can also be set and manipulated using JSON strings.
- * <p class='bcode'>
- * 	ContextFactory f = ContextFactory.<jsm>create</jsm>();
- *
- * 	<jc>// Set SET value using JSON array.
- * 	f.set(<js>"BeanContext.notBeanClasses.set"</js>, <js>"['com.my.MyNotBeanClass1']"</js>);
- *
- * 	<jc>// Add to SET using simple string.
- * 	f.addTo(<js>"BeanContext.notBeanClasses.set"</js>, <js>"com.my.MyNotBeanClass2"</js>);
- *
- * 	<jc>// Add an array of values as a JSON array..
- * 	f.addTo(<js>"BeanContext.notBeanClasses.set"</js>, <js>"['com.my.MyNotBeanClass3']"</js>);
- *
- * 	<jc>// Remove an array of values as a JSON array..
- * 	f.removeFrom(<js>"BeanContext.notBeanClasses.set"</js>, <js>"['com.my.MyNotBeanClass3']"</js>);
- * </p>
- * <p>
- * 	MAP properties can be added to using the {@link #putToProperty(String, Object, Object)} and {@link #putToProperty(String, Object)} methods.<br>
- * 	MAP property entries can be removed by setting the value to <jk>null</jk> (e.g. <code>config.putTo(<js>"BEAN_implClasses"</js>, MyNotBeanClass.<jk>class</jk>, <jk>null</jk>);</code>.<br>
- * 	MAP properties can also be added to by appending <js>".put"</js> to the property name and using the {@link #setProperty(String, Object)} method.<br>
- * <p>
- * 	The following shows the two different ways to append to a set property:
- * <p class='bcode'>
- * 	ContextFactory f = ContextFactory.<jsm>create</jsm>().set(<js>"BeanContext.implClasses.map"</js>, Collections.<jsm>emptyMap</jsm>());
- *
- * 	<jc>// Append to map property using putTo().</jc>
- * 	f.putTo(<js>"BeanContext.implClasses.map"</js>, MyInterface.<jk>class</jk>, MyInterfaceImpl.<jk>class</jk>);
- *
- * 	<jc>// Append to map property using set().</jc>
- * 	Map m = <jk>new</jk> HashMap(){{put(MyInterface.<jk>class</jk>,MyInterfaceImpl.<jk>class</jk>)}};
- * 	f.set(<js>"BeanContext.implClasses.map.put"</js>, m);
- * </p>
- * <p>
- * 	MAP properties can also be set and manipulated using JSON strings.
- * <p class='bcode'>
- * 	ContextFactory f = ContextFactory.<jsm>create</jsm>();
- *
- * 	<jc>// Set MAP value using JSON object.</jc>
- * 	f.set(<js>"BeanContext.implClasses.map"</js>, <js>"{'com.my.MyInterface1':'com.my.MyInterfaceImpl1'}"</js>);
- *
- * 	<jc>// Add to MAP using JSON object.</jc>
- * 	f.putTo(<js>"BeanContext.implClasses.map"</js>, <js>"{'com.my.MyInterface2':'com.my.MyInterfaceImpl2'}"</js>);
- *
- * 	<jc>// Remove from MAP using JSON object.</jc>
- * 	f.putTo(<js>"BeanContext.implClasses.map"</js>, <js>"{'com.my.MyInterface2':null}"</js>);
- * </p>
- * <p>
- * 	Context properties are retrieved from this factory using the following 3 methods:
- * 	<ul class='spaced-list'>
- * 		<li>{@link #getProperty(String, Class, Object)} - Retrieve a SIMPLE or SET property converted to the specified class type.
- * 		<li>{@link #getMap(String, Class, Class, Map)} - Retrieve a MAP property with keys/values converted to the specified class types.
- * 		<li>{@link #getPropertyMap(String)} - Retrieve a map of all context properties with the specified prefix (e.g. <js>"BeanContext"</js> for {@link BeanContext} properties).
- * 	</ul>
- * <p>
- * 	As a general rule, only {@link Context} objects will use these read methods.
- *
- *
- * <h6 class='topic'>Context objects</h6>
- * <p>
- * 	A Context object can be thought of as unmodifiable snapshot of a factory.<br>
- * 	They should be 'fast' by avoiding synchronization by using final fields whenever possible.<br>
- * 	However, they MUST be thread safe.
- * <p>
- * 	Context objects are created using the {@link #getContext(Class)} method.<br>
- * 	As long as the properties on a factory have not been modified, the factory will return a cached copy
- * 	of a context.
- * <p class='bcode'>
- * 	ContextFactory f = ContextFactory.<jsm>create</jsm>();
- *
- * 	<jc>// Get BeanContext with default factory settings.</jc>
- * 	BeanContext bc = f.getContext(BeanContext.<jk>class</jk>);
- *
- * 	<jc>// Get another one.  This will be the same one.</jc>
- * 	BeanContext bc2 = f.getContext(BeanContext.<jk>class</jk>);
- * 	<jsm>assertTrue</jsm>(bc1 == bc2);
- *
- * 	<jc>// Set a property.</jc>
- * 	f.set(<jsf>BEAN_sortProperties</jsf>, <jk>true</jk>);
- *
- * 	<jc>// Get another one.  This will be different!</jc>
- * 	bc2 = f.getContext(BeanContext.<jk>class</jk>);
- * 	<jsm>assertFalse</jsm>(bc1 == bc2);
- * </p>
- *
- *
- * <h6 class='topic'>Session objects</h6>
- * <p>
- * 	Session objects are created through {@link Context} objects, typically through a <code>createContext()</code> method.<br>
- * 	Unlike context objects, they are NOT reusable and NOT thread safe.<br>
- * 	They are meant to be used one time and then thrown away.<br>
- * 	They should NEVER need to use synchronization.
- * <p>
- * 	Session objects are also often used as scratchpads for information such as keeping track of call stack
- * 	information to detect recursive loops when serializing beans.
- *
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class ContextFactory extends Lockable {
-
-	// All configuration properties in this object.
-	// Keys are property prefixes (e.g. 'BeanContext').
-	// Values are maps containing properties for that specific prefix.
-	private Map<String,PropertyMap> properties = new ConcurrentHashMap<String,PropertyMap>();
-
-	// Context cache.
-	// This gets cleared every time any properties change on this object.
-	private final Map<Class<? extends Context>,Context> contexts = new ConcurrentHashMap<Class<? extends Context>,Context>();
-
-	// Global Context cache.
-	// Context factories that are the 'same' will use the same maps from this cache.
-	// 'same' means the context properties are all the same when converted to strings.
-	private static final ConcurrentHashMap<ContextFactory, ConcurrentHashMap<Class<? extends Context>,Context>> globalContextCache = new ConcurrentHashMap<ContextFactory, ConcurrentHashMap<Class<? extends Context>,Context>>();
-
-	private ReadWriteLock lock = new ReentrantReadWriteLock();
-	private Lock rl = lock.readLock(), wl = lock.writeLock();
-
-	// Classloader used to instantiate Class instances.
-	ClassLoader classLoader = ClassLoader.getSystemClassLoader();
-
-	// Parser to use to convert JSON strings to POJOs
-	ReaderParser defaultParser;
-
-	// Used to keep properties in alphabetical order regardless of whether
-	// they're not strings.
-	private static Comparator<Object> PROPERTY_COMPARATOR = new Comparator<Object>() {
-		@Override
-		public int compare(Object o1, Object o2) {
-			return ContextFactory.toString(o1).compareTo(ContextFactory.toString(o2));
-		}
-	};
-
-	/**
-	 * Create a new context factory with default settings.
-	 *
-	 * @return A new context factory with default settings.
-	 */
-	public static ContextFactory create() {
-		ContextFactory f = new ContextFactory();
-		BeanContext.loadDefaults(f);
-		return f;
-	}
-
-	/**
-	 * Create a new context factory with settings copied from the specified factory.
-	 *
-	 * @param copyFrom The existing factory to copy properties from.
-	 * @return A new context factory with default settings.
-	 */
-	public static ContextFactory create(ContextFactory copyFrom) {
-		return new ContextFactory().copyFrom(copyFrom);
-	}
-
-
-	ContextFactory() {}
-
-	/**
-	 * Copy constructor.
-	 *
-	 * @param copyFrom The factory to copy properties from.
-	 */
-	public ContextFactory(ContextFactory copyFrom) {
-		copyFrom(copyFrom);
-	}
-
-	/**
-	 * Copies the properties from the specified factory into this factory.
-	 *
-	 * @param cf The factory to copy from.
-	 * @return This object (for method chaining).
-	 */
-	public ContextFactory copyFrom(ContextFactory cf) {
-		for (Map.Entry<String,PropertyMap> e : cf.properties.entrySet())
-			this.properties.put(e.getKey(), new PropertyMap(e.getValue()));
-		this.classLoader = cf.classLoader;
-		this.defaultParser = cf.defaultParser;
-		return this;
-	}
-
-	/**
-	 * Sets a configuration property value on this object.
-	 * <p>
-	 * 	A typical usage is to set or overwrite configuration values like so...
-	 * <p class='bcode'>
-	 * 	ContextFactory g = ContextFactory.<jsm>create</jsm>();
-	 * 	f.setProperty(<jsf>BEAN_sortProperties</jsf>, <jk>true</jk>);
-	 * </p>
-	 * <p>
-	 * 	The possible class types of the value depend on the property type:
-	 * <p>
-	 * <table class='styled'>
-	 * 	<tr>
-	 * 		<th>Property type</th>
-	 * 		<th>Example</th>
-	 * 		<th>Allowed value type</th>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td>Set <l>SIMPLE</l></td>
-	 * 		<td><js>"Foo.x"</js></td>
-	 * 		<td>Any object type.</td>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td>Set <l>SET/LIST</l></td>
-	 * 		<td><js>"Foo.x.set"</js></td>
-	 * 		<td>Any collection or array of any objects, or a String containing a JSON array.</td>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td>Add/Remove <l>SET/LIST</l></td>
-	 * 		<td><js>"Foo.x.set.add"</js></td>
-	 * 		<td>If a collection, adds or removes the entries in the collection.  Otherwise, adds/removes a single entry.</td>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td>Set <l>MAP</l></td>
-	 * 		<td><js>"Foo.x.map"</js></td>
-	 * 		<td>A map, or a String containing a JSON object.  Entries overwrite existing map.</td>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td>Put <l>MAP</l></td>
-	 * 		<td><js>"Foo.x.map.put"</js></td>
-	 * 		<td>A map, or a String containing a JSON object.  Entries are added to existing map.</td>
-	 * 	</tr>
-	 * </table>
-	 *
-	 * @param name The configuration property name.<br>
-	 * 	If name ends with <l>.add</l>, then the specified value is added to the
-	 * 		existing property value as an entry in a SET or LIST property.<br>
-	 * 	If name ends with <l>.put</l>, then the specified value is added to the
-	 * 		existing property value as a key/value pair in a MAP property.<br>
-	 * 	If name ends with <l>.remove</l>, then the specified value is removed from the
-	 * 		existing property property value in a SET or LIST property.<br>
-	 *
-	 * @param value The new value.
-	 * 	If <jk>null</jk>, the property value is deleted.<br>
-	 * 	In general, the value type can be anything.<br>
-	 *
-	 * @return This object (for method chaining).
-	 */
-	public ContextFactory setProperty(String name, Object value) {
-		String prefix = prefix(name);
-
-		if (name.endsWith(".add"))
-			return addToProperty(name.substring(0, name.lastIndexOf('.')), value);
-
-		if (name.endsWith(".put"))
-			return putToProperty(name.substring(0, name.lastIndexOf('.')), value);
-
-		if (name.endsWith(".remove"))
-			return removeFromProperty(name.substring(0, name.lastIndexOf('.')), value);
-
-		wl.lock();
-		try {
-			checkLock();
-			contexts.clear();
-			if (! properties.containsKey(prefix))
-				properties.put(prefix, new PropertyMap(prefix));
-			properties.get(prefix).set(name, value);
-		} finally {
-			wl.unlock();
-		}
-		return this;
-	}
-
-	/**
-	 * Convenience method for setting multiple properties in one call.
-	 * <p>
-	 * This appends to any previous configuration properties set on this config.
-	 *
-	 * @param newProperties The new properties to set.
-	 * @return This object (for method chaining).
-	 */
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	public ContextFactory setProperties(Map newProperties) {
-		wl.lock();
-		try {
-			checkLock();
-			contexts.clear();
-			for (Map.Entry e : (Set<Map.Entry>)newProperties.entrySet()) {
-				String name = e.getKey().toString();
-				Object value = e.getValue();
-				String prefix = prefix(name);
-				if (name.endsWith(".add"))
-					addToProperty(name.substring(0, name.lastIndexOf('.')), value);
-				else if (name.endsWith(".remove"))
-					removeFromProperty(name.substring(0, name.lastIndexOf('.')), value);
-				else {
-					if (! properties.containsKey(prefix))
-						properties.put(prefix, new PropertyMap(prefix));
-					properties.get(prefix).set(name, value);
-				}
-			}
-
-		} finally {
-			wl.unlock();
-		}
-		return this;
-	}
-
-	/**
-	 * Adds a value to a SET property.
-	 *
-	 * @param name The property name.
-	 * @param value The new value to add to the SET property.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a SET property.
-	 */
-	public ContextFactory addToProperty(String name, Object value) {
-		String prefix = prefix(name);
-		wl.lock();
-		try {
-			checkLock();
-			contexts.clear();
-			if (! properties.containsKey(prefix))
-				properties.put(prefix, new PropertyMap(prefix));
-			properties.get(prefix).addTo(name, value);
-		} finally {
-			wl.unlock();
-		}
-		return this;
-	}
-
-	/**
-	 * Adds or overwrites a value to a MAP property.
-	 *
-	 * @param name The property name.
-	 * @param key The property value map key.
-	 * @param value The property value map value.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a MAP property.
-	 */
-	public ContextFactory putToProperty(String name, Object key, Object value) {
-		String prefix = prefix(name);
-		wl.lock();
-		try {
-			checkLock();
-			contexts.clear();
-			if (! properties.containsKey(prefix))
-				properties.put(prefix, new PropertyMap(prefix));
-			properties.get(prefix).putTo(name, key, value);
-		} finally {
-			wl.unlock();
-		}
-		return this;
-	}
-
-	/**
-	 * Adds or overwrites a value to a MAP property.
-	 *
-	 * @param name The property value.
-	 * @param value The property value map value.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a MAP property.
-	 */
-	public ContextFactory putToProperty(String name, Object value) {
-		String prefix = prefix(name);
-		wl.lock();
-		try {
-			checkLock();
-			contexts.clear();
-			if (! properties.containsKey(prefix))
-				properties.put(prefix, new PropertyMap(prefix));
-			properties.get(prefix).putTo(name, value);
-		} finally {
-			wl.unlock();
-		}
-		return this;
-	}
-
-	/**
-	 * Removes a value from a SET property.
-	 *
-	 * @param name The property name.
-	 * @param value The property value in the SET property.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a SET property.
-	 */
-	public ContextFactory removeFromProperty(String name, Object value) {
-		String prefix = prefix(name);
-		wl.lock();
-		try {
-			checkLock();
-			contexts.clear();
-			if (properties.containsKey(prefix))
-				properties.get(prefix).removeFrom(name, value);
-		} finally {
-			wl.unlock();
-		}
-		return this;
-	}
-
-	/**
-	 * Returns an instance of the specified context initialized with the properties
-	 * 	in this config.
-	 * <p>
-	 * 	Multiple calls to this method for the same config class will return the same
-	 * 	cached value as long as the config properties on this config are not touched.
-	 * <p>
-	 * 	As soon as any properties are modified on this config, all cached entries
-	 * 	are discarded and recreated as needed.
-	 *
-	 * @param c The context class to instantiate.
-	 * @return The context instance.
-	 */
-	@SuppressWarnings("unchecked")
-	public <T extends Context> T getContext(Class<T> c) {
-		rl.lock();
-		try {
-			try {
-				if (! contexts.containsKey(c)) {
-
-					// Try to get it from the global cache.
-					if (! globalContextCache.containsKey(this))
-						globalContextCache.putIfAbsent(clone(), new ConcurrentHashMap<Class<? extends Context>,Context>());
-					ConcurrentHashMap<Class<? extends Context>, Context> cacheForThisConfig = globalContextCache.get(this);
-
-					if (! cacheForThisConfig.containsKey(c))
-						cacheForThisConfig.putIfAbsent(c, c.getConstructor(ContextFactory.class).newInstance(this));
-
-					contexts.put(c, cacheForThisConfig.get(c));
-				}
-				return (T)contexts.get(c);
-			} catch (Exception e) {
-				throw new ConfigException("Could not instantiate config class ''{0}''", className(c)).initCause(e);
-			}
-		} finally {
-			rl.unlock();
-		}
-	}
-
-	/**
-	 * Returns the configuration properties with the specified prefix.
-	 * <p>
-	 * 	For example, if <l>prefix</l> is <js>"BeanContext"</js>, then retrieves
-	 * 	all configuration properties that are prefixed with <js>"BeanContext."</js>.
-	 *
-	 * @param prefix The prefix of properties to retrieve.
-	 * @return The configuration properties with the specified prefix, never <jk>null</jk>.
-	 */
-	public PropertyMap getPropertyMap(String prefix) {
-		rl.lock();
-		try {
-			PropertyMap m = properties.get(prefix);
-			return m == null ? new PropertyMap(prefix) : m;
-		} finally {
-			rl.unlock();
-		}
-	}
-
-	/**
-	 * Specifies the classloader to use when resolving classes from strings.
-	 * <p>
-	 * 	Can be used for resolving class names when the classes being created are in a different
-	 * 	classloader from the Juneau code.
-	 * <p>
-	 * 	If <jk>null</jk>, the system classloader 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 ContextFactory setClassLoader(ClassLoader classLoader) {
-		checkLock();
-		this.classLoader = (classLoader == null ? ClassLoader.getSystemClassLoader() : classLoader);
-		return this;
-	}
-
-	/**
-	 * Specifies the parser to use to convert Strings to POJOs.
-	 * <p>
-	 * 	If <jk>null</jk>, {@link JsonParser#DEFAULT} will be used.
-	 *
-	 * @param defaultParser The new defaultParser.
-	 * @throws LockedException If {@link #lock()} was called on this object.
-	 * @return This object (for method chaining).
-	 */
-	public ContextFactory setDefaultParser(ReaderParser defaultParser) {
-		checkLock();
-		this.defaultParser = defaultParser == null ? JsonParser.DEFAULT : defaultParser;
-		return this;
-	}
-
-	/**
-	 * Returns a property value converted to the specified type.
-	 *
-	 * @param name The full name of the property (e.g. <js>"BeanContext.sortProperties"</js>)
-	 * @param type The class type to convert the property value to.
-	 * @param def The default value if the property is not set.
-	 *
-	 * @return The property value.
-	 * @throws ConfigException - If property has a value that cannot be converted to a boolean.
-	 */
-	public <T> T getProperty(String name, Class<T> type, T def) {
-		rl.lock();
-		try {
-			PropertyMap pm = getPropertyMap(prefix(name));
-			if (pm != null)
-				return pm.get(name, type, def);
-			String s = System.getProperty(name);
-			if (! StringUtils.isEmpty(s))
-				return BeanContext.DEFAULT.convertToType(s, type);
-			return def;
-		} finally {
-			rl.unlock();
-		}
-	}
-
-	/**
-	 * Returns a property value converted to a {@link LinkedHashMap} with the specified
-	 * 	key and value types.
-	 *
-	 * @param name The full name of the property (e.g. <js>"BeanContext.sortProperties"</js>)
-	 * @param keyType The class type of the keys in the map.
-	 * @param valType The class type of the values in the map.
-	 * @param def The default value if the property is not set.
-	 *
-	 * @return The property value.
-	 * @throws ConfigException - If property has a value that cannot be converted to a boolean.
-	 */
-	public <K,V> Map<K,V> getMap(String name, Class<K> keyType, Class<V> valType, Map<K,V> def) {
-		rl.lock();
-		try {
-			PropertyMap pm = getPropertyMap(prefix(name));
-			if (pm != null)
-				return pm.getMap(name, keyType, valType, def);
-			return def;
-		} finally {
-			rl.unlock();
-		}
-	}
-
-	//-------------------------------------------------------------------------------------
-	// Convenience methods.
-	//-------------------------------------------------------------------------------------
-
-	/**
-	 * Shortcut for calling <code>getContext(BeanContext.<jk>class</jk>);</code>.
-	 *
-	 * @return The bean context instance.
-	 */
-	public BeanContext getBeanContext() {
-		return getContext(BeanContext.class);
-	}
-
-	/**
-	 * Shortcut for calling <code>addTo(<jsf>BEAN_notBeanClasses</jsf>, <jf>classes</jf>)</code>.
-	 *
-	 * @see ContextFactory#addToProperty(String,Object)
-	 * @param classes The new setting value for the bean context.
-	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
-	 * @return This object (for method chaining).
-	 * @see ContextFactory#addToProperty(String, Object)
-	 * @see BeanContext#BEAN_notBeanClasses
-	 */
-	public ContextFactory addNotBeanClasses(Class<?>...classes) throws LockedException {
-		checkLock();
-		addToProperty(BEAN_notBeanClasses, classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>addTo(<jsf>BEAN_transforms</jsf>, <jf>classes</jf>)</code>.
-	 *
-	 * @param classes The new setting value for the bean context.
-	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
-	 * @return This object (for method chaining).
-	 * @see ContextFactory#addToProperty(String, Object)
-	 * @see BeanContext#BEAN_transforms
-	 */
-	public ContextFactory addTransforms(Class<?>...classes) throws LockedException {
-		checkLock();
-		addToProperty(BEAN_transforms, classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>putTo(<jsf>BEAN_implCLasses</jsf>, <jf>interfaceClass</jf>, <jf>implClass</jf>)</code>.
-	 *
-	 * @param interfaceClass The interface class.
-	 * @param implClass The implementation class.
-	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
-	 * @param <T> The class type of the interface.
-	 * @return This object (for method chaining).
-	 * @see ContextFactory#putToProperty(String, Object, Object)
-	 * @see BeanContext#BEAN_implClasses
-	 */
-	public <T> ContextFactory addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		checkLock();
-		putToProperty(BEAN_implClasses, interfaceClass, implClass);
-		return this;
-	}
-
-
-	//-------------------------------------------------------------------------------------
-	// Object methods.
-	//-------------------------------------------------------------------------------------
-
-	@Override /* Object */
-	public int hashCode() {
-		return this.properties.hashCode();
-	}
-
-	@Override /* Object */
-	public boolean equals(Object o) {
-		if (o instanceof ContextFactory) {
-			ContextFactory c = (ContextFactory)o;
-			return c.properties.equals(properties);
-		}
-		return false;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Utility classes and methods.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Contains all the properties for a particular property prefix (e.g. <js>'BeanContext'</js>)
-	 * <p>
-	 * 	Instances of this map are immutable from outside this class.
-	 * <p>
-	 * 	The {@link PropertyMap#hashCode()} and {@link PropertyMap#equals(Object)} methods
-	 * 	can be used to compare with other property maps.
-	 *
-	 * @author James Bognar (james.bognar@salesforce.com)
-	 */
-	@SuppressWarnings("hiding")
-	public class PropertyMap {
-
-		private Map<String,Property> map = new ConcurrentSkipListMap<String,Property>();
-		volatile int hashCode = 0;
-		ReadWriteLock lock = new ReentrantReadWriteLock();
-		Lock rl = lock.readLock(), wl = lock.writeLock();
-
-		private PropertyMap(String prefix) {
-			prefix = prefix + '.';
-			Properties p = System.getProperties();
-			for (Map.Entry<Object,Object> e : p.entrySet())
-				if (e.getKey().toString().startsWith(prefix))
-					set(e.getKey().toString(), e.getValue());
-		}
-
-		/**
-		 * Copy constructor.
-		 */
-		private PropertyMap(PropertyMap orig) {
-			for (Map.Entry<String,Property> e : orig.map.entrySet())
-				this.map.put(e.getKey(), Property.create(e.getValue().name, e.getValue().value()));
-		}
-
-		/**
-		 * Returns the specified property as the specified class type.
-		 *
-		 * @param name The property name.
-		 * @param type The type of object to convert the value to.
-		 * @param def The default value if the specified property is not set.
-		 *
-		 * @return The property value.
-		 */
-		public <T> T get(String name, Class<T> type, T def) {
-			rl.lock();
-			try {
-				Property p = map.get(name);
-				if (p == null || type == null)
-					return def;
-				try {
-					if (BeanContext.DEFAULT == null)
-						return def;
-					return BeanContext.DEFAULT.convertToType(p.value, type);
-				} catch (InvalidDataConversionException e) {
-					throw new ConfigException("Could not retrieve config property ''{0}''.  {1}", p.name, e.getMessage());
-				}
-			} finally {
-				rl.unlock();
-			}
-		}
-
-		/**
-		 * Returns the specified property as a map with the specified key and value types.
-		 * <p>
-		 * The map returned is an instance of {@link LinkedHashMap}.
-		 *
-		 * @param name The property name.
-		 * @param keyType The class type of the keys of the map.
-		 * @param valueType The class type of the values of the map.
-		 * @param def The default value if the specified property is not set.
-		 *
-		 * @return The property value.
-		 */
-		@SuppressWarnings("unchecked")
-		public <K,V> Map<K,V> getMap(String name, Class<K> keyType, Class<V> valueType, Map<K,V> def) {
-			rl.lock();
-			try {
-				Property p = map.get(name);
-				if (p == null || keyType == null || valueType == null)
-					return def;
-				try {
-					BeanContext bc = BeanContext.DEFAULT;
-					if (bc != null)
-						return (Map<K,V>)bc.convertToType(p.value, bc.getMapClassMeta(LinkedHashMap.class, keyType, valueType));
-					return def;
-				} catch (InvalidDataConversionException e) {
-					throw new ConfigException("Could not retrieve config property ''{0}''.  {1}", p.name, e.getMessage());
-				}
-			} finally {
-				rl.unlock();
-			}
-		}
-
-		/**
-		 * Convenience method for returning all values in this property map as a simple map.
-		 * <p>
-		 * Primarily useful for debugging.
-		 *
-		 * @return A new {@link LinkedHashMap} with all values in this property map.
-		 */
-		public Map<String,Object> asMap() {
-			rl.lock();
-			try {
-				Map<String,Object> m = new LinkedHashMap<String,Object>();
-				for (Property p : map.values())
-					m.put(p.name, p.value);
-				return m;
-			} finally {
-				rl.unlock();
-			}
-		}
-
-		private void set(String name, Object value) {
-			wl.lock();
-			hashCode = 0;
-			try {
-				if (value == null)
-					map.remove(name);
-				else
-					map.put(name, Property.create(name, value));
-			} finally {
-				wl.unlock();
-			}
-		}
-
-		private void addTo(String name, Object value) {
-			wl.lock();
-			hashCode = 0;
-			try {
-				if (! map.containsKey(name))
-					map.put(name, Property.create(name, Collections.emptyList()));
-				map.get(name).add(value);
-			} finally {
-				wl.unlock();
-			}
-		}
-
-		private void putTo(String name, Object key, Object value) {
-			wl.lock();
-			hashCode = 0;
-			try {
-				if (! map.containsKey(name))
-					map.put(name, Property.create(name, Collections.emptyMap()));
-				map.get(name).put(key, value);
-			} finally {
-				wl.unlock();
-			}
-		}
-
-		private void putTo(String name, Object value) {
-			wl.lock();
-			hashCode = 0;
-			try {
-				if (! map.containsKey(name))
-					map.put(name, Property.create(name, Collections.emptyMap()));
-				map.get(name).put(value);
-			} finally {
-				wl.unlock();
-			}
-		}
-
-		private void removeFrom(String name, Object value) {
-			wl.lock();
-			hashCode = 0;
-			try {
-				if (map.containsKey(name))
-					map.get(name).remove(value);
-			} finally {
-				wl.unlock();
-			}
-		}
-
-		@Override
-		public int hashCode() {
-			rl.lock();
-			try {
-				if (hashCode == 0) {
-					HashCode c = HashCode.create();
-					for (Property p : map.values())
-						c.add(p);
-					this.hashCode = c.get();
-				}
-				return hashCode;
-			} finally {
-				rl.unlock();
-			}
-		}
-
-		@Override
-		public boolean equals(Object o) {
-			rl.lock();
-			try {
-				if (o instanceof PropertyMap) {
-					PropertyMap m = (PropertyMap)o;
-					if (m.hashCode() != hashCode())
-						return false;
-					return this.map.equals(m.map);
-				}
-				return false;
-			} finally {
-				rl.unlock();
-			}
-		}
-
-		@Override
-		public String toString() {
-			ObjectMap m = new ObjectMap();
-			m.put("id", System.identityHashCode(this));
-			m.put("hashcode", hashCode());
-			m.put("values", map);
-			return JsonSerializer.DEFAULT_LAX.toString(m);
-		}
-	}
-
-	private abstract static class Property implements Comparable<Property> {
-		private final String name, type;
-		private final Object value;
-
-		private static Property create(String name, Object value) {
-			if (name.endsWith(".set"))
-				return new SetProperty(name, value);
-			else if (name.endsWith(".list"))
-				return new ListProperty(name, value);
-			else if (name.endsWith(".map"))
-				return new MapProperty(name, value);
-			return new SimpleProperty(name, value);
-		}
-
-		Property(String name, String type, Object value) {
-			this.name = name;
-			this.type = type;
-			this.value = value;
-		}
-
-		void add(Object val) {
-			throw new ConfigException("Cannot add value {0} ({1}) to property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), ClassUtils.getReadableClassNameForObject(val), name, type);
-		}
-
-		void remove(Object val) {
-			throw new ConfigException("Cannot remove value {0} ({1}) from property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), ClassUtils.getReadableClassNameForObject(val), name, type);
-		}
-
-		void put(Object val) {
-			throw new ConfigException("Cannot put value {0} ({1}) to property ''{2}'' ({3}).", JsonSerializer.DEFAULT_LAX.toString(val), ClassUtils.getReadableClassNameForObject(val), name, type);
-		}
-
-		void put(Object key, Object val) {
-			throw new ConfigException("Cannot put value {0}({1})->{2}({3}) to property ''{4}'' ({5}).", JsonSerializer.DEFAULT_LAX.toString(key), ClassUtils.getReadableClassNameForObject(key), JsonSerializer.DEFAULT_LAX.toString(val), ClassUtils.getReadableClassNameForObject(val), name, type);
-		}
-
-		protected Object value() {
-			return value;
-		}
-
-		@Override /* Object */
-		public int hashCode() {
-			HashCode c = HashCode.create().add(name);
-			if (value instanceof Map) {
-				for (Map.Entry<?,?> e : ((Map<?,?>)value).entrySet())
-					c.add(ContextFactory.toString(e.getKey())).add(ContextFactory.toString(e.getValue()));
-			} else if (value instanceof Collection) {
-				for (Object o : (Collection<?>)value)
-					c.add(ContextFactory.toString(o));
-			} else {
-				c.add(ContextFactory.toString(value));
-			}
-			return c.get();
-		}
-
-		@Override /* Object */
-		public boolean equals(Object o) {
-			if (o instanceof Property) {
-				Property p = (Property)o;
-				return ContextFactory.same(value, p.value);
-			}
-			return false;
-		}
-
-		@Override
-		public int compareTo(Property p) {
-			return name.compareTo(p.name);
-		}
-
-		@Override
-		public String toString() {
-			return JsonSerializer.DEFAULT_LAX.toString(value);
-		}
-	}
-
-	private static class SimpleProperty extends Property {
-
-		SimpleProperty(String name, Object value) {
-			super(name, "SIMPLE", value);
-		}
-	}
-
-	@SuppressWarnings({"unchecked"})
-	private static class SetProperty extends Property {
-		private final Set<Object> value;
-
-		private SetProperty(String name, Object value) {
-			super(name, "SET", new ConcurrentSkipListSet<Object>(PROPERTY_COMPARATOR));
-			this.value = (Set<Object>)value();
-			add(value);
-		}
-
-		@Override
-		void add(Object val) {
-			if (val.getClass().isArray())
-				for (int i = 0; i < Array.getLength(val); i++)
-					add(Array.get(val, i));
-			else if (val instanceof Collection)
-				for (Object o : (Collection<Object>)val)
-					add(o);
-			else {
-				String s = val.toString();
-				if (s.startsWith("[") && s.endsWith("]")) {
-					try {
-						add(new ObjectList(s));
-						return;
-					} catch (Exception e) {}
-				}
-				for (Object o : value)
-					if (same(val, o))
-						return;
-				value.add(val);
-			}
-		}
-
-		@Override
-		void remove(Object val) {
-			if (val.getClass().isArray())
-				for (int i = 0; i < Array.getLength(val); i++)
-					remove(Array.get(val, i));
-			else if (val instanceof Collection)
-				for (Object o : (Collection<Object>)val)
-					remove(o);
-			else {
-				String s = val.toString();
-				if (s.startsWith("[") && s.endsWith("]")) {
-					try {
-						remove(new ObjectList(s));
-						return;
-					} catch (Exception e) {}
-				}
-				for (Iterator<Object> i = value.iterator(); i.hasNext();)
-					if (same(i.next(), val))
-						i.remove();
-			}
-		}
-	}
-
-	@SuppressWarnings({"unchecked"})
-	private static class ListProperty extends Property {
-		private final LinkedList<Object> value;
-
-		private ListProperty(String name, Object value) {
-			super(name, "LIST", new LinkedList<Object>());
-			this.value = (LinkedList<Object>)value();
-			add(value);
-		}
-
-		@Override
-		void add(Object val) {
-			if (val.getClass().isArray()) {
-				for (int i = Array.getLength(val) - 1; i >= 0; i--)
-					add(Array.get(val, i));
-			} else if (val instanceof List) {
-				List<Object> l = (List<Object>)val;
-				for (ListIterator<Object> i = l.listIterator(l.size()); i.hasPrevious();)
-					add(i.previous());
-			} else if (val instanceof Collection) {
-				List<Object> l = new ArrayList<Object>((Collection<Object>)val);
-				for (ListIterator<Object> i = l.listIterator(l.size()); i.hasPrevious();)
-					add(i.previous());
-			} else {
-				String s = val.toString();
-				if (s.startsWith("[") && s.endsWith("]")) {
-					try {
-						add(new ObjectList(s));
-						return;
-					} catch (Exception e) {}
-				}
-				for (Iterator<Object> i = value.iterator(); i.hasNext(); )
-					if (same(val, i.next()))
-						i.remove();
-				value.addFirst(val);
-			}
-		}
-
-		@Override
-		void remove(Object val) {
-			if (val.getClass().isArray())
-				for (int i = 0; i < Array.getLength(val); i++)
-					remove(Array.get(val, i));
-			else if (val instanceof Collection)
-				for (Object o : (Collection<Object>)val)
-					remove(o);
-			else {
-				String s = val.toString();
-				if (s.startsWith("[") && s.endsWith("]")) {
-					try {
-						remove(new ObjectList(s));
-						return;
-					} catch (Exception e) {}
-				}
-				for (Iterator<Object> i = value.iterator(); i.hasNext();)
-					if (same(i.next(), val))
-						i.remove();
-			}
-		}
-	}
-
-	@SuppressWarnings({"unchecked","rawtypes"})
-	private static class MapProperty extends Property {
-		final Map<Object,Object> value;
-
-		MapProperty(String name, Object value) {
-			// ConcurrentSkipListMap doesn't support Map.Entry.remove(), so use TreeMap instead.
-			super(name, "MAP", Collections.synchronizedMap(new TreeMap<Object,Object>(PROPERTY_COMPARATOR)));
-			this.value = (Map<Object,Object>)value();
-			put(value);
-		}
-
-		@Override
-		void put(Object val) {
-			try {
-				if (BeanContext.DEFAULT != null && ! (val instanceof Map))
-					val = BeanContext.DEFAULT.convertToType(val, Map.class);
-				if (val instanceof Map) {
-					Map m = (Map)val;
-					for (Map.Entry e : (Set<Map.Entry>)m.entrySet())
-						put(e.getKey(), e.getValue());
-					return;
-				}
-			} catch (Exception e) {}
-			super.put(val);
-		}
-
-		@Override
-		void put(Object key, Object val) {
-			// ConcurrentSkipListMap doesn't support Map.Entry.remove().
-			for (Map.Entry<Object,Object> e : value.entrySet()) {
-				if (same(e.getKey(), key)) {
-					e.setValue(val);
-					return;
-				}
-			}
-			value.put(key, val);
-		}
-	}
-
-	private static String toString(Object o) {
-		if (o instanceof Class)
-			return ((Class<?>)o).getName();
-		return o.toString();
-	}
-
-	/*
-	 * Compares two objects for "string"-equality.
-	 * Basically mean both objects are equal if they're the same when converted to strings.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private static boolean same(Object o1, Object o2) {
-		if (o1 == o2)
-			return true;
-		if (o1 instanceof Map) {
-			if (o2 instanceof Map) {
-				Map m1 = (Map)o1, m2 = (Map)o2;
-				if (m1.size() == m2.size()) {
-					Set<Map.Entry> s1 = m1.entrySet(), s2 = m2.entrySet();
-					for (Iterator<Map.Entry> i1 = s1.iterator(), i2 = s2.iterator(); i1.hasNext();) {
-						Map.Entry e1 = i1.next(), e2 = i2.next();
-						if (! same(e1.getKey(), e2.getKey()))
-							return false;
-						if (! same(e1.getValue(), e2.getValue()))
-							return false;
-					}
-					return true;
-				}
-			}
-			return false;
-		} else if (o1 instanceof Collection) {
-			if (o2 instanceof Collection) {
-				Collection c1 = (Collection)o1, c2 = (Collection)o2;
-				if (c1.size() == c2.size()) {
-					for (Iterator i1 = c1.iterator(), i2 = c2.iterator(); i1.hasNext();) {
-						if (! same(i1.next(), i2.next()))
-							return false;
-					}
-					return true;
-				}
-			}
-			return false;
-		} else {
-			return ContextFactory.toString(o1).equals(ContextFactory.toString(o2));
-		}
-	}
-
-	private String prefix(String name) {
-		if (name == null)
-			throw new ConfigException("Invalid property name specified: 'null'");
-		if (name.indexOf('.') == -1)
-			return "";
-		return name.substring(0, name.indexOf('.'));
-	}
-
-	private String className(Object o) {
-		if (o == null)
-			return null;
-		if (o instanceof Class)
-			return ClassUtils.getReadableClassName((Class<?>)o);
-		return ClassUtils.getReadableClassName(o.getClass());
-	}
-
-	@Override /* Object */
-	public String toString() {
-		rl.lock();
-		try {
-			ObjectMap m = new ObjectMap();
-			m.put("id", System.identityHashCode(this));
-			m.put("hashCode", hashCode());
-			m.put("properties.id", System.identityHashCode(properties));
-			m.put("contexts.id", System.identityHashCode(contexts));
-			m.put("properties", properties);
-			m.put("contexts", contexts);
-			return m.toString();
-		} finally {
-			rl.unlock();
-		}
-	}
-
-	/**
-	 * Creates an unlocked clone of this object.
-	 *
-	 * @throws CloneNotSupportedException If class cannot be cloned.
-	 */
-	@Override /* Object */
-	public ContextFactory clone() throws CloneNotSupportedException {
-		rl.lock();
-		try {
-			return new ContextFactory(this);
-		} finally {
-			rl.unlock();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/CoreApi.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/CoreApi.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/CoreApi.java
deleted file mode 100644
index 34e6429..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/CoreApi.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-/**
- * Common super class for all core-API serializers, parsers, and serializer/parser groups.
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * Maintains an inner {@link ContextFactory} 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 ContextFactory} 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 (james.bognar@salesforce.com)
- */
-public abstract class CoreApi extends Lockable {
-
-	private ContextFactory contextFactory = ContextFactory.create();
-	private BeanContext beanContext;
-
-	/**
-	 * Returns the {@link ContextFactory} object associated with this class.
-	 * <p>
-	 * The context factory stores all configuration properties for this class.
-	 * Adding/modifying properties on this factory will alter the behavior of this object.
-	 * <p>
-	 * Calling the {@link ContextFactory#lock()} method on the returned object will prevent
-	 * 	any further modifications to the configuration for this object
-	 * 	ANY ANY OTHERS THAT SHARE THE SAME FACTORY!.
-	 * Note that calling the {@link #lock()} method on this class will only
-	 * 	lock the configuration for this particular instance of the class.
-	 *
-	 * @return The context factory associated with this object.
-	 */
-	public ContextFactory getContextFactory() {
-		return contextFactory;
-	}
-
-	/**
-	 * Returns the bean context to use for this class.
-	 *
-	 * @return The bean context object.
-	 */
-	public BeanContext getBeanContext() {
-		if (beanContext == null)
-			return contextFactory.getContext(BeanContext.class);
-		return beanContext;
-	}
-
-	/**
-	 * Creates a {@link Context} class instance of the specified type.
-	 *
-	 * @param contextClass The class instance to create.
-	 * @return A context class instance of the specified type.
-	 */
-	protected final <T extends Context> T getContext(Class<T> contextClass) {
-		return contextFactory.getContext(contextClass);
-	}
-
-	/**
-	 * Shortcut for calling <code>getContextFactory().setProperty(<jf>property</jf>, <jf>value</jf>);</code>.
-	 *
-	 * @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 or {@link ContextFactory} object.
-	 * @see ContextFactory#setProperty(String, Object)
-	 */
-	public CoreApi setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		contextFactory.setProperty(property, value);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getContextFactory().setProperties(<jf>properties</jf>);</code>.
-	 *
-	 * @param properties The properties to set on this class.
-	 * @return This class (for method chaining).
-	 * @throws LockedException If {@link #lock()} has been called on this object.
-	 * @see ContextFactory#setProperties(java.util.Map)
-	 */
-	public CoreApi setProperties(ObjectMap properties) throws LockedException {
-		checkLock();
-		contextFactory.setProperties(properties);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getContextFactory().addNotBeanClasses(<jf>classes</jf>)</code>.
-	 *
-	 * @see ContextFactory#addToProperty(String,Object)
-	 * @param classes The new setting value for the bean context.
-	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
-	 * @return This object (for method chaining).
-	 * @see ContextFactory#addToProperty(String, Object)
-	 * @see BeanContext#BEAN_notBeanClasses
-	 */
-	public CoreApi addNotBeanClasses(Class<?>...classes) throws LockedException {
-		checkLock();
-		contextFactory.addNotBeanClasses(classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getContextFactory().addTransforms(<jf>classes</jf>)</code>.
-	 *
-	 * @param classes The new setting value for the bean context.
-	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
-	 * @return This object (for method chaining).
-	 * @see ContextFactory#addToProperty(String, Object)
-	 * @see BeanContext#BEAN_transforms
-	 */
-	public CoreApi addTransforms(Class<?>...classes) throws LockedException {
-		checkLock();
-		contextFactory.addTransforms(classes);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getContextFactory().addImplClass(<jf>interfaceClass</jf>, <jf>implClass</jf>)</code>.
-	 *
-	 * @param interfaceClass The interface class.
-	 * @param implClass The implementation class.
-	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
-	 * @param <T> The class type of the interface.
-	 * @return This object (for method chaining).
-	 * @see ContextFactory#putToProperty(String, Object, Object)
-	 * @see BeanContext#BEAN_implClasses
-	 */
-	public <T> CoreApi addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		checkLock();
-		contextFactory.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling <code>getContextFactory().setClassLoader(<jf>classLoader</jf>)</code>.
-	 *
-	 * @param classLoader The new classloader.
-	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
-	 * @return This object (for method chaining).
-	 * @see ContextFactory#setClassLoader(ClassLoader)
-	 */
-	public CoreApi setClassLoader(ClassLoader classLoader) throws LockedException {
-		checkLock();
-		contextFactory.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() {
-		try {
-			super.lock();
-			contextFactory = contextFactory.clone();
-			contextFactory.lock();
-			beanContext = contextFactory.getContext(BeanContext.class);
-			return this;
-		} catch (CloneNotSupportedException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	@Override /* Lockable */
-	public CoreApi clone() throws CloneNotSupportedException {
-		CoreApi c = (CoreApi)super.clone();
-		c.contextFactory = ContextFactory.create(contextFactory);
-		c.beanContext = null;
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/Delegate.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/Delegate.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/Delegate.java
deleted file mode 100644
index dff2d66..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/Delegate.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-/**
- * 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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/FormattedException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/FormattedException.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/FormattedException.java
deleted file mode 100644
index add0a79..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/FormattedException.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import java.text.*;
-
-/**
- * Subclass of non-runtime exceptions that take in a message and zero or more arguments.
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class FormattedException extends Exception {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param message The {@link MessageFormat}-style message.
-	 * @param args The arguments in the message.
-	 */
-	public FormattedException(String message, Object...args) {
-		super(args.length == 0 ? message : MessageFormat.format(message, args));
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param causedBy The cause of this exception.
-	 * @param message The {@link MessageFormat}-style message.
-	 * @param args The arguments in the message.
-	 */
-	public FormattedException(Throwable causedBy, String message, Object...args) {
-		this(message, args);
-		initCause(causedBy);
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param causedBy The cause of this exception.
-	 */
-	public FormattedException(Throwable causedBy) {
-		this(causedBy, causedBy.getLocalizedMessage());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/FormattedRuntimeException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/FormattedRuntimeException.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/FormattedRuntimeException.java
deleted file mode 100644
index f010d9f..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/FormattedRuntimeException.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import java.text.*;
-
-/**
- * Subclass of runtime exceptions that take in a message and zero or more arguments.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class FormattedRuntimeException extends RuntimeException {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param message The {@link MessageFormat}-style message.
-	 * @param args The arguments in the message.
-	 */
-	public FormattedRuntimeException(String message, Object...args) {
-		super(args.length == 0 ? message : MessageFormat.format(message, args));
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param causedBy The cause of this exception.
-	 * @param message The {@link MessageFormat}-style message.
-	 * @param args The arguments in the message.
-	 */
-	public FormattedRuntimeException(Throwable causedBy, String message, Object...args) {
-		this(message, args);
-		initCause(causedBy);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/InvalidDataConversionException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/InvalidDataConversionException.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/InvalidDataConversionException.java
deleted file mode 100644
index 21d0e57..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/InvalidDataConversionException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import java.text.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-
-/**
- * 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 (james.bognar@salesforce.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}.", ClassUtils.getReadableClassNameForObject(value), ClassUtils.getReadableClassName(toType), getValue(value)), cause);
-	}
-
-	/**
-	 * @param toType Attempting to convert to this class type.
-	 * @param cause The cause.
-	 * @param value The value being converted.
-	 */
-	public InvalidDataConversionException(Object value, ClassMeta<?> toType, Exception cause) {
-		super(MessageFormat.format("Invalid data conversion from type ''{0}'' to type ''{1}''.  Value={2}.", ClassUtils.getReadableClassNameForObject(value), toType.toString(), getValue(value)), cause);
-	}
-
-	private static String getValue(Object o) {
-		if (o instanceof Class)
-			return "'" + ClassUtils.getReadableClassName((Class<?>)o) + "'";
-		return JsonSerializer.DEFAULT_LAX == null ? "'" + o.toString() + "'" : JsonSerializer.DEFAULT_LAX.toString(o);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/Lockable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/Lockable.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/Lockable.java
deleted file mode 100644
index 4d3d470..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/Lockable.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-/**
- * 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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/LockedException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/LockedException.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/LockedException.java
deleted file mode 100644
index 4d841f5..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/LockedException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-/**
- * 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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/MediaRange.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/MediaRange.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/MediaRange.java
deleted file mode 100644
index 788243d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/MediaRange.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import java.util.*;
-import java.util.Map.*;
-
-/**
- * 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;
-	}
-}


[51/51] [abbrv] [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/2c3a7cb5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/2c3a7cb5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/2c3a7cb5

Branch: refs/heads/master
Commit: 2c3a7cb597df83c7549ff284efbae10fcfa436b4
Parents: 71180a6
Author: jamesbognar <ja...@gmail.com>
Authored: Mon Aug 1 12:01:21 2016 -0400
Committer: jamesbognar <ja...@gmail.com>
Committed: Mon Aug 1 12:01:21 2016 -0400

----------------------------------------------------------------------
 .DS_Store                                       |  Bin 6148 -> 6148 bytes
 com.ibm.team.juno.client/.DS_Store              |  Bin 6148 -> 0 bytes
 com.ibm.team.juno.client/.classpath             |   21 -
 com.ibm.team.juno.client/.gitignore             |    2 -
 com.ibm.team.juno.client/.project               |   32 -
 .../.settings/com.ibm.etools.references.prefs   |    4 -
 ...ibm.etools.webtools.packagepreferences.prefs |    3 -
 .../.settings/org.eclipse.jdt.apt.core.prefs    |    2 -
 .../.settings/org.eclipse.jdt.core.prefs        |  402 -
 .../.settings/org.eclipse.jdt.ui.prefs          |  120 -
 .../org.eclipse.ltk.core.refactoring.prefs      |    3 -
 .../.settings/org.eclipse.m2e.core.prefs        |    4 -
 .../.settings/org.eclipse.pde.core.prefs        |    3 -
 .../.settings/org.eclipse.pde.prefs             |   15 -
 .../.settings/org.eclipse.wst.common.component  |    5 -
 ...rg.eclipse.wst.common.project.facet.core.xml |   22 -
 .../.settings/org.eclipse.wst.html.core.prefs   |   37 -
 .../.settings/org.eclipse.wst.validation.prefs  |    9 -
 com.ibm.team.juno.client/META-INF/MANIFEST.MF   |   36 -
 .../OSGI-INF/l10n/plugin.properties             |   19 -
 com.ibm.team.juno.client/build.properties       |   20 -
 com.ibm.team.juno.client/pom.xml                |   29 -
 .../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 --
 .../.DS_Store                                   |  Bin 6148 -> 0 bytes
 .../.classpath                                  |   30 -
 .../.gitignore                                  |    2 -
 .../.project                                    |   23 -
 .../.settings/org.eclipse.jdt.core.prefs        |   12 -
 .../.settings/org.eclipse.m2e.core.prefs        |    4 -
 .../META-INF/MANIFEST.MF                        |   18 -
 .../microservice.cfg                            |  196 -
 com.ibm.team.juno.microservice.template/pom.xml |   28 -
 .../src/.DS_Store                               |  Bin 6148 -> 0 bytes
 .../microservice/sample/HelloWorldResource.java |   35 -
 .../microservice/sample/RootResources.java      |   41 -
 .../microservice/sample/nls/Messages.properties |   19 -
 com.ibm.team.juno.microservice/.DS_Store        |  Bin 6148 -> 0 bytes
 com.ibm.team.juno.microservice/.classpath       |   28 -
 com.ibm.team.juno.microservice/.gitignore       |    2 -
 com.ibm.team.juno.microservice/.project         |   23 -
 .../.settings/org.eclipse.jdt.core.prefs        |  306 -
 .../.settings/org.eclipse.jdt.ui.prefs          |   62 -
 .../.settings/org.eclipse.m2e.core.prefs        |    4 -
 com.ibm.team.juno.microservice/Dockerfile       |   16 -
 .../META-INF/MANIFEST.MF                        |    7 -
 com.ibm.team.juno.microservice/build.properties |   18 -
 .../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
 .../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/jetty-all-8.1.0.jar                     |  Bin 1774672 -> 0 bytes
 .../lib/org.apache.commons.fileupload_1.3.1.jar |  Bin 69002 -> 0 bytes
 com.ibm.team.juno.microservice/pom.xml          |   29 -
 .../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 2633 -> 0 bytes
 .../juneau/microservice/doc-files/build2.png    |  Bin 8634 -> 0 bytes
 .../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
 .../juneau/microservice/doc-files/manifest1.png |  Bin 10493 -> 0 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/.DS_Store              |  Bin 8196 -> 0 bytes
 com.ibm.team.juno.releng/.classpath             |   25 -
 com.ibm.team.juno.releng/.gitignore             |    5 -
 com.ibm.team.juno.releng/.jazzignore            |   37 -
 com.ibm.team.juno.releng/.project               |   28 -
 .../.settings/org.eclipse.jdt.core.prefs        |   25 -
 com.ibm.team.juno.releng/META-INF/MANIFEST.MF   |   44 -
 com.ibm.team.juno.releng/Readme.txt             |   33 -
 .../bin/all/META-INF/MANIFEST.MF                |   10 -
 .../bin/client/META-INF/MANIFEST.MF             |   24 -
 .../bin/core.test/META-INF/MANIFEST.MF          |   27 -
 .../bin/core/META-INF/MANIFEST.MF               |   27 -
 .../bin/microservice/META-INF/MANIFEST.MF       |   12 -
 .../bin/samples/META-INF/MANIFEST.MF            |   16 -
 .../bin/server.test/META-INF/MANIFEST.MF        |   15 -
 .../bin/server/META-INF/MANIFEST.MF             |   22 -
 com.ibm.team.juno.releng/build.properties       |   33 -
 com.ibm.team.juno.releng/build.xml              |  520 --
 .../build/test/jacoco/jacoco.exec               |  Bin 65284 -> 0 bytes
 .../build/test/jacoco/jacoco2.exec              |  Bin 2920 -> 0 bytes
 .../build/test/jacoco/jacoco3.exec              |  Bin 24058 -> 0 bytes
 .../test/jacoco/results/.resources/branchfc.gif |  Bin 91 -> 0 bytes
 .../test/jacoco/results/.resources/branchnc.gif |  Bin 91 -> 0 bytes
 .../test/jacoco/results/.resources/branchpc.gif |  Bin 91 -> 0 bytes
 .../test/jacoco/results/.resources/bundle.gif   |  Bin 709 -> 0 bytes
 .../test/jacoco/results/.resources/class.gif    |  Bin 586 -> 0 bytes
 .../test/jacoco/results/.resources/down.gif     |  Bin 67 -> 0 bytes
 .../test/jacoco/results/.resources/greenbar.gif |  Bin 91 -> 0 bytes
 .../test/jacoco/results/.resources/group.gif    |  Bin 351 -> 0 bytes
 .../test/jacoco/results/.resources/method.gif   |  Bin 193 -> 0 bytes
 .../test/jacoco/results/.resources/package.gif  |  Bin 227 -> 0 bytes
 .../test/jacoco/results/.resources/prettify.css |   13 -
 .../test/jacoco/results/.resources/prettify.js  | 1510 ----
 .../test/jacoco/results/.resources/redbar.gif   |  Bin 91 -> 0 bytes
 .../test/jacoco/results/.resources/report.css   |  243 -
 .../test/jacoco/results/.resources/report.gif   |  Bin 363 -> 0 bytes
 .../test/jacoco/results/.resources/session.gif  |  Bin 213 -> 0 bytes
 .../test/jacoco/results/.resources/sort.gif     |  Bin 58 -> 0 bytes
 .../test/jacoco/results/.resources/sort.js      |  147 -
 .../test/jacoco/results/.resources/source.gif   |  Bin 354 -> 0 bytes
 .../build/test/jacoco/results/.resources/up.gif |  Bin 67 -> 0 bytes
 .../build/test/jacoco/results/.sessions.html    |    1 -
 .../build/test/jacoco/results/Client/index.html |    1 -
 .../build/test/jacoco/results/Core/index.html   |    1 -
 .../build/test/jacoco/results/Server/index.html |    1 -
 .../build/test/jacoco/results/index.html        |    1 -
 .../build/test/jacoco/results/report.csv        |    1 -
 .../build/test/jacoco/results/report.xml        |    1 -
 .../build/test/logs/test.0.log                  |    1 -
 com.ibm.team.juno.releng/javadoc.css            | 1145 ---
 .../juneau-code-templates.xml                   |   62 -
 .../lib/commons-codec-1.9/commons-codec-1.9.jar |  Bin 263965 -> 0 bytes
 .../org.apache.commons.fileupload_1.3.1.jar     |  Bin 69002 -> 0 bytes
 com.ibm.team.juno.releng/lib/derby/derby.jar    |  Bin 2838580 -> 0 bytes
 ....eclipse.osgi.services_3.2.100.v20100503.jar |  Bin 67437 -> 0 bytes
 ....eclipse.osgi_3.6.50.R36x_v20120315-1500.jar |  Bin 1174868 -> 0 bytes
 .../lib/httpclient/commons-logging-1.1.1.jar    |  Bin 60686 -> 0 bytes
 .../lib/httpclient/httpclient-4.5.jar           |  Bin 727567 -> 0 bytes
 .../httpcomponents-client-4.5-src.zip           |  Bin 1632538 -> 0 bytes
 .../lib/httpclient/httpcore-4.4.1.jar           |  Bin 322234 -> 0 bytes
 .../lib/httpclient/httpmime-4.5.jar             |  Bin 40692 -> 0 bytes
 .../lib/jacoco/jacocoagent.jar                  |  Bin 288333 -> 0 bytes
 .../lib/jacoco/jacocoant.jar                    |  Bin 696286 -> 0 bytes
 .../org.jacoco.agent-0.7.5.201505241946.jar     |  Bin 256737 -> 0 bytes
 .../org.jacoco.ant-0.7.5.201505241946.jar       |  Bin 37663 -> 0 bytes
 .../org.jacoco.core-0.7.5.201505241946.jar      |  Bin 133486 -> 0 bytes
 .../org.jacoco.report-0.7.5.201505241946.jar    |  Bin 140212 -> 0 bytes
 .../lib/java2html/java2html.jar                 |  Bin 192282 -> 0 bytes
 .../lib/javax.servlet_2.5.0.jar                 |  Bin 118873 -> 0 bytes
 .../lib/jaxrs/jsr311-api-1.1.1.jar              |  Bin 46367 -> 0 bytes
 .../lib/jaxrs/wink-common-1.2.1-incubating.jar  |  Bin 588805 -> 0 bytes
 .../lib/jaxrs/wink-server-1.2.1-incubating.jar  |  Bin 272483 -> 0 bytes
 .../lib/jena/jena-core-2.7.1-sources.jar        |  Bin 1701584 -> 0 bytes
 .../lib/jena/jena-core-2.7.1.jar                |  Bin 1727026 -> 0 bytes
 .../lib/jena/jena-iri-0.9.2.jar                 |  Bin 136437 -> 0 bytes
 .../lib/jena/log4j-1.2.16.jar                   |  Bin 481535 -> 0 bytes
 .../lib/jena/slf4j-api-1.6.4.jar                |  Bin 25962 -> 0 bytes
 .../lib/jena/slf4j-log4j12-1.6.4.jar            |  Bin 9748 -> 0 bytes
 .../lib/jena/xercesImpl-2.9.1.jar               |  Bin 1229125 -> 0 bytes
 .../lib/junit/hamcrest-core-1.3.jar             |  Bin 45024 -> 0 bytes
 .../lib/junit/junit-4.12.jar                    |  Bin 314932 -> 0 bytes
 com.ibm.team.juno.releng/misc/web.xml           |   19 -
 com.ibm.team.juno.samples/.classpath            |   30 -
 com.ibm.team.juno.samples/.gitignore            |    5 -
 com.ibm.team.juno.samples/.jazzignore           |   33 -
 com.ibm.team.juno.samples/.project              |   23 -
 .../.settings/org.eclipse.jdt.core.prefs        |  393 -
 .../.settings/org.eclipse.jdt.ui.prefs          |    9 -
 .../.settings/org.eclipse.m2e.core.prefs        |    4 -
 com.ibm.team.juno.samples/META-INF/MANIFEST.MF  |   21 -
 .../OSGI-INF/l10n/plugin.properties             |   18 -
 com.ibm.team.juno.samples/build.properties      |   20 -
 com.ibm.team.juno.samples/juneau-samples.launch |   14 -
 com.ibm.team.juno.samples/lib/.jazzignore       |   30 -
 com.ibm.team.juno.samples/lib/derby.jar         |  Bin 2838580 -> 0 bytes
 .../lib/jena-core-2.7.1.jar                     |  Bin 1727026 -> 0 bytes
 .../lib/jena-iri-0.9.2.jar                      |  Bin 136437 -> 0 bytes
 com.ibm.team.juno.samples/lib/log4j-1.2.16.jar  |  Bin 481535 -> 0 bytes
 .../lib/slf4j-api-1.6.4.jar                     |  Bin 25962 -> 0 bytes
 .../lib/slf4j-log4j12-1.6.4.jar                 |  Bin 9748 -> 0 bytes
 com.ibm.team.juno.samples/pom.xml               |   28 -
 com.ibm.team.juno.samples/samples.cfg           |  130 -
 .../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 40879 -> 0 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 -
 .../apache/juneau/server/samples/TestUtils.java |  360 -
 com.ibm.team.juno.samples/war/web.xml           |   48 -
 com.ibm.team.juno.server.test/.DS_Store         |  Bin 6148 -> 0 bytes
 com.ibm.team.juno.server.test/.classpath        |   28 -
 com.ibm.team.juno.server.test/.gitignore        |    3 -
 com.ibm.team.juno.server.test/.jazzignore       |   32 -
 com.ibm.team.juno.server.test/.project          |   30 -
 .../.settings/org.eclipse.jdt.apt.core.prefs    |    2 -
 .../.settings/org.eclipse.jdt.core.prefs        |  393 -
 .../.settings/org.eclipse.jdt.ui.prefs          |  120 -
 .../org.eclipse.ltk.core.refactoring.prefs      |    3 -
 .../.settings/org.eclipse.m2e.core.prefs        |    4 -
 .../.settings/org.eclipse.pde.core.prefs        |    3 -
 .../.settings/org.eclipse.pde.prefs             |   15 -
 .../META-INF/MANIFEST.MF                        |   10 -
 .../OSGI-INF/l10n/plugin.properties             |   19 -
 com.ibm.team.juno.server.test/build.properties  |   19 -
 .../juneau-server-test.cfg                      |   97 -
 .../juneau-server-test.launch                   |   56 -
 com.ibm.team.juno.server.test/pom.xml           |   36 -
 .../java/org/apache/juneau/server/DTO2s.java    |  136 -
 .../org/apache/juneau/server/LargePojo.java     |   45 -
 .../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 -
 .../apache/juneau/server/TestClientVersion.java |   93 -
 .../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/TestRestClient2.java   |   35 -
 .../apache/juneau/server/TestSerializers.java   |  102 -
 .../apache/juneau/server/TestStaticFiles.java   |   35 -
 .../apache/juneau/server/TestTransforms.java    |  115 -
 .../juneau/server/TestTransformsParent.java     |   25 -
 .../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 -
 .../juneau/server/CT_TestClientVersion.java     |   90 -
 .../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 -
 .../apache/juneau/server/CT_TestTransforms.java |   68 -
 .../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.team.juno.server/.DS_Store              |  Bin 6148 -> 0 bytes
 com.ibm.team.juno.server/.classpath             |   24 -
 com.ibm.team.juno.server/.gitignore             |    2 -
 com.ibm.team.juno.server/.project               |   32 -
 .../.settings/com.ibm.etools.references.prefs   |    4 -
 ...ibm.etools.webtools.packagepreferences.prefs |    3 -
 .../.settings/org.eclipse.jdt.apt.core.prefs    |    2 -
 .../.settings/org.eclipse.jdt.core.prefs        |  402 -
 .../.settings/org.eclipse.jdt.ui.prefs          |  120 -
 .../org.eclipse.ltk.core.refactoring.prefs      |    3 -
 .../.settings/org.eclipse.m2e.core.prefs        |    4 -
 .../.settings/org.eclipse.pde.core.prefs        |    3 -
 .../.settings/org.eclipse.pde.prefs             |   15 -
 .../.settings/org.eclipse.wst.common.component  |    6 -
 ...rg.eclipse.wst.common.project.facet.core.xml |   22 -
 .../.settings/org.eclipse.wst.html.core.prefs   |   37 -
 .../.settings/org.eclipse.wst.validation.prefs  |    9 -
 com.ibm.team.juno.server/META-INF/MANIFEST.MF   |   27 -
 .../OSGI-INF/l10n/plugin.properties             |   19 -
 com.ibm.team.juno.server/build.properties       |   24 -
 .../lib/jaxrs/jsr311-api-1.1.1.jar              |  Bin 46367 -> 0 bytes
 com.ibm.team.juno.server/pom.xml                |   36 -
 .../juneau/server/ClientVersionMatcher.java     |   52 -
 .../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 -
 .../juneau/server/RestMatcherReflecting.java    |   35 -
 .../org/apache/juneau/server/RestRequest.java   | 1764 ----
 .../org/apache/juneau/server/RestResponse.java  |  431 -
 .../org/apache/juneau/server/RestServlet.java   | 2795 -------
 .../juneau/server/RestServletContext.java       |  218 -
 .../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 44553 -> 0 bytes
 .../juneau/server/doc-files/AddressBookJson.png |  Bin 30639 -> 0 bytes
 .../server/doc-files/AddressBookOptions.png     |  Bin 224346 -> 0 bytes
 .../doc-files/AddressBook_juneaustyle.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
 .../apache/juneau/server/doc-files/Options2.png |  Bin 9809 -> 0 bytes
 .../juneau/server/doc-files/OptionsPage.png     |  Bin 56895 -> 0 bytes
 .../server/doc-files/Samples_RootResources.png  |  Bin 62372 -> 0 bytes
 .../juneau/server/doc-files/UrlEncodedForm.png  |  Bin 21379 -> 0 bytes
 .../server/htdocs/MethodExampleResource1.png    |  Bin 12276 -> 0 bytes
 .../org/apache/juneau/server/htdocs/javadoc.css |  782 --
 .../juneau/server/jaxrs/BaseProvider.java       |  148 -
 .../juneau/server/jaxrs/DefaultProvider.java    |   73 -
 .../juneau/server/jaxrs/JuneauProvider.java     |   89 -
 .../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 -
 .../java/org/apache/juneau/server/juneau.ico    |  Bin 39438 -> 0 bytes
 .../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 15845 -> 0 bytes
 .../juneau/server/remoteable/doc-files/2.png    |  Bin 20379 -> 0 bytes
 .../juneau/server/remoteable/doc-files/3.png    |  Bin 33919 -> 0 bytes
 .../juneau/server/remoteable/doc-files/4.png    |  Bin 21108 -> 0 bytes
 .../juneau/server/remoteable/doc-files/5.png    |  Bin 10553 -> 0 bytes
 .../juneau/server/remoteable/doc-files/6.png    |  Bin 24934 -> 0 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 -
 .../org/apache/juneau/server/styles/juneau.css  |  142 -
 .../juneau/server/vars/LocalizationVar.java     |   56 -
 .../juneau/server/vars/RequestAttrVar.java      |   50 -
 .../juneau/server/vars/RequestParamVar.java     |   48 -
 .../apache/juneau/server/vars/RequestVar.java   |  106 -
 .../server/vars/SerializedRequestAttrVar.java   |   70 -
 .../server/vars/SerializedRequestParamVar.java  |   70 -
 .../juneau/server/vars/ServletInitParamVar.java |   48 -
 .../apache/juneau/server/vars/UrlEncodeVar.java |   45 -
 com.ibm.team.juno.test/.DS_Store                |  Bin 6148 -> 0 bytes
 com.ibm.team.juno.test/.classpath               |   11 -
 com.ibm.team.juno.test/.project                 |   24 -
 .../.settings/com.ibm.etools.references.prefs   |    4 -
 .../.settings/org.eclipse.core.resources.prefs  |    2 -
 .../.settings/org.eclipse.jdt.apt.core.prefs    |    2 -
 .../.settings/org.eclipse.jdt.core.prefs        |  393 -
 .../.settings/org.eclipse.jdt.ui.prefs          |  120 -
 .../org.eclipse.ltk.core.refactoring.prefs      |    3 -
 .../.settings/org.eclipse.pde.core.prefs        |    3 -
 .../.settings/org.eclipse.pde.prefs             |   15 -
 com.ibm.team.juno/.DS_Store                     |  Bin 6148 -> 0 bytes
 com.ibm.team.juno/.classpath                    |   40 -
 com.ibm.team.juno/.gitignore                    |    2 -
 com.ibm.team.juno/.project                      |   32 -
 .../.settings/com.ibm.etools.references.prefs   |    4 -
 ...ibm.etools.webtools.packagepreferences.prefs |    3 -
 .../.settings/org.eclipse.core.resources.prefs  |    5 -
 .../.settings/org.eclipse.jdt.apt.core.prefs    |    2 -
 .../.settings/org.eclipse.jdt.core.prefs        |  406 -
 .../.settings/org.eclipse.jdt.ui.prefs          |  126 -
 .../org.eclipse.ltk.core.refactoring.prefs      |    3 -
 .../.settings/org.eclipse.m2e.core.prefs        |    4 -
 .../.settings/org.eclipse.pde.core.prefs        |    3 -
 .../.settings/org.eclipse.pde.prefs             |   15 -
 .../.settings/org.eclipse.wst.common.component  |    8 -
 ...rg.eclipse.wst.common.project.facet.core.xml |   22 -
 .../.settings/org.eclipse.wst.html.core.prefs   |   37 -
 .../.settings/org.eclipse.wst.validation.prefs  |   10 -
 com.ibm.team.juno/META-INF/MANIFEST.MF          |   42 -
 .../OSGI-INF/l10n/plugin.properties             |   19 -
 com.ibm.team.juno/build.properties              |   24 -
 .../launches/Debug org.apache.juneau.launch     |   18 -
 .../launches/Package org.apache.juneau.launch   |   19 -
 com.ibm.team.juno/pom.xml                       |   47 -
 .../src/main/java/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
 .../main/java/doc-files/Samples.Building.1.png  |  Bin 14082 -> 0 bytes
 .../main/java/doc-files/Samples.Building.2.png  |  Bin 5543 -> 0 bytes
 .../java/doc-files/Samples.ConfigResource.1.png |  Bin 38071 -> 0 bytes
 .../java/doc-files/Samples.ConfigResource.2.png |  Bin 42599 -> 0 bytes
 .../java/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
 .../java/doc-files/Samples.Installing.1.png     |  Bin 52312 -> 0 bytes
 .../java/doc-files/Samples.Installing.2.png     |  Bin 59664 -> 0 bytes
 .../java/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
 .../java/doc-files/Samples.LogsResource.1.png   |  Bin 37594 -> 0 bytes
 .../java/doc-files/Samples.LogsResource.2.png   |  Bin 42497 -> 0 bytes
 .../java/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
 .../java/doc-files/Samples.PhotosResource.1.png |  Bin 16442 -> 0 bytes
 .../java/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
 .../main/java/doc-files/Samples.Running.1.png   |  Bin 40422 -> 0 bytes
 .../main/java/doc-files/Samples.Running.2.png   |  Bin 15925 -> 0 bytes
 .../main/java/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
 .../src/main/java/doc-files/Server.Html.png     |  Bin 52497 -> 0 bytes
 .../src/main/java/doc-files/Server.Json.png     |  Bin 29692 -> 0 bytes
 .../src/main/java/doc-files/Server.N3.png       |  Bin 45391 -> 0 bytes
 .../src/main/java/doc-files/Server.NTuple.png   |  Bin 55713 -> 0 bytes
 .../src/main/java/doc-files/Server.Options.png  |  Bin 67005 -> 0 bytes
 .../src/main/java/doc-files/Server.RdfXml.png   |  Bin 45274 -> 0 bytes
 .../main/java/doc-files/Server.SimpleXml.png    |  Bin 36746 -> 0 bytes
 .../src/main/java/doc-files/Server.Turtle.png   |  Bin 45180 -> 0 bytes
 .../src/main/java/doc-files/Server.Uon.png      |  Bin 28160 -> 0 bytes
 .../main/java/doc-files/Server.UrlEncoding.png  |  Bin 32516 -> 0 bytes
 .../src/main/java/doc-files/Server.Xml.png      |  Bin 45446 -> 0 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 31484 -> 0 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 8476 -> 0 bytes
 .../apache/juneau/dto/cognos/doc-files/JSON.png |  Bin 6963 -> 0 bytes
 .../juneau/dto/cognos/doc-files/RDFXML.png      |  Bin 19981 -> 0 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 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
 .../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 3644 -> 0 bytes
 .../apache/juneau/html/doc-files/HTML_LINKS.png |  Bin 593 -> 0 bytes
 .../apache/juneau/html/doc-files/HTML_TITLE.png |  Bin 2435 -> 0 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 39851 -> 0 bytes
 .../org/apache/juneau/ini/doc-files/config2.png |  Bin 48881 -> 0 bytes
 .../org/apache/juneau/ini/doc-files/config3.png |  Bin 59095 -> 0 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 35528 -> 0 bytes
 .../apache/juneau/jena/doc-files/Example_N3.png |  Bin 37430 -> 0 bytes
 .../juneau/jena/doc-files/Example_NTriple.png   |  Bin 48413 -> 0 bytes
 .../juneau/jena/doc-files/Example_RDFXML.png    |  Bin 30486 -> 0 bytes
 .../jena/doc-files/Example_RDFXMLABBREV.png     |  Bin 30356 -> 0 bytes
 .../juneau/jena/doc-files/Example_Turtle.png    |  Bin 35328 -> 0 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 35528 -> 0 bytes
 .../juneau/json/doc-files/Example_JSON.png      |  Bin 26954 -> 0 bytes
 .../json/doc-files/Example_JSONSchema.png       |  Bin 34114 -> 0 bytes
 .../json/doc-files/Example_JSONSimple.png       |  Bin 30920 -> 0 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 15527 -> 0 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 32778 -> 0 bytes
 .../doc-files/Example_UrlEncoding.png           |  Bin 20958 -> 0 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 35528 -> 0 bytes
 .../apache/juneau/xml/doc-files/Example_XML.png |  Bin 32865 -> 0 bytes
 .../juneau/xml/doc-files/Example_XMLSchema.png  |  Bin 45685 -> 0 bytes
 .../juneau/xml/doc-files/Example_XMLSimple.png  |  Bin 34372 -> 0 bytes
 .../java/org/apache/juneau/xml/package.html     | 2158 -----
 com.ibm.team.juno/src/main/java/overview.html   | 7660 ------------------
 com.ibm.team.juno/src/main/resources/empty.txt  |    0
 .../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 -
 .../src/test/resources/dto/atom/test1.xml       |   46 -
 .../src/test/resources/dto/atom/test2.xml       |   46 -
 .../src/test/resources/dto/atom/test3.xml       |   46 -
 .../test/resources/dto/jsonschema/test1.json    |   77 -
 .../test/resources/dto/jsonschema/test2.json    |   20 -
 .../test/resources/json/BrokenCognosOutput.txt  |    1 -
 .../src/test/resources/log4j.properties         |   26 -
 .../resources/xml/testComparisonWithJson.json   |   17 -
 .../resources/xml/testComparisonWithJson.xml    |   17 -
 .../src/test/resources/xml/testNamespaces.xml   |   17 -
 1186 files changed, 160047 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/.DS_Store
----------------------------------------------------------------------
diff --git a/.DS_Store b/.DS_Store
index fa2b684..3a77093 100644
Binary files a/.DS_Store and b/.DS_Store differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.DS_Store b/com.ibm.team.juno.client/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/com.ibm.team.juno.client/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.classpath b/com.ibm.team.juno.client/.classpath
deleted file mode 100755
index e4f84a9..0000000
--- a/com.ibm.team.juno.client/.classpath
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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/2c3a7cb5/com.ibm.team.juno.client/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.gitignore b/com.ibm.team.juno.client/.gitignore
deleted file mode 100644
index 30e1a65..0000000
--- a/com.ibm.team.juno.client/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin/
-/target/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.project b/com.ibm.team.juno.client/.project
deleted file mode 100755
index c2c1e69..0000000
--- a/com.ibm.team.juno.client/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau.client</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<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>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/com.ibm.etools.references.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/com.ibm.etools.references.prefs b/com.ibm.team.juno.client/.settings/com.ibm.etools.references.prefs
deleted file mode 100755
index 60e92fc..0000000
--- a/com.ibm.team.juno.client/.settings/com.ibm.etools.references.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Sep 28 14:37:35 EDT 2012
-com.ibm.etools.references.ui.validation.projectPropertiesEnabled=true
-eclipse.preferences.version=1
-com.ibm.etools.references.ui.validation.severityLevel=0

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/com.ibm.etools.webtools.packagepreferences.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/com.ibm.etools.webtools.packagepreferences.prefs b/com.ibm.team.juno.client/.settings/com.ibm.etools.webtools.packagepreferences.prefs
deleted file mode 100755
index fea8f8b..0000000
--- a/com.ibm.team.juno.client/.settings/com.ibm.etools.webtools.packagepreferences.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jan 24 16:55:50 EST 2014
-use-project-settings=false
-eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.client/.settings/org.eclipse.jdt.apt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.client/.settings/org.eclipse.jdt.apt.core.prefs b/com.ibm.team.juno.client/.settings/org.eclipse.jdt.apt.core.prefs
deleted file mode 100755
index ec0c557..0000000
--- a/com.ibm.team.juno.client/.settings/org.eclipse.jdt.apt.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.apt.aptEnabled=false


[19/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/ServletInitParamVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/ServletInitParamVar.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/ServletInitParamVar.java
deleted file mode 100644
index 3db7517..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/ServletInitParamVar.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.vars;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Servlet init parameter variable resolver.
- * <p>
- * The format for this var is <js>"$I{key}"</js> or <js>"$I{key,defaultValue}"</js>.
- * <p>
- * This variable resolver requires that a {@link RestRequest} object be set as a context object on the resolver or a
- * 	session object on the resolver session.
- * <p>
- * Values are pulled from the {@link RestServlet#getInitParameter(String)} method.
- * <p>
- * Since this is a {@link SimpleVar}, any variables contained in the result will be recursively resolved.
- * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.
- *
- * @see org.apache.juneau.svl
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class ServletInitParamVar extends DefaultingVar {
-
-	/**
-	 * Constructor.
-	 */
-	public ServletInitParamVar() {
-		super("I");
-	}
-
-	@Override /* Var */
-	public String resolve(VarResolverSession session, String key) {
-		return session.getSessionObject(RestRequest.class, RequestVar.SESSION_req).getServlet().getServletConfig().getInitParameter(key);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/UrlEncodeVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/UrlEncodeVar.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/UrlEncodeVar.java
deleted file mode 100644
index f3c9e72..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/UrlEncodeVar.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.vars;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.svl.*;
-
-/**
- * URL-encoding variable resolver.
- * <p>
- * The format for this var is <js>"$UE{innerValue}"</js>.
- * <p>
- * This variable takes the contents inside the variable and replaces it with a value returned by calling {@link RestUtils#encode(String)}).
- * <p>
- * Since this is a {@link SimpleVar}, any variables contained in the result will be recursively resolved.
- * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.
- *
- * @see org.apache.juneau.svl
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class UrlEncodeVar extends SimpleVar {
-
-	/**
-	 * Constructor.
-	 */
-	public UrlEncodeVar() {
-		super("UE");
-	}
-
-	@Override /* Var */
-	public String resolve(VarResolverSession session, String key) {
-		return RestUtils.encode(key);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.DS_Store b/com.ibm.team.juno.test/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/com.ibm.team.juno.test/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.classpath b/com.ibm.team.juno.test/.classpath
deleted file mode 100755
index 2595aab..0000000
--- a/com.ibm.team.juno.test/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<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="lib" path="/com.ibm.team.juno.releng/lib/jena/slf4j-api-1.6.4.jar"/>
-	<classpathentry kind="lib" path="/com.ibm.team.juno.releng/lib/jena/jena-iri-0.9.2.jar"/>
-	<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.server"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.project b/com.ibm.team.juno.test/.project
deleted file mode 100755
index 70654ca..0000000
--- a/com.ibm.team.juno.test/.project
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.settings/com.ibm.etools.references.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.settings/com.ibm.etools.references.prefs b/com.ibm.team.juno.test/.settings/com.ibm.etools.references.prefs
deleted file mode 100755
index 60e92fc..0000000
--- a/com.ibm.team.juno.test/.settings/com.ibm.etools.references.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Sep 28 14:37:35 EDT 2012
-com.ibm.etools.references.ui.validation.projectPropertiesEnabled=true
-eclipse.preferences.version=1
-com.ibm.etools.references.ui.validation.severityLevel=0

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.settings/org.eclipse.core.resources.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.settings/org.eclipse.core.resources.prefs b/com.ibm.team.juno.test/.settings/org.eclipse.core.resources.prefs
deleted file mode 100755
index 4824b80..0000000
--- a/com.ibm.team.juno.test/.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/2c3a7cb5/com.ibm.team.juno.test/.settings/org.eclipse.jdt.apt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.settings/org.eclipse.jdt.apt.core.prefs b/com.ibm.team.juno.test/.settings/org.eclipse.jdt.apt.core.prefs
deleted file mode 100755
index ec0c557..0000000
--- a/com.ibm.team.juno.test/.settings/org.eclipse.jdt.apt.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.apt.aptEnabled=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno.test/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index 07ce7a7..0000000
--- a/com.ibm.team.juno.test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,393 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-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.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.processAnnotations=disabled
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.settings/org.eclipse.jdt.ui.prefs b/com.ibm.team.juno.test/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100755
index 4e7da44..0000000
--- a/com.ibm.team.juno.test/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,120 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=false
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=true
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-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_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Juno
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-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.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\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" dele
 ted\="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 * Description.\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\="true" 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 * ${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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\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" enable
 d\="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\="catch
 block">// ${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
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.update_ibm_copyright_to_current_year=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.settings/org.eclipse.ltk.core.refactoring.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/com.ibm.team.juno.test/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100755
index 4823f83..0000000
--- a/com.ibm.team.juno.test/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Feb 03 13:34:43 EST 2009
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.settings/org.eclipse.pde.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.settings/org.eclipse.pde.core.prefs b/com.ibm.team.juno.test/.settings/org.eclipse.pde.core.prefs
deleted file mode 100755
index ecf8088..0000000
--- a/com.ibm.team.juno.test/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 05 14:46:11 EST 2009
-eclipse.preferences.version=1
-resolve.requirebundle=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.test/.settings/org.eclipse.pde.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.test/.settings/org.eclipse.pde.prefs b/com.ibm.team.juno.test/.settings/org.eclipse.pde.prefs
deleted file mode 100755
index a9e32da..0000000
--- a/com.ibm.team.juno.test/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Thu Feb 05 14:13:09 EST 2009
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.DS_Store b/com.ibm.team.juno/.DS_Store
deleted file mode 100644
index 9a874b5..0000000
Binary files a/com.ibm.team.juno/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.classpath b/com.ibm.team.juno/.classpath
deleted file mode 100755
index 11528f1..0000000
--- a/com.ibm.team.juno/.classpath
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry 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="src" output="target/test-classes" path="src/test/java">
-		<attributes>
-			<attribute name="ignore_optional_problems" value="true"/>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<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 kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
-		<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/2c3a7cb5/com.ibm.team.juno/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.gitignore b/com.ibm.team.juno/.gitignore
deleted file mode 100644
index 30e1a65..0000000
--- a/com.ibm.team.juno/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin/
-/target/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.project b/com.ibm.team.juno/.project
deleted file mode 100755
index a21a33c..0000000
--- a/com.ibm.team.juno/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<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>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/com.ibm.etools.references.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/com.ibm.etools.references.prefs b/com.ibm.team.juno/.settings/com.ibm.etools.references.prefs
deleted file mode 100755
index 60e92fc..0000000
--- a/com.ibm.team.juno/.settings/com.ibm.etools.references.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Sep 28 14:37:35 EDT 2012
-com.ibm.etools.references.ui.validation.projectPropertiesEnabled=true
-eclipse.preferences.version=1
-com.ibm.etools.references.ui.validation.severityLevel=0

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/com.ibm.etools.webtools.packagepreferences.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/com.ibm.etools.webtools.packagepreferences.prefs b/com.ibm.team.juno/.settings/com.ibm.etools.webtools.packagepreferences.prefs
deleted file mode 100755
index fea8f8b..0000000
--- a/com.ibm.team.juno/.settings/com.ibm.etools.webtools.packagepreferences.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jan 24 16:55:50 EST 2014
-use-project-settings=false
-eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.core.resources.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.core.resources.prefs b/com.ibm.team.juno/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index dc1b414..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/.settings/org.eclipse.jdt.apt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/.settings/org.eclipse.jdt.apt.core.prefs b/com.ibm.team.juno/.settings/org.eclipse.jdt.apt.core.prefs
deleted file mode 100755
index ec0c557..0000000
--- a/com.ibm.team.juno/.settings/org.eclipse.jdt.apt.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.apt.aptEnabled=false


[35/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages.properties b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages.properties
deleted file mode 100755
index d107ee8..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# *                                                                                                                         *
-# ***************************************************************************************************************************
-
-key1 = value1a
-key2 = value2a
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages2.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages2.properties b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages2.properties
deleted file mode 100755
index 9a5fe73..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages2.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# *                                                                                                                         *
-# ***************************************************************************************************************************
-
-key2 = value2b
-key3 = value3b
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNls.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNls.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNls.java
deleted file mode 100755
index 62b718e..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNls.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.utils.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testNls",
-	children={
-		TestNls.Test1.class,
-		TestNls.Test2.class,
-		TestNls.Test3.class,
-		TestNls.Test4.class,
-		TestNls.Test5.class,
-		TestNls.Test6.class
-	}
-)
-@SuppressWarnings({"serial","unused"})
-public class TestNls extends RestServletGroupDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// test1 - Pull labels from annotations only.
-	//====================================================================================================
-	@RestResource(
-		path="/test1",
-		messages="TestNls",
-		label="Test1.a",
-		description="Test1.b"
-	)
-	public static class Test1 extends RestServletDefault {
-
-		@RestMethod(
-			name="POST", path="/{a}",
-			description="Test1.c",
-			input={
-				@Var(category="attr", name="a", description="Test1.d"),
-				@Var(category="param", name="b", description="Test1.e"),
-				@Var(category="content", description="Test1.f"),
-				@Var(category="header", name="D", description="Test1.g"),
-				@Var(category="attr", name="a2", description="Test1.h"),
-				@Var(category="param", name="b2", description="Test1.i"),
-				@Var(category="header", name="D2", description="Test1.j"),
-				@Var(category="foo", name="bar", description="Test1.k"),
-			},
-			responses={
-				@Response(200),
-				@Response(value=201,
-					description="Test1.l",
-					output={
-						@Var(category="foo", name="bar", description="Test1.m"),
-					}
-				)
-			}
-		)
-		public String test1(@Attr("a") String a, @Param("b") String b, @Content String c, @Header("D") String d,
-				@Attr("e") String e, @Param("f") String f, @Header("g") String g) {
-			return null;
-		}
-	}
-
-	//====================================================================================================
-	// test2 - Pull labels from resource bundles only - simple keys.
-	//====================================================================================================
-	@RestResource(
-		path="/test2",
-		messages="TestNls"
-	)
-	public static class Test2 extends RestServletDefault {
-
-		@RestMethod(
-			name="POST", path="/{a}"
-		)
-		public String test2(@Attr("a") String a, @Param("b") String b, @Content String c, @Header("D") String d,
-				@Attr("e") String e, @Param("f") String f, @Header("g") String g) {
-			return null;
-		}
-	}
-
-	//====================================================================================================
-	// test3 - Pull labels from resource bundles only - keys with class names.
-	//====================================================================================================
-	@RestResource(
-		path="/test3",
-		messages="TestNls"
-	)
-	public static class Test3 extends RestServletDefault {
-
-		@RestMethod(
-			name="POST", path="/{a}"
-		)
-		public String test3(@Attr("a") String a, @Param("b") String b, @Content String c, @Header("D") String d,
-				@Attr("e") String e, @Param("f") String f, @Header("g") String g) {
-			return null;
-		}
-
-		@RestMethod(
-			name="GET", path="/"
-		)
-		public Object test3a(@Messages MessageBundle mb) {
-			return mb;
-		}
-	}
-
-	//====================================================================================================
-	// test4 - Pull labels from resource bundles only.  Values have localized variables to resolve.
-	//====================================================================================================
-	@RestResource(
-		path="/test4",
-		messages="TestNls"
-	)
-	public static class Test4 extends RestServletDefault {
-
-		@RestMethod(
-			name="POST", path="/{a}"
-		)
-		public String test4(@Attr("a") String a, @Param("b") String b, @Content String c, @Header("D") String d,
-				@Attr("e") String e, @Param("f") String f, @Header("g") String g) {
-			return null;
-		}
-	}
-
-	//====================================================================================================
-	// test5 - Pull labels from resource bundles only.  Values have request variables to resolve.
-	//====================================================================================================
-	@RestResource(
-		path="/test5",
-		messages="TestNls"
-	)
-	public static class Test5 extends RestServletDefault {
-
-		@RestMethod(
-			name="POST", path="/{a}"
-		)
-		public String test5(@Attr("a") String a, @Param("b") String b, @Content String c, @Header("D") String d,
-				@Attr("e") String e, @Param("f") String f, @Header("g") String g) {
-			return null;
-		}
-	}
-
-	//====================================================================================================
-	// test6 - Pull labels from annotations only, but annotations contain variables.
-	//====================================================================================================
-	@RestResource(
-		path="/test6",
-		messages="TestNls",
-		label="$L{foo}",
-		description="$L{foo}"
-	)
-	public static class Test6 extends RestServletDefault {
-
-		@RestMethod(
-			name="POST", path="/{a}",
-			description="$L{foo}",
-			input={
-				@Var(category="attr", name="a", description="$L{foo}"),
-				@Var(category="param", name="b", description="$L{foo}"),
-				@Var(category="content", description="$L{foo}"),
-				@Var(category="header", name="D", description="$L{foo}"),
-				@Var(category="attr", name="a2", description="$L{foo}"),
-				@Var(category="param", name="b2", description="$L{foo}"),
-				@Var(category="header", name="D2", description="$L{foo}"),
-				@Var(category="foo", name="bar", description="$L{foo}"),
-			},
-			responses={
-				@Response(200),
-				@Response(value=201,
-					description="$L{foo}",
-					output={
-						@Var(category="foo", name="bar", description="$L{foo}"),
-					}
-				)
-			}
-		)
-		public String test6(@Attr("a") String a, @Param("b") String b, @Content String c, @Header("D") String d,
-				@Attr("e") String e, @Param("f") String f, @Header("g") String g) {
-			return null;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNls.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNls.properties b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNls.properties
deleted file mode 100755
index 9833d00..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNls.properties
+++ /dev/null
@@ -1,79 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# *                                                                                                                         *
-# ***************************************************************************************************************************
-
-label = Test2.a
-description = Test2.b
-test2 = Test2.c
-test2.req.attr.a = Test2.d
-test2.req.param.b = Test2.e
-test2.req.content = Test2.f
-test2.req.header.D = Test2.g
-test2.req.attr.a2 = Test2.h
-test2.req.param.b2 = Test2.i
-test2.req.header.D2 = Test2.j
-test2.req.foo.bar = Test2.k
-test2.res.200 = OK2
-test2.res.201 = Test2.l
-test2.res.201.foo.bar = Test2.m
-
-Test3.label = Test3.a
-Test3.description = Test3.b
-Test3.test3 = Test3.c
-Test3.test3.req.attr.a = Test3.d
-Test3.test3.req.param.b = Test3.e
-Test3.test3.req.content = Test3.f
-Test3.test3.req.header.D = Test3.g
-Test3.test3.req.attr.a2 = Test3.h
-Test3.test3.req.param.b2 = Test3.i
-Test3.test3.req.header.D2 = Test3.j
-Test3.test3.req.foo.bar = Test3.k
-Test3.test3.res.200 = OK3
-Test3.test3.res.201 = Test3.l
-Test3.test3.res.201.foo.bar = Test3.m
-
-Test4.label = $L{foo}
-Test4.description = $L{foo}
-Test4.test4 = $L{foo}
-Test4.test4.req.attr.a = $L{foo}
-Test4.test4.req.param.b = $L{foo}
-Test4.test4.req.content = $L{foo}
-Test4.test4.req.header.D = $L{foo}
-Test4.test4.req.attr.a2 = $L{foo}
-Test4.test4.req.param.b2 = $L{foo}
-Test4.test4.req.header.D2 = $L{foo}
-Test4.test4.req.foo.bar = $L{foo}
-Test4.test4.res.200 = foo$L{foo}foo$L{foo}foo
-Test4.test4.res.201 = $L{foo}
-Test4.test4.res.201.foo.bar = $L{foo}
-
-foo = $L{bar}
-bar = baz
-
-Test5.label = $L{foo2}
-Test5.description = $R{servletLabel}
-Test5.test5 = $R{servletLabel}
-Test5.test5.req.attr.a = $R{servletLabel}
-Test5.test5.req.param.b = $R{servletLabel}
-Test5.test5.req.content = $R{servletLabel}
-Test5.test5.req.header.D = $R{servletLabel}
-Test5.test5.req.attr.a2 = $R{servletLabel}
-Test5.test5.req.param.b2 = $R{servletLabel}
-Test5.test5.req.header.D2 = $R{servletLabel}
-Test5.test5.req.foo.bar = $R{servletLabel}
-Test5.test5.res.200 = foo$R{servletLabel}foo$R{servletLabel}foo
-Test5.test5.res.201 = $R{servletLabel}
-Test5.test5.res.201.foo.bar = $R{servletLabel}
-Test5.foo2 = $L{bar2}
-Test5.bar2 = baz2
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNlsProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNlsProperty.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNlsProperty.java
deleted file mode 100755
index 3f49566..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNlsProperty.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testNlsProperty",
-	serializers={TestNlsProperty.TestSerializer.class},
-	properties={
-		@Property(name="TestProperty",value="$L{key1}")
-	},
-	messages="TestNlsProperty"
-)
-public class TestNlsProperty extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Test getting an NLS property defined on a class.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testInheritedFromClass")
-	public String testInheritedFromClass() {
-		return null;
-	}
-
-	//====================================================================================================
-	// Test getting an NLS property defined on a method.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testInheritedFromMethod",
-		properties={
-			@Property(name="TestProperty",value="$L{key2}")
-		}
-	)
-	public String testInheritedFromMethod() {
-		return null;
-	}
-
-	@Produces("text/plain")
-	public static class TestSerializer extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			session.getWriter().write(session.getProperties().getString("TestProperty"));
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNlsProperty.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNlsProperty.properties b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNlsProperty.properties
deleted file mode 100755
index a833256..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNlsProperty.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# *                                                                                                                         *
-# ***************************************************************************************************************************
-
-key1 = value1
-key2 = value2
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNoParserInput.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNoParserInput.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNoParserInput.java
deleted file mode 100755
index 81f7bcd..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestNoParserInput.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testNoParserInput",
-	serializers=PlainTextSerializer.class
-)
-public class TestNoParserInput extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// @Content annotated InputStream.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testInputStream")
-	public String testInputStream(@Content InputStream in) throws Exception {
-		return IOUtils.read(in);
-	}
-
-	//====================================================================================================
-	// @Content annotated Reader.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testReader")
-	public String testReader(@Content Reader in) throws Exception {
-		return IOUtils.read(in);
-	}
-
-	//====================================================================================================
-	// @Content annotated PushbackReader.
-	// This should always fail since the servlet reader is not a pushback reader.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testPushbackReader")
-	public String testPushbackReader(@Content PushbackReader in) throws Exception {
-		return IOUtils.read(in);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOnPostCall.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOnPostCall.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOnPostCall.java
deleted file mode 100755
index ffac262..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOnPostCall.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- * Validates that headers
- */
-@RestResource(
-	path="/testOnPostCall",
-	serializers=TestOnPostCall.TestSerializer.class,
-	properties={
-		@Property(name="p1",value="sp1"), // Unchanged servlet-level property.
-		@Property(name="p2",value="sp2"), // Servlet-level property overridden by onPostCall.
-		@Property(name="p3",value="sp3"), // Servlet-level property overridded by method.
-		@Property(name="p4",value="sp4")  // Servlet-level property overridden by method then onPostCall.
-	}
-)
-public class TestOnPostCall extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	@Produces({"text/s1","text/s2","text/s3"})
-	public static class TestSerializer extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			ObjectMap p = session.getProperties();
-			session.getWriter().write("p1="+p.get("p1")+",p2="+p.get("p2")+",p3="+p.get("p3")+",p4="+p.get("p4")+",p5="+p.get("p5")+",contentType="+session.getProperties().getString("mediaType"));
-		}
-		@Override /* Serializer */
-		public ObjectMap getResponseHeaders(ObjectMap properties) {
-			if (properties.containsKey("Override-Content-Type"))
-				return new ObjectMap().append("Content-Type", properties.get("Override-Content-Type"));
-			return null;
-		}
-	}
-
-	@Override /* RestServlet */
-	protected void onPostCall(RestRequest req, RestResponse res) {
-		ObjectMap properties = req.getProperties();
-		properties.put("p2", "xp2");
-		properties.put("p4", "xp4");
-		properties.put("p5", "xp5"); // New property
-		String overrideAccept = req.getHeader("Override-Accept");
-		if (overrideAccept != null)
-			req.setHeader("Accept", overrideAccept);
-		String overrideContentType = req.getHeader("Override-Content-Type");
-		if (overrideContentType != null)
-			properties.put("Override-Content-Type", overrideContentType);
-	}
-
-
-	//====================================================================================================
-	// Test1 - Properties overridden via properties annotation.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testPropertiesOverridenByAnnotation",
-		properties={
-			@Property(name="p3",value="mp3"),
-			@Property(name="p4",value="mp4")
-		},
-		defaultRequestHeaders="Accept: text/s2"
-	)
-	public String testPropertiesOverridenByAnnotation() {
-		return "";
-	}
-
-	//====================================================================================================
-	// Test2 - Properties overridden programmatically.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testPropertiesOverriddenProgramatically")
-	public String testPropertiesOverriddenProgramatically(RestRequest req, @Properties ObjectMap properties) throws Exception {
-		properties.put("p3", "pp3");
-		properties.put("p4", "pp4");
-		String accept = req.getHeader("Accept");
-		if (accept == null || accept.isEmpty())
-			req.setHeader("Accept", "text/s2");
-		return "";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOnPreCall.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOnPreCall.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOnPreCall.java
deleted file mode 100755
index 6c802ba..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOnPreCall.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- * Validates that headers
- */
-@RestResource(
-	path="/testOnPreCall",
-	parsers=TestOnPreCall.TestParserA.class,
-	serializers=PlainTextSerializer.class,
-	properties={
-		@Property(name="p1",value="sp1"), // Unchanged servlet-level property.
-		@Property(name="p2",value="sp2"), // Servlet-level property overridden by onPreCall.
-		@Property(name="p3",value="sp3"), // Servlet-level property overridded by method.
-		@Property(name="p4",value="sp4")  // Servlet-level property overridden by method then onPreCall.
-	}
-)
-public class TestOnPreCall extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	@Consumes({"text/a1","text/a2","text/a3"})
-	public static class TestParserA extends ReaderParser {
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			ObjectMap p = session.getProperties();
-			String matchingContentType = session.getProperties().getString("mediaType");
-			return (T)("p1="+p.get("p1")+",p2="+p.get("p2")+",p3="+p.get("p3")+",p4="+p.get("p4")+",p5="+p.get("p5")+",contentType="+matchingContentType);
-		}
-	}
-
-	@Override /* RestServlet */
-	protected void onPreCall(RestRequest req) {
-		ObjectMap properties = req.getProperties();
-		properties.put("p2", "xp2");
-		properties.put("p4", "xp4");
-		properties.put("p5", "xp5"); // New property
-		String overrideContentType = req.getHeader("Override-Content-Type");
-		if (overrideContentType != null)
-			req.setHeader("Content-Type", overrideContentType);
-	}
-
-
-	//====================================================================================================
-	// Properties overridden via properties annotation.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testPropertiesOverriddenByAnnotation",
-		properties={
-			@Property(name="p3",value="mp3"),
-			@Property(name="p4",value="mp4")
-		}
-	)
-	public String testPropertiesOverriddenByAnnotation(@Content String in) {
-		return in;
-	}
-
-	//====================================================================================================
-	// Properties overridden programmatically.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testPropertiesOverriddenProgrammatically")
-	public String testPropertiesOverriddenProgrammatically(RestRequest req, @Properties ObjectMap properties) throws Exception {
-		properties.put("p3", "pp3");
-		properties.put("p4", "pp4");
-		return req.getInput(String.class);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOptionsWithoutNls.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOptionsWithoutNls.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOptionsWithoutNls.java
deleted file mode 100755
index f85f8c1..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOptionsWithoutNls.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.labels.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testOptionsWithoutNls"
-)
-public class TestOptionsWithoutNls extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Should get to the options page without errors
-	//====================================================================================================
-	@RestMethod(name="OPTIONS", path="/testOptions/*")
-	public ResourceOptions testOptions(RestRequest req) {
-		return new ResourceOptions(this, req);
-	}
-
-	//====================================================================================================
-	// Missing resource bundle should cause {!!x} string.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testMissingResourceBundle")
-	public String test(RestRequest req) {
-		return req.getMessage("bad", 1, 2, 3);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOverlappingMethods.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOverlappingMethods.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOverlappingMethods.java
deleted file mode 100755
index 12d10fc..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestOverlappingMethods.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testOverlappingMethods",
-	serializers=PlainTextSerializer.class
-)
-public class TestOverlappingMethods extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Overlapping guards
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testOverlappingGuards1", guards=Test1Guard.class)
-	public String testOverlappingGuards1() {
-		return "test1_doGet";
-	}
-
-	//====================================================================================================
-	// Overlapping guards
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testOverlappingGuards2", guards={Test1Guard.class, Test2Guard.class})
-	public String testOverlappingGuards2() {
-		return "test2_doGet";
-	}
-
-	public static class Test1Guard extends RestGuard {
-		@Override /* RestGuard */
-		public boolean isRequestAllowed(RestRequest req) {
-			return req.getParameter("t1","").equals("1");
-		}
-	}
-
-	public static class Test2Guard extends RestGuard {
-		@Override /* RestGuard */
-		public boolean isRequestAllowed(RestRequest req) {
-			return req.getParameter("t2","").equals("2");
-		}
-	}
-
-	//====================================================================================================
-	// Overlapping matchers
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testOverlappingMatchers1", matchers=Test3aMatcher.class)
-	public String testOverlappingMatchers1() {
-		return "test3a";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingMatchers1", matchers=Test3bMatcher.class)
-	public String test3b_doGet() {
-		return "test3b";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingMatchers1")
-	public String test3c_doGet() {
-		return "test3c";
-	}
-
-	public static class Test3aMatcher extends RestMatcher {
-		@Override /* RestMatcher */
-		public boolean matches(RestRequest req) {
-			return req.getParameter("t1","").equals("1");
-		}
-	}
-
-	public static class Test3bMatcher extends RestMatcher {
-		@Override /* RestMatcher */
-		public boolean matches(RestRequest req) {
-			return req.getParameter("t2","").equals("2");
-		}
-	}
-
-	//====================================================================================================
-	// Overlapping matchers
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testOverlappingMatchers2")
-	public String test4a_doGet() {
-		return "test4a";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingMatchers2", matchers={Test3aMatcher.class, Test3bMatcher.class})
-	public String test4b_doGet() {
-		return "test4b";
-	}
-
-	//====================================================================================================
-	// Overlapping URL patterns
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testOverlappingUrlPatterns")
-	public String testOverlappingUrlPatterns1() {
-		return "test5a";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingUrlPatterns/*")
-	public String testOverlappingUrlPatterns2() {
-		return "test5b";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingUrlPatterns/foo")
-	public String testOverlappingUrlPatterns3() {
-		return "test5c";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingUrlPatterns/foo/*")
-	public String testOverlappingUrlPatterns4() {
-		return "test5d";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingUrlPatterns/{id}")
-	public String testOverlappingUrlPatterns5() {
-		return "test5e";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingUrlPatterns/{id}/*")
-	public String testOverlappingUrlPatterns6() {
-		return "test5f";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingUrlPatterns/{id}/foo")
-	public String testOverlappingUrlPatterns7() {
-		return "test5g";
-	}
-
-	@RestMethod(name="GET", path="/testOverlappingUrlPatterns/{id}/foo/*")
-	public String testOverlappingUrlPatterns8() {
-		return "test5h";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestParams.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestParams.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestParams.java
deleted file mode 100755
index ec7f80a..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestParams.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.RestServletContext.*;
-import static org.apache.juneau.urlencoding.UrlEncodingContext.*;
-
-import java.util.*;
-
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.samples.addressbook.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.urlencoding.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testParams",
-	serializers=PlainTextSerializer.class,
-	properties={
-		@Property(name=REST_allowMethodParam, value="*")
-	}
-)
-public class TestParams extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Basic tests
-	//====================================================================================================
-	@RestMethod(name="GET", path="/")
-	public void doGet(RestResponse res) {
-		res.setOutput("GET");
-	}
-
-	@RestMethod(name="GET", path="/get1")
-	public String doGet1() {
-		return "GET /get1";
-	}
-
-	@RestMethod(name="GET", path="/get1/{foo}")
-	public void doGet1a(RestResponse res, String foo) {
-		res.setOutput("GET /get1a " + foo);
-	}
-
-	@RestMethod(name="GET", path="/get1/{foo}/{bar}")
-	public void doGet1b(RestResponse res, String foo, String bar) {
-		res.setOutput("GET /get1b " + foo + "," + bar);
-	}
-
-	@RestMethod(name="GET", path="/get3/{foo}/{bar}/*")
-	public void doGet3(HttpServletRequest reqx, HttpServletResponse resx, String foo, int bar) {
-		RestRequest req = (RestRequest)reqx;
-		RestResponse res = (RestResponse)resx;
-		res.setOutput("GET /get3/"+foo+"/"+bar+" remainder="+req.getPathRemainder());
-	}
-
-	// Test method name with overlapping name, remainder allowed.
-	@RestMethod(name="GET2")
-	public void get2(RestRequest req, RestResponse res) {
-		res.setOutput("GET2 remainder="+req.getPathRemainder());
-	}
-
-	// Default POST
-	@RestMethod(name="POST")
-	public void doPost(RestRequest req, RestResponse res) {
-		res.setOutput("POST remainder="+req.getPathRemainder());
-	}
-
-	// Bean parameter
-	@RestMethod(name="POST", path="/person/{person}")
-	public void doPost(RestRequest req, RestResponse res, Person p) {
-		res.setOutput("POST /person/{name="+p.name+",birthDate.year="+p.birthDate.get(Calendar.YEAR)+"} remainder="+req.getPathRemainder());
-	}
-
-	// Various primitive types
-	@RestMethod(name="PUT", path="/primitives/{xInt}/{xShort}/{xLong}/{xChar}/{xFloat}/{xDouble}/{xByte}/{xBoolean}")
-	public void doPut1(RestResponse res, int xInt, short xShort, long xLong, char xChar, float xFloat, double xDouble, byte xByte, boolean xBoolean) {
-		res.setOutput("PUT /primitives/"+xInt+"/"+xShort+"/"+xLong+"/"+xChar+"/"+xFloat+"/"+xDouble+"/"+xByte+"/"+xBoolean);
-	}
-
-	// Various primitive objects
-	@RestMethod(name="PUT", path="/primitiveObjects/{xInt}/{xShort}/{xLong}/{xChar}/{xFloat}/{xDouble}/{xByte}/{xBoolean}")
-	public void doPut2(RestResponse res, Integer xInt, Short xShort, Long xLong, Character xChar, Float xFloat, Double xDouble, Byte xByte, Boolean xBoolean) {
-		res.setOutput("PUT /primitiveObjects/"+xInt+"/"+xShort+"/"+xLong+"/"+xChar+"/"+xFloat+"/"+xDouble+"/"+xByte+"/"+xBoolean);
-	}
-
-	// Object with forString(String) method
-	@RestMethod(name="PUT", path="/uuid/{uuid}")
-	public void doPut1(RestResponse res, UUID uuid) {
-		res.setOutput("PUT /uuid/"+uuid);
-	}
-
-	@Override /* RestServlet */
-	public Class<?>[] createTransforms() {
-		return new Class[]{CalendarTransform.Medium.class};
-	}
-
-	//====================================================================================================
-	// @Param annotation - GET
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testParamGet/*")
-	public String testParamGet(RestRequest req, @Param("p1") String p1, @Param("p2") int p2) throws Exception {
-		return "p1=["+p1+","+req.getParameter("p1")+","+req.getParameter("p1", String.class)+"],p2=["+p2+","+req.getParameter("p2")+","+req.getParameter("p2", int.class)+"]";
-	}
-
-	//====================================================================================================
-	// @Param annotation - POST
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testParamPost/*")
-	public String testParamPost(RestRequest req, @Param("p1") String p1, @Param("p2") int p2) throws Exception {
-		return "p1=["+p1+","+req.getParameter("p1")+","+req.getParameter("p1", String.class)+"],p2=["+p2+","+req.getParameter("p2")+","+req.getParameter("p2", int.class)+"]";
-	}
-
-	//====================================================================================================
-	// @QParam annotation - GET
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testQParamGet/*")
-	public String testQParamGet(RestRequest req, @QParam("p1") String p1, @QParam("p2") int p2) throws Exception {
-		return "p1=["+p1+","+req.getQueryParameter("p1")+","+req.getQueryParameter("p1", String.class)+"],p2=["+p2+","+req.getQueryParameter("p2")+","+req.getQueryParameter("p2", int.class)+"]";
-	}
-
-	//====================================================================================================
-	// @QParam annotation - POST
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testQParamPost/*")
-	public String testQParamPost(RestRequest req, @QParam("p1") String p1, @QParam("p2") int p2) throws Exception {
-		return "p1=["+p1+","+req.getQueryParameter("p1")+","+req.getQueryParameter("p1", String.class)+"],p2=["+p2+","+req.getQueryParameter("p2")+","+req.getQueryParameter("p2", int.class)+"]";
-	}
-
-	//====================================================================================================
-	// @Param(format=PLAIN) annotation - GET
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testPlainParamGet/*")
-	public String testPlainParamGet(RestRequest req, @Param(value="p1",format="PLAIN") String p1) throws Exception {
-		return "p1=["+p1+","+req.getParameter("p1")+","+req.getParameter("p1", String.class)+"]";
-	}
-
-	//====================================================================================================
-	// @Param(format=PLAIN) annotation - POST
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testPlainParamPost/*")
-	public String testPlainParamPost(RestRequest req, @Param(value="p1",format="PLAIN") String p1) throws Exception {
-		return "p1=["+p1+","+req.getParameter("p1")+","+req.getParameter("p1", String.class)+"]";
-	}
-
-	//====================================================================================================
-	// @QParam(format=PLAIN) annotation - GET
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testPlainQParamGet/*")
-	public String testPlainQParamGet(RestRequest req, @QParam(value="p1",format="PLAIN") String p1) throws Exception {
-		return "p1=["+p1+","+req.getQueryParameter("p1")+","+req.getQueryParameter("p1", String.class)+"]";
-	}
-
-	//====================================================================================================
-	// @QParam(format=PLAIN) annotation - POST
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testPlainQParamPost/*")
-	public String testPlainQParamPost(RestRequest req, @QParam(value="p1",format="PLAIN") String p1) throws Exception {
-		return "p1=["+p1+","+req.getQueryParameter("p1")+","+req.getQueryParameter("p1", String.class)+"]";
-	}
-
-	//====================================================================================================
-	// @HasParam annotation - GET
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testHasParamGet/*")
-	public String testHasParamGet(RestRequest req, @HasParam("p1") boolean p1, @HasParam("p2") Boolean p2) throws Exception {
-		return "p1=["+p1+","+req.hasParameter("p1")+"],p2=["+p2+","+req.hasParameter("p2")+"]";
-	}
-
-	//====================================================================================================
-	// @HasParam annotation - POST
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testHasParamPost/*")
-	public String testHasParamPost(RestRequest req, @HasParam("p1") boolean p1, @HasParam("p2") Boolean p2) throws Exception {
-		return "p1=["+p1+","+req.hasParameter("p1")+"],p2=["+p2+","+req.hasParameter("p2")+"]";
-	}
-
-	//====================================================================================================
-	// @HasQParam annotation - GET
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testHasQParamGet/*")
-	public String testHasQParamGet(RestRequest req, @HasQParam("p1") boolean p1, @HasQParam("p2") Boolean p2) throws Exception {
-		return "p1=["+p1+","+req.hasQueryParameter("p1")+"],p2=["+p2+","+req.hasQueryParameter("p2")+"]";
-	}
-
-	//====================================================================================================
-	// @HasQParam annotation - POST
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testHasQParamPost/*")
-	public String testHasQParamPost_post(RestRequest req, @HasQParam("p1") boolean p1, @HasQParam("p2") Boolean p2) throws Exception {
-		return "p1=["+p1+","+req.hasQueryParameter("p1")+"],p2=["+p2+","+req.hasQueryParameter("p2")+"]";
-	}
-
-	//====================================================================================================
-	// Form POSTS with @Content parameter
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testFormPostAsContent/*")
-	public String testFormPostAsContent(@Content Test6Bean bean,
-			@HasQParam("p1") boolean hqp1, @HasQParam("p2") boolean hqp2,
-			@QParam("p1") String qp1, @QParam("p2") int qp2) throws Exception {
-		return "bean=["+JsonSerializer.DEFAULT_LAX.toString(bean)+"],qp1=["+qp1+"],qp2=["+qp2+"],hqp1=["+hqp1+"],hqp2=["+hqp2+"]";
-	}
-
-	public static class Test6Bean {
-		public String p1;
-		public int p2;
-	}
-
-	//====================================================================================================
-	// Test @Param and @QParam annotations when using multi-part parameters (e.g. &key=val1,&key=val2).
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testMultiPartParams")
-	public String testMultiPartParams(
-			@QParam(value="p1",multipart=true) String[] p1,
-			@QParam(value="p2",multipart=true) int[] p2,
-			@QParam(value="p3",multipart=true) List<String> p3,
-			@QParam(value="p4",multipart=true) List<Integer> p4,
-			@Param(value="p5",multipart=true) String[] p5,
-			@Param(value="p6",multipart=true) int[] p6,
-			@Param(value="p7",multipart=true) List<String> p7,
-			@Param(value="p8",multipart=true) List<Integer> p8,
-			@QParam(value="p9",multipart=true) A[] p9,
-			@QParam(value="p10",multipart=true) List<A> p10,
-			@Param(value="p11",multipart=true) A[] p11,
-			@Param(value="p12",multipart=true) List<A> p12) throws Exception {
-		ObjectMap m = new ObjectMap()
-			.append("p1", p1)
-			.append("p2", p2)
-			.append("p3", p3)
-			.append("p4", p4)
-			.append("p5", p5)
-			.append("p6", p6)
-			.append("p7", p7)
-			.append("p8", p8)
-			.append("p9", p9)
-			.append("p10", p10)
-			.append("p11", p11)
-			.append("p12", p12);
-		return JsonSerializer.DEFAULT_LAX.toString(m);
-	}
-
-	public static class A {
-		public String a;
-		public int b;
-		public boolean c;
-	}
-
-	//====================================================================================================
-	// Test multi-part parameter keys on bean properties of type array/Collection (i.e. &key=val1,&key=val2)
-	// using URLENC_expandedParams property.
-	// A simple round-trip test to verify that both serializing and parsing works.
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testFormPostsWithMultiParamsUsingProperty",
-		properties={
-			@Property(name=URLENC_expandedParams, value="true"),
-			@Property(name=UonSerializerContext.UON_simpleMode, value="true")
-		}
-	)
-	public DTO2s.B testFormPostsWithMultiParamsViaProperty(@Content DTO2s.B content) throws Exception {
-		return content;
-	}
-
-	//====================================================================================================
-	// Test multi-part parameter keys on bean properties of type array/Collection (i.e. &key=val1,&key=val2)
-	// using @UrlEncoding(expandedParams=true) annotation.
-	// A simple round-trip test to verify that both serializing and parsing works.
-	//====================================================================================================
-	@RestMethod(name="POST", path="/testFormPostsWithMultiParamsUsingAnnotation",
-		properties={
-			@Property(name=UonSerializerContext.UON_simpleMode, value="true")
-		}
-	)
-	public DTO2s.C testFormPostsWithMultiParamsUsingAnnotation(@Content DTO2s.C content) throws Exception {
-		return content;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestParsers.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestParsers.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestParsers.java
deleted file mode 100755
index 2b3e55a..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestParsers.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.annotation.Inherit.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- * Validates correct parser is used.
- */
-@RestResource(
-	path="/testParsers",
-	parsers=TestParsers.TestParserA.class,
-	serializers=PlainTextSerializer.class
-)
-public class TestParsers extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	@Consumes("text/a")
-	public static class TestParserA extends ReaderParser {
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)("text/a - " + IOUtils.read(session.getReader()).trim());
-		}
-	}
-
-	//====================================================================================================
-	// Parser defined on class.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testParserOnClass")
-	public String testParserOnClass(@Content String in) {
-		return in;
-	}
-
-	//====================================================================================================
-	// Parser defined on method.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testParserOnMethod", parsers=TestParserB.class)
-	public String testParserOnMethod(@Content String in) {
-		return in;
-	}
-
-	@Consumes("text/b")
-	public static class TestParserB extends ReaderParser {
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)("text/b - " + IOUtils.read(session.getReader()).trim());
-		}
-	}
-
-	//====================================================================================================
-	// Parser overridden on method.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testParserOverriddenOnMethod", parsers={TestParserB.class,TestParserC.class}, parsersInherit=PARSERS)
-	public String testParserOverriddenOnMethod(@Content String in) {
-		return in;
-	}
-
-	@Consumes("text/c")
-	public static class TestParserC extends ReaderParser {
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)("text/c - " + IOUtils.read(session.getReader()).trim());
-		}
-	}
-
-	//====================================================================================================
-	// Parser with different Accept than Content-Type.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testParserWithDifferentMediaTypes", parsers={TestParserD.class}, parsersInherit=PARSERS)
-	public String testParserWithDifferentMediaTypes(@Content String in) {
-		return in;
-	}
-
-	@Consumes({"text/a","text/d"})
-	public static class TestParserD extends ReaderParser {
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)("text/d - " + IOUtils.read(session.getReader()).trim());
-		}
-	}
-
-	//====================================================================================================
-	// Check for valid error response.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testValidErrorResponse")
-	public String testValidErrorResponse(@Content String in) {
-		return in;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestPath.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestPath.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestPath.java
deleted file mode 100755
index a4e1315..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestPath.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- * Tests the RestServlet.getPath() method.
- */
-@RestResource(
-	path="/testPath",
-	children={
-		TestPath.TestPath2.class
-	}
-)
-public class TestPath extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Basic tests
-	//====================================================================================================
-	@RestMethod(name="GET", path="/")
-	public String doGet() {
-		return getPath();
-	}
-
-	@RestResource(
-		path="/testPath2",
-		children={
-			TestPath.TestPath3.class
-		}
-	)
-	public static class TestPath2 extends RestServletDefault {
-		private static final long serialVersionUID = 1L;
-		// Basic tests
-		@RestMethod(name="GET", path="/")
-		public String doGet() {
-			return getPath();
-		}
-	}
-
-	@RestResource(
-		path="/testPath3"
-	)
-	public static class TestPath3a extends RestServletDefault {
-		private static final long serialVersionUID = 1L;
-		// Basic tests
-		@RestMethod(name="GET", path="/")
-		public String doGet() {
-			return getPath();
-		}
-	}
-
-	public static class TestPath3 extends TestPath3a {
-		private static final long serialVersionUID = 1L;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestPaths.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestPaths.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestPaths.java
deleted file mode 100755
index 453f864..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestPaths.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- * Tests the URL-related methods on RestRequest.
- */
-@RestResource(
-	path="/testPaths",
-	children={
-		TestPaths.A.class
-	}
-)
-public class TestPaths extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	@RestMethod(name="GET", path="/*")
-	public ObjectMap doGet1(RestRequest req, @PathRemainder String r) {
-		return getPaths(req).append("pathRemainder2", r).append("method",1);
-	}
-
-	@RestMethod(name="GET", path="/test2/*")
-	public ObjectMap doGet2(RestRequest req, @PathRemainder String r) {
-		return getPaths(req).append("pathRemainder2", r).append("method",2);
-	}
-
-	@RestResource(
-		path="/a"
-	)
-	public static class A extends RestServletDefault {
-		private static final long serialVersionUID = 1L;
-		@RestMethod(name="GET", path="/*")
-		public ObjectMap doGet1(RestRequest req, @PathRemainder String r) {
-			return getPaths(req).append("pathRemainder2", r).append("method",3);
-		}
-		@RestMethod(name="GET", path="/test2/*")
-		public ObjectMap doGet2(RestRequest req, @PathRemainder String r) {
-			return getPaths(req).append("pathRemainder2", r).append("method",4);
-		}
-	}
-
-	private static ObjectMap getPaths(RestRequest req) {
-		return new ObjectMap()
-			.append("pathInfo", req.getPathInfo())
-			.append("pathInfoUndecoded", req.getPathInfoUndecoded())
-			.append("pathInfoParts", req.getPathInfoParts())
-			.append("pathRemainder", req.getPathRemainder())
-			.append("pathRemainderUndecoded", req.getPathRemainderUndecoded())
-			.append("requestURI", req.getRequestURI())
-			.append("requestParentURI", req.getRequestParentURI())
-			.append("requestURL", req.getRequestURL())
-			.append("servletPath", req.getServletPath())
-			.append("servletURI", req.getServletURI())
-			.append("servletParentURI", req.getServletParentURI())
-			.append("relativeServletURI", req.getRelativeServletURI());
-
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestProperties.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestProperties.java
deleted file mode 100755
index baccafa..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestProperties.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static java.lang.String.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testProperties",
-	properties={
-		@Property(name="A1",value="a1"),
-		@Property(name="A2",value="a2"),
-		@Property(name="foo",value="bar"),
-		@Property(name="bar",value="baz"),
-		@Property(name="R1a",value="$R{requestURI}"),
-		@Property(name="R1b",value="$R{requestParentURI}"),
-		@Property(name="R2",value="$R{foo}"),
-		@Property(name="R3",value="$R{$R{foo}}"),
-		@Property(name="R4",value="$R{A1}"),
-		@Property(name="R5",value="$R{A2}"),
-		@Property(name="R6",value="$R{C}"),
-	}
-)
-public class TestProperties extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Properties defined on method.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testPropertiesDefinedOnMethod",
-		properties={
-			@Property(name="B1",value="b1"),
-			@Property(name="B2",value="b2")
-		},
-		serializers=PropertySerializer1.class
-	)
-	public void testPropertiesDefinedOnMethod(RestResponse res) {
-		res.setProperty("A2", "c");
-		res.setProperty("B2", "c");
-		res.setProperty("C", "c");
-		res.setOutput(null);
-	}
-
-	@Produces({"application/json","text/json"})
-	public static class PropertySerializer1 extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object output) throws Exception {
-			ObjectMap p = session.getProperties();
-			session.getWriter().write(format("A1=%s,A2=%s,B1=%s,B2=%s,C=%s,R1a=%s,R1b=%s,R2=%s,R3=%s,R4=%s,R5=%s,R6=%s",
-				p.get("A1"), p.get("A2"), p.get("B1"), p.get("B2"), p.get("C"),
-				p.get("R1a"), p.get("R1b"), p.get("R2"), p.get("R3"), p.get("R4"), p.get("R5"), p.get("R6")));
-		}
-	}
-
-	//====================================================================================================
-	// Make sure attributes/parameters/headers are available through ctx.getProperties().
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testProperties/{A}", serializers=PropertySerializer2.class)
-	public void testProperties(RestResponse res) {
-		res.setOutput(null);
-	}
-
-	@Produces({"application/json","text/json"})
-	public static class PropertySerializer2 extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object output) throws Exception {
-			ObjectMap p = session.getProperties();
-			session.getWriter().write(format("A=%s,P=%s,H=%s", p.get("A"), p.get("P"), p.get("h")));
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestRestClient2.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestRestClient2.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestRestClient2.java
deleted file mode 100755
index e476263..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestRestClient2.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testRestClient"
-)
-public class TestRestClient2 extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Echo response
-	//====================================================================================================
-	@RestMethod(name="POST", path="/")
-	public Reader test1(RestRequest req) throws Exception {
-		return new StringReader(req.getInputAsString());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestSerializers.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestSerializers.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestSerializers.java
deleted file mode 100755
index cef0362..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestSerializers.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.annotation.Inherit.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testSerializers",
-	serializers=TestSerializers.TestSerializerA.class
-)
-public class TestSerializers extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	@Produces("text/a")
-	public static class TestSerializerA extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			session.getWriter().write("text/a - " + o);
-		}
-	}
-
-	@Produces("text/b")
-	public static class TestSerializerB extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			session.getWriter().write("text/b - " + o);
-		}
-	}
-
-	//====================================================================================================
-	// Serializer defined on class.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testSerializerOnClass")
-	public String testSerializerOnClass() {
-		return "test1";
-	}
-
-	//====================================================================================================
-	// Serializer defined on method.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testSerializerOnMethod", serializers=TestSerializerB.class)
-	public String testSerializerOnMethod() {
-		return "test2";
-	}
-
-	//====================================================================================================
-	// Serializer overridden on method.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testSerializerOverriddenOnMethod", serializers={TestSerializerB.class,TestSerializerC.class}, serializersInherit=SERIALIZERS)
-	public String testSerializerOverriddenOnMethod() {
-		return "test3";
-	}
-
-	@Produces("text/a")
-	public static class TestSerializerC extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			session.getWriter().write("text/c - " + o);
-		}
-	}
-
-	//====================================================================================================
-	// Serializer with different Accept than Content-Type.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testSerializerWithDifferentMediaTypes", serializers={TestSerializerD.class}, serializersInherit=SERIALIZERS)
-	public String testSerializerWithDifferentMediaTypes() {
-		return "test4";
-	}
-
-	@Produces(value={"text/a","text/d"},contentType="text/d")
-	public static class TestSerializerD extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			session.getWriter().write("text/d - " + o);
-		}
-	}
-
-	//====================================================================================================
-	// Check for valid 406 error response.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/test406")
-	public String test406() {
-		return "test406";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestStaticFiles.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestStaticFiles.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestStaticFiles.java
deleted file mode 100755
index 253e814..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestStaticFiles.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testStaticFiles",
-	staticFiles="{xdocs:'xdocs'}"
-)
-public class TestStaticFiles extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Tests the @RestResource(staticFiles) annotation.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/*")
-	public String testXdocs() {
-		return null;
-	}
-
-}


[08/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
deleted file mode 100644
index d63a245..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
+++ /dev/null
@@ -1,1401 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.jsonschema;
-
-import java.net.URI;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * Represents a top-level schema object bean in the JSON-Schema core specification.
- * <p>
- * 	Refer to {@link org.apache.juneau.dto.jsonschema} for usage information.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="schema")
-@SuppressWarnings("hiding")
-@Bean(properties={"id","$schema","$ref", "title","description","type","definitions","properties",
-	"patternProperties","dependencies","items","multipleOf","maximum","exclusiveMaximum",
-	"minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems",
-	"maxItems","minItems","uniqueItems","maxProperties","minProperties","required",
-	"additionalProperties","enum","allOf","anyOf","oneOf","not"})
-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(transform=JsonTypeOrJsonTypeArrayTransform.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 class='spaced-list'>
-	 * 	<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 JsonTypeOrJsonTypeArrayTransform extends PojoTransform<Object,Object> {
-
-		@Override /* PojoTransform */
-		public Object transform(Object o) throws SerializeException {
-			return o;
-		}
-
-		@Override /* PojoTransform */
-		public Object normalize(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(transform=SchemaOrSchemaArrayTransform.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 class='spaced-list'>
-	 * 	<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 SchemaOrSchemaArrayTransform extends PojoTransform<Object,Object> {
-
-		@Override /* PojoTransform */
-		public Object transform(Object o) throws SerializeException {
-			return o;
-		}
-
-		@Override /* PojoTransform */
-		public Object normalize(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(transform=BooleanOrSchemaArrayTransform.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 class='spaced-list'>
-	 * 	<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 BooleanOrSchemaArrayTransform extends PojoTransform<Object,Object> {
-
-		@Override /* PojoTransform */
-		public Object transform(Object o) throws SerializeException {
-			return o;
-		}
-
-		@Override /* PojoTransform */
-		public Object normalize(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(transform=BooleanOrSchemaTransform.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 class='spaced-list'>
-	 * 	<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 BooleanOrSchemaTransform extends PojoTransform<Object,Object> {
-
-		@Override /* PojoTransform */
-		public Object transform(Object o) throws SerializeException {
-			return o;
-		}
-
-		@Override /* PojoTransform */
-		public Object normalize(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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaArray.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaArray.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaArray.java
deleted file mode 100644
index 45c4962..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaArray.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.jsonschema;
-
-import java.util.*;
-
-/**
- * Represents a list of {@link Schema} objects.
- * <p>
- * 	Refer to {@link org.apache.juneau.dto.jsonschema} for usage information.
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java
deleted file mode 100644
index 5cc2f5f..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaMap.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.jsonschema;
-
-import java.io.*;
-import java.net.*;
-import java.util.concurrent.*;
-
-import org.apache.juneau.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 class='spaced-list'>
- * 	<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 (james.bognar@salesforce.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, 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaProperty.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaProperty.java
deleted file mode 100644
index bef3caf..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaProperty.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.jsonschema;
-
-/**
- * Represents a JSON property in the JSON-Schema core specification.
- * <p>
- * 	Refer to {@link org.apache.juneau.dto.jsonschema} for usage information.
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaPropertySimpleArray.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaPropertySimpleArray.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaPropertySimpleArray.java
deleted file mode 100644
index e71cd66..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaPropertySimpleArray.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaRef.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaRef.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaRef.java
deleted file mode 100644
index 3bd65d5..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/SchemaRef.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Html.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Html.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Html.png
deleted file mode 100644
index 3848b4f..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Html.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Json.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Json.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Json.png
deleted file mode 100644
index 6c8ddd1..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Json.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Options.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Options.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Options.png
deleted file mode 100644
index 5250d3b..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Options.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Turtle.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Turtle.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Turtle.png
deleted file mode 100644
index 478de82..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Turtle.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_UrlEncoded.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_UrlEncoded.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_UrlEncoded.png
deleted file mode 100644
index 86576e7..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_UrlEncoded.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Xml.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Xml.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Xml.png
deleted file mode 100644
index 0195c5a..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_Xml.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_XmlRdfAbbrev.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_XmlRdfAbbrev.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_XmlRdfAbbrev.png
deleted file mode 100644
index 129f9df..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/doc-files/Example_XmlRdfAbbrev.png and /dev/null differ


[44/51] [abbrv] [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/2c3a7cb5/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
deleted file mode 100755
index 53b79b9..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100644
index 413c815..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100644
index 3984a45..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogParser.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 1d945f4..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 0dcf933..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 924a165..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 422f5d2..0000000
--- a/com.ibm.team.juno.microservice/src/main/java/org/apache/juneau/microservice/resources/package.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!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/2c3a7cb5/com.ibm.team.juno.releng/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/.DS_Store b/com.ibm.team.juno.releng/.DS_Store
deleted file mode 100644
index 1cddd2e..0000000
Binary files a/com.ibm.team.juno.releng/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/.classpath b/com.ibm.team.juno.releng/.classpath
deleted file mode 100755
index 3ea783e..0000000
--- a/com.ibm.team.juno.releng/.classpath
+++ /dev/null
@@ -1,25 +0,0 @@
-<?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/2c3a7cb5/com.ibm.team.juno.releng/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/.gitignore b/com.ibm.team.juno.releng/.gitignore
deleted file mode 100644
index a42a3f9..0000000
--- a/com.ibm.team.juno.releng/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin/
-build/
-old_source/
-/out.html
-/TESTS-TestSuites.xml

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/.jazzignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/.jazzignore b/com.ibm.team.juno.releng/.jazzignore
deleted file mode 100755
index f8f7ec4..0000000
--- a/com.ibm.team.juno.releng/.jazzignore
+++ /dev/null
@@ -1,37 +0,0 @@
-### Jazz Ignore 0
-# Ignored files and folders will not be committed, but may be modified during 
-# accept or update.  
-# - Ignore properties should contain a space separated list of filename patterns.  
-# - Each pattern is case sensitive and surrounded by braces ('{' and '}').  
-# - "*" matches zero or more characters.  
-# - "?" matches a single character.  
-# - The pattern list may be split across lines by ending the line with a 
-#     backslash and starting the next line with a tab.  
-# - Patterns in core.ignore prevent matching resources in the same 
-#     directory from being committed.  
-# - Patterns in core.ignore.recursive matching resources in the current 
-#     directory and all subdirectories from being committed.  
-# - The default value of core.ignore.recursive is *.class 
-# - The default value for core.ignore is bin 
-# 
-# To ignore shell scripts and hidden files in this subtree: 
-#     e.g: core.ignore.recursive = {*.sh} {\.*} 
-# 
-# To ignore resources named 'bin' in the current directory (but allow 
-#  them in any sub directorybelow): 
-#     e.g: core.ignore = {bin} 
-# 
-# NOTE: modifying ignore files will not change the ignore status of 
-#     Eclipse derived resources.
-
-core.ignore.recursive= \
-	{*.class} 
-
-core.ignore= \
-	{CT_Results} \
-	{CT_Results_html} \
-	{bin} \
-	{build} \
-	{doc} \
-	{docstage} \
-	{temp.build} 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/.project b/com.ibm.team.juno.releng/.project
deleted file mode 100755
index fa8e64f..0000000
--- a/com.ibm.team.juno.releng/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau.releng</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno.releng/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index 9370afe..0000000
--- a/com.ibm.team.juno.releng/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,25 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-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
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-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.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.source=1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 32b19be..0000000
--- a/com.ibm.team.juno.releng/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,44 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Juneau Releng
-Bundle-SymbolicName: org.apache.juneau.releng
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: IBM
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ClassPath: 
- lib/derby/derby.jar,
- lib/jaxrs/jsr311-api-1.1.1.jar,
- lib/httpclient/httpclient-4.5.jar,
- 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,
- org.apache.http.client.config,
- org.apache.http.client.entity,
- org.apache.http.client.methods,
- org.apache.http.client.params,
- org.apache.http.client.utils,
- org.apache.http.config,
- org.apache.http.conn,
- org.apache.http.conn.scheme,
- org.apache.http.conn.ssl,
- org.apache.http.conn.socket,
- org.apache.http.entity,
- org.apache.http.entity.mime,
- org.apache.http.impl.client,
- org.apache.http.impl.conn,
- org.apache.http.impl.cookie,
- org.apache.http.message,
- org.apache.http.params,
- org.apache.http.protocol,
- org.apache.http.util

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index dce0414..0000000
--- a/com.ibm.team.juno.releng/Readme.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-#================================================================================
-# Juneau Components List
-#================================================================================
-
----------------------------------------------------------------------------------
-juneau-all.jar
-Contains all binaries from the Core, Server, Client, and Microservice APIs
----------------------------------------------------------------------------------
-
----------------------------------------------------------------------------------
-bundles/*
-Contents of juneau-all.jar as individual OSGi bundles.
----------------------------------------------------------------------------------
-
----------------------------------------------------------------------------------
-source/*
-Same as the binaries, except includes all the source code as well.
----------------------------------------------------------------------------------
-
----------------------------------------------------------------------------------
-juneau-javadocs.war
-The docs for everything.
----------------------------------------------------------------------------------
-
----------------------------------------------------------------------------------
-microservice-project.zip
-The Eclipse project template for creating a microservice.
----------------------------------------------------------------------------------
-
----------------------------------------------------------------------------------
-microservice-samples-project.zip
-The Eclipse project for running the samples.
----------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100644
index d159b91..0000000
--- a/com.ibm.team.juno.releng/bin/all/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-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: org.apache.juneau.all
-Bundle-Version: 6.0.0
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100644
index 937e1bd..0000000
--- a/com.ibm.team.juno.releng/bin/client/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.9.6
-Created-By: 1.8.0_77-b03 (Oracle Corporation)
-Bundle-ManifestVersion: 2
-Bundle-Name: Juneau Cloud Tools - Client
-Bundle-SymbolicName: org.apache.juneau.client
-Bundle-Version: 6.0.0
-Bundle-Vendor: IBM
-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.
- http.client.utils,org.apache.http.config,org.apache.http.conn,org.apa
- che.http.conn.routing,org.apache.http.conn.scheme,org.apache.http.con
- n.socket,org.apache.http.conn.ssl,org.apache.http.conn.util,org.apach
- e.http.cookie,org.apache.http.entity,org.apache.http.impl.client,org.
- 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: org.apache.juneau.client
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Built-By: james.bognar
-Build-Date: July 24 2016
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100644
index 1196f32..0000000
--- a/com.ibm.team.juno.releng/bin/core.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.9.6
-Created-By: 1.8.0_77-b03 (Oracle Corporation)
-Bundle-ManifestVersion: 2
-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: 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: james.bognar
-Build-Date: July 24 2016
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100644
index 1196f32..0000000
--- a/com.ibm.team.juno.releng/bin/core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.9.6
-Created-By: 1.8.0_77-b03 (Oracle Corporation)
-Bundle-ManifestVersion: 2
-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: 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: james.bognar
-Build-Date: July 24 2016
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/bin/microservice/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/microservice/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/bin/microservice/META-INF/MANIFEST.MF
deleted file mode 100644
index 8fc00f9..0000000
--- a/com.ibm.team.juno.releng/bin/microservice/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.9.6
-Created-By: 1.8.0_77-b03 (Oracle Corporation)
-Bundle-ManifestVersion: 2
-Bundle-Name: com.ibm.team.juneau.microservice
-Bundle-SymbolicName: org.apache.juneau.microservice
-Bundle-Version: 6.0.0
-Bundle-Vendor: IBM
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Built-By: james.bognar
-Build-Date: July 24 2016
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/bin/samples/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/samples/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/bin/samples/META-INF/MANIFEST.MF
deleted file mode 100644
index fd107b2..0000000
--- a/com.ibm.team.juno.releng/bin/samples/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.9.6
-Created-By: 1.8.0_77-b03 (Oracle Corporation)
-Main-Class: org.apache.juneau.microservice.RestMicroservice
-Rest-Resources: org.apache.juneau.server.samples.RootResources
-Main-ConfigFile: samples.cfg
-Class-Path: lib/commons-codec-1.9.jar lib/commons-io-1.2.jar lib/commo
- ns-logging-1.1.1.jar lib/httpclient-4.5.jar lib/httpcore-4.4.1.jar li
- b/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.ja
- r lib/derby.jar lib/jena-core-2.7.1.jar lib/jena-iri-0.9.2.jar lib/lo
- g4j-1.2.16.jar lib/slf4j-api-1.6.4.jar lib/slf4j-log4j12-1.6.4.jar 
-Built-By: james.bognar
-Build-Date: July 24 2016
-Bundle-Version: 6.0.0
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/bin/server.test/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/server.test/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/bin/server.test/META-INF/MANIFEST.MF
deleted file mode 100644
index 0592587..0000000
--- a/com.ibm.team.juno.releng/bin/server.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.9.6
-Created-By: 1.8.0_77-b03 (Oracle Corporation)
-Bundle-ManifestVersion: 2
-Bundle-Name: Juneau Cloud Tools - Server Test
-Bundle-SymbolicName: org.apache.juneau.server
-Bundle-Version: 6.0.0
-Bundle-Vendor: IBM
-Main-Class: org.apache.juneau.microservice.RestMicroservice
-Rest-Resources: org.apache.juneau.server.Root
-Main-ConfigFile: juneau-server-test.cfg
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Built-By: james.bognar
-Build-Date: July 24 2016
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/bin/server/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/server/META-INF/MANIFEST.MF b/com.ibm.team.juno.releng/bin/server/META-INF/MANIFEST.MF
deleted file mode 100644
index e124a49..0000000
--- a/com.ibm.team.juno.releng/bin/server/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.9.6
-Created-By: 1.8.0_77-b03 (Oracle Corporation)
-Bundle-ManifestVersion: 2
-Bundle-Name: Juneau Cloud Tools - Server
-Bundle-SymbolicName: org.apache.juneau.server
-Bundle-Version: 6.0.0
-Bundle-Vendor: IBM
-Require-Bundle: org.apache.juneau
-Import-Package: com.hp.hpl.jena.rdf.model;resolution:=optional,com.hp.
- hpl.jena.shared;resolution:=optional,javax.servlet,javax.servlet.http
- ,javax.ws.rs;resolution:=optional,javax.ws.rs.core;resolution:=option
- al,javax.ws.rs.ext;resolution:=optional
-Export-Package: org.apache.juneau.server,org.apache.juneau.server.anno
- tation,org.apache.juneau.server.converters,org.apache.juneau.server.j
- axrs,org.apache.juneau.server.jena,org.apache.juneau.server.labels,or
- g.apache.juneau.server.matchers,org.apache.juneau.server.remoteable,o
- rg.apache.juneau.server.response
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Built-By: james.bognar
-Build-Date: July 24 2016
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build.properties b/com.ibm.team.juno.releng/build.properties
deleted file mode 100755
index 7444406..0000000
--- a/com.ibm.team.juno.releng/build.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-bin.includes = lib/derby/derby.jar,\
-               lib/jaxrs/jsr311-api-1.1.1.jar,\
-               META-INF/,\
-               .
-jars.extra.classpath = lib/jaxrs/jsr311-api-1.1.1.jar,\
-                       lib/jena/jena-core-2.7.1-sources.jar,\
-                       lib/jena/jena-core-2.7.1.jar,\
-                       lib/jena/jena-iri-0.9.2.jar,\
-                       lib/jena/log4j-1.2.16.jar,\
-                       lib/jena/slf4j-api-1.6.4.jar,\
-                       lib/jena/slf4j-log4j12-1.6.4.jar
-nls_exclude=**/*.html
-
-jre.compilation.profile = JavaSE-1.6
-
-version = 6.0.0
-
-dir.build=build
-		
-


[10/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Category.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Category.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Category.java
deleted file mode 100644
index 2dce6c6..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Category.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Common.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Common.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Common.java
deleted file mode 100644
index 05118e4..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Common.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
deleted file mode 100644
index ea60789..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * Parent class of {@link Entry}, {@link Feed}, and {@link Source}
- * <p>
- * 	Refer to {@link org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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(transform=CalendarTransform.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Content.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Content.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Content.java
deleted file mode 100644
index f290564..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Content.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Entry.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Entry.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Entry.java
deleted file mode 100644
index 9fc4111..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Entry.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import java.net.URI;
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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(transform=CalendarTransform.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Feed.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Feed.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Feed.java
deleted file mode 100644
index 4d458c9..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Feed.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.URI;
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Generator.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Generator.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Generator.java
deleted file mode 100644
index 1f8788a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Generator.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Icon.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Icon.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Icon.java
deleted file mode 100644
index de37033..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Icon.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Id.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Id.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Id.java
deleted file mode 100644
index 416487c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Id.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Link.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Link.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Link.java
deleted file mode 100644
index 0bc711c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Link.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Logo.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Logo.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Logo.java
deleted file mode 100644
index a2e80fa..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Logo.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Person.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Person.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Person.java
deleted file mode 100644
index cc539bc..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Person.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Source.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Source.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Source.java
deleted file mode 100644
index 9521676..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Source.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Text.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Text.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Text.java
deleted file mode 100644
index 28d473e..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/Text.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.atom;
-
-import static org.apache.juneau.xml.XmlUtils.*;
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.net.*;
-
-import javax.xml.stream.*;
-
-import org.apache.juneau.xml.*;
-import org.apache.juneau.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 org.apache.juneau.dto.atom} for further information about ATOM support.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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(XmlWriter 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/doc-files/Example_HTML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/doc-files/Example_HTML.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/doc-files/Example_HTML.png
deleted file mode 100644
index 18b3d52..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/doc-files/Example_HTML.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/package-info.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/package-info.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/package-info.java
deleted file mode 100644
index 8b27b77..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-//***************************************************************************************************************************
-//* 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.
-//***************************************************************************************************************************
-@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 org.apache.juneau.dto.atom;
-
-import org.apache.juneau.xml.annotation.*;
-


[41/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/index.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/index.html b/com.ibm.team.juno.releng/build/test/jacoco/results/index.html
deleted file mode 100644
index e0c4a93..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href=".resources/report.css" type="text/css"/><link rel="shortcut icon" href=".resources/report.gif" type="image/gif"/><title>Juneau</title><script type="text/javascript" src=".resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href=".sessions.html" class="el_session">Sessions</a></span><span class="el_report">Juneau</span></div><h1>Juneau</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2
 " id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td></tr></tfoot><tbody><tr><td id="a1"><a href="Core/index.html" class="el_bundle">Core</a></td><td class="bar" id="b0"/><td class="ctr2" id="c0">n/a</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td></tr><tr><td id="a2"><a href="Server/index.html" class="el_bundle">Server</a></td><td class="bar" id="b1"/><td class="ctr2" id="c1">n/a</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td></tr><tr><td id="a0"><a href="Client/index.html" class="el_bundle">Client</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">n/a</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td></tr></tbody></table><div class="footer"><span class="rig
 ht">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.5.201505241946</span></div></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/report.csv
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/report.csv b/com.ibm.team.juno.releng/build/test/jacoco/results/report.csv
deleted file mode 100644
index 5f55ebe..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/report.csv
+++ /dev/null
@@ -1 +0,0 @@
-GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/report.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/report.xml b/com.ibm.team.juno.releng/build/test/jacoco/results/report.xml
deleted file mode 100644
index e9d0f10..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/report.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.0//EN" "report.dtd"><report name="Juneau"><sessioninfo id="jamesbognar-ltm.internal.salesforce.com-caf6922" start="1469393795667" dump="1469393797525"/><group name="Core"/><group name="Server"/><group name="Client"/></report>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/logs/test.0.log
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/logs/test.0.log b/com.ibm.team.juno.releng/build/test/logs/test.0.log
deleted file mode 100644
index a8d562e..0000000
--- a/com.ibm.team.juno.releng/build/test/logs/test.0.log
+++ /dev/null
@@ -1 +0,0 @@
-[2016.07.24 04:56:39 WARNING] Server started on port 10001

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/javadoc.css
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/javadoc.css b/com.ibm.team.juno.releng/javadoc.css
deleted file mode 100755
index 1dbf706..0000000
--- a/com.ibm.team.juno.releng/javadoc.css
+++ /dev/null
@@ -1,1145 +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('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');
-	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;
-}
-
-/*--- Juneau-specific styles --------------------------------------------------*/
-
-/* Monospaced font size */
-property,
-.code,
-.bcode,
-jc,jd,jt,jk,js,jf,jsf,jsm,ja, 
-xt,xa,xc,xs,
-mk,mv,
-cc,cs,ck,ce {
-	font-size: 9pt;
-	white-space: pre;
-	font-family: monospace;
-	tab-size: 3;
-	-moz-tab-size: 3;
-	-o-tab-size: 3;
-}
-
-property {
-	font-weight: bold;
-}
-
-/*--- Bordered code ---*/
-p.bcode {
-	border: 1px solid black;
-	margin: 0px 20px;
-	border-radius: 10px;
-	overflow: hidden;
-	background-color: #f8f8f8;
-	border-color: #cccccc;
-	box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
-}
-
-/*--- Bordered code in a section of a method doc ---*/
-dd p.bcode {
-	margin-left:0px;
-	margin-right:20px;
-}
-
-.fixedWidth {
-	max-width: 800px;
-}
-
-/* Override padding bottom in javadoc comments. */
-.blockList p.bcode {
-	padding-bottom: 0px !important;
-}
-
-/*--- Unbordered code ---*/
-p.code {
-	padding-bottom: 15px;
-	margin: -15px;
-}
-
-/*--- Java code effects ---*/
-/* 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 {
-	color: DarkCyan;
-}
-xa {
-	color: purple;
-}
-xc {
-	color: mediumblue;
-}
-xs {
-	color: blue;
-	font-style: italic;
-}
-
-/*--- Manifest-file code effects ---*/
-mk {
-	color: DarkRed;
-	font-weight: bold;
-}
-mv {
-	color: DarkBlue;
-}
-
-/*--- Config file effects ---*/
-cc {
-	color: green;
-}
-cs {
-	color: DarkRed;
-	font-weight: bold;
-}
-ck {
-	color: DarkRed;
-}
-cv {
-	color: DarkBlue;
-}
-
-/*--- 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;
-}
-
-/*--- Juneau 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.topic {
-	font-size: 14pt;
-}
-h3.topic {
-	font-size: 13pt;
-}
-h4.topic {
-	font-size: 12pt;
-}
-
-h2.closed,
-h3.closed,
-h4.closed {
-	background-image: url('data:image/gif;base64,R0lGODlhEAAQAIQYADNVfDhagUNkiUZnjEhojUxskE9vklFwlFd1mF17nWJ/oGaCo2+KqXKNq3aQrX2WsoGZtYObtoeeuJKowJ2wxqm6zrbF1sTQ3v///////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEAAB8ALAAAAAAQABAAAAVi4CeOZGmST6EGpLK8cNHMi6GI8qzvcyEikqBwGByIIJekcpmEiByWqHQadYgYlax2m2WIFpSweBxeiBKTtHqdTvwi8LgcjhAdHPi8Hn8QERiAgYKABCIAAoiJiogAJ46PjiEAOw==') !important;
-}
-
-div.topic {
-	margin-left: 10px;
-	/*font-size: 10pt;*/
-}
-
-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;
-	box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
-}
-
-.padded {
-	padding-left: 20px;
-	padding-right: 20px;
-}
-
-/*--- Rows with bottom borders ---*/
-tr.borderbottom td {
-	border-bottom: 1px solid #9eadc0
-}
-
-.nomargin {
-	margin: 0px;
-}
-
-ol.toc, ol.notes,
-ul.toc, ul.notes,
-.toc ol, .notes ol,
-.toc ul, .notes ul {
-	background: #dee3e9;
-	margin: 0px;
-	padding: 0px;
-}
-
-ul.toc, ul.notes,
-.toc ul, .notes ul {
-	list-style: disc;
-}
-
-ol.toc p, ol.notes p,
-ul.toc p, ul.notes p,
-.toc ol p, .notes ol p,
-.toc ul p, .notes ul p,
-ol.toc div, ol.notes div,
-ul.toc div, ul.notes div,
-.toc ol div, .notes ol div,
-.toc ul div, .notes 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;
-}
-
-.notes li {
-	background: #FFFFFF;
-	margin-left: 30px;
-	padding-left: 5px;
-	padding-top: 10px;
-}
-
-/* Linear gradients */
-
-/* Light-colored background headers */
-h5.toc,h6.toc, 
-h5.notes,h6.notes, 
-h5.topic,h6.topic, 
-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, h5.notes,
-h6.toc, h6.notes {
-	color: #2C4557;
-	margin-bottom: 0px;
-	padding: 5px 30px;
-	border-radius: 15px 15px 15px 0px;
-	text-decoration: none;
-	box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
-}
-
-h5.topic, h6.topic {
-	color: #2C4557;
-	padding: 5px 20px;
-	margin: 30px 10px 20px 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;
-}
-
-code.snippet {
-	border: 1px solid #cccccc;
-	margin: 2px;
-	padding: 0px 5px;
-	border-radius: 5px;
-	background-color: #f8f8f8;
-}
-
-l {
-	color: DarkBlue;
-	font-weight: bold;
-	font-style: italic;
-	font-family: monospace;
-	font-size: 1.2em;
-}
-
-.spaced-list li { padding:5px; }
-.footer .spaced-list ul { margin:0 }
-
-
-/* Java Hierarchy Tree */
-.javahierarchy li { 
-	padding-left: 30px;	
-	padding-top: 5px;
-	padding-bottom: 5px;
-	padding-top: 2px;
-	list-style: none;
-	background-repeat: no-repeat;
-	background-position: left top;
-}
-.javahierarchy li.c {
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAC7klEQVQ4jZWUW2hTWRSGv31Jk2qaaBttvBUvUTGKl1qtUDoKCoIwCD75UgTxUm/YAR8EpaDOMDhIQcFUxToPE+ZhHnRUBF8GBsYHHdSiIkSLqGiF4i22Dck+Kd3zEBrPOSmj/ocf1j57/f9aZx/2wlqLn1jmYDmJ5RaWHLb8ZLH0YunEMnN8rWuhCiKsCuKSKoiiKgj7BRZVQfyoCiLg9hDWWgCCgzoOXAea+Db8A3xvIiOfgJJh9dtAELgNLP9GszH8DWzMTyk6EkA58mflyOXKkbi5yq7icvhP+usGyMaGuRO9y+5AO/485ch1ypEnAETkWbABeAEId8mWUCuX49cJyVBFO5fuX6Qjug8hPJIhYLZURh5QRgplJG6eqUsRkiEymQzJZJJYLEYqlQJge+MOkheW4dPUKCO3aWXEen8Hy6pXkAjOB6Crq4un+Qw1F4Kcrj/JhjfrsUOw5P1SnvQ+QielW9qkpZENfsMF4YXluK+vjwlbq6iaocnygZYHjXxszwMwob6KqnkewxatjKjzG0ZttBwPDw8TiEuUKZ2XmqiY+lv4c7LxSGdp5XgqAFBw8uU4HA6jdelvfgXyUhmRU0bg5svss3JGIpFADIIygql2Clcab3Kl8Saba7fg1ykjXkhlxD3/xqOB+/QPvgago6OD2SZB7ehkfph7mKbaNTTVruHhL0/I/1WsMBSJ3+s6gWP+3tfGN3CuNY3WuuK70uk0bW1tzDwWITQ/4N7aKRb+GpsGvAQCfmFyaCV7Fx2iubkZrTWZTIaenh66u7sJNweYtqvGnZ4D4sJay+Lz9d1A+3innOtzeHcjR/75CHbUEoxrJrWEmPxdNUJ6bsr+x7sHzmoAZcRBYDHQ6jeMNASJ7AlWVip6VteAFPB5fK04NT0
 KXAXWjtfp/+APYFvvoTcFjyHAyp9mKOAocBionApeZIHTwPF7R/pHx156DMewunNWFGgDNgHTgSXACKWpdJfSUE3/e/xVzq/9DyomQ6ck1QE9AAAAAElFTkSuQmCC');
-}
-.javahierarchy li.i {
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAB70lEQVQ4jZWVPWgUQRiGn92d5cKZkIAQRUiMoCBoYUi6AyNYKIKI2AkShCv8QSzPIhYxAU2ZELTwrxERQeIPwhUKSkAsPKwCFgFPEhCtEvSc/cbTs9gz5OZmNuSFKZZ955nve9n5Nmg0Gtj6/uTXLuAcUAAGgXzz1SrwGZgD7vWeyi/be4P1wC8PVzqBGeAMoNpOalUdmALGd57u+d0G/HT/23bgBTC8AcjWPHB879ltq2vAj7eWcsB74MAmYf/1BjgyeL7PKAAtct0HGyoOkOtMu383vQjtkQMcAiaAUvDqxkI/UAUCl7NwYQ8dXTEAcRzzcrxCFDnj/QEMKC3mkg8GYH8FWgxR9Ndl7QJGlRY57IOlxNZHbYQo/ONzDyudmP5snlVhYohCZ4UABaVFtmYCXS37K+xTWkwWD/sipcDIZ9dKi6kBWzZXoRdYVVqkAhz0Aq0MExHCTGBiXmcC7ZYTkwV8qrTIbWAMiN1Au2VvhTXgUThbLn7VYu5qMbiWK0PPKs2Wiz/DpumyFjPvMl48cYd8rocgCKjX62jjhD3XYm7CuvF1cmiqG3gGjPgC8ugxMDpXKSUtQICj+yaiZp5XgI4NQCvANHCtvHB17eoErl/AyO6xbtKpfQzYAewnndBV4APpUH3wdnGyZu/9BxocEIfO9OfmAAAAAElFTkSuQmCC');
-}
-.javahierarchy li.a {
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACx0lEQVQ4jZWUTUhUURTHf3d8jo6NjdakfZhZSJkTZVgJiRW1kIKgDyJa9LGoSCiQVi3CKANpkdEiByqDQgqKwGpTUBQoEZIaBTU1m0QoMKKPccx5711Pi2km3xvD/MOBc+85///9cy4cRITMYKEI50ToFiE+rvRdhH4RmkQomYjrONgJ/HaCa3YCy04gk4RlJzhrJ8ger6FEBAAzrmYDD4BVTA1dwFbvNPkBJAVHvqkc4AVQNUWxFJ4B9XmFYnoAtEWLtqjSFowPkdV48x7gC3zFVzBKjr8fj9GAthSu3g3aohlAfRukFPgIqPFPZnnX45/1EKVyM+y87r/C/OBhlINBDCjzaItj2kK53eUVXkapXN5HIlRWVhIMBmlrawNg+cpDXGirdrvM1xb7DW2yye3AyKkmK3sxAOdbW7FG39F5A4qLTvP50yZ+xuDTlyr6+npZscxBXWXYFqVuwey8inQejUY5vA8WlQIM8SVawY4DydrSUggtcVBrDW0yM2NIEkinw8PDLJgL2kyeC/Ph6d2/ran7P5hvaCtDDtuKp3O/30+uNzmn/8AvjzaJazP5UioSsQ/pjvLycmI//ziRIooruimu6CZ3+m7cPG3y0aNNet2Fka89jMQGAWhsbOTHyBJkbAYFJafwBWrxBWo50TzA/UeZgoZt8QRY53SuGYo0ULKyk1AoRCgUcVQ7Ojq4fusFN1vBdo6iU72+xxxgAMh2DyQ6VMf0siZqamowDINIJEJ7ezvhcJjNdWO0HHe0x4HZSkR4dVeFgSMTTbnvLVy+A2+ioMegbB5s3wi76sHjcbQerdopl5SI0HtLeYHHQN2/vm8S3Ae2Ve8RSa+vnhsqANwD1k9R7Dawf80+GQX+7kOA51dVFnASOAFkbgUnvgMXgTN
 rD8pY6tIhmEJXWAWAvcAWYC6wDLBJbqWXJJdqR12DxN3c3xwok/9rc3QeAAAAAElFTkSuQmCC');
-}
-.javahierarchy li.n {
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAD3klEQVQ4jaWUfUyVVRzHP899nvsi98LlzbgC8hIUaCiCxWyGOF9WiE2IZM4NMFn2Qrnsn1xz9qKW/KW1YZuWq0bWqDUFZ8O05cQSULBsUxHWNaFB7XovXu693APPPf3BHnZlrdb6br9/fud8P/udnXO+SCmZXUiZjZRNSNmJlIGoRR9S9iHlbqRM/zuvIqXEkCaEA3gfqAU0/llTQBPw1pTFMmk0Z4A2f8AFtAMP/wtots4DT07E2sdmgHaP1wpcBJb8R5ih74HHA0kJQgPQhHj3f8AAVgJ7gNeUBPftDMANKNE7nCaFOoedqpgYsjQNTYFhXefb0ASH744zpOuzoX4gS9PC4uXZsGKblY9cKcxR4JPOC3S3txMYuk1+bi4NDQ3Uulxs7R/kfIw92hYL1Cuuq9d6gSKjm2rWOJOTza27Y5SvKGN0aIiYp6rRFj6EYrOh/HaLo2tWUbp0KctPdTBWVBwNPaZpYjIjurM3bR5mJBtKS/FI2N3Vw3PZmcRrKleDIfYNj7DLP0633c7Tvw5wNGUeanKyYV9uUsMiSQ0L1LDAFZGsjY+jpf0kt91udnz2BW/m5fLLwADNhw5R4rBT2PENnt5euvwB1pStJPT1Vxh+NSzmmzQxiVElc2xoisKJD4/gfKKCnQX5uD0eyhcv4rtr1wEY/qkP0dPFHV1nbnoaE10/EsUImVQhAqoQqEKQbZn+HDdv3ODRivUkmM2cbmvDNPc+Fmx7EYCRkRHMcU5iFIWgEER8Pgy/KoTbpIbFZWNkXUwBEIlESE1NA2Dc68VeWESWzQrA6Ogo1rg4CuNi+flGP6rVFn1kt6aJybPACgBvMARATk4OA394iEQkNTU1+BOTqc+evrvKykqy1q0nxWblYFMTczKz0cTMVz6uplZ
 t7Dfp+naTrqveYIjavPuRUnKyf5Cg1cry+Wk86Ephz+et4PHQsPUZEjWVVw8c5HRLC5kvbMdit2PS9YBJ17coUkoe+fTLD4DnAd4oWUJFXi6N+/bTk5HLaMcpfj/eimp3kFa9Ce/FC/iuXMaSlEz6pjoSS5YZ073UU7exWZFSsuzIMQtwBih1WMy8U5RPyeJFXLo5SO9YAN9EmHiblQVzE9l7rgtfKIRiMkU/3zag8uKzm+VMfD3W/LETOAGUyVCIYs8QVWtXs7CggMSEBO74/Vy53s8rr+/CWb4BsyPWgLUC9Z2NWyaAewO27MBhFdgF7JS6bhvp/oE/+3oIjo4wGRzH7IglNiOLB6o3Y4lz+oD3gLfP7dgWMRj3AA2t3t/sZDq11wGpQAHTCe0GLjEdqi1ndzYGZnv/Ahxrv7iITMWYAAAAAElFTkSuQmCC');
-}
-.javahierarchy li.p {
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACZklEQVQ4jZWVTUhUURiGn3PmNmNNcUUIxEJ0EYEF/SAhWSZKCUHYsk24MExTEdzkIsimhUQroxwyC5IW0aa6rgoEQQgXBUYLIdJczK4fk2FKx3vuaXGb4d5zR4Ze+DbnO+9zz3d+viu01kQ0KeqBXqAZOAbs+pdZB74CL4En9OiMaRVBoJsWu4F7wGXAin4pJBe4A9yy+vRWBLh5X1YDM0BjGZCpeeBCYsBbLwJz4zIBLABH/xNW0BzQkRzy8haAqxgLwRI2dv9ayKHdDby1z+Q/TZH/OAHaC6ZbgdvAdfH9rqwFVgFRyIqETdXgTx+kNZ7nIaVECH/K4tspahZ7iEkRhGaBOqkUg0ohlIJgFJRKpbAsi0rbxnEcAI6c7WbsXT2GZ49SdElX0e4qMCOo4TZYGsnR+PupX4EQfFENLH/Tpq/RchW15g4LA+h5oGSSqoaLxbFMJsOSDfvs0NRmsXwzFrnZssKmbuSHOVyU4zh0dnYyc1XSUB3aR89SKmrQgbHCoWSzWVZWVpieniadTtN2AA7uFRj+P5aryAHJ0AqNQxkdHUUKSMZhfyUMtwguHZeRvQZWLVeJD0BLGBgqg96TgmunYhH3NkBmTWDMPBRd0lxKr6RSPFKKre3uIfiPwsyXiJxSPBdaaxaG4mn8dlVUdlNz7qELQPcJyZWmaMmGBprG8w8Kb3kIOAScLmR3WoL5/h3F2WVKdoAJCLSvub64DbwGzpRbiqEXQFdrOr8RAgLM9sRjwA1gBKgoA/oFjAOp9sl8sfWIUr+AN90JG79rnwdqgMP4HXoVeI/fVJ91PN7Mmd6/kgcg4WKjGnYAAAAASUVORK5CYII=');
-}
-.javahierarchy li.m {
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAC/0lEQVQ4jZ2VbUiVZxjHf+fJlzLnoUQtLcOX3uwFi2gwiQljbOgmfdyXFIrKoEYEvXzID+VirGLMxrCI+hQsxMz1MnRz5JA4FrVFW8cyZ5Kd0l7gGJle9/Wspw/H83ieoyD1hwee+77u63//r+t6+D8+x3GIx6lT5AHVQAmwCkgZCw0BD4DzwOlNm3gUn+uLJTxeL6nAMWADkDDhJi9s4DvgQPW2ZJ1A+OMPL+cAF4E1UxDFowP4csfOtCGX8PvDz5KBTqD4HcmiaAc+27UnwyQAGJFvgeLMrEQ2bslyTzWfe8Hd4Ii7zs5JonJjprs+1/Cc+/dGAUqBWmCvVVvTm6vG7FRjsNVtBQAj5jf++rsJNQY1hoLCJE/8zM+buf3PpWh8W21N72xLjexQIz41gq3Gk1BWVkZ3TxtqBDXCoiUzJtRqq0bjH6iRKktFPlERVMSjcGBgAL/fT848GH39Cn8aZGQmMzj4zEP4v20TzVeRNZYayY0qiFXY0tICQPkXn9PbF2Bx0cyx/V+9Cm1XIWqkxFKRdFehGSdsbW3FcRwqKiro7rnCshV+z0WuQtVYhfMT1EhMPxLd93A4TNedfoqW51K4dDoL8tMIhZ4QDAbjSo4oHMOIZYwMGyMYI2hMD1NTU+m40gXA0aOHsCwfDQ1nSZ+V7SFUW4nmGyN9lorcHB/KeMkpKSm0tV7HcRzy8/MBaGxsZMG81XEle4bSZ6mRPyYbimVZPOp/THfXIAChUIhAIEDG7MWTljz2NFsqclJFNDIU74dtq6Hzz4cANDU1kZzoZ2ZSZtwZdyjDKnLW5zgO69edqCdiVwy96qf91iEAVi2sJDfrI3pCbdx50Eje3FJWFnzF03AXgX/rAFi7tJq56cUA25s7tv7kcxyH8g+PJQF
 twDreDxeA9Zevfe249vVp8RE/8Avw8TuSNQBVv9/aPQpxBlta9M00YD+wD5g+BVEYqAMOtgf3v4lu+ib7BZQU1PiJuHYZkA0sJ+LQfcANIqZ65up/tcPxuW8B5sK/IDeOZ/cAAAAASUVORK5CYII=');
-}
-.javahierarchy li.f {
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACOElEQVQ4jZWUS2gTURSGv4kjSppSm4UExYqLuFGkoUUoSWOhouIT3LgqBVcWqjZkYSlaMIWKC4UUbKmCK8UHpD7ahaiREpWKWpduRBrQhVSRDiUovY9xERMmk4mpP1wY7rnnu+dx5xi2beNWfHRuG3AKiAIRwP/XZAELwAPgZm6o46vb13ACo6lcABgDegCz6qZKSeAycPH1cFxUATuGsyFgGmivA3LrJXBkLtVtlYG7h56sA94Arf8JK2kW2P929MCKCaCkuOSGpU60cqhtS5Xn7dxnrs58dG93ASPAOV8kOdWilRjQSuBcm4P+KhjA9w/TfMlex31eK9EXSU4FfUqK00oKQ0mBc9m2BiCdTmMYRnklEgm0VrjPKykalRS9ppKi2ysSZ/eDu/YRivVU2JUUbheAdlNJ0eKZmwOota4FcCtqhE9OVr9s4M7gUdrCoar9/vFnPJ1fqAXUppKyRoCe9/DtxSTWj2YCWyNe5l8+JUXBo8DllN1NyWQyaOXZFJQUeVNLMQ/E/xVhIByjOXKsMjfvmuZNJUXWC+hsir36pjw0lRQ3gPPAWqfl53IB27axLGu1wAJw17Btm42HL0xQHFcVst7dY2XxE/5wJw3b99QD9i/OjFwr/ctngR1Ap/NEIHK8/F0nwsfAODjG14a9ySbgEVA3FJfuA71Lz6/8rgACNHadWUOxnoPA+jqgJSANpJZnx3Rp0/B6wA2xviaKU/sgsAnYSXFC54H3FIfqrcKriYLb9w8elEANsOQ8SwAAAABJRU5ErkJggg==');
-}
-
-.javahierarchy ul { 
-	margin-top: 10px;
-	padding-left: 5px;
-}
-
-p.severe, p.warn, p.info {
-	background-repeat: no-repeat;
-	background-position: left center;
-	padding-left: 30px;
-    min-height: 24px;
-}
-
-p.severe { 
-	color: DarkRed;
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAD2klEQVRIx9WWz4tVZRjHP+feuWfuvc7kOM74IzeSk7MwypgQrBZBtBoIghtFC6F/wdCopEhdRKKbaGGLIIXIsMJAihZulBBxwFUlFqLOHceZcebeuefX+/Np8c4YcR1zFi46cODAC+/n+X7f7/M+JxIRHuVT4hE/PQ9anD15qCxeXhXvG965UbF+p7MWb+wVp81VZ+xpr+2Powe/cCvtEa1k0ezJQ6MiciLe8fKu3nXrKce99NTq4D26vYBuL9D56yqLVy5ccsbueerIiasPDZj56uBekMNrdjdq1b4+pD2P5CnSmUO0gp4aUaVCNDBEu3mTqZ++y52xB579/Ntj/wmY/vKjT+tj4/tqQxuIFmaRZA6xCqxFjAGtEaUQpcBoov51+Me3MnvlMncunDuy6+TP+1cETB3/4I3qM69889jwRvxcE0wHvAfnwubGIFrDEkBUEYBAedsObly+yOzF82++ePbyqa4U3frs3dhbd7RWjfFT1yC7C1r9U61WwR5VIMvfy2oW29iJ86zfMITL08Pnnt8adwG8sY3ekZ1byq0ZJGshRY7kGRQZkoeXPEeKAilyKAqkKKDIIc+QTpvqrWuse3L7iMvSRldMnTHjsXNIMg9WISLBHu/BOsQaMDZYpDWidFCj8lBMkYE41vaUaGbpOPD1vwBWmbGyVnidIO27SBb8F+fB2nDIKmzulQ5VFymSpUiaQE+F0sAg9XqML/Ld3QqU3lTSGZJ08LPT9L1/fFUdO/dcP1EcU6mswRVs6QJYpZH520irg2tOrvpKcDcTot5JJOvDG/R9FJhpk+Vry0pBVKG15yVwHpwJEbUmpKnI8CpHsuUAgORQqlURZ1A6x2ua97NoIk+S0X5tiOI
 a0WAc8u8skbMBoHVoLl0EmCoQXdyLcCSONE8Ry0S3RWnnbGvav9XXXw8HbO09ANaEQ7ZLCTI69IFR96B4B/U6M7fnQTjbDUg6p++2Fj4e2LZ5pK4yJC8Qa8GZALJLKowOQKODdc4g1lKqlGmLY/oG14HTXY32wpmL2iaLB+7cnESw+DxFkjaSdJBkEUkXg7J8KZqqAF0EBRHQV6XZbAO817CiV7zsfnl6/dENmwf3blm7hp7FDj7NQ7UuWIZ3S9Y5EKFUj9H1KjdmWkz+ybGGk3ceOHBcluxv/j4/f8vy4RPbN8abqhUwDpxGtAXxUIJSXEbqNW7nGX/82tLAQeCThx44ZwajUXGcGN7IruHhAXqB/t4yiNDJNAWemamMO1NcAt5uOPltVRMN4PtaVBbPawgN8YwgjC0tTYjnOnAK+OF1kdWPzP/NX8XfTeTdmoFvg/0AAAAASUVORK5CYII=');
-}
-p.warn { 
-	color: DarkRed;
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAADbElEQVRIx9WWQWhcVRSGv3PvzGSaTE06acVaK1ZQsRuDVrHtoiqCYKjSVUAEA12Ji+Au0kVpiXTntuJGcaFuXNWNa3HnIrjQRUHRWhJrE5NmMvPeu/fc4+LOZNJam2y68MHhPh73ff85/zn38cTMuJ+X4z5f912gpovvQq0GNY94D86DcyDbdqUEmlqmcZYYIcTPCKFjIVA7+fm9BXAOnCDiQByIZLj0FXKP9oB9J3unp9ASu3nlrKV0gpR6O1vk5C7gAXwQNietN6dcq43bux+ZeHWKZHOktIseSN8OYQjGMhgDszZm89QTdH+EzUVkRCHpPJrau2uybDfcBllDMrA0L2Mvj4suQ+pB6iHxBq797Diq87uooG/DAJ6hubEpHULTnPgEugZa5gjruJGEqc6FK6cP3VtgaEWGbsEVVC/I2MkGegOS8tqx87zyzMW8J6zgH3y6gYYLOwjkrC0lLI8jpoqpHjWNs+J7ENdAHNNvjfHG26MgDQgbuGYJWsxWXz53dAeBDM7wCFEhxgXXesET/oS4Cclo1kdp1Jp5GGIPyhX8w094Ym/hvwWSDuyAOICH4/hHzoisQLWeYbGgWW+yp9GEWIL2oFrD1VaR1uSZ8pMDx+9+0PSOWTYDs0tuFOj8DLHICdSVEXUkrUN3GTp/QOyA9XCtCdJS9xLw0r8riJFBWAhYCNPUD56S+BuEHsQAoYJYMjrSYLRZB+1meOxAdQuvvyL7HjpVfiTTdwpI+P6d4RSZeVL6wU8enpJwHWI1nKham/VqPxZLJvxV2LjaF9kESqx2gPKna4sox5ofmA4timEAh2Qz8sDhKQlLUBaQYoaniqTCp+9/jRfHex8+hYsbGa5d0IhwDX9wckp
 /X5kBvhhaFCKEAFVoWFUtuFoHyk72PnYh3oKwAaY8eaLB4897IA2zjxEU6IFvbUJiobgoja0KLITBITvn2o8ekfJ6FkhlPyrQCucbvH52FlKA5W8hdPKp16yHgasK/GPjR/SX9XPA+aFFKYGGGVdbge5qznwLXvTXDShv5k9FbwnUMjgNBajAj62jxsyWQOP0Nw6g+OrFggD4APTPhURwlu+tgLCaxXwFzW3gQUh+ZlCIiMsV9GNt7e/L+4q/PiYWmJY5c6360X8xcZsltwkwXNcLLpNTiPK//6v4B6rvGz1BOnzJAAAAAElFTkSuQmCC');
-}
-p.info { 
-	background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEWklEQVRIx41WS28bVRT+zr3XY48fjZM0pamoFBolPNqiiAXbdAMItUJIrFCFZIslC8SaH8BDXbBkZ0sQIYRYIhALmiKxoUWtUF9ABUFqaFITx7Hd+jUPzrkznthp0zLy8R3PvfN993zncU14xLVwZmWOCCUQLQO0RERFvucZavB4hX9f4LF68+s31vbDoIcDfz7HQyWfc089PT+LyYk8XDeD/sC3NvAD7LS6bB3U6k0MBt4qE5VvfPX62mMJGLyUz2UqLy7N49DMBNZrfWzWB2h1A9zvhXZNOkVIaR4NkFJgojbqO9sIw6B8/cvXqvsSLJz+rDI1WSi9vHwS9aaPX//soNMPR1YRZg86uLPVh5WKP4rNla8gwHZzE54/qF7/4nT5AQLZ+VQxXxHwW+t9/LHejaYJybjy/gIWj7r4/XYXZz+4FU+RHTV/sQe417qLwB+Ur628aj1RQ81FllceAS5AAi7X4pMZKN41sdmR0QOlEGoDd+IwPzeVE299P5cQSEBF862Wvy+4mOxcLllDDEhaWY2i+4hIGY10YYrXq4pFkFQs5DJ/nXnpBZy/3BzRfARcdhqTHJEYbA/4NnpOtCtTIjhDtOsbCAP/KSN5Lqm4Xus9FJwsyBCMLLgfsiSSUGFonwXxqFXEILI47gH0OjslI0U0WSzg738H47k1Atr3Qlz+9PhYOp945yaUjmMQZ5QXu6CZ0Og0+qSWlVRo1k2j3QlGdh+90OsH2Gp6aPLc4ttXxwgMF4DhYrDmRJaKzaQ18tm0xGZJPCj2uDrv2SKKgLsM3O74CMVtDqTWZG2cQEce8DzFsbCeWOVCZB2+2dZFE0kQJC9utzwmCKGNsuBqaEaNEWj2QNbYOUUJSUTAxZcNbXYZaVyeFxSl9G9zW+A2Y8G
 GOR7tMvJkrwcRAe2SWIbQtg9LQKqhpCs2mh20Wn0MPGFlgthoWEw6AtrrgcTB6p4eNYN8Ttuq5peuKGm5G7UWN7Ag0TGxoRcx0ZgHImFqJLgMnMoYO05PGE55TyS6IB5Ud9ptDgpxalFStUngRlrC6CUyigcJSexBjnc/M6nxz0ZHCKpKDgvPD1a7vR4m3QQ/LgXa/b2XIA6+MVG6phwDh3c/P2uwWeui0wtWf/nk+TUVNUQq3+82YVQIV2O3S+6RbIxgmABWKiZxFI4eYv1dhas3mg1Supw0OzmJAj4sev06HOIqHOl1w8q++NGxMYLv3p1JiIXsyJTCEwcI53+8y8mC9y6de2btgQPnuTe/qRA5JV9NIzAGyu5st1qHVSpyDDNGND922KDgElZ/qqHR8Ko/fzhf3vfIPH72Wz7kUxVfTyB0XDipGJjJVNwSctkoFacPaBwsGtS2urj2W7MhO7/48WL1sYe+PSyIKuzCKXIKyKQzyGXSyDJoNqu5iDjPKeCK93BnsyOVv8oZU7507tm1//WvYnidLP3ARKrELy9L4+KoFu3hwhUqRSR5Lqko2bIfxn8JsXvuUrTzzQAAAABJRU5ErkJggg==');
-}
-p.todo { 
-	color: graytext;
-}
-
-.topic a {
-	border-bottom: 1px dotted #4c6b87;
-}
-
-/* Article links */
-a.doclink {
-	font-weight: bold;
-	border-bottom: 1px dotted #4c6b87;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/juneau-code-templates.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/juneau-code-templates.xml b/com.ibm.team.juno.releng/juneau-code-templates.xml
deleted file mode 100755
index 48cf32c..0000000
--- a/com.ibm.team.juno.releng/juneau-code-templates.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ***************************************************************************************************************************
- * 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.                                              *
- *                                                                                                                         *
- ***************************************************************************************************************************
--->
-<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">/**
- * Bean property getter:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.
- *
- * @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.
- */</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">/**
- * Bean property setter:  &lt;property&gt;${bare_field_name}&lt;/property&gt;.
- *
- * @param ${param} The new value for the &lt;property&gt;${bare_field_name}&lt;/property&gt; property on this bean.
- * @return This object (for method chaining).
- */</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">/**
- * TODO
- * 
- * ${tags}
- */</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">/**
- * 
- */</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">/**
- * TODO
- * &lt;p&gt;
- * 
- * @author 
- * ${tags}
- */</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">/**
- * 
- */</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">/**
- * TODO
- * 
- * ${tags}
- */</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)
- * ${see_to_overridden}
- */</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">/**
- * TODO
- * 
- * ${tags}
- * ${see_to_target}
- */</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}
-${package_declaration}
-
-${typecomment}
-${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">
-</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">
-</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">
-</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">
-</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
-${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
-${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}
-// ${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>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/commons-codec-1.9/commons-codec-1.9.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/commons-codec-1.9/commons-codec-1.9.jar b/com.ibm.team.juno.releng/lib/commons-codec-1.9/commons-codec-1.9.jar
deleted file mode 100755
index ef35f1c..0000000
Binary files a/com.ibm.team.juno.releng/lib/commons-codec-1.9/commons-codec-1.9.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/commons-fileupload/org.apache.commons.fileupload_1.3.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/commons-fileupload/org.apache.commons.fileupload_1.3.1.jar b/com.ibm.team.juno.releng/lib/commons-fileupload/org.apache.commons.fileupload_1.3.1.jar
deleted file mode 100755
index af0cda2..0000000
Binary files a/com.ibm.team.juno.releng/lib/commons-fileupload/org.apache.commons.fileupload_1.3.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/derby/derby.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/derby/derby.jar b/com.ibm.team.juno.releng/lib/derby/derby.jar
deleted file mode 100755
index a4d56f0..0000000
Binary files a/com.ibm.team.juno.releng/lib/derby/derby.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/equinox/org.eclipse.osgi.services_3.2.100.v20100503.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/equinox/org.eclipse.osgi.services_3.2.100.v20100503.jar b/com.ibm.team.juno.releng/lib/equinox/org.eclipse.osgi.services_3.2.100.v20100503.jar
deleted file mode 100755
index 68e3075..0000000
Binary files a/com.ibm.team.juno.releng/lib/equinox/org.eclipse.osgi.services_3.2.100.v20100503.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/equinox/org.eclipse.osgi_3.6.50.R36x_v20120315-1500.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/equinox/org.eclipse.osgi_3.6.50.R36x_v20120315-1500.jar b/com.ibm.team.juno.releng/lib/equinox/org.eclipse.osgi_3.6.50.R36x_v20120315-1500.jar
deleted file mode 100755
index 508749e..0000000
Binary files a/com.ibm.team.juno.releng/lib/equinox/org.eclipse.osgi_3.6.50.R36x_v20120315-1500.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/httpclient/commons-logging-1.1.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/httpclient/commons-logging-1.1.1.jar b/com.ibm.team.juno.releng/lib/httpclient/commons-logging-1.1.1.jar
deleted file mode 100755
index 1deef14..0000000
Binary files a/com.ibm.team.juno.releng/lib/httpclient/commons-logging-1.1.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/httpclient/httpclient-4.5.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/httpclient/httpclient-4.5.jar b/com.ibm.team.juno.releng/lib/httpclient/httpclient-4.5.jar
deleted file mode 100755
index 970c989..0000000
Binary files a/com.ibm.team.juno.releng/lib/httpclient/httpclient-4.5.jar and /dev/null differ



[40/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.releng/lib/httpclient/httpcomponents-client-4.5-src.zip
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/httpclient/httpcomponents-client-4.5-src.zip b/com.ibm.team.juno.releng/lib/httpclient/httpcomponents-client-4.5-src.zip
deleted file mode 100755
index 5e611d1..0000000
Binary files a/com.ibm.team.juno.releng/lib/httpclient/httpcomponents-client-4.5-src.zip and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/httpclient/httpcore-4.4.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/httpclient/httpcore-4.4.1.jar b/com.ibm.team.juno.releng/lib/httpclient/httpcore-4.4.1.jar
deleted file mode 100755
index 99715b6..0000000
Binary files a/com.ibm.team.juno.releng/lib/httpclient/httpcore-4.4.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/httpclient/httpmime-4.5.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/httpclient/httpmime-4.5.jar b/com.ibm.team.juno.releng/lib/httpclient/httpmime-4.5.jar
deleted file mode 100755
index b631ceb..0000000
Binary files a/com.ibm.team.juno.releng/lib/httpclient/httpmime-4.5.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jacoco/jacocoagent.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jacoco/jacocoagent.jar b/com.ibm.team.juno.releng/lib/jacoco/jacocoagent.jar
deleted file mode 100755
index a786c95..0000000
Binary files a/com.ibm.team.juno.releng/lib/jacoco/jacocoagent.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jacoco/jacocoant.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jacoco/jacocoant.jar b/com.ibm.team.juno.releng/lib/jacoco/jacocoant.jar
deleted file mode 100755
index 37994f9..0000000
Binary files a/com.ibm.team.juno.releng/lib/jacoco/jacocoant.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.agent-0.7.5.201505241946.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.agent-0.7.5.201505241946.jar b/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.agent-0.7.5.201505241946.jar
deleted file mode 100755
index 04f6a42..0000000
Binary files a/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.agent-0.7.5.201505241946.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.ant-0.7.5.201505241946.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.ant-0.7.5.201505241946.jar b/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.ant-0.7.5.201505241946.jar
deleted file mode 100755
index 8b4b027..0000000
Binary files a/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.ant-0.7.5.201505241946.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.core-0.7.5.201505241946.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.core-0.7.5.201505241946.jar b/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.core-0.7.5.201505241946.jar
deleted file mode 100755
index 07365f8..0000000
Binary files a/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.core-0.7.5.201505241946.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.report-0.7.5.201505241946.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.report-0.7.5.201505241946.jar b/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.report-0.7.5.201505241946.jar
deleted file mode 100755
index 5debeed..0000000
Binary files a/com.ibm.team.juno.releng/lib/jacoco/org.jacoco.report-0.7.5.201505241946.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/java2html/java2html.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/java2html/java2html.jar b/com.ibm.team.juno.releng/lib/java2html/java2html.jar
deleted file mode 100755
index 3d05dc5..0000000
Binary files a/com.ibm.team.juno.releng/lib/java2html/java2html.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/javax.servlet_2.5.0.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/javax.servlet_2.5.0.jar b/com.ibm.team.juno.releng/lib/javax.servlet_2.5.0.jar
deleted file mode 100755
index 20b5755..0000000
Binary files a/com.ibm.team.juno.releng/lib/javax.servlet_2.5.0.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jaxrs/jsr311-api-1.1.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jaxrs/jsr311-api-1.1.1.jar b/com.ibm.team.juno.releng/lib/jaxrs/jsr311-api-1.1.1.jar
deleted file mode 100755
index ec8bc81..0000000
Binary files a/com.ibm.team.juno.releng/lib/jaxrs/jsr311-api-1.1.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jaxrs/wink-common-1.2.1-incubating.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jaxrs/wink-common-1.2.1-incubating.jar b/com.ibm.team.juno.releng/lib/jaxrs/wink-common-1.2.1-incubating.jar
deleted file mode 100755
index 470f630..0000000
Binary files a/com.ibm.team.juno.releng/lib/jaxrs/wink-common-1.2.1-incubating.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jaxrs/wink-server-1.2.1-incubating.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jaxrs/wink-server-1.2.1-incubating.jar b/com.ibm.team.juno.releng/lib/jaxrs/wink-server-1.2.1-incubating.jar
deleted file mode 100755
index c5e61b1..0000000
Binary files a/com.ibm.team.juno.releng/lib/jaxrs/wink-server-1.2.1-incubating.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jena/jena-core-2.7.1-sources.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jena/jena-core-2.7.1-sources.jar b/com.ibm.team.juno.releng/lib/jena/jena-core-2.7.1-sources.jar
deleted file mode 100755
index 357a74f..0000000
Binary files a/com.ibm.team.juno.releng/lib/jena/jena-core-2.7.1-sources.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jena/jena-core-2.7.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jena/jena-core-2.7.1.jar b/com.ibm.team.juno.releng/lib/jena/jena-core-2.7.1.jar
deleted file mode 100755
index 7c3b570..0000000
Binary files a/com.ibm.team.juno.releng/lib/jena/jena-core-2.7.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jena/jena-iri-0.9.2.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jena/jena-iri-0.9.2.jar b/com.ibm.team.juno.releng/lib/jena/jena-iri-0.9.2.jar
deleted file mode 100755
index 7c8da59..0000000
Binary files a/com.ibm.team.juno.releng/lib/jena/jena-iri-0.9.2.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jena/log4j-1.2.16.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jena/log4j-1.2.16.jar b/com.ibm.team.juno.releng/lib/jena/log4j-1.2.16.jar
deleted file mode 100755
index 5429a90..0000000
Binary files a/com.ibm.team.juno.releng/lib/jena/log4j-1.2.16.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jena/slf4j-api-1.6.4.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jena/slf4j-api-1.6.4.jar b/com.ibm.team.juno.releng/lib/jena/slf4j-api-1.6.4.jar
deleted file mode 100755
index 76ef305..0000000
Binary files a/com.ibm.team.juno.releng/lib/jena/slf4j-api-1.6.4.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jena/slf4j-log4j12-1.6.4.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jena/slf4j-log4j12-1.6.4.jar b/com.ibm.team.juno.releng/lib/jena/slf4j-log4j12-1.6.4.jar
deleted file mode 100755
index 1517fbd..0000000
Binary files a/com.ibm.team.juno.releng/lib/jena/slf4j-log4j12-1.6.4.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/jena/xercesImpl-2.9.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/jena/xercesImpl-2.9.1.jar b/com.ibm.team.juno.releng/lib/jena/xercesImpl-2.9.1.jar
deleted file mode 100644
index 547f563..0000000
Binary files a/com.ibm.team.juno.releng/lib/jena/xercesImpl-2.9.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/junit/hamcrest-core-1.3.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/junit/hamcrest-core-1.3.jar b/com.ibm.team.juno.releng/lib/junit/hamcrest-core-1.3.jar
deleted file mode 100755
index 9d5fe16..0000000
Binary files a/com.ibm.team.juno.releng/lib/junit/hamcrest-core-1.3.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/lib/junit/junit-4.12.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/lib/junit/junit-4.12.jar b/com.ibm.team.juno.releng/lib/junit/junit-4.12.jar
deleted file mode 100755
index 3a7fc26..0000000
Binary files a/com.ibm.team.juno.releng/lib/junit/junit-4.12.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/misc/web.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/misc/web.xml b/com.ibm.team.juno.releng/misc/web.xml
deleted file mode 100755
index e031ac1..0000000
--- a/com.ibm.team.juno.releng/misc/web.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ***************************************************************************************************************************
- * 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.                                              *
- *                                                                                                                         *
- ***************************************************************************************************************************
--->
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
-<web-app id="WebApp">
-</web-app>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/.classpath b/com.ibm.team.juno.samples/.classpath
deleted file mode 100755
index 44142ee..0000000
--- a/com.ibm.team.juno.samples/.classpath
+++ /dev/null
@@ -1,30 +0,0 @@
-<?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 combineaccessrules="false" exported="true" kind="src" path="/org.apache.juneau.microservice"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/org.apache.juneau.server"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/org.apache.juneau"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/org.apache.juneau.client"/>
-	<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="src" output="target/test-classes" path="src/test/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<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/2c3a7cb5/com.ibm.team.juno.samples/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/.gitignore b/com.ibm.team.juno.samples/.gitignore
deleted file mode 100644
index 7a78833..0000000
--- a/com.ibm.team.juno.samples/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin/
-/logs/
-/.DS_Store
-/derby.log
-/target/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/.jazzignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/.jazzignore b/com.ibm.team.juno.samples/.jazzignore
deleted file mode 100755
index ba1c36a..0000000
--- a/com.ibm.team.juno.samples/.jazzignore
+++ /dev/null
@@ -1,33 +0,0 @@
-### Jazz Ignore 0
-# Ignored files and folders will not be committed, but may be modified during 
-# accept or update.  
-# - Ignore properties should contain a space separated list of filename patterns.  
-# - Each pattern is case sensitive and surrounded by braces ('{' and '}').  
-# - "*" matches zero or more characters.  
-# - "?" matches a single character.  
-# - The pattern list may be split across lines by ending the line with a 
-#     backslash and starting the next line with a tab.  
-# - Patterns in core.ignore prevent matching resources in the same 
-#     directory from being committed.  
-# - Patterns in core.ignore.recursive matching resources in the current 
-#     directory and all subdirectories from being committed.  
-# - The default value of core.ignore.recursive is *.class 
-# - The default value for core.ignore is bin 
-# 
-# To ignore shell scripts and hidden files in this subtree: 
-#     e.g: core.ignore.recursive = {*.sh} {\.*} 
-# 
-# To ignore resources named 'bin' in the current directory (but allow 
-#  them in any sub directorybelow): 
-#     e.g: core.ignore = {bin} 
-# 
-# NOTE: modifying ignore files will not change the ignore status of 
-#     Eclipse derived resources.
-
-core.ignore.recursive= \
-	{*.class} \
-	{build} \
-	{logs} 
-
-core.ignore= \
-	{bin} 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/.project b/com.ibm.team.juno.samples/.project
deleted file mode 100755
index 43bdb80..0000000
--- a/com.ibm.team.juno.samples/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau.samples</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<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/2c3a7cb5/com.ibm.team.juno.samples/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno.samples/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index d10cfc0..0000000
--- a/com.ibm.team.juno.samples/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,393 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-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.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.processAnnotations=disabled
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/.settings/org.eclipse.jdt.ui.prefs b/com.ibm.team.juno.samples/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100755
index 7d41e3f..0000000
--- a/com.ibm.team.juno.samples/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,9 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/.settings/org.eclipse.m2e.core.prefs b/com.ibm.team.juno.samples/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/com.ibm.team.juno.samples/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/META-INF/MANIFEST.MF b/com.ibm.team.juno.samples/META-INF/MANIFEST.MF
deleted file mode 100755
index 7368cf1..0000000
--- a/com.ibm.team.juno.samples/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Main-Class: org.apache.juneau.microservice.RestMicroservice
-Rest-Resources: org.apache.juneau.server.samples.RootResources
-Main-ConfigFile: samples.cfg
-Class-Path: 
- 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 
- lib/derby.jar 
- lib/jena-core-2.7.1.jar 
- lib/jena-iri-0.9.2.jar 
- lib/log4j-1.2.16.jar 
- lib/slf4j-api-1.6.4.jar 
- lib/slf4j-log4j12-1.6.4.jar 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/OSGI-INF/l10n/plugin.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/OSGI-INF/l10n/plugin.properties b/com.ibm.team.juno.samples/OSGI-INF/l10n/plugin.properties
deleted file mode 100755
index 2c214a2..0000000
--- a/com.ibm.team.juno.samples/OSGI-INF/l10n/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# ***************************************************************************************************************************
-# * 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 = Juneau Cloud Tools - Samples
-bundle.vendor = IBM

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/build.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/build.properties b/com.ibm.team.juno.samples/build.properties
deleted file mode 100755
index 881d866..0000000
--- a/com.ibm.team.juno.samples/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-# ***************************************************************************************************************************
-# * 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/
-jre.compilation.profile = JavaSE-1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/juneau-samples.launch
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/juneau-samples.launch b/com.ibm.team.juno.samples/juneau-samples.launch
deleted file mode 100755
index 8578fa6..0000000
--- a/com.ibm.team.juno.samples/juneau-samples.launch
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.apache.juneau.microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.juneau.microservice.RestMicroservice"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.apache.juneau.samples"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-</launchConfiguration>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/lib/.jazzignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/lib/.jazzignore b/com.ibm.team.juno.samples/lib/.jazzignore
deleted file mode 100755
index 68fa8a3..0000000
--- a/com.ibm.team.juno.samples/lib/.jazzignore
+++ /dev/null
@@ -1,30 +0,0 @@
-### Jazz Ignore 0
-# Ignored files and folders will not be committed, but may be modified during 
-# accept or update.  
-# - Ignore properties should contain a space separated list of filename patterns.  
-# - Each pattern is case sensitive and surrounded by braces ('{' and '}').  
-# - "*" matches zero or more characters.  
-# - "?" matches a single character.  
-# - The pattern list may be split across lines by ending the line with a 
-#     backslash and starting the next line with a tab.  
-# - Patterns in core.ignore prevent matching resources in the same 
-#     directory from being committed.  
-# - Patterns in core.ignore.recursive matching resources in the current 
-#     directory and all subdirectories from being committed.  
-# - The default value of core.ignore.recursive is *.class 
-# - The default value for core.ignore is bin 
-# 
-# To ignore shell scripts and hidden files in this subtree: 
-#     e.g: core.ignore.recursive = {*.sh} {\.*} 
-# 
-# To ignore resources named 'bin' in the current directory (but allow 
-#  them in any sub directorybelow): 
-#     e.g: core.ignore = {bin} 
-# 
-# NOTE: modifying ignore files will not change the ignore status of 
-#     Eclipse derived resources.
-
-core.ignore.recursive= 
-
-core.ignore= \
-	{juneau-microservice.jar} 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/lib/derby.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/lib/derby.jar b/com.ibm.team.juno.samples/lib/derby.jar
deleted file mode 100755
index a4d56f0..0000000
Binary files a/com.ibm.team.juno.samples/lib/derby.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/lib/jena-core-2.7.1.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/lib/jena-core-2.7.1.jar b/com.ibm.team.juno.samples/lib/jena-core-2.7.1.jar
deleted file mode 100755
index 7c3b570..0000000
Binary files a/com.ibm.team.juno.samples/lib/jena-core-2.7.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/lib/jena-iri-0.9.2.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/lib/jena-iri-0.9.2.jar b/com.ibm.team.juno.samples/lib/jena-iri-0.9.2.jar
deleted file mode 100755
index 7c8da59..0000000
Binary files a/com.ibm.team.juno.samples/lib/jena-iri-0.9.2.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/lib/log4j-1.2.16.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/lib/log4j-1.2.16.jar b/com.ibm.team.juno.samples/lib/log4j-1.2.16.jar
deleted file mode 100755
index 5429a90..0000000
Binary files a/com.ibm.team.juno.samples/lib/log4j-1.2.16.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/lib/slf4j-api-1.6.4.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/lib/slf4j-api-1.6.4.jar b/com.ibm.team.juno.samples/lib/slf4j-api-1.6.4.jar
deleted file mode 100755
index 76ef305..0000000
Binary files a/com.ibm.team.juno.samples/lib/slf4j-api-1.6.4.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/lib/slf4j-log4j12-1.6.4.jar
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/lib/slf4j-log4j12-1.6.4.jar b/com.ibm.team.juno.samples/lib/slf4j-log4j12-1.6.4.jar
deleted file mode 100755
index 1517fbd..0000000
Binary files a/com.ibm.team.juno.samples/lib/slf4j-log4j12-1.6.4.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/pom.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/pom.xml b/com.ibm.team.juno.samples/pom.xml
deleted file mode 100644
index 97d6920..0000000
--- a/com.ibm.team.juno.samples/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.juneau</groupId>
-  <artifactId>org.apache.juneau.samples</artifactId>
-  <version>6.0.0-SNAPSHOT</version>
-  <name>org.apache.juneau.samples</name>
-  <description>org.apache.juneau.samples</description>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/java</directory>
-        <excludes>
-          <exclude>**/*.java</exclude>
-        </excludes>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.3</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/samples.cfg
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/samples.cfg b/com.ibm.team.juno.samples/samples.cfg
deleted file mode 100755
index cbf4f99..0000000
--- a/com.ibm.team.juno.samples/samples.cfg
+++ /dev/null
@@ -1,130 +0,0 @@
-#================================================================================
-# Basic configuration file for SaaS microservices
-# Subprojects can use this as a starting point.
-#================================================================================
-
-#================================================================================
-# REST settings
-#================================================================================
-[REST]
-
-port = 10000
-
-# Authentication:  NONE, BASIC.
-authType = NONE
-
-# The BASIC auth username, password, and realm
-loginUser = 
-loginPassword = 
-authRealm = 
-
-# 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.
-stylesheet = styles/devops.css
-
-# 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'.
-saveConfigAction = RESTART_SERVER
-
-# Enable SSL support.
-useSsl = false
-
-#================================================================================
-# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
-#--------------------------------------------------------------------------------
-# Ignored if REST/useSsl is false.
-# Specify any of the following fields:
-# 	allowRenegotiate (boolean)
-# 	certAlias (String)
-# 	crlPath (String)
-# 	enableCRLDP (boolean)
-# 	enableOCSP (boolean)
-# 	excludeCipherSuites (String[]) 
-# 	excludeProtocols (String[])
-# 	includeCipherSuites (String[])
-# 	includeProtocols (String...)
-# 	keyManagerPassword (String)
-# 	keyStore (String)
-# 	keyStorePassword (String)
-# 	keyStorePath (String)
-# 	keyStoreProvider (String)
-# 	keyStoreType (String)
-# 	maxCertPathLength (int)
-# 	needClientAuth (boolean)
-# 	ocspResponderURL (String)
-# 	protocol (String)
-# 	provider (String)
-# 	secureRandomAlgorithm (String)
-# 	sessionCachingEnabled (boolean) 
-# 	sslKeyManagerFactoryAlgorithm (String)
-# 	sslSessionCacheSize (int)
-# 	sslSessionTimeout (int)
-# 	trustAll (boolean)
-# 	trustManagerFactoryAlgorithm (String)
-# 	trustStore (String)
-# 	trustStorePassword (String)
-# 	trustStoreProvider (String)
-# 	trustStoreType (String)
-# 	validateCerts (boolean)
-# 	validatePeerCerts (boolean)
-# 	wantClientAuth (boolean)			
-#================================================================================
-[REST-SslContextFactory]
-keyStorePath = client_keystore.jks
-keyStorePassword* = {HRAaRQoT}
-excludeCipherSuites = TLS_DHE.*, TLS_EDH.*
-excludeProtocols = SSLv3
-allowRenegotiate = false
-
-#================================================================================
-# Logger settings
-# See FileHandler Java class for details.
-#================================================================================
-[Logging]
-logDir = logs
-logFile = sample.%g.log
-dateFormat = yyyy.MM.dd hh:mm:ss
-format = [{date} {level}] {msg}%n
-append = false
-limit = 10M
-count = 5
-levels = { org.apache.juneau:'INFO' }
-useStackTraceHashes = true
-consoleLevel = WARNING
-
-#================================================================================
-# System properties
-#--------------------------------------------------------------------------------
-# These are arbitrary system properties that can be set during startup.
-#================================================================================
-[SystemProperties]
-
-# Configure Jetty for StdErrLog Logging
-org.eclipse.jetty.util.log.class = org.eclipse.jetty.util.log.StrErrLog
-
-# Jetty logging level
-org.eclipse.jetty.LEVEL = WARN
-
-#================================================================================
-# DockerRegistryResource properties
-#================================================================================
-[DockerRegistry]
-url = http://clmdocker02.ratl.swg.usma.ibm.com:5000/v1
-
-#================================================================================
-# SqlQueryResource properties
-#================================================================================
-[SqlQueryResource]
-driver = org.apache.derby.jdbc.EmbeddedDriver
-connectionUrl = jdbc:derby:C:/testDB;create=true
-allowTempUpdates = true
-includeRowNums = true
-
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/Address.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/Address.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/Address.java
deleted file mode 100755
index ed05dc0..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/Address.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************************************************************
- * 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.samples.addressbook;
-
-import java.net.URI;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.jena.annotation.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * Address bean
- */
-@Xml(prefix="addr",name="address")
-@Rdf(prefix="addr")
-public class Address {
-
-	private static int nextAddressId = 1;
-
-	// Bean properties
-	@BeanProperty(beanUri=true) public URI uri;
-	public URI personUri;
-	public int id;
-	@Xml(prefix="mail") @Rdf(prefix="mail") public String street, city, state;
-	@Xml(prefix="mail") @Rdf(prefix="mail") public int zip;
-	public boolean isCurrent;
-
-	/** Bean constructor - Needed for instantiating on client side */
-	public Address() {}
-
-	/** Normal constructor - Needed for instantiating on server side */
-	public Address(URI addressBookUri, URI personUri, CreateAddress ca) throws Exception {
-		this.id = nextAddressId++;
-		if (addressBookUri != null)
-		this.uri = addressBookUri.resolve("addresses/" + id);
-		this.personUri = personUri;
-		this.street = ca.street;
-		this.city = ca.city;
-		this.state = ca.state;
-		this.zip = ca.zip;
-		this.isCurrent = ca.isCurrent;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/AddressBook.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/AddressBook.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/AddressBook.java
deleted file mode 100755
index 65849df..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/AddressBook.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/***************************************************************************************************************************
- * 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.samples.addressbook;
-
-import java.net.*;
-import java.text.*;
-import java.util.*;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- *  Address book bean
- */
-@Xml(name="addressBook")
-public class AddressBook extends LinkedList<Person> implements IAddressBook {
-	private static final long serialVersionUID = 1L;
-
-	// The URL of this resource
-	private URI uri;
-
-	/** Bean constructor - Needed for instantiating on server side */
-	public AddressBook() {}
-
-	/** Bean constructor - Needed for instantiating on client side */
-	public AddressBook(URI uri) throws Exception {
-		this.uri = uri;
-	}
-
-	@Override /* IAddressBook */
-	public List<Person> getPeople() {
-		return this;
-	}
-
-	@Override /* IAddressBook */
-	public Person createPerson(CreatePerson cp) throws Exception {
-		Person p = new Person(uri, cp);
-		add(p);
-		return p;
-	}
-
-	@Override /* IAddressBook */
-	public Person findPerson(int id) {
-		for (Person p : this)
-			if (p.id == id)
-				return p;
-		return null;
-	}
-
-	@Override /* IAddressBook */
-	public Address findAddress(int id) {
-		for (Person p : this)
-			for (Address a : p.addresses)
-				if (a.id == id)
-					return a;
-		return null;
-	}
-
-	@Override /* IAddressBook */
-	public Person findPersonWithAddress(int id) {
-		for (Person p : this)
-			for (Address a : p.addresses)
-				if (a.id == id)
-					return p;
-		return null;
-	}
-
-	@Override /* IAddressBook */
-	public List<Address> getAddresses() {
-		Set<Address> s = new LinkedHashSet<Address>();
-		for (Person p : this)
-			for (Address a : p.addresses)
-				s.add(a);
-		return new ArrayList<Address>(s);
-	}
-
-	@Override /* IAddressBook */
-	public Person removePerson(int id) {
-		Person p = findPerson(id);
-		if (p != null)
-			this.remove(p);
-		return p;
-	}
-
-	/** Utility method */
-	public static Calendar toCalendar(String birthDate) throws Exception {
-		Calendar c = new GregorianCalendar();
-		c.setTime(DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.US).parse(birthDate));
-		return c;
-	}
-}
-
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/CreateAddress.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/CreateAddress.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/CreateAddress.java
deleted file mode 100755
index 5f1b0e0..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/CreateAddress.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************************************************************
- * 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.samples.addressbook;
-
-import org.apache.juneau.jena.annotation.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * POJO for creating a new address
- */
-@Xml(prefix="addr",name="address")
-@Rdf(prefix="addr")
-public class CreateAddress {
-
-	// Bean properties
-	@Xml(prefix="mail") @Rdf(prefix="mail") public String street, city, state;
-	@Xml(prefix="mail") @Rdf(prefix="mail") public int zip;
-	public boolean isCurrent;
-
-	/** Bean constructor - Needed for instantiating on server side */
-	public CreateAddress() {}
-
-	/** Normal constructor - Needed for instantiating on client side */
-	public CreateAddress(String street, String city, String state, int zip, boolean isCurrent) {
-		this.street = street;
-		this.city = city;
-		this.state = state;
-		this.zip = zip;
-		this.isCurrent = isCurrent;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
deleted file mode 100755
index f2ce0ce..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/***************************************************************************************************************************
- * 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.samples.addressbook;
-
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.jena.annotation.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * POJO for creating a new person
- */
-@Xml(prefix="per",name="person")
-@Rdf(prefix="per")
-public class CreatePerson {
-
-	// Bean properties
-	public String name;
-	@BeanProperty(transform=CalendarTransform.Medium.class) public Calendar birthDate;
-	public LinkedList<CreateAddress> addresses = new LinkedList<CreateAddress>();
-
-	/** Bean constructor - Needed for instantiating on server side */
-	public CreatePerson() {}
-
-	/** Normal constructor - Needed for instantiating on client side */
-	public CreatePerson(String name, Calendar birthDate, CreateAddress...addresses) {
-		this.name = name;
-		this.birthDate = birthDate;
-		this.addresses.addAll(Arrays.asList(addresses));
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/IAddressBook.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/IAddressBook.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/IAddressBook.java
deleted file mode 100755
index fb8512c..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/IAddressBook.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/***************************************************************************************************************************
- * 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.samples.addressbook;
-
-import java.util.*;
-
-import org.apache.juneau.server.samples.*;
-
-/**
- * Interface used to help illustrate proxy interfaces.
- * See {@link SampleRemoteableServlet}.
- */
-public interface IAddressBook {
-
-	/** Return all people in the address book */
-	List<Person> getPeople();
-
-	/** Return all addresses in the address book */
-	List<Address> getAddresses();
-
-	/** Create a person in this address book */
-	Person createPerson(CreatePerson cp) throws Exception;
-
-	/** Find a person by id */
-	Person findPerson(int id);
-
-	/** Find an address by id */
-	Address findAddress(int id);
-
-	/** Find a person by address id */
-	Person findPersonWithAddress(int id);
-
-	/** Remove a person by id */
-	Person removePerson(int id);
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
deleted file mode 100755
index 6afdad2..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/***************************************************************************************************************************
- * 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.samples.addressbook;
-
-import java.net.URI;
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.jena.annotation.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * Person POJO
- */
-@Xml(prefix="per",name="person")
-@Rdf(prefix="per")
-public class Person {
-
-	private static int nextPersonId = 1;
-
-	// Bean properties
-	@BeanProperty(beanUri=true) public URI uri;
-	public URI addressBookUri;
-	public int id;
-	public String name;
-	@BeanProperty(transform=CalendarTransform.Medium.class) public Calendar birthDate;
-	public LinkedList<Address> addresses = new LinkedList<Address>();
-
-	/** Bean constructor - Needed for instantiating on server side */
-	public Person() {}
-
-	/** Normal constructor - Needed for instantiating on client side */
-	public Person(URI addressBookUri, CreatePerson cp) throws Exception {
-		this.id = nextPersonId++;
-		this.addressBookUri = addressBookUri;
-		if (addressBookUri != null)
-			this.uri = addressBookUri.resolve("people/" + id);
-		this.name = cp.name;
-		this.birthDate = cp.birthDate;
-		for (CreateAddress ca : cp.addresses)
-			this.addresses.add(new Address(addressBookUri, uri, ca));
-	}
-
-	/** Extra read-only bean property */
-	public int getAge() {
-		return new GregorianCalendar().get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
-	}
-
-	/** Convenience method - Add an address for this person */
-	public Address createAddress(CreateAddress ca) throws Exception {
-		Address a = new Address(addressBookUri, uri, ca);
-		addresses.add(a);
-		return a;
-	}
-
-	/** Extra method (for method invocation example) */
-	public String sayHello(String toPerson, int age) {
-		return name + " says hello to " + toPerson + " who is " + age + " years old";
-	}
-}
-


[38/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java
deleted file mode 100755
index 78608e1..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples.addressbook;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-import static org.apache.juneau.jena.RdfCommonContext.*;
-import static org.apache.juneau.jena.RdfSerializerContext.*;
-import static org.apache.juneau.samples.addressbook.AddressBook.*;
-import static org.apache.juneau.server.RestServletContext.*;
-import static org.apache.juneau.server.labels.DefaultLabels.*;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.dto.*;
-import org.apache.juneau.dto.cognos.*;
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.samples.addressbook.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.converters.*;
-import org.apache.juneau.server.labels.*;
-import org.apache.juneau.server.samples.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Proof-of-concept resource that shows off the capabilities of working with POJO resources.
- * Consists of an in-memory address book repository.
- */
-@RestResource(
-	path="/addressBook",
-	messages="nls/AddressBookResource",
-	properties={
-		@Property(name=REST_allowMethodParam, value="*"),
-		@Property(name=HTML_uriAnchorText, value=TO_STRING),
-		@Property(name=SERIALIZER_quoteChar, value="'"),
-		@Property(name=RDF_rdfxml_tab, value="5"),
-		@Property(name=RDF_addRootProperty, value="true"),
-		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'$R{servletURI}?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.addressbook.AddressBookResource,org.apache.juneau.samples.addressbook.Address,org.apache.juneau.samples.addressbook.AddressBook,org.apache.juneau.samples.addressbook.CreateAddress,org.apache.juneau.samples.addressbook.CreatePerson,org.apache.juneau.samples.addressbook.IAddressBook,org.apache.juneau.samples.addressbook.Person)'}"),
-		// Resolve all relative URIs so that they're relative to this servlet!
-		@Property(name=SERIALIZER_relativeUriBase, value="$R{servletURI}"),
-	},
-	stylesheet="styles/devops.css",
-	encoders=GzipEncoder.class
-)
-public class AddressBookResource extends ResourceJena {
-	private static final long serialVersionUID = 1L;
-
-	// The in-memory address book
-	private AddressBook addressBook;
-
-	@Override /* Servlet */
-	public void init() {
-
-		try {
-			// Create the address book
-			addressBook = new AddressBook(java.net.URI.create(""));
-
-			// Add some people to our address book by default
-			addressBook.createPerson(
-				new CreatePerson(
-					"Barack Obama",
-					toCalendar("Aug 4, 1961"),
-					new CreateAddress("1600 Pennsylvania Ave", "Washington", "DC", 20500, true),
-					new CreateAddress("5046 S Greenwood Ave", "Chicago", "IL", 60615, false)
-				)
-			);
-			addressBook.createPerson(
-				new CreatePerson(
-					"George Walker Bush",
-					toCalendar("Jul 6, 1946"),
-					new CreateAddress("43 Prairie Chapel Rd", "Crawford", "TX", 76638, true),
-					new CreateAddress("1600 Pennsylvania Ave", "Washington", "DC", 20500, false)
-				)
-			);
-
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * [GET /]
-	 * Get root page.
-	 */
-	@RestMethod(name="GET", path="/",
-		converters=Queryable.class
-	)
-	public Link[] getRoot() throws Exception {
-		return new Link[] {
-			new Link("people", "people"),
-			new Link("addresses", "addresses")
-		};
-	}
-
-	/**
-	 * [GET /people/*]
-	 * Get all people in the address book.
-	 * Traversable filtering enabled to allow nodes in returned POJO tree to be addressed.
-	 * Introspectable filtering enabled to allow public methods on the returned object to be invoked.
-	 */
-	@RestMethod(name="GET", path="/people/*",
-		converters={Traversable.class,Queryable.class,Introspectable.class}
-	)
-	public AddressBook getAllPeople() throws Exception {
-		return addressBook;
-	}
-
-	/**
-	 * [GET /people/{id}/*]
-	 * Get a single person by ID.
-	 * Traversable filtering enabled to allow nodes in returned POJO tree to be addressed.
-	 * Introspectable filtering enabled to allow public methods on the returned object to be invoked.
-	 */
-	@RestMethod(name="GET", path="/people/{id}/*",
-		converters={Traversable.class,Queryable.class,Introspectable.class}
-	)
-	public Person getPerson(@Attr int id) throws Exception {
-		return findPerson(id);
-	}
-
-	/**
-	 * [GET /addresses/*]
-	 * Get all addresses in the address book.
-	 */
-	@RestMethod(name="GET", path="/addresses/*",
-		converters={Traversable.class,Queryable.class}
-	)
-	public List<Address> getAllAddresses() throws Exception {
-		return addressBook.getAddresses();
-	}
-
-	/**
-	 * [GET /addresses/{id}/*]
-	 * Get a single address by ID.
-	 */
-	@RestMethod(name="GET", path="/addresses/{id}/*",
-		converters={Traversable.class,Queryable.class}
-	)
-	public Address getAddress(@Attr int id) throws Exception {
-		return findAddress(id);
-	}
-
-	/**
-	 * [POST /people]
-	 * Create a new Person bean.
-	 */
-	@RestMethod(name="POST", path="/people",
-		guards=AdminGuard.class
-	)
-	public Redirect createPerson(@Content CreatePerson cp) throws Exception {
-		Person p = addressBook.createPerson(cp);
-		return new Redirect("people/{0}", p.id);
-	}
-
-	/**
-	 * [POST /people/{id}/addresses]
-	 * Create a new Address bean.
-	 */
-	@RestMethod(name="POST", path="/people/{id}/addresses",
-		guards=AdminGuard.class
-	)
-	public Redirect createAddress(@Attr int id, @Content CreateAddress ca) throws Exception {
-		Person p = findPerson(id);
-		Address a = p.createAddress(ca);
-		return new Redirect("addresses/{0}", a.id);
-	}
-
-	/**
-	 * [DELETE /people/{id}]
-	 * Delete a Person bean.
-	 */
-	@RestMethod(name="DELETE", path="/people/{id}",
-		guards=AdminGuard.class
-	)
-	public String deletePerson(@Attr int id) throws Exception {
-		addressBook.removePerson(id);
-		return "DELETE successful";
-	}
-
-	/**
-	 * [DELETE /addresses/{id}]
-	 * Delete an Address bean.
-	 */
-	@RestMethod(name="DELETE", path="/addresses/{id}",
-		guards=AdminGuard.class
-	)
-	public String deleteAddress(@Attr int addressId) throws Exception {
-		Person p = addressBook.findPersonWithAddress(addressId);
-		if (p == null)
-			throw new RestException(SC_NOT_FOUND, "Person not found");
-		Address a = findAddress(addressId);
-		p.addresses.remove(a);
-		return "DELETE successful";
-	}
-
-	/**
-	 * [PUT /people/{id}/*]
-	 * Change property on Person bean.
-	 */
-	@RestMethod(name="PUT", path="/people/{id}/*",
-		guards=AdminGuard.class
-	)
-	public String updatePerson(RestRequest req, @Attr int id) throws Exception {
-		try {
-			Person p = findPerson(id);
-			String pathRemainder = req.getPathRemainder();
-			PojoRest r = new PojoRest(p);
-			ClassMeta<?> cm = r.getClassMeta(pathRemainder);
-			Object in = req.getInput(cm);
-			r.put(pathRemainder, in);
-			return "PUT successful";
-		} catch (Exception e) {
-			throw new RestException(SC_BAD_REQUEST, "PUT unsuccessful").initCause(e);
-		}
-	}
-
-	/**
-	 * [PUT /addresses/{id}/*]
-	 * Change property on Address bean.
-	 */
-	@RestMethod(name="PUT", path="/addresses/{id}/*",
-		guards=AdminGuard.class
-	)
-	public String updateAddress(RestRequest req, @Attr int id) throws Exception {
-		try {
-			Address a = findAddress(id);
-			String pathInfo = req.getPathInfo();
-			PojoRest r = new PojoRest(a);
-			ClassMeta<?> cm = r.getClassMeta(pathInfo);
-			Object in = req.getInput(cm);
-			r.put(pathInfo, in);
-			return "PUT successful";
-		} catch (Exception e) {
-			throw new RestException(SC_BAD_REQUEST, "PUT unsuccessful").initCause(e);
-		}
-	}
-
-	/**
-	 * [INIT /]
-	 * Reinitialize this resource.
-	 */
-	@RestMethod(name="INIT", path="/",
-		guards=AdminGuard.class
-	)
-	public String doInit() throws Exception {
-		init();
-		return "OK";
-	}
-
-	/**
-	 * [GET /cognos]
-	 * Get data in Cognos/XML format
-	 */
-	@RestMethod(name="GET", path="/cognos")
-	public DataSet getCognosData() throws Exception {
-
-		// The Cognos metadata
-		Column[] items = {
-			new Column("name", "xs:String", 255),
-			new Column("age", "xs:int"),
-			new Column("numAddresses", "xs:int")
-				.addTransform(
-					new PojoTransform<Person,Integer>() {
-						@Override /* PojoTransform */
-						public Integer transform(Person p) {
-							return p.addresses.size();
-						}
-					}
-				)
-		};
-
-		return new DataSet(items, addressBook, this.getBeanContext());
-	}
-
-	/**
-	 * [OPTIONS /*]
-	 * View resource options
-	 */
-	@Override /* RestServletJenaDefault */
-	@RestMethod(name="OPTIONS", path="/*")
-	public ResourceOptions getOptions(RestRequest req) {
-		return new Options(req);
-	}
-
-	/** Convenience method - Find a person by ID */
-	private Person findPerson(int id) throws RestException {
-		Person p = addressBook.findPerson(id);
-		if (p == null)
-			throw new RestException(SC_NOT_FOUND, "Person not found");
-		return p;
-	}
-
-	/** Convenience method - Find an address by ID */
-	private Address findAddress(int id) throws RestException {
-		Address a = addressBook.findAddress(id);
-		if (a == null)
-			throw new RestException(SC_NOT_FOUND, "Address not found");
-		return a;
-	}
-
-	/**
-	 * Output POJO for OPTIONS requests.
-	 * Note that we're extending the existing ResourceOptions class.
-	 */
-	public class Options extends ResourceOptions {
-		public ParamDescription[] queryableParameters;
-		public String[] otherNotes;
-
-		public Options(RestRequest req) {
-			super(AddressBookResource.this, req);
-			Locale locale = req.getLocale();
-			queryableParameters = getQueryableParamDescriptions(locale);
-			otherNotes = getMessage(locale, "otherNotes").split("\\.\\s*");
-		}
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/ClientTest.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/ClientTest.java b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/ClientTest.java
deleted file mode 100755
index 4ee49bb..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/ClientTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples.addressbook;
-
-import java.text.*;
-import java.util.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.samples.addressbook.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Sample client code for interacting with AddressBookResource
- */
-public class ClientTest {
-
-	public static void main(String[] args) {
-
-		try {
-			System.out.println("Running client test...");
-
-			// Create a client to handle XML requests and responses.
-			RestClient client = new RestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-			RestClient xmlClient = new RestClient(XmlSerializer.DEFAULT, XmlParser.DEFAULT);
-			try {
-				String root = "http://localhost:10000/addressBook";
-
-				// Get the current contents of the address book
-				AddressBook ab = client.doGet(root + "/people").getResponse(AddressBook.class);
-				System.out.println("Number of entries = " + ab.getPeople().size());
-
-				// Same, but use XML as the protocol both ways
-				ab = xmlClient.doGet(root + "/people").getResponse(AddressBook.class);
-				System.out.println("Number of entries = " + ab.getPeople().size());
-
-
-				// Delete the existing entries
-				for (Person p : ab.getPeople()) {
-					String r = client.doDelete(p.uri).getResponse(String.class);
-					System.out.println("Deleted person " + p.name + ", response = " + r);
-				}
-
-				// Make sure they're gone
-				ab = client.doGet(root + "/people").getResponse(AddressBook.class);
-				System.out.println("Number of entries = " + ab.getPeople().size());
-
-				// Add 1st person again
-				CreatePerson cp = new CreatePerson(
-					"Barack Obama",
-					toCalendar("Aug 4, 1961"),
-					new CreateAddress("1600 Pennsylvania Ave", "Washington", "DC", 20500, true),
-					new CreateAddress("5046 S Greenwood Ave", "Chicago", "IL", 60615, false)
-				);
-				Person p = client.doPost(root + "/people", cp).getResponse(Person.class);
-				System.out.println("Created person " + p.name + ", uri = " + p.uri);
-
-				// Add 2nd person again, but add addresses separately
-				cp = new CreatePerson(
-					"George Walker Bush",
-					toCalendar("Jul 6, 1946")
-				);
-				p = client.doPost(root + "/people", cp).getResponse(Person.class);
-				System.out.println("Created person " + p.name + ", uri = " + p.uri);
-
-				// Add addresses to 2nd person
-				CreateAddress ca = new CreateAddress("43 Prairie Chapel Rd", "Crawford", "TX", 76638, true);
-				Address a = client.doPost(p.uri + "/addresses", ca).getResponse(Address.class);
-				System.out.println("Created address " + a.uri);
-
-				ca = new CreateAddress("1600 Pennsylvania Ave", "Washington", "DC", 20500, false);
-				a = client.doPost(p.uri + "/addresses", ca).getResponse(Address.class);
-				System.out.println("Created address " + a.uri);
-
-				// Find 1st person, and change name
-				Person[] pp = client.doGet(root + "/people?q=(name='Barack+Obama')").getResponse(Person[].class);
-				String r = client.doPut(pp[0].uri + "/name", "Barack Hussein Obama").getResponse(String.class);
-				System.out.println("Changed name, response = " + r);
-				p = client.doGet(pp[0].uri).getResponse(Person.class);
-				System.out.println("New name = " + p.name);
-			} finally {
-				client.closeQuietly();
-				xmlClient.closeQuietly();
-			}
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	// Utility method
-	public static Calendar toCalendar(String birthDate) throws Exception {
-		Calendar c = new GregorianCalendar();
-		c.setTime(DateFormat.getDateInstance(DateFormat.MEDIUM).parse(birthDate));
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/nls/AddressBookResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/nls/AddressBookResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/nls/AddressBookResource.properties
deleted file mode 100755
index b3230b0..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/addressbook/nls/AddressBookResource.properties
+++ /dev/null
@@ -1,74 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-label = AddressBook sample resource
-description = Proof-of-concept resource that shows off the capabilities of working with POJO resources
-
-getRoot = Get root page
-
-getAllPeople = Get all people in the address book
-getAllPeople.res.200.content = List<Person>
-
-getPerson = Get a single person by ID
-getPerson.req.attr.id = Person UUID
-getPerson.res.200.content = Person bean
-getPerson.res.404 = Person ID not found
-
-getAllAddresses = Get all addresses in the address book
-getAllAddresses.res.200.content = List<Address>
-
-getAddress = Get a single address by ID
-getAddress.req.attr.id = Address UUID
-getAddress.res.200.content = Address bean
-getAddress.res.404 = Address ID not found
-
-createPerson = Create a new Person bean 
-createPerson.res.307.header.Location = URL of new person
-
-createAddress = Create a new Address bean
-createAddress.req.attr.id = Person UUID
-createAddress.res.307.header.Location = URL of new address
-
-deletePerson = Delete a Person bean
-deletePerson.req.attr.id = Person UUID
-deletePerson.res.200.content = "DELETE successful"
-deletePerson.res.404 = Person ID not found
-
-deleteAddress = Delete an Address bean
-deleteAddress.req.attr.id = Address UUID
-deleteAddress.res.200.content = "DELETE successful"
-deleteAddress.res.404 = Address ID not found
-
-updatePerson = Change property on Person bean
-updatePerson.req.attr.id = Person UUID
-updatePerson.req.content = Anything
-updatePerson.res.200.content = "PUT successful"
-updatePerson.res.400 = Invalid object type used
-updatePerson.res.404 = Person ID not found
-
-updateAddress = Change property on Address bean
-updateAddress.req.attr.id = Address UUID
-updateAddress.req.content = Anything
-updateAddress.res.200.content = "PUT successful"
-updateAddress.res.400 = Invalid object type used
-updateAddress.res.404 = Address ID not found
-
-doInit = Reinitialize this resource
-doInit.res.200.content = "OK"
-
-getOptions = View resource options
-
-getCognosData = Get data in Cognos/XML format
-getCognosData.res.200.content = DataSet
-
-otherNotes = GZip support enabled.  Public methods can be invoked by using the &Method URL parameter.  'text/cognos+xml' support available under root resource only
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/averycutedog.jpg
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/averycutedog.jpg b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/averycutedog.jpg
deleted file mode 100755
index 335855e..0000000
Binary files a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/averycutedog.jpg and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/htdocs/code-highlighting.css
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/htdocs/code-highlighting.css b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/htdocs/code-highlighting.css
deleted file mode 100755
index 1475500..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/htdocs/code-highlighting.css
+++ /dev/null
@@ -1,124 +0,0 @@
-code, 
-tt, 
-pre,
-dt code {
-	font-size: 9pt;
-}
-
-/*--- Bordered code ---*/
-p.bcode {
-	font-size: 9pt;
-	white-space: pre;
-	border: 1px solid black;
-	margin: 10px 20px;
-	padding: 10px;
-	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;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/AtomFeedResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/AtomFeedResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/AtomFeedResource.properties
deleted file mode 100755
index 1fadf05..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/AtomFeedResource.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# AtomFeedResource labels
-#--------------------------------------------------------------------------------
-label = Sample ATOM feed resource
-description = Sample resource that shows how to render ATOM feeds
-getFeed = Get the sample ATOM feed
-setFeed = Overwrite the sample ATOM feed
-doOptions = Show resource options

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/CodeFormatterResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/CodeFormatterResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/CodeFormatterResource.properties
deleted file mode 100755
index f3f1d08..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/CodeFormatterResource.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# CodeFormatterResource labels
-#--------------------------------------------------------------------------------
-label = Code Formatter
-description = Utility for generating HTML code-formatted source code

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/HelloWorldResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/HelloWorldResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/HelloWorldResource.properties
deleted file mode 100755
index 8414e9a..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/HelloWorldResource.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# HelloWorldResource labels
-#--------------------------------------------------------------------------------
-label = Hello World sample resource
-description = Simplest possible resource
-sayHello = Responds with "Hello world!" 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/JsonSchemaResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/JsonSchemaResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/JsonSchemaResource.properties
deleted file mode 100755
index 45664dd..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/JsonSchemaResource.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# JsonSchemaResource labels
-#--------------------------------------------------------------------------------
-label = Sample resource that shows how to generate JSON-Schema documents
-getSchema = Get the JSON-Schema document
-setSchema = Overwrite the JSON-Schema document
-doOptions = Show resource options

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/MethodExampleResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/MethodExampleResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/MethodExampleResource.properties
deleted file mode 100755
index 6921941..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/MethodExampleResource.properties
+++ /dev/null
@@ -1,37 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# MethodExampleResource labels
-#--------------------------------------------------------------------------------
-label = A simple REST method example resource
-doGetExample = Sample GET method
-doGetExample1 = Sample GET using annotations
-doGetExample1.req.attr.a1 = Sample variable
-doGetExample1.req.attr.a2 = Sample variable
-doGetExample1.req.attr.a3 = Sample variable
-doGetExample1.req.param.p1 = Sample parameter
-doGetExample1.req.param.p2 = Sample parameter
-doGetExample1.req.param.p3 = Sample parameter
-doGetExample1.req.header.Accept-Language = Sample header
-doGetExample1.req.header.DNT = Sample header
-doGetExample2 = Sample GET using Java APIs
-doGetExample2.req.attr.a1 = Sample variable
-doGetExample2.req.attr.a2 = Sample variable
-doGetExample2.req.attr.a3 = Sample variable
-doGetExample2.req.param.p1 = Sample parameter
-doGetExample2.req.param.p2 = Sample parameter
-doGetExample2.req.param.p3 = Sample parameter
-doGetExample2.req.header.Accept-Language = Sample header
-doGetExample2.req.header.DNT = Sample header
-getOptions = Get these options

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/PhotosResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/PhotosResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/PhotosResource.properties
deleted file mode 100755
index fdcd5f2..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/PhotosResource.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# PhotosResource labels
-#--------------------------------------------------------------------------------
-label = Sample resource that allows images to be uploaded and retrieved.
-getAllPhotos = Show the list of all currently loaded photos
-getPhoto = Get a photo by ID
-addPhoto = Add a photo
-setPhoto = Overwrite a photo by ID
-deletePhoto = Delete a photo by ID
-doOptions = Show resource options
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/RequestEchoResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/RequestEchoResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/RequestEchoResource.properties
deleted file mode 100755
index 40ec24f..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/RequestEchoResource.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# RequestEchoResource labels
-#--------------------------------------------------------------------------------
-label = Echos the current HttpServletRequest object back to the browser.
-doGet = Serializes the incoming HttpServletRequest object.
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/RootResources.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/RootResources.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/RootResources.properties
deleted file mode 100755
index d187d6f..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/RootResources.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# ***************************************************************************************************************************
-# * 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 labels
-#--------------------------------------------------------------------------------
-label = Root resources
-description = This is an example of a router resource that is used to access other resources.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SampleRemoteableServlet.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SampleRemoteableServlet.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SampleRemoteableServlet.properties
deleted file mode 100755
index 087c24c..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SampleRemoteableServlet.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# SampleRemoteableServlet labels
-#--------------------------------------------------------------------------------
-label = Sample resource that demonstrates the remotable API

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SourceResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SourceResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SourceResource.properties
deleted file mode 100755
index 1bb3e9f..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SourceResource.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# SourceResource labels
-#--------------------------------------------------------------------------------
-label = Servlet for viewing source code on classes whose Java files are present on the classpath.
-getSource = View source on the specified classes.
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SqlQueryResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SqlQueryResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SqlQueryResource.properties
deleted file mode 100755
index 3bde956..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/SqlQueryResource.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# SqlQueryResource labels
-#--------------------------------------------------------------------------------
-label = Sample resource that shows how to serialize SQL ResultSets 
-doGet = Display the query entry page
-doPost = Execute one or more queries

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/TempDirResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/TempDirResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/TempDirResource.properties
deleted file mode 100755
index 1586ab6..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/TempDirResource.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# TempDirResource labels
-#--------------------------------------------------------------------------------
-label = Temp Directory View Service
-description = View and download files in the '$S{java.io.tmpdir}' directory.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/TumblrParserResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/TumblrParserResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/TumblrParserResource.properties
deleted file mode 100755
index a900159..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/TumblrParserResource.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# SqlQueryResource labels
-#--------------------------------------------------------------------------------
-label = Tumblr blog parser service
-getInstructions = Get the instructions page
-parseBlog = Parse the specified blog

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/UrlEncodedFormResource.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/UrlEncodedFormResource.properties b/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/UrlEncodedFormResource.properties
deleted file mode 100755
index 385508d..0000000
--- a/com.ibm.team.juno.samples/src/main/java/org/apache/juneau/server/samples/nls/UrlEncodedFormResource.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# ***************************************************************************************************************************
-# * 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.                                              *
-# ***************************************************************************************************************************
-
-#--------------------------------------------------------------------------------
-# UrlEncodedFormResource labels
-#--------------------------------------------------------------------------------
-label = URL-Encoded Form Post Example
-description = Shows how URL-Encoded form input can be loaded into POJOs.  POJO is simply echoed back.
-aString = A String:
-aNumber = A Number:
-aDate = A Date:
-submit = submit
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_AddressBookResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_AddressBookResource.java b/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_AddressBookResource.java
deleted file mode 100755
index 1c086fb..0000000
--- a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_AddressBookResource.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.server.samples.TestUtils.*;
-import static org.junit.Assert.*;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.samples.addressbook.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.xml.*;
-import org.junit.*;
-
-@SuppressWarnings({"serial"})
-public class CT_AddressBookResource {
-
-	private static boolean debug = false;
-
-	static RestClient[] clients;
-
-	@BeforeClass
-	public static void beforeClass() throws Exception {
-		clients = new RestClient[] {
-			new SamplesRestClient(JsonSerializer.class, JsonParser.class),
-			new SamplesRestClient(XmlSerializer.class, XmlParser.class),
-			new SamplesRestClient(HtmlSerializer.class, HtmlParser.class).setAccept("text/html+stripped"),
-			new SamplesRestClient(XmlSerializer.class,  HtmlParser.class).setAccept("text/html+stripped")
-		};
-		for (RestClient c : clients) {
-			c.getSerializer().addTransforms(CalendarTransform.Medium.class);
-			c.getParser().addTransforms(CalendarTransform.Medium.class);
-			c.getSerializer().setProperty(XmlSerializerContext.XML_autoDetectNamespaces, true);
-		}
-	}
-
-	@AfterClass
-	public static void afterClass() {
-		for (RestClient c : clients) {
-			c.closeQuietly();
-		}
-	}
-
-	//====================================================================================================
-	// Get AddressBookResource as JSON
-	//====================================================================================================
-	@Test
-	public void testBasic() throws Exception {
-		String in = IOUtils.read(getClass().getResourceAsStream("/org/apache/juneau/server/test/CT_AddressBookResource_test0.json"));
-		JsonParser p = new JsonParser().addTransforms(CalendarTransform.Medium.class);
-		Person person = p.parse(in, Person.class);
-		if (debug) System.err.println(person);
-	}
-
-	// A list of People objects.
-	public static class PersonList extends LinkedList<Person> {}
-
-	//====================================================================================================
-	// PojoRest tests
-	//====================================================================================================
-	@Test
-	public void testPojoRest() throws Exception {
-		for (RestClient client : clients) {
-			int rc;
-			Person p;
-			List<Person> people;
-
-			// Reinitialize the resource
-			rc = client.doGet("/addressBook?method=init").run();
-			assertEquals(200, rc);
-
-			// Simple GETs
-			people = client.doGet("/addressBook/people").getResponse(PersonList.class);
-			assertEquals("Barack Obama", people.get(0).name);
-			assertEquals(76638, people.get(1).addresses.get(0).zip);
-
-			// PUT a simple String field
-			p = people.get(0);
-			rc = client.doPut(p.uri+"/name", "foo").run();
-			assertEquals(200, rc);
-			String name = client.doGet(p.uri+"/name").getResponse(String.class);
-			assertEquals("foo", name);
-			p = client.doGet(p.uri).getResponse(Person.class);
-			assertEquals("foo", p.name);
-
-			// POST an address as JSON
-			CreateAddress ca = new CreateAddress("a1","b1","c1",1,false);
-			Address a = client.doPost(p.uri + "/addresses", new ObjectMap(BeanContext.DEFAULT.forBean(ca))).getResponse(Address.class);
-			assertEquals("a1", a.street);
-			a = client.doGet(a.uri).getResponse(Address.class);
-			assertEquals("a1", a.street);
-			assertEquals(1, a.zip);
-			assertFalse(a.isCurrent);
-
-			// POST an address as a bean
-			ca = new CreateAddress("a2","b2","c2",2,true);
-			a = client.doPost(p.uri + "/addresses", ca).getResponse(Address.class);
-			assertEquals("a2", a.street);
-			a = client.doGet(a.uri).getResponse(Address.class);
-			assertEquals("a2", a.street);
-			assertEquals(2, a.zip);
-			assertTrue(a.isCurrent);
-
-			// POST a person
-			CreatePerson billClinton = new CreatePerson("Bill Clinton", AddressBook.toCalendar("Aug 19, 1946"),
-				new CreateAddress("a3","b3","c3",3,false)
-			);
-			rc = client.doPost("/addressBook/people", billClinton).run();
-			assertEquals(200, rc);
-			people = client.doGet("/addressBook/people").getResponse(PersonList.class);
-			p = people.get(2);
-			assertEquals(3, people.size());
-			assertEquals("Bill Clinton", p.name);
-
-			// DELETE an address
-			rc = client.doDelete(p.addresses.get(0).uri).run();
-			assertEquals(200, rc);
-			people = client.doGet("/addressBook/people").getResponse(PersonList.class);
-			p = people.get(2);
-			assertEquals(0, p.addresses.size());
-
-			// DELETE a person
-			rc = client.doDelete(p.uri).run();
-			assertEquals(200, rc);
-			people = client.doGet("/addressBook/people").getResponse(PersonList.class);
-			assertEquals(2, people.size());
-
-			// Reinitialize the resource
-			rc = client.doGet("/addressBook?method=init").run();
-			assertEquals(200, rc);
-		}
-	}
-
-	//====================================================================================================
-	// PojoQuery tests
-	//====================================================================================================
-	@Test
-	public void testPojoQuery() throws Exception {
-
-		for (RestClient client : clients) {
-			RestCall r;
-			List<Person> people;
-
-			// Reinitialize the resource
-			int rc = client.doGet("/addressBook?method=init").run();
-			assertEquals(200, rc);
-
-			r = client.doGet("/addressBook/people?q=(name=B*)");
-			people = r.getResponse(PersonList.class);
-			assertEquals(1, people.size());
-			assertEquals("Barack Obama", people.get(0).name);
-
-			r = client.doGet("/addressBook/people?q=(name='Barack+Obama')");
-			people = r.getResponse(PersonList.class);
-			assertEquals(1, people.size());
-			assertEquals("Barack Obama", people.get(0).name);
-
-			r = client.doGet("/addressBook/people?q=(name='Barack%20Obama')");
-			people = r.getResponse(PersonList.class);
-			assertEquals(1, people.size());
-			assertEquals("Barack Obama", people.get(0).name);
-
-			r = client.doGet("/addressBook/people?v=(name,birthDate)");
-			people = r.getResponse(PersonList.class);
-			assertEquals("Barack Obama", people.get(0).name);
-			assertTrue(people.get(0).getAge() > 10);
-			assertEquals(0, people.get(0).addresses.size());
-
-			r = client.doGet("/addressBook/people?v=(addresses,birthDate)");
-			people = r.getResponse(PersonList.class);
-			assertNull(people.get(0).name);
-			assertTrue(people.get(0).getAge() > 10);
-			assertEquals(2, people.get(0).addresses.size());
-
-			r = client.doGet("/addressBook/people?s=($o(age=d))");
-			people = r.getResponse(PersonList.class);
-			assertTrue(people.get(0).getAge() > 10);
-			r = client.doGet("/addressBook/people?s=(age)");
-			people = r.getResponse(PersonList.class);
-			assertTrue(people.get(0).getAge() > 10);
-			r = client.doGet("/addressBook/people?s=($o(age=a))");
-			people = r.getResponse(PersonList.class);
-			assertTrue(people.get(0).getAge() > 10);
-
-			r = client.doGet("/addressBook/people?p=1&l=1");
-			people = r.getResponse(PersonList.class);
-			assertEquals(1, people.size());
-			assertTrue(people.get(0).getAge() > 10);
-		}
-	}
-
-	//====================================================================================================
-	// PojoIntrospector tests
-	//====================================================================================================
-	@Test
-	public void testPojoIntrospector() throws Exception {
-
-		for (RestClient client : clients) {
-
-			List<Person> people;
-
-			// Reinitialize the resource
-			int rc = client.doGet("/addressBook?method=init").run();
-			assertEquals(200, rc);
-
-			// Simple GETs
-			people = client.doGet("/addressBook/people").getResponse(PersonList.class);
-			Person p = people.get(0);
-			int length = client.doGet(p.uri+"/name?invokeMethod=length").getResponse(Integer.class);
-			assertEquals(12, length);
-
-			String[] tokens = client.doGet(p.uri+"/name?invokeMethod=split(java.lang.String,int)&invokeArgs=['a',3]").getResponse(String[].class);
-			assertObjectEquals("['B','r','ck Obama']", tokens);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_AddressBookResource_test0.json
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_AddressBookResource_test0.json b/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_AddressBookResource_test0.json
deleted file mode 100755
index dcaaaff..0000000
--- a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_AddressBookResource_test0.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-	name: "Bill Clinton", 
-	age: 66, 
-	birthDate: "Aug 19, 1946", 
-	addresses: [
-		{
-			street: "a3", 
-			city: "b3", 
-			state: "c3", 
-			zip: 3, 
-			isCurrent: false
-		}
-	]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_RootResources.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_RootResources.java b/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_RootResources.java
deleted file mode 100755
index a3fbc3e..0000000
--- a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_RootResources.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.junit.Assert.*;
-
-import java.net.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.server.labels.*;
-import org.apache.juneau.xml.*;
-import org.junit.*;
-
-public class CT_RootResources {
-
-	private static String path = URI.create(Constants.getSampleUrl()).getPath();              // /jazz/juneau/sample
-	private static boolean debug = false;
-
-	private static RestClient jsonClient;
-
-	@BeforeClass
-	public static void beforeClass() {
-		jsonClient = new SamplesRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-	}
-
-	@AfterClass
-	public static void afterClass() {
-		jsonClient.closeQuietly();
-	}
-
-	//====================================================================================================
-	// text/json
-	//====================================================================================================
-	@Test
-	public void testJson() throws Exception {
-		RestClient client = new SamplesRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		RestCall r = client.doGet("");
-		ResourceDescription[] x = r.getResponse(ResourceDescription[].class);
-		assertEquals("helloWorld", x[0].getName().getName());
-		assertEquals(path + "/helloWorld", x[0].getName().getHref());
-		assertEquals("Hello World sample resource", x[0].getDescription());
-
-		r = jsonClient.doOptions("");
-		ObjectMap x2 = r.getResponse(ObjectMap.class);
-		String s = x2.getString("description");
-		if (debug) System.err.println(s);
-		assertTrue(s, s.startsWith("This is an example"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// text/xml
-	//====================================================================================================
-	@Test
-	public void testXml() throws Exception {
-		RestClient client = new SamplesRestClient().setParser(XmlParser.DEFAULT);
-		RestCall r = client.doGet("");
-		ResourceDescription[] x = r.getResponse(ResourceDescription[].class);
-		assertEquals("helloWorld", x[0].getName().getName());
-		assertEquals(path + "/helloWorld", x[0].getName().getHref());
-		assertEquals("Hello World sample resource", x[0].getDescription());
-
-		r = jsonClient.doOptions("");
-		ObjectMap x2 = r.getResponse(ObjectMap.class);
-		String s = x2.getString("description");
-		if (debug) System.err.println(s);
-		assertTrue(s, s.startsWith("This is an example"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// text/html+stripped
-	//====================================================================================================
-	@Test
-	public void testHtmlStripped() throws Exception {
-		RestClient client = new SamplesRestClient().setParser(HtmlParser.DEFAULT).setAccept("text/html+stripped");
-		RestCall r = client.doGet("");
-		ResourceDescription[] x = r.getResponse(ResourceDescription[].class);
-		assertEquals("helloWorld", x[0].getName().getName());
-		assertTrue(x[0].getName().getHref().endsWith("/helloWorld"));
-		assertEquals("Hello World sample resource", x[0].getDescription());
-
-		r = jsonClient.doOptions("").setHeader("Accept", "text/json");
-		ObjectMap x2 = r.getResponse(ObjectMap.class);
-		String s = x2.getString("description");
-		if (debug) System.err.println(s);
-		assertTrue(s, s.startsWith("This is an example"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// /htdoces/styles.css
-	//====================================================================================================
-	@Test
-	public void testStyleSheet() throws Exception {
-		RestClient client = new SamplesRestClient().setAccept("text/css");
-		RestCall r = client.doGet("/style.css");
-		String css = r.getResponseAsString();
-		if (debug) System.err.println(css);
-		assertTrue(css, css.indexOf("table {") != -1);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// application/json+schema
-	//====================================================================================================
-	@Test
-	public void testJsonSchema() throws Exception {
-		RestClient client = new SamplesRestClient().setParser(JsonParser.DEFAULT).setAccept("text/json+schema");
-		RestCall r = client.doGet("");
-		ObjectMap m = r.getResponse(ObjectMap.class);
-		if (debug) System.err.println(m);
-		assertEquals("org.apache.juneau.server.labels.ChildResourceDescriptions<org.apache.juneau.server.labels.ResourceDescription>", m.getString("description"));
-		assertEquals("org.apache.juneau.server.labels.ResourceDescription", m.getObjectMap("items").getString("description"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// OPTIONS page
-	//====================================================================================================
-	@Test
-	public void testOptionsPage() throws Exception {
-		RestCall r = jsonClient.doOptions("");
-		ResourceOptions o = r.getResponse(ResourceOptions.class);
-		if (debug) System.err.println(o);
-		assertEquals("This is an example of a router resource that is used to access other resources.", o.getDescription());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_SampleRemoteableServicesResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_SampleRemoteableServicesResource.java b/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_SampleRemoteableServicesResource.java
deleted file mode 100755
index 561bfe6..0000000
--- a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_SampleRemoteableServicesResource.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.samples.addressbook.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.xml.*;
-import org.junit.*;
-
-public class CT_SampleRemoteableServicesResource {
-
-	static RestClient[] clients;
-
-	@BeforeClass
-	public static void beforeClass() throws Exception {
-		clients = new RestClient[] {
-			new SamplesRestClient(JsonSerializer.class, JsonParser.class),
-			new SamplesRestClient(XmlSerializer.class, XmlParser.class),
-//	TODO - broken?		new TestRestClient(HtmlSerializer.class, HtmlParser.class).setAccept("text/html+stripped"),
-			new SamplesRestClient(UonSerializer.class, UonParser.class),
-		};
-		for (RestClient c : clients) {
-			c.addTransforms(CalendarTransform.Medium.class);
-			c.setRemoteableServletUri("/remoteable");
-			c.setProperty(XmlSerializerContext.XML_autoDetectNamespaces, true);
-		}
-	}
-
-	@AfterClass
-	public static void afterClass() {
-		for (RestClient c : clients) {
-			c.closeQuietly();
-		}
-	}
-
-	//====================================================================================================
-	// Get AddressBookResource as JSON
-	//====================================================================================================
-	@Test
-	public void testBasic() throws Exception {
-		for (RestClient client : clients) {
-			IAddressBook ab = client.getRemoteableProxy(IAddressBook.class);
-			Person p = ab.createPerson(
-				new CreatePerson("Test Person",
-					AddressBook.toCalendar("Aug 1, 1999"),
-					new CreateAddress("Test street", "Test city", "Test state", 12345, true))
-			);
-			assertEquals(
-				"{id:x,name:'Test Person',birthDate:'Aug 1, 1999',addresses:[{id:x,street:'Test street',city:'Test city',state:'Test state',zip:12345,isCurrent:true}],age:x}",
-				JsonSerializer.DEFAULT_LAX.toString(p).replaceAll("id:\\d+", "id:x").replaceAll("age:\\d+", "age:x"));
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_TestMultiPartFormPosts.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_TestMultiPartFormPosts.java b/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_TestMultiPartFormPosts.java
deleted file mode 100755
index 168caca..0000000
--- a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/CT_TestMultiPartFormPosts.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.junit.Assert.*;
-
-import java.io.*;
-
-import org.apache.http.*;
-import org.apache.http.entity.mime.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.utils.*;
-import org.junit.*;
-
-public class CT_TestMultiPartFormPosts {
-
-	private static String URL = "/tempDir";
-	boolean debug = false;
-
-	//====================================================================================================
-	// Test that RestClient can handle multi-part form posts.
-	//====================================================================================================
-	@Test
-	public void testUpload() throws Exception {
-		RestClient client = new SamplesRestClient();
-		File f = FileUtils.createTempFile("testMultiPartFormPosts.txt");
-		IOPipe.create(new StringReader("test!"), new FileWriter(f)).closeOut().run();
-		HttpEntity entity = MultipartEntityBuilder.create().addBinaryBody(f.getName(), f).build();
-		client.doPost(URL + "/upload", entity);
-
-		String downloaded = client.doGet(URL + '/' + f.getName() + "?method=VIEW").getResponseAsString();
-		assertEquals("test!", downloaded);
-
-		client.closeQuietly();
-	}
-}
\ No newline at end of file


[31/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestPaths.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestPaths.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestPaths.java
deleted file mode 100755
index 6f4e317..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestPaths.java
+++ /dev/null
@@ -1,1368 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestPaths {
-
-	private static String URL = "/testPaths";
-
-	//====================================================================================================
-	// Basic tests
-	//====================================================================================================
-	@Test
-	public void testBasic() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r;
-		String url;
-
-		// [/test/testPaths]
-		//	{
-		//		pathInfo:null,
-		//		pathInfoUndecoded:null,
-		//		pathInfoParts:[],
-		//		pathRemainder:null,
-		//		pathRemainderUndecoded:null,
-		//		requestURI:'/jazz/juneau/test/testPaths',
-		//		requestParentURI:'/jazz/juneau/test',
-		//		requestURL:'https://localhost:9443/jazz/juneau/test/testPaths',
-		//		servletPath:'/juneau/test/testPaths',
-		//		relativeServletURI:'/jazz/juneau/test/testPaths',
-		//		pathRemainder2:null
-		//	}
-		url = URL;
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertNull(r.getString("pathInfo"));
-		assertNull(r.getString("pathInfoUndecoded"));
-		assertEquals("[]", r.getObjectList("pathInfoParts").toString());
-		assertNull(r.getString("pathRemainder"));
-		assertNull(r.getString("pathRemainderUndecoded"));
-		assertNull(r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestParentURI").endsWith("/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-
-		// [/test/testPaths/]
-		//		{
-		//			pathInfo: '/',
-		//			pathInfoUndecoded: '/',
-		//			pathInfoParts: [
-		//			],
-		//			pathRemainder: '',
-		//			pathRemainderUndecoded: '',
-		//			requestURI: '/jazz/juneau/test/testPaths/',
-		//			requestParentURI: '/jazz/juneau/test',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/',
-		//			servletPath: '/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: ''
-		//		}
-		url = URL + '/';
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/", r.getString("pathInfo"));
-		assertEquals("/", r.getString("pathInfoUndecoded"));
-		assertEquals("[]", r.getObjectList("pathInfoParts").toString());
-		assertEquals("", r.getString("pathRemainder"));
-		assertEquals("", r.getString("pathRemainderUndecoded"));
-		assertEquals("", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/"));
-		assertTrue(r.getString("requestParentURI").endsWith("/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		// [/test/testPaths//]
-		//		{
-		//			pathInfo: '//',
-		//			pathInfoParts: [''],
-		//			pathRemainder: '/',
-		//			requestURI: '/jazz/juneau/test/testPaths//',
-		//			requestParentURI: '/jazz/juneau/test',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths//',
-		//			servletPath: '/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '/'
-		//		}
-		url = URL + "//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("//", r.getString("pathInfo"));
-		assertEquals("['']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/", r.getString("pathRemainder"));
-		assertEquals("/", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		// [/test/testPaths///]
-		//		{
-		//			pathInfo: '///',
-		//			pathInfoParts: ['',''],
-		//			pathRemainder: '//',
-		//			requestURI: '/jazz/juneau/test/testPaths///',
-		//			requestParentURI: '/jazz/juneau/test',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths///',
-		//			servletPath: '/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '//'
-		//		}
-		url = URL + "///";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("///", r.getString("pathInfo"));
-		assertEquals("['','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("//", r.getString("pathRemainder"));
-		assertEquals("//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths///"));
-		assertTrue(r.getString("requestParentURI").endsWith("/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths///"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		// [/test/testPaths/foo/bar]
-		//		{
-		//			pathInfo: '/foo/bar',
-		//			pathInfoParts: [
-		//				'foo',
-		//				'bar'
-		//			],
-		//			pathRemainder: 'foo/bar',
-		//			requestURI: '/jazz/juneau/test/testPaths/foo/bar',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/foo/bar',
-		//			servletPath: '/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: 'foo/bar'
-		//		}
-		url = URL + "/foo/bar";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/foo/bar", r.getString("pathInfo"));
-		assertEquals("['foo','bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals("foo/bar", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/foo/bar"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/foo"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/foo/bar"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		// [/test/testPaths/foo/bar/]
-		//		{
-		//			pathInfo: '/foo/bar/',
-		//			pathInfoParts: [
-		//				'foo',
-		//				'bar'
-		//			],
-		//			pathRemainder: 'foo/bar/',
-		//			requestURI: '/jazz/juneau/test/testPaths/foo/bar/',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/foo/bar/',
-		//			servletPath: '/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: 'foo/bar/'
-		//		}
-		url = URL + "/foo/bar/";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/foo/bar/", r.getString("pathInfo"));
-		assertEquals("['foo','bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo/bar/", r.getString("pathRemainder"));
-		assertEquals("foo/bar/", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/foo/bar/"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/foo"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/foo/bar/"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		// [/test/testPaths//foo//bar//]
-		//		{
-		//			pathInfo: '//foo//bar//',
-		//			pathInfoParts: [
-		//				'',
-		//				'foo',
-		//				'',
-		//				'bar',
-		//				''
-		//			],
-		//			pathRemainder: '/foo//bar//',
-		//			requestURI: '/jazz/juneau/test/testPaths//foo//bar//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths//foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths//foo//bar//',
-		//			servletPath: '/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '/foo//bar//'
-		//		}
-		url = URL + "//foo//bar//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("//foo//bar//", r.getString("pathInfo"));
-		assertEquals("['','foo','','bar','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/foo//bar//", r.getString("pathRemainder"));
-		assertEquals("/foo//bar//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths//foo//bar//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths//foo/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths//foo//bar//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		// [/test/testPaths/foo%2Fbar]
-		//		{
-		//			pathInfo: '/foo//bar',
-		//			pathInfoUndecoded: '/foo%2F%2Fbar',
-		//			pathInfoParts: [
-		//				'foo//bar'
-		//			],
-		//			pathRemainder: 'foo//bar',
-		//			pathRemainderUndecoded: 'foo%2F%2Fbar',
-		//			requestURI: '/jazz/juneau/test/testPaths/foo%2F%2Fbar',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/foo%2F%2Fbar',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: 'foo//bar',
-		//			method: 1
-		//		}
-		url = URL + "/foo%2F%2Fbar";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/foo//bar", r.getString("pathInfo"));
-		assertEquals("/foo%2F%2Fbar", r.getString("pathInfoUndecoded"));
-		assertEquals("['foo//bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo//bar", r.getString("pathRemainder"));
-		assertEquals("foo%2F%2Fbar", r.getString("pathRemainderUndecoded"));
-		assertEquals("foo//bar", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/foo%2F%2Fbar"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/foo%2F%2Fbar"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		// [/test/testPaths//foo%2Fbar//]
-		//		{
-		//			pathInfo: '//foo//bar//',
-		//			pathInfoUndecoded: '//foo%2F%2Fbar//',
-		//			pathInfoParts: [
-		//				'',
-		//				'foo//bar',
-		//				''
-		//			],
-		//			pathRemainder: '/foo//bar//',
-		//			pathRemainderUndecoded: '/foo%2F%2Fbar//',
-		//			requestURI: '/jazz/juneau/test/testPaths//foo%2F%2Fbar//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths//foo%2F%2Fbar//',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '/foo//bar//',
-		//			method: 1
-		//		}
-		url = URL + "//foo%2F%2Fbar//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("//foo//bar//", r.getString("pathInfo"));
-		assertEquals("//foo%2F%2Fbar//", r.getString("pathInfoUndecoded"));
-		assertEquals("['','foo//bar','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/foo//bar//", r.getString("pathRemainder"));
-		assertEquals("/foo%2F%2Fbar//", r.getString("pathRemainderUndecoded"));
-		assertEquals("/foo//bar//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths//foo%2F%2Fbar//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths//foo%2F%2Fbar//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		// [/test/testPaths/test2]
-		//		{
-		//			pathInfo: '/test2',
-		//			pathInfoParts: [
-		//				'test2'
-		//			],
-		//			pathRemainder: null,
-		//			requestURI: '/jazz/juneau/test/testPaths/test2',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: null,
-		//			method: 2
-		//		}
-		url = URL + "/test2";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2", r.getString("pathInfo"));
-		assertEquals("['test2']", r.getObjectList("pathInfoParts").toString());
-		assertNull(r.getString("pathRemainder"));
-		assertNull(r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-
-		// [/test/testPaths/test2/]
-		//		{
-		//			pathInfo: '/test2/',
-		//			pathInfoParts: [
-		//				'test2'
-		//			],
-		//			pathRemainder: '',
-		//			requestURI: '/jazz/juneau/test/testPaths/test2/',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2/',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '',
-		//			method: 2
-		//		}
-		url = URL + "/test2/";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/", r.getString("pathInfo"));
-		assertEquals("['test2']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("", r.getString("pathRemainder"));
-		assertEquals("", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2/"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2/"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		// [/test/testPaths/test2//]
-		//		{
-		//			pathInfo: '/test2//',
-		//			pathInfoParts: [
-		//				'test2',
-		//				''
-		//			],
-		//			pathRemainder: '/',
-		//			requestURI: '/jazz/juneau/test/testPaths/test2//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2//',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '/',
-		//			method: 2
-		//		}
-		url = URL + "/test2//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2//", r.getString("pathInfo"));
-		assertEquals("['test2','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/", r.getString("pathRemainder"));
-		assertEquals("/", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		// [/test/testPaths/test2///]
-		//		{
-		//			pathInfo: '/test2///',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'',
-		//				''
-		//			],
-		//			pathRemainder: '//',
-		//			requestURI: '/jazz/juneau/test/testPaths/test2///',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2///',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '//',
-		//			method: 2
-		//		}
-		url = URL + "/test2///";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2///", r.getString("pathInfo"));
-		assertEquals("['test2','','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("//", r.getString("pathRemainder"));
-		assertEquals("//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2///"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2///"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		// [/test/testPaths/test2/foo/bar]
-		//		{
-		//			pathInfo: '/test2/foo/bar',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'foo',
-		//				'bar'
-		//			],
-		//			pathRemainder: 'foo/bar',
-		//			requestURI: '/jazz/juneau/test/testPaths/test2/foo/bar',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/test2/foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2/foo/bar',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: 'foo/bar',
-		//			method: 2
-		//		}
-		url = URL + "/test2/foo/bar";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/foo/bar", r.getString("pathInfo"));
-		assertEquals("['test2','foo','bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals("foo/bar", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2/foo/bar"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/test2/foo"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2/foo/bar"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		// [/test/testPaths/test2/foo/bar/]
-		//		{
-		//			pathInfo: '/test2/foo/bar/',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'foo',
-		//				'bar'
-		//			],
-		//			pathRemainder: 'foo/bar/',
-		//			requestURI: '/jazz/juneau/test/testPaths/test2/foo/bar/',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/test2/foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2/foo/bar/',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: 'foo/bar/',
-		//			method: 2
-		//		}
-		url = URL + "/test2/foo/bar/";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/foo/bar/", r.getString("pathInfo"));
-		assertEquals("['test2','foo','bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo/bar/", r.getString("pathRemainder"));
-		assertEquals("foo/bar/", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2/foo/bar/"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/test2/foo"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2/foo/bar/"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		// [/test/testPaths/test2//foo//bar//]
-		//		{
-		//			pathInfo: '/test2//foo//bar//',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'',
-		//				'foo',
-		//				'',
-		//				'bar',
-		//				''
-		//			],
-		//			pathRemainder: '/foo//bar//',
-		//			requestURI: '/jazz/juneau/test/testPaths/test2//foo//bar//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/test2//foo/',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2//foo//bar//',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '/foo//bar//',
-		//			method: 2
-		//		}
-		url = URL + "/test2//foo//bar//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2//foo//bar//", r.getString("pathInfo"));
-		assertEquals("['test2','','foo','','bar','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/foo//bar//", r.getString("pathRemainder"));
-		assertEquals("/foo//bar//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2//foo//bar//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/test2//foo/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2//foo//bar//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		// [/test/testPaths/test2/foo%2Fbar]
-		//		{
-		//			pathInfo: '/test2/foo//bar',
-		//			pathInfoUndecoded: '/test2/foo%2F%2Fbar',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'foo//bar'
-		//			],
-		//			pathRemainder: 'foo//bar',
-		//			pathRemainderUndecoded: 'foo%2F%2Fbar',
-		//			requestURI: '/jazz/juneau/test/testPaths/test2/foo%2F%2Fbar',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/test2',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2/foo%2F%2Fbar',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: 'foo//bar',
-		//			method: 2
-		//		}
-		url = URL + "/test2/foo%2F%2Fbar";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/foo//bar", r.getString("pathInfo"));
-		assertEquals("/test2/foo%2F%2Fbar", r.getString("pathInfoUndecoded"));
-		assertEquals("['test2','foo//bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo//bar", r.getString("pathRemainder"));
-		assertEquals("foo%2F%2Fbar", r.getString("pathRemainderUndecoded"));
-		assertEquals("foo//bar", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2/foo%2F%2Fbar"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/test2"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2/foo%2F%2Fbar"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		// [/test/testPaths/test2//foo%2Fbar//]
-		//		{
-		//			pathInfo: '/test2//foo//bar//',
-		//			pathInfoUndecoded: '/test2//foo%2F%2Fbar//',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'',
-		//				'foo//bar',
-		//				''
-		//			],
-		//			pathRemainder: '/foo//bar//',
-		//			pathRemainderUndecoded: '/foo%2F%2Fbar//',
-		//			requestURI: '/jazz/juneau/test/testPaths/test2//foo%2F%2Fbar//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/test2/',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/test2//foo%2F%2Fbar//',
-		//			servletPath: '/juneau/test/testPaths',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths',
-		//			pathRemainder2: '/foo//bar//',
-		//			method: 2
-		//		}
-		url = URL + "/test2//foo%2F%2Fbar//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2//foo//bar//", r.getString("pathInfo"));
-		assertEquals("/test2//foo%2F%2Fbar//", r.getString("pathInfoUndecoded"));
-		assertEquals("['test2','','foo//bar','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/foo//bar//", r.getString("pathRemainder"));
-		assertEquals("/foo%2F%2Fbar//", r.getString("pathRemainderUndecoded"));
-		assertEquals("/foo//bar//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2//foo%2F%2Fbar//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/test2/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2//foo%2F%2Fbar//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		// [/test/testPaths/a]
-		//		{
-		//			pathInfo: null,
-		//			pathInfoParts: [
-		//			],
-		//			pathRemainder: null,
-		//			requestURI: '/jazz/juneau/test/testPaths/a',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: null,
-		//			method: 3
-		//		}
-		url = URL + "/a";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertNull(r.getString("pathInfo"));
-		assertEquals("[]", r.getObjectList("pathInfoParts").toString());
-		assertNull(r.getString("pathRemainder"));
-		assertNull(r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/]
-		//		{
-		//			pathInfo: '/',
-		//			pathInfoParts: [
-		//			],
-		//			pathRemainder: '',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '',
-		//			method: 3
-		//		}
-		url = URL + "/a/";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/", r.getString("pathInfo"));
-		assertEquals("[]", r.getObjectList("pathInfoParts").toString());
-		assertEquals("", r.getString("pathRemainder"));
-		assertEquals("", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		// [/test/testPaths/a//]
-		//		{
-		//			pathInfo: '//',
-		//			pathInfoParts: [
-		//				''
-		//			],
-		//			pathRemainder: '/',
-		//			requestURI: '/jazz/juneau/test/testPaths/a//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a//',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '/',
-		//			method: 3
-		//		}
-		url = URL + "/a//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("//", r.getString("pathInfo"));
-		assertEquals("['']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/", r.getString("pathRemainder"));
-		assertEquals("/", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		// [/test/testPaths/a///]
-		//		{
-		//			pathInfo: '///',
-		//			pathInfoParts: [
-		//				'',
-		//				''
-		//			],
-		//			pathRemainder: '//',
-		//			requestURI: '/jazz/juneau/test/testPaths/a///',
-		//			requestParentURI: '/jazz/juneau/test/testPaths',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a///',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '//',
-		//			method: 3
-		//		}
-		url = URL + "/a///";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("///", r.getString("pathInfo"));
-		assertEquals("['','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("//", r.getString("pathRemainder"));
-		assertEquals("//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a///"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a///"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/foo/bar]
-		//		{
-		//			pathInfo: '/foo/bar',
-		//			pathInfoParts: [
-		//				'foo',
-		//				'bar'
-		//			],
-		//			pathRemainder: 'foo/bar',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/foo/bar',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a/foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/foo/bar',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: 'foo/bar',
-		//			method: 3
-		//		}
-		url = URL + "/a/foo/bar";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/foo/bar", r.getString("pathInfo"));
-		assertEquals("['foo','bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals("foo/bar", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/foo/bar"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/foo"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/foo/bar"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/foo/bar/]
-		//		{
-		//			pathInfo: '/foo/bar/',
-		//			pathInfoParts: [
-		//				'foo',
-		//				'bar'
-		//			],
-		//			pathRemainder: 'foo/bar/',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/foo/bar/',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a/foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/foo/bar/',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: 'foo/bar/',
-		//			method: 3
-		//		}
-		url = URL + "/a/foo/bar/";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/foo/bar/", r.getString("pathInfo"));
-		assertEquals("['foo','bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo/bar/", r.getString("pathRemainder"));
-		assertEquals("foo/bar/", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/foo/bar/"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/foo"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/foo/bar/"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		// [/test/testPaths/a//foo//bar//]
-		//		{
-		//			pathInfo: '//foo//bar//',
-		//			pathInfoParts: [
-		//				'',
-		//				'foo',
-		//				'',
-		//				'bar',
-		//				''
-		//			],
-		//			pathRemainder: '/foo//bar//',
-		//			requestURI: '/jazz/juneau/test/testPaths/a//foo//bar//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a//foo/',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a//foo//bar//',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '/foo//bar//',
-		//			method: 3
-		//		}
-		url = URL + "/a//foo//bar//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("//foo//bar//", r.getString("pathInfo"));
-		assertEquals("['','foo','','bar','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/foo//bar//", r.getString("pathRemainder"));
-		assertEquals("/foo//bar//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a//foo//bar//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a//foo/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a//foo//bar//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/foo%2Fbar]
-		//		{
-		//			pathInfo: '/foo//bar',
-		//			pathInfoUndecoded: '/foo%2F%2Fbar',
-		//			pathInfoParts: [
-		//				'foo//bar'
-		//			],
-		//			pathRemainder: 'foo//bar',
-		//			pathRemainderUndecoded: 'foo%2F%2Fbar',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/foo%2F%2Fbar',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/foo%2F%2Fbar',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: 'foo//bar',
-		//			method: 3
-		//		}
-		url = URL + "/a/foo%2F%2Fbar";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/foo//bar", r.getString("pathInfo"));
-		assertEquals("/foo%2F%2Fbar", r.getString("pathInfoUndecoded"));
-		assertEquals("['foo//bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo//bar", r.getString("pathRemainder"));
-		assertEquals("foo%2F%2Fbar", r.getString("pathRemainderUndecoded"));
-		assertEquals("foo//bar", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/foo%2F%2Fbar"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/foo%2F%2Fbar"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		// [/test/testPaths/a//foo%2Fbar//]
-		//		{
-		//			pathInfo: '//foo//bar//',
-		//			pathInfoUndecoded: '//foo%2F%2Fbar//',
-		//			pathInfoParts: [
-		//				'',
-		//				'foo//bar',
-		//				''
-		//			],
-		//			pathRemainder: '/foo//bar//',
-		//			pathRemainderUndecoded: '/foo%2F%2Fbar//',
-		//			requestURI: '/jazz/juneau/test/testPaths/a//foo%2F%2Fbar//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a/',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a//foo%2F%2Fbar//',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '/foo//bar//',
-		//			method: 3
-		//		}
-		url = URL + "/a//foo%2F%2Fbar//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("//foo//bar//", r.getString("pathInfo"));
-		assertEquals("//foo%2F%2Fbar//", r.getString("pathInfoUndecoded"));
-		assertEquals("['','foo//bar','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/foo//bar//", r.getString("pathRemainder"));
-		assertEquals("/foo%2F%2Fbar//", r.getString("pathRemainderUndecoded"));
-		assertEquals("/foo//bar//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a//foo%2F%2Fbar//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a//foo%2F%2Fbar//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-
-		// [/test/testPaths/a/test2]
-		//		{
-		//			pathInfo: '/test2',
-		//			pathInfoParts: [
-		//				'test2'
-		//			],
-		//			pathRemainder: null,
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: null,
-		//			method: 4
-		//		}
-		url = URL + "/a/test2";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2", r.getString("pathInfo"));
-		assertEquals("['test2']", r.getObjectList("pathInfoParts").toString());
-		assertNull(r.getString("pathRemainder"));
-		assertNull(r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/test2/]
-		//		{
-		//			pathInfo: '/test2/',
-		//			pathInfoParts: [
-		//				'test2'
-		//			],
-		//			pathRemainder: '',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2/',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2/',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '',
-		//			method: 4
-		//		}
-		url = URL + "/a/test2/";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/", r.getString("pathInfo"));
-		assertEquals("['test2']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("", r.getString("pathRemainder"));
-		assertEquals("", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2/"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2/"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/test2//]
-		//		{
-		//			pathInfo: '/test2//',
-		//			pathInfoParts: [
-		//				'test2',
-		//				''
-		//			],
-		//			pathRemainder: '/',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2//',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '/',
-		//			method: 4
-		//		}
-		url = URL + "/a/test2//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2//", r.getString("pathInfo"));
-		assertEquals("['test2','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/", r.getString("pathRemainder"));
-		assertEquals("/", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/test2///]
-		//		{
-		//			pathInfo: '/test2///',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'',
-		//				''
-		//			],
-		//			pathRemainder: '//',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2///',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2///',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '//',
-		//			method: 4
-		//		}
-		url = URL + "/a/test2///";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2///", r.getString("pathInfo"));
-		assertEquals("['test2','','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("//", r.getString("pathRemainder"));
-		assertEquals("//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2///"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2///"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/test2/foo/bar]
-		//		{
-		//			pathInfo: '/test2/foo/bar',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'foo',
-		//				'bar'
-		//			],
-		//			pathRemainder: 'foo/bar',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2/foo/bar',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a/test2/foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2/foo/bar',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: 'foo/bar',
-		//			method: 4
-		//		}
-		url = URL + "/a/test2/foo/bar";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/foo/bar", r.getString("pathInfo"));
-		assertEquals("['test2','foo','bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals("foo/bar", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2/foo/bar"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/test2/foo"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2/foo/bar"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/test2/foo/bar/]
-		//		{
-		//			pathInfo: '/test2/foo/bar/',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'foo',
-		//				'bar'
-		//			],
-		//			pathRemainder: 'foo/bar/',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2/foo/bar/',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a/test2/foo',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2/foo/bar/',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: 'foo/bar/',
-		//			method: 4
-		//		}
-		url = URL + "/a/test2/foo/bar/";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/foo/bar/", r.getString("pathInfo"));
-		assertEquals("['test2','foo','bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo/bar/", r.getString("pathRemainder"));
-		assertEquals("foo/bar/", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2/foo/bar/"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/test2/foo"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2/foo/bar/"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/test2//foo//bar//]
-		//		{
-		//			pathInfo: '/test2//foo//bar//',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'',
-		//				'foo',
-		//				'',
-		//				'bar',
-		//				''
-		//			],
-		//			pathRemainder: '/foo//bar//',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2//foo//bar//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a/test2//foo/',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2//foo//bar//',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '/foo//bar//',
-		//			method: 4
-		//		}
-		url = URL + "/a/test2//foo//bar//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2//foo//bar//", r.getString("pathInfo"));
-		assertEquals("['test2','','foo','','bar','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/foo//bar//", r.getString("pathRemainder"));
-		assertEquals("/foo//bar//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2//foo//bar//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/test2//foo/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2//foo//bar//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/test2/foo%2Fbar]
-		//		{
-		//			pathInfo: '/test2/foo//bar',
-		//			pathInfoUndecoded: '/test2/foo%2F%2Fbar',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'foo//bar'
-		//			],
-		//			pathRemainder: 'foo//bar',
-		//			pathRemainderUndecoded: 'foo%2F%2Fbar',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2/foo%2F%2Fbar',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a/test2',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2/foo%2F%2Fbar',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: 'foo//bar',
-		//			method: 4
-		//		}
-		url = URL + "/a/test2/foo%2F%2Fbar";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/foo//bar", r.getString("pathInfo"));
-		assertEquals("/test2/foo%2F%2Fbar", r.getString("pathInfoUndecoded"));
-		assertEquals("['test2','foo//bar']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("foo//bar", r.getString("pathRemainder"));
-		assertEquals("foo%2F%2Fbar", r.getString("pathRemainderUndecoded"));
-		assertEquals("foo//bar", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2/foo%2F%2Fbar"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/test2"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2/foo%2F%2Fbar"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		// [/test/testPaths/a/test2//foo%2Fbar//]
-		//		{
-		//			pathInfo: '/test2//foo//bar//',
-		//			pathInfoUndecoded: '/test2//foo%2F%2Fbar//',
-		//			pathInfoParts: [
-		//				'test2',
-		//				'',
-		//				'foo//bar',
-		//				''
-		//			],
-		//			pathRemainder: '/foo//bar//',
-		//			pathRemainderUndecoded: '/foo%2F%2Fbar//',
-		//			requestURI: '/jazz/juneau/test/testPaths/a/test2//foo%2F%2Fbar//',
-		//			requestParentURI: '/jazz/juneau/test/testPaths/a/test2/',
-		//			requestURL: 'https://localhost:9443/jazz/juneau/test/testPaths/a/test2//foo%2F%2Fbar//',
-		//			servletPath: '/juneau/test/testPaths/a',
-		//			servletURI: 'https://localhost:9443/jazz/juneau/test/testPaths/a',
-		//			servletParentURI: 'https://localhost:9443/jazz/juneau/test/testPaths',
-		//			relativeServletURI: '/jazz/juneau/test/testPaths/a',
-		//			pathRemainder2: '/foo//bar//',
-		//			method: 4
-		//		}
-		url = URL + "/a/test2//foo%2F%2Fbar//";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2//foo//bar//", r.getString("pathInfo"));
-		assertEquals("/test2//foo%2F%2Fbar//", r.getString("pathInfoUndecoded"));
-		assertEquals("['test2','','foo//bar','']", r.getObjectList("pathInfoParts").toString());
-		assertEquals("/foo//bar//", r.getString("pathRemainder"));
-		assertEquals("/foo%2F%2Fbar//", r.getString("pathRemainderUndecoded"));
-		assertEquals("/foo//bar//", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2//foo%2F%2Fbar//"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/test2/"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2//foo%2F%2Fbar//"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		//--------------------------------------------------------------------------------
-		// Spaces
-		//--------------------------------------------------------------------------------
-		url = URL + "/%20";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/ ", r.getString("pathInfo"));
-		assertEquals("/%20", r.getString("pathInfoUndecoded"));
-		assertEquals("[' ']", r.getObjectList("pathInfoParts").toString());
-		assertEquals(" ", r.getString("pathRemainder"));
-		assertEquals("%20", r.getString("pathRemainderUndecoded"));
-		assertEquals(" ", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/%20"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/%20"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		url = URL + "/test2/%20";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/ ", r.getString("pathInfo"));
-		assertEquals("/test2/%20", r.getString("pathInfoUndecoded"));
-		assertEquals("['test2',' ']", r.getObjectList("pathInfoParts").toString());
-		assertEquals(" ", r.getString("pathRemainder"));
-		assertEquals("%20", r.getString("pathRemainderUndecoded"));
-		assertEquals(" ", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2/%20"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/test2"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2/%20"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		url = URL + "/a/%20";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/ ", r.getString("pathInfo"));
-		assertEquals("/%20", r.getString("pathInfoUndecoded"));
-		assertEquals("[' ']", r.getObjectList("pathInfoParts").toString());
-		assertEquals(" ", r.getString("pathRemainder"));
-		assertEquals("%20", r.getString("pathRemainderUndecoded"));
-		assertEquals(" ", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/%20"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/%20"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		url = URL + "/a/test2/%20";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/ ", r.getString("pathInfo"));
-		assertEquals("/test2/%20", r.getString("pathInfoUndecoded"));
-		assertEquals("['test2',' ']", r.getObjectList("pathInfoParts").toString());
-		assertEquals(" ", r.getString("pathRemainder"));
-		assertEquals("%20", r.getString("pathRemainderUndecoded"));
-		assertEquals(" ", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2/%20"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/test2"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2/%20"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		url = URL + "/+";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/ ", r.getString("pathInfo"));
-		assertEquals("/+", r.getString("pathInfoUndecoded"));
-		assertEquals("[' ']", r.getObjectList("pathInfoParts").toString());
-		assertEquals(" ", r.getString("pathRemainder"));
-		assertEquals("+", r.getString("pathRemainderUndecoded"));
-		assertEquals(" ", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/+"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/+"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(1, (int)r.getInt("method"));
-
-		url = URL + "/test2/+";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/ ", r.getString("pathInfo"));
-		assertEquals("/test2/+", r.getString("pathInfoUndecoded"));
-		assertEquals("['test2',' ']", r.getObjectList("pathInfoParts").toString());
-		assertEquals(" ", r.getString("pathRemainder"));
-		assertEquals("+", r.getString("pathRemainderUndecoded"));
-		assertEquals(" ", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/test2/+"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/test2"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/test2/+"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths"));
-		assertEquals(2, (int)r.getInt("method"));
-
-		url = URL + "/a/+";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/ ", r.getString("pathInfo"));
-		assertEquals("/+", r.getString("pathInfoUndecoded"));
-		assertEquals("[' ']", r.getObjectList("pathInfoParts").toString());
-		assertEquals(" ", r.getString("pathRemainder"));
-		assertEquals("+", r.getString("pathRemainderUndecoded"));
-		assertEquals(" ", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/+"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/+"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(3, (int)r.getInt("method"));
-
-		url = URL + "/a/test2/+";
-		r = client.doGet(url).getResponse(ObjectMap.class);
-		assertEquals("/test2/ ", r.getString("pathInfo"));
-		assertEquals("/test2/+", r.getString("pathInfoUndecoded"));
-		assertEquals("['test2',' ']", r.getObjectList("pathInfoParts").toString());
-		assertEquals(" ", r.getString("pathRemainder"));
-		assertEquals("+", r.getString("pathRemainderUndecoded"));
-		assertEquals(" ", r.getString("pathRemainder2"));
-		assertTrue(r.getString("requestURI").endsWith("/testPaths/a/test2/+"));
-		assertTrue(r.getString("requestParentURI").endsWith("/testPaths/a/test2"));
-		assertTrue(r.getString("requestURL").endsWith("/testPaths/a/test2/+"));
-		assertTrue(r.getString("servletPath").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletURI").endsWith("/testPaths/a"));
-		assertTrue(r.getString("servletParentURI").endsWith("/testPaths"));
-		assertTrue(r.getString("relativeServletURI").endsWith("/testPaths/a"));
-		assertEquals(4, (int)r.getInt("method"));
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestProperties.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestProperties.java
deleted file mode 100755
index f66ad17..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestProperties.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestProperties {
-
-	private static String URL = "/testProperties";
-
-	//====================================================================================================
-	// Properties defined on method.
-	//====================================================================================================
-	@Test
-	public void testPropertiesDefinedOnMethod() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r = client.doGet(URL + "/testPropertiesDefinedOnMethod").getResponseAsString();
-		assertTrue(r.matches("A1=a1,A2=c,B1=b1,B2=c,C=c,R1a=.*/testProperties/testPropertiesDefinedOnMethod,R1b=.*/testProperties,R2=bar,R3=baz,R4=a1,R5=c,R6=c"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Make sure attributes/parameters/headers are available through ctx.getProperties().
-	//====================================================================================================
-	@Test
-	public void testProperties() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r = client.doGet(URL + "/testProperties/a1?P=p1").setHeader("H", "h1").getResponseAsString();
-		assertEquals("A=a1,P=p1,H=h1", r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestRestClient.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestRestClient.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestRestClient.java
deleted file mode 100755
index b3109d4..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestRestClient.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import java.util.*;
-import java.util.regex.*;
-
-import org.apache.http.entity.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestRestClient {
-
-	private static String URL = "/testRestClient";
-
-	//====================================================================================================
-	// successPattern()
-	//====================================================================================================
-	@Test
-	public void testSuccessPattern() throws Exception {
-		RestClient c = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-		int rc;
-
-		r = c.doPost(URL, new StringEntity("xxxSUCCESSxxx")).successPattern("SUCCESS").getResponseAsString();
-		assertEquals("xxxSUCCESSxxx", r);
-		rc = c.doPost(URL, new StringEntity("xxxSUCCESSxxx")).successPattern("SUCCESS").run();
-		assertEquals(200, rc);
-
-		try {
-			r = c.doPost(URL, new StringEntity("xxxFAILURExxx")).successPattern("SUCCESS").getResponseAsString();
-			fail();
-		} catch (RestCallException e) {
-			assertEquals("Success pattern not detected.", e.getLocalizedMessage());
-		}
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// failurePattern()
-	//====================================================================================================
-	@Test
-	public void testFailurePattern() throws Exception {
-		RestClient c = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-		int rc;
-
-		r = c.doPost(URL, new StringEntity("xxxSUCCESSxxx")).failurePattern("FAILURE").getResponseAsString();
-		assertEquals("xxxSUCCESSxxx", r);
-		rc = c.doPost(URL, new StringEntity("xxxSUCCESSxxx")).failurePattern("FAILURE").run();
-		assertEquals(200, rc);
-
-		try {
-			r = c.doPost(URL, new StringEntity("xxxFAILURExxx")).failurePattern("FAILURE").getResponseAsString();
-			fail();
-		} catch (RestCallException e) {
-			assertEquals("Failure pattern detected.", e.getLocalizedMessage());
-		}
-
-		try {
-			r = c.doPost(URL, new StringEntity("xxxERRORxxx")).failurePattern("FAILURE|ERROR").getResponseAsString();
-			fail();
-		} catch (RestCallException e) {
-			assertEquals("Failure pattern detected.", e.getLocalizedMessage());
-		}
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// captureResponse()/getCapturedResponse()
-	//====================================================================================================
-	@Test
-	public void testCaptureResponse() throws Exception {
-		RestClient c = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		RestCall rc = c.doPost(URL, new StringEntity("xxx")).captureResponse();
-
-		try {
-			rc.getCapturedResponse();
-			fail();
-		} catch (IllegalStateException e) {
-			assertEquals("This method cannot be called until the response has been consumed.", e.getLocalizedMessage());
-		}
-		rc.run();
-		assertEquals("xxx", rc.getCapturedResponse());
-		assertEquals("xxx", rc.getCapturedResponse());
-
-		rc = c.doPost(URL, new StringEntity("xxx")).captureResponse();
-		assertEquals("xxx", rc.getResponseAsString());
-		assertEquals("xxx", rc.getCapturedResponse());
-		assertEquals("xxx", rc.getCapturedResponse());
-
-		try {
-			rc.getResponseAsString();
-			fail();
-		} catch (IllegalStateException e) {
-			assertEquals("Method cannot be called.  Response has already been consumed.", e.getLocalizedMessage());
-		}
-
-		c.closeQuietly();
-	}
-
-	//====================================================================================================
-	// addResponsePattern()
-	//====================================================================================================
-	@Test
-	public void testAddResponsePattern() throws Exception {
-		RestClient c = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-
-		final List<String> l = new ArrayList<String>();
-		ResponsePattern p = new ResponsePattern("x=(\\d+),y=(\\S+)") {
-			@Override
-			public void onMatch(RestCall restCall, Matcher m) throws RestCallException {
-				l.add(m.group(1)+'/'+m.group(2));
-			}
-			@Override
-			public void onNoMatch(RestCall restCall) throws RestCallException {
-				throw new RestCallException("Pattern not found!");
-			}
-		};
-
-		r = c.doPost(URL, new StringEntity("x=1,y=2")).addResponsePattern(p).getResponseAsString();
-		assertEquals("x=1,y=2", r);
-		assertObjectEquals("['1/2']", l);
-
-		l.clear();
-
-		r = c.doPost(URL, new StringEntity("x=1,y=2\nx=3,y=4")).addResponsePattern(p).getResponseAsString();
-		assertEquals("x=1,y=2\nx=3,y=4", r);
-		assertObjectEquals("['1/2','3/4']", l);
-
-		try {
-			c.doPost(URL, new StringEntity("x=1")).addResponsePattern(p).run();
-			fail();
-		} catch (RestCallException e) {
-			assertEquals("Pattern not found!", e.getLocalizedMessage());
-			assertEquals(0, e.getResponseCode());
-		}
-
-		// Two patterns!
-		ResponsePattern p1 = new ResponsePattern("x=(\\d+)") {
-			@Override
-			public void onMatch(RestCall restCall, Matcher m) throws RestCallException {
-				l.add("x="+m.group(1));
-			}
-			@Override
-			public void onNoMatch(RestCall restCall) throws RestCallException {
-				throw new RestCallException("Pattern x not found!");
-			}
-		};
-		ResponsePattern p2 = new ResponsePattern("y=(\\S+)") {
-			@Override
-			public void onMatch(RestCall restCall, Matcher m) throws RestCallException {
-				l.add("y="+m.group(1));
-			}
-			@Override
-			public void onNoMatch(RestCall restCall) throws RestCallException {
-				throw new RestCallException("Pattern y not found!");
-			}
-		};
-
-		l.clear();
-		r = c.doPost(URL, new StringEntity("x=1,y=2\nx=3,y=4")).addResponsePattern(p1).addResponsePattern(p2).getResponseAsString();
-		assertEquals("x=1,y=2\nx=3,y=4", r);
-		assertObjectEquals("['x=1','x=3','y=2','y=4']", l);
-
-		try {
-			c.doPost(URL, new StringEntity("x=1\nx=3")).addResponsePattern(p1).addResponsePattern(p2).getResponseAsString();
-		} catch (RestCallException e) {
-			assertEquals("Pattern y not found!", e.getLocalizedMessage());
-			assertEquals(0, e.getResponseCode());
-		}
-
-		try {
-			c.doPost(URL, new StringEntity("y=1\ny=3")).addResponsePattern(p1).addResponsePattern(p2).getResponseAsString();
-		} catch (RestCallException e) {
-			assertEquals("Pattern x not found!", e.getLocalizedMessage());
-			assertEquals(0, e.getResponseCode());
-		}
-
-		c.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestSerializers.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestSerializers.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestSerializers.java
deleted file mode 100755
index ac3bf6a..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestSerializers.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestSerializers {
-
-	private static String URL = "/testSerializers";
-	private static boolean debug = false;
-	private static RestClient client;
-
-	@BeforeClass
-	public static void beforeClass() {
-		client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-	}
-
-	@AfterClass
-	public static void afterClass() {
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Serializer defined on class.
-	//====================================================================================================
-	@Test
-	public void testSerializerOnClass() throws Exception {
-		String url = URL + "/testSerializerOnClass";
-
-		client.setAccept("text/a");
-		String r = client.doGet(url).getResponseAsString();
-		assertEquals("text/a - test1", r);
-
-		try {
-			client.setAccept("text/b");
-			client.doGet(url + "?noTrace=true").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/b'",
-				"Supported media-types: [text/a, ");
-		}
-
-		client.setAccept("text/json");
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("\"test1\"", r);
-	}
-
-	//====================================================================================================
-	// Serializer defined on method.
-	//====================================================================================================
-	@Test
-	public void testSerializerOnMethod() throws Exception {
-		String url = URL + "/testSerializerOnMethod";
-
-		try {
-			client.setAccept("text/a");
-			client.doGet(url + "?noTrace=true").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/a'",
-				"Supported media-types: [text/b]"
-			);
-		}
-
-		try {
-			client.setAccept("text/json");
-			client.doGet(url + "?noTrace=true").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/json'",
-				"Supported media-types: [text/b]"
-			);
-		}
-	}
-
-	//====================================================================================================
-	// Serializer overridden on method.
-	//====================================================================================================
-	@Test
-	public void testSerializerOverriddenOnMethod() throws Exception {
-		String url = URL + "/testSerializerOverriddenOnMethod";
-
-		client.setAccept("text/a");
-		String r = client.doGet(url).getResponseAsString();
-		assertEquals("text/c - test3", r);
-
-		client.setAccept("text/b");
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("text/b - test3", r);
-
-		client.setAccept("text/json");
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("\"test3\"", r);
-	}
-
-	//====================================================================================================
-	// Serializer with different Accept than Content-Type.
-	//====================================================================================================
-	@Test
-	public void testSerializerWithDifferentMediaTypes() throws Exception {
-		String url = URL + "/testSerializerWithDifferentMediaTypes";
-
-		client.setAccept("text/a");
-		String r = client.doGet(url).getResponseAsString();
-		assertEquals("text/d - test4", r);
-
-		client.setAccept("text/d");
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("text/d - test4", r);
-
-		client.setAccept("text/json");
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("\"test4\"", r);
-	}
-
-	//====================================================================================================
-	// Check for valid 406 error response.
-	//====================================================================================================
-	@Test
-	public void test406() throws Exception {
-		String url = URL + "/test406";
-
-		try {
-			client.setAccept("text/bad");
-			client.doGet(url + "?noTrace=true").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header 'Accept': 'text/bad'",
-				"Supported media-types: [text/a");
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestStaticFiles.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestStaticFiles.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestStaticFiles.java
deleted file mode 100755
index 46fce22..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestStaticFiles.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.plaintext.*;
-import org.junit.*;
-
-public class CT_TestStaticFiles {
-
-	private static String URL = "/testStaticFiles";
-
-	//====================================================================================================
-	// Tests the @RestResource(staticFiles) annotation.
-	//====================================================================================================
-	@Test
-	public void testXdocs() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String r;
-		String url = URL + "/xdocs";
-
-		r = client.doGet(url + "/test.txt").getResponseAsString();
-		assertEquals("OK-1", r);
-		r = client.doGet(url + "/xdocs/test.txt").getResponseAsString();
-		assertEquals("OK-2", r);
-
-		// For security reasons, paths containing ".." should always return 404.
-		try {
-			client.doGet(url + "/xdocs/../test.txt?noTrace=true").connect();
-			fail("404 exception expected");
-		} catch (RestCallException e) {
-			assertEquals(404, e.getResponseCode());
-		}
-
-		try {
-			client.doGet(url + "/xdocs/%2E%2E/test.txt?noTrace=true").connect();
-			fail("404 exception expected");
-		} catch (RestCallException e) {
-			assertEquals(404, e.getResponseCode());
-		}
-
-		client.closeQuietly();
-	}
-}


[30/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestTransforms.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestTransforms.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestTransforms.java
deleted file mode 100755
index 49a9030..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestTransforms.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestTransforms {
-
-	private static String URL = "/testTransforms";
-
-	//====================================================================================================
-	// test1 - Test class transform overrides parent class transform
-	// Should return "A2-1".
-	//====================================================================================================
-	@Test
-	public void testClassTransformOverridesParentClassTransform() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-		String url = URL + "/testClassTransformOverridesParentClassTransform";
-
-		r = client.doGet(url).getResponse(String.class);
-		assertEquals("A2-0", r);
-
-		r = client.doPut(url, "A2-1").getResponse(String.class);
-		assertEquals("A2-1", r);
-
-		r = client.doPut(url + "/A2-2", "").getResponse(String.class);
-		assertEquals("A2-2", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test method transform overrides class transform
-	// Should return "A3-1".
-	//====================================================================================================
-	@Test
-	public void testMethodTransformOverridesClassTransform() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r;
-		String url = URL + "/testMethodTransformOverridesClassTransform";
-
-		r = client.doGet(url).getResponse(String.class);
-		assertEquals("A3-0", r);
-
-		r = client.doPut(url, "A3-1").getResponse(String.class);
-		assertEquals("A3-1", r);
-
-		r = client.doPut(url + "/A3-2", "").getResponse(String.class);
-		assertEquals("A3-2", r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestUris.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestUris.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestUris.java
deleted file mode 100755
index d5b1f04..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestUris.java
+++ /dev/null
@@ -1,918 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import java.util.regex.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-/**
- * Verifies that all the RestRequest.getXXX() methods involving URIs work correctly.
- */
-public class CT_TestUris {
-
-	private static String URL2 = Constants.getServerTestUrl() + "/testuris";           // /jazz/juneau/sample/testuris
-	private static int port = getPort(Constants.getServerTestUrl());                  // 9443
-	private static String path = Constants.getServerTestUri().getPath();              // /jazz/juneau/sample
-
-	//====================================================================================================
-	// testRoot - http://localhost:8080/sample/testuris
-	//====================================================================================================
-	@Test
-	public void testRoot() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r;
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris").getResponse(ObjectMap.class);
-		assertEquals("root.test1", r.getString("testMethod"));
-		assertNull(r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/foo").getResponse(ObjectMap.class);
-		assertEquals("root.test1", r.getString("testMethod"));
-		assertEquals("/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("root.test1", r.getString("testMethod"));
-		assertEquals("/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("root.test1", r.getString("testMethod"));
-		assertEquals("/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test2
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test2").getResponse(ObjectMap.class);
-		assertEquals("root.test2", r.getString("testMethod"));
-		assertEquals("/test2", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test2", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test2/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test2/foo").getResponse(ObjectMap.class);
-		assertEquals("root.test2", r.getString("testMethod"));
-		assertEquals("/test2/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test2", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test2/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test2/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test2/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("root.test2", r.getString("testMethod"));
-		assertEquals("/test2/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test2/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test2/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test3%2Ftest3
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test3%2Ftest3").getResponse(ObjectMap.class);
-		assertEquals("root.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test3%2Ftest3", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test3%2Ftest3"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test3%2Ftest3/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test3%2Ftest3/foo").getResponse(ObjectMap.class);
-		assertEquals("root.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test3%2Ftest3", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test3%2Ftest3/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test3%2Ftest3/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test3%2Ftest3/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test3%2Ftest3/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("root.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test3%2Ftest3/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test3%2Ftest3/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test3%2Ftest3/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test3%2Ftest3/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test3%2Ftest3/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("root.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test3%2Ftest3/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test3%2Ftest3/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test3%2Ftest3/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test4/test4
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test4/test4").getResponse(ObjectMap.class);
-		assertEquals("root.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test4", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test4/test4", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test4/test4/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test4/test4/foo").getResponse(ObjectMap.class);
-		assertEquals("root.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test4/test4", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test4/test4/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test4/test4/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test4/test4/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("root.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test4/test4/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test4/test4/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/test4/test4/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/test4/test4/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("root.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/test4/test4/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/test4/test4/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2, r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// testChild - http://localhost:8080/sample/testuris/child
-	//====================================================================================================
-	@Test
-	public void testChild() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r;
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child").getResponse(ObjectMap.class);
-		assertEquals("child.test1", r.getString("testMethod"));
-		assertNull(r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/foo").getResponse(ObjectMap.class);
-		assertEquals("child.test1", r.getString("testMethod"));
-		assertEquals("/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("child.test1", r.getString("testMethod"));
-		assertEquals("/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("child.test1", r.getString("testMethod"));
-		assertEquals("/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test2
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test2").getResponse(ObjectMap.class);
-		assertEquals("child.test2", r.getString("testMethod"));
-		assertEquals("/test2", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test2", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test2/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test2/foo").getResponse(ObjectMap.class);
-		assertEquals("child.test2", r.getString("testMethod"));
-		assertEquals("/test2/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test2", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test2/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test2/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test2/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("child.test2", r.getString("testMethod"));
-		assertEquals("/test2/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test2/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test2/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test2/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test2/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("child.test2", r.getString("testMethod"));
-		assertEquals("/test2/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test2/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test2/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test3%2Ftest3
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test3%2Ftest3").getResponse(ObjectMap.class);
-		assertEquals("child.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test3%2Ftest3", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test3%2Ftest3"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test3%2Ftest3/foo").getResponse(ObjectMap.class);
-		assertEquals("child.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test3%2Ftest3", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test3%2Ftest3/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test3%2Ftest3/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test3%2Ftest3/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("child.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test3%2Ftest3/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test3%2Ftest3/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test3%2Ftest3/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test3%2Ftest3/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("child.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test3%2Ftest3/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test3%2Ftest3/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test3%2Ftest3/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test4/test4
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test4/test4").getResponse(ObjectMap.class);
-		assertEquals("child.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test4", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test4/test4", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test4/test4/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test4/test4/foo").getResponse(ObjectMap.class);
-		assertEquals("child.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test4/test4", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test4/test4/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test4/test4/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test4/test4/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("child.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test4/test4/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test4/test4/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test4/test4/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/test4/test4/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("child.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/test4/test4/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/test4/test4/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// testGrandChild - http://localhost:8080/sample/testuris/child/grandchild
-	//====================================================================================================
-	@Test
-	public void testGrandChild() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		ObjectMap r;
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test1", r.getString("testMethod"));
-		assertNull(r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/foo").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test1", r.getString("testMethod"));
-		assertEquals("/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test1", r.getString("testMethod"));
-		assertEquals("/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test1", r.getString("testMethod"));
-		assertEquals("/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test2
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test2").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test2", r.getString("testMethod"));
-		assertEquals("/test2", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test2", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test2/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test2/foo").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test2", r.getString("testMethod"));
-		assertEquals("/test2/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test2", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test2/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test2/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test2/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test2", r.getString("testMethod"));
-		assertEquals("/test2/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test2/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test2/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test2/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test2/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test2", r.getString("testMethod"));
-		assertEquals("/test2/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test2/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test2/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test3%2Ftest3
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test3%2Ftest3").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test3%2Ftest3"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test3%2Ftest3/foo").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test3%2Ftest3/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test3%2Ftest3/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test3%2Ftest3/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test3%2Ftest3/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test3", r.getString("testMethod"));
-		assertEquals("/test3/test3/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test3%2Ftest3/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test4/test4
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test4/test4").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4", r.getString("pathInfo"));
-		assertNull(r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test4", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test4/test4", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test4/test4/foo
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test4/test4/foo").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo", r.getString("pathInfo"));
-		assertEquals("foo", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test4/test4", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test4/test4/foo", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4/foo"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test4/test4/foo/bar
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test4/test4/foo/bar").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo/bar", r.getString("pathInfo"));
-		assertEquals("foo/bar", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test4/test4/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test4/test4/foo/bar", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4/foo/bar"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		//--------------------------------------------------------------------------------
-		// http://localhost:8080/sample/testuris/child/test4/test4/foo/bar%2Fbaz
-		//--------------------------------------------------------------------------------
-		r = client.doGet("/testuris/child/grandchild/test4/test4/foo/bar%2Fbaz").getResponse(ObjectMap.class);
-		assertEquals("grandchild.test4", r.getString("testMethod"));
-		assertEquals("/test4/test4/foo/bar/baz", r.getString("pathInfo"));
-		assertEquals("foo/bar/baz", r.getString("pathRemainder"));
-		assertEquals(path + "/testuris/child/grandchild/test4/test4/foo", r.getString("requestParentURI"));
-		assertEquals(path + "/testuris/child/grandchild/test4/test4/foo/bar%2Fbaz", r.getString("requestURI"));
-		assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4/foo/bar%2Fbaz"));
-		// Same for servlet
-		assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath"));  // App may not have context path, but combination should always equal path.
-		assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
-		assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
-		// Always the same
-		assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
-		assertEquals("http://testURL", r.getString("testURL3"));
-
-		client.closeQuietly();
-	}
-
-	private static int getPort(String url) {
-		Pattern p = Pattern.compile("\\:(\\d{2,5})");
-		Matcher m = p.matcher(url);
-		if (m.find())
-			return Integer.parseInt(m.group(1));
-		return -1;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestUrlContent.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestUrlContent.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestUrlContent.java
deleted file mode 100755
index 6e291bf..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestUrlContent.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.junit.*;
-
-public class CT_TestUrlContent {
-
-	private static String URL = "/testUrlContent";
-	private static RestClient client;
-
-	@BeforeClass
-	public static void beforeClass() {
-		client = new TestRestClient().setHeader("Accept", "text/plain");
-	}
-
-	@AfterClass
-	public static void afterClass() {
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test URL &Content parameter containing a String
-	//====================================================================================================
-	@Test
-	public void testString() throws Exception {
-		String r;
-		r = client.doGet(URL + "/testString?content=\'xxx\'&Content-Type=text/json").getResponseAsString();
-		assertEquals("class=java.lang.String, value=xxx", r);
-	}
-
-	//====================================================================================================
-	// Test URL &Content parameter containing an Enum
-	//====================================================================================================
-	@Test
-	public void testEnum() throws Exception {
-		String r;
-		r = client.doGet(URL + "/testEnum?content='X1'&Content-Type=text/json").getResponseAsString();
-		assertEquals("class=org.apache.juneau.server.TestUrlContent$TestEnum, value=X1", r);
-	}
-
-	//====================================================================================================
-	// Test URL &Content parameter containing a Bean
-	//====================================================================================================
-	@Test
-	public void testBean() throws Exception {
-		String r;
-		r = client.doGet(URL + "/testBean?content=%7Bf1:1,f2:'foobar'%7D&Content-Type=text/json").getResponseAsString();
-		assertEquals("class=org.apache.juneau.server.TestUrlContent$TestBean, value={f1:1,f2:'foobar'}", r);
-	}
-
-	//====================================================================================================
-	// Test URL &Content parameter containing an int
-	//====================================================================================================
-	@Test
-	public void testInt() throws Exception {
-		String r;
-		r = client.doGet(URL + "/testInt?content=123&Content-Type=text/json").getResponseAsString();
-		assertEquals("class=java.lang.Integer, value=123", r);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_UrlPathPattern.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_UrlPathPattern.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_UrlPathPattern.java
deleted file mode 100755
index d4fb434..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_UrlPathPattern.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import java.util.*;
-
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_UrlPathPattern {
-	@Test
-	public void testComparison() throws Exception {
-		List<UrlPathPattern> l = new LinkedList<UrlPathPattern>();
-
-		l.add(new UrlPathPattern("/foo"));
-		l.add(new UrlPathPattern("/foo/*"));
-		l.add(new UrlPathPattern("/foo/bar"));
-		l.add(new UrlPathPattern("/foo/bar/*"));
-		l.add(new UrlPathPattern("/foo/{id}"));
-		l.add(new UrlPathPattern("/foo/{id}/*"));
-		l.add(new UrlPathPattern("/foo/{id}/bar"));
-		l.add(new UrlPathPattern("/foo/{id}/bar/*"));
-
-		Collections.sort(l);
-		assertEquals("['/foo/bar','/foo/bar/*','/foo/{id}/bar','/foo/{id}/bar/*','/foo/{id}','/foo/{id}/*','/foo','/foo/*']", JsonSerializer.DEFAULT_LAX.serialize(l));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/Constants.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/Constants.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/Constants.java
deleted file mode 100755
index c6c38ec..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/Constants.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.net.*;
-
-
-public class Constants {
-
-	private static String juneauSampleUrl = System.getProperty("JUNO_SAMPLE_URL", "http://localhost:10000");
-	private static URI juneauSampleUri = (juneauSampleUrl == null ? null : URI.create(juneauSampleUrl));
-
-	/**
-	 * Returns the value of the "JUNO_SAMPLE_URL" system property, or throws a {@link RuntimeException}
-	 * if it's not set.
-	 */
-	public static String getJuneauSamplesUrl() {
-		if (juneauSampleUrl == null)
-			throw new RuntimeException("'JUNO_SAMPLE_URL' system property not set to URL of juneau.sample.war location.");
-		return juneauSampleUrl;
-	}
-
-	public static URI getJuneauSamplesUri() {
-		if (juneauSampleUri == null)
-			throw new RuntimeException("'JUNO_SAMPLE_URL' system property not set to URL of juneau.sample.war location.");
-		return juneauSampleUri;
-	}
-
-	private static String juneauServerTestUrl = System.getProperty("JUNO_SERVER_TEST_URL", "http://localhost:10001");
-	private static URI juneauServerTestUri = (juneauServerTestUrl == null ? null : URI.create(juneauServerTestUrl));
-
-	public static String getServerTestUrl() {
-		if (juneauServerTestUrl == null)
-			throw new RuntimeException("'JUNO_SERVER_TEST_URL' system property not set to URL of juneau.sample.war location.");
-		return juneauServerTestUrl;
-	}
-
-	public static URI getServerTestUri() {
-		if (juneauServerTestUri == null)
-			throw new RuntimeException("'JUNO_SERVER_TEST_URL' system property not set to URL of juneau.sample.war location.");
-		return juneauServerTestUri;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/DTOs.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/DTOs.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/DTOs.java
deleted file mode 100755
index bf3f2f1..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/DTOs.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.util.*;
-
-import org.apache.juneau.urlencoding.annotation.*;
-
-public class DTOs {
-
-	public static class A {
-		public String a;
-		public int b;
-		public boolean c;
-
-		public static A create() {
-			A t = new A();
-			t.a = "a";
-			t.b = 1;
-			t.c = true;
-			return t;
-		}
-
-	}
-
-	@SuppressWarnings("serial")
-	public static class B {
-		public String[] f1;
-		public List<String> f2;
-		public int[] f3;
-		public List<Integer> f4;
-		public String[][] f5;
-		public List<String[]> f6;
-		public A[] f7;
-		public List<A> f8;
-		public A[][] f9;
-		public List<List<A>> f10;
-
-		private String[] f11;
-		private List<String> f12;
-		private int[] f13;
-		private List<Integer> f14;
-		private String[][] f15;
-		private List<String[]> f16;
-		private A[] f17;
-		private List<A> f18;
-		private A[][] f19;
-		private List<List<A>> f20;
-
-		public String[] getF11() { return f11; }
-		public List<String> getF12() { return f12; }
-		public int[] getF13() { return f13; }
-		public List<Integer> getF14() { return f14; }
-		public String[][] getF15() { return f15; }
-		public List<String[]> getF16() { return f16; }
-		public A[] getF17() { return f17; }
-		public List<A> getF18() { return f18; }
-		public A[][] getF19() { return f19; }
-		public List<List<A>> getF20() { return f20; }
-
-		public void setF11(String[] f11) { this.f11 = f11; }
-		public void setF12(List<String> f12) { this.f12 = f12; }
-		public void setF13(int[] f13) { this.f13 = f13; }
-		public void setF14(List<Integer> f14) { this.f14 = f14; }
-		public void setF15(String[][] f15) { this.f15 = f15; }
-		public void setF16(List<String[]> f16) { this.f16 = f16; }
-		public void setF17(A[] f17) { this.f17 = f17; }
-		public void setF18(List<A> f18) { this.f18 = f18; }
-		public void setF19(A[][] f19) { this.f19 = f19; }
-		public void setF20(List<List<A>> f20) { this.f20 = f20; }
-
-		static B create() {
-			B t = new B();
-			t.f1 = new String[]{"a","b"};
-			t.f2 = new ArrayList<String>(){{add("c");add("d");}};
-			t.f3 = new int[]{1,2};
-			t.f4 = new ArrayList<Integer>(){{add(3);add(4);}};
-			t.f5 = new String[][]{{"e","f"},{"g","h"}};
-			t.f6 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}};
-			t.f7 = new A[]{A.create(),A.create()};
-			t.f8 = new ArrayList<A>(){{add(A.create());add(A.create());}};
-			t.f9 = new A[][]{{A.create()},{A.create()}};
-			t.f10 = new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}};
-			t.setF11(new String[]{"a","b"});
-			t.setF12(new ArrayList<String>(){{add("c");add("d");}});
-			t.setF13(new int[]{1,2});
-			t.setF14(new ArrayList<Integer>(){{add(3);add(4);}});
-			t.setF15(new String[][]{{"e","f"},{"g","h"}});
-			t.setF16(new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}});
-			t.setF17(new A[]{A.create(),A.create()});
-			t.setF18(new ArrayList<A>(){{add(A.create());add(A.create());}});
-			t.setF19(new A[][]{{A.create()},{A.create()}});
-			t.setF20(new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}});
-			return t;
-		}
-	}
-
-	@UrlEncoding(expandedParams=true)
-	public static class C extends B {
-		@SuppressWarnings("serial")
-		static C create() {
-			C t = new C();
-			t.f1 = new String[]{"a","b"};
-			t.f2 = new ArrayList<String>(){{add("c");add("d");}};
-			t.f3 = new int[]{1,2};
-			t.f4 = new ArrayList<Integer>(){{add(3);add(4);}};
-			t.f5 = new String[][]{{"e","f"},{"g","h"}};
-			t.f6 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}};
-			t.f7 = new A[]{A.create(),A.create()};
-			t.f8 = new ArrayList<A>(){{add(A.create());add(A.create());}};
-			t.f9 = new A[][]{{A.create()},{A.create()}};
-			t.f10 = new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}};
-			t.setF11(new String[]{"a","b"});
-			t.setF12(new ArrayList<String>(){{add("c");add("d");}});
-			t.setF13(new int[]{1,2});
-			t.setF14(new ArrayList<Integer>(){{add(3);add(4);}});
-			t.setF15(new String[][]{{"e","f"},{"g","h"}});
-			t.setF16(new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}});
-			t.setF17(new A[]{A.create(),A.create()});
-			t.setF18(new ArrayList<A>(){{add(A.create());add(A.create());}});
-			t.setF19(new A[][]{{A.create()},{A.create()}});
-			t.setF20(new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}});
-			return t;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/TestRestClient.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/TestRestClient.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/TestRestClient.java
deleted file mode 100755
index 5ea3b37..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/TestRestClient.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.security.*;
-
-import javax.net.ssl.*;
-
-import org.apache.http.conn.ssl.*;
-import org.apache.http.impl.client.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-
-/**
- * REST client with lenient SSL support and lax redirection strategy.
- */
-class TestRestClient extends RestClient {
-
-	public TestRestClient(Class<? extends Serializer> s, Class<? extends Parser> p) throws InstantiationException {
-		super(s,p);
-		setRootUrl(Constants.getServerTestUrl());
-	}
-
-	public TestRestClient(Serializer s, Parser p) {
-		super(s,p);
-		setRootUrl(Constants.getServerTestUrl());
-	}
-
-	public TestRestClient() {
-		setRootUrl(Constants.getServerTestUrl());
-	}
-
-	public TestRestClient(CloseableHttpClient c) {
-		super(c);
-		setRootUrl(Constants.getServerTestUrl());
-	}
-
-	public static SSLConnectionSocketFactory getSSLSocketFactory() throws Exception {
-		SSLContext sslContext = SSLContext.getInstance("SSL");
-		TrustManager tm = new SimpleX509TrustManager(true);
-		sslContext.init(null, new TrustManager[]{tm}, new SecureRandom());
-		return new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier());
-	}
-
-	@Override /* RestClient */
-	protected CloseableHttpClient createHttpClient() throws Exception {
-		try {
-			return HttpClients.custom().setSSLSocketFactory(getSSLSocketFactory()).setRedirectStrategy(new LaxRedirectStrategy()).build();
-		} catch (KeyStoreException e) {
-			throw new RuntimeException(e);
-		} catch (NoSuchAlgorithmException e) {
-			throw new RuntimeException(e);
-		} catch (Throwable e) {
-			e.printStackTrace();
-			return null;
-		}
-	}
-}


[07/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/package.html
deleted file mode 100644
index 51977bf..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/package.html
+++ /dev/null
@@ -1,518 +0,0 @@
-<!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>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>
-		Juneau supports serializing and parsing of JSON-Schema documents through the use of beans defined in the <code>org.apache.juneau.dto.jsonschema</code> package.<br>
-		These beans are used with the existing {@link org.apache.juneau.json.JsonSerializer} and {@link org.apache.juneau.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 class='spaced-list'>
-			<li>{@link org.apache.juneau.dto.jsonschema.Schema} - Top level schema object.
-			<li>{@link org.apache.juneau.dto.jsonschema.SchemaProperty} - A subclass of <code>Schema</code> for representing properties.
-			<li>{@link org.apache.juneau.dto.jsonschema.SchemaPropertySimpleArray} - A convenience subclass of <code>SchemaProperty</code> for representing properties of simple array types.
-			<li>{@link org.apache.juneau.dto.jsonschema.SchemaRef} - Represents a URI reference to another schema.
-			<li>{@link org.apache.juneau.dto.jsonschema.SchemaArray} - An array of <code>Schema</code> objects.
-			<li>{@link org.apache.juneau.dto.jsonschema.JsonType} - An enum of possible JSON data types.
-			<li>{@link org.apache.juneau.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 Juneau 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 Juneau 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=HtmlDocSerializerContext.<jsf>HTMLDOC_title</jsf>, value=<js>"Sample JSON-Schema document"</js>),
-			<ja>@Property</ja>(name=HtmlDocSerializerContext.<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 org.apache.juneau.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/package.html
deleted file mode 100644
index 4574810..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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>Data transfer objects</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/Encoder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/Encoder.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/Encoder.java
deleted file mode 100644
index 128148b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/Encoder.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/EncoderGroup.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
deleted file mode 100644
index 710f16a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/***************************************************************************************************************************
- * 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.encoders;
-
-import static org.apache.juneau.internal.ArrayUtils.*;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-
-/**
- * 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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/GzipEncoder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/GzipEncoder.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/GzipEncoder.java
deleted file mode 100644
index a08ffb7..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/GzipEncoder.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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.encoders;
-
-import java.io.*;
-import java.util.zip.*;
-
-/**
- * Encoder for handling <js>"gzip"</js> encoding and decoding.
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/IdentityEncoder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/IdentityEncoder.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/IdentityEncoder.java
deleted file mode 100644
index 0bbb7e5..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/IdentityEncoder.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/***************************************************************************************************************************
- * 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.encoders;
-
-import java.io.*;
-
-/**
- * Encoder for handling <js>"identity"</js> encoding and decoding (e.g. no encoding at all).
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/package.html
deleted file mode 100644
index 41c1ab1..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/encoders/package.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!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>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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
deleted file mode 100644
index f33a880..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import org.apache.juneau.*;
-import org.apache.juneau.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlClassMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlClassMeta.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlClassMeta.java
deleted file mode 100644
index 02dc609..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlClassMeta.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import org.apache.juneau.html.annotation.*;
-import org.apache.juneau.internal.*;
-
-/**
- * Metadata on classes specific to the HTML serializers and parsers pulled from the {@link Html @Html} annotation on the class.
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
deleted file mode 100644
index 2c1a0fe..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.dto.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.serializer.*;
-
-/**
- * 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 HtmlDocSerializerContext}
- * 	<li>{@link BeanContext}
- * </ul>
- *
- *
- * @author James Bognar (james.bognar@salesforce.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 */
-	public HtmlDocSerializerSession createSession(Object output, ObjectMap properties, Method javaMethod) {
-		return new HtmlDocSerializerSession(getContext(HtmlDocSerializerContext.class), getBeanContext(), output, properties, javaMethod);
-	}
-
-	@Override /* Serializer */
-	protected void doSerialize(SerializerSession session, Object o) throws Exception {
-
-		HtmlDocSerializerSession s = (HtmlDocSerializerSession)session;
-		HtmlWriter w = s.getWriter();
-
-		ObjectMap properties = s.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 = s.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 (s.isNoWrap())
-			w.appendln("\n* {white-space:nowrap;}");
-		if (s.getCssImports() != null)
-			for (String cssImport : s.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 = s.getTitle();
-		if (title == null && isOptionsPage)
-			title = "Options";
-		String description = s.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) {
-			Map<String,String> htmlLinks = s.getLinks();
-			if (htmlLinks != null) {
-				for (Map.Entry<String,String> e : htmlLinks.entrySet()) {
-					String uri = e.getValue();
-					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();
-		}
-
-		s.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(s, o);
-		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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java
deleted file mode 100644
index 53c0742..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-
-/**
- * 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=HtmlDocSerializerContext.<jsf>HTMLDOC_title</jsf>, value=<js>"$L{title}"</js>),
- * 			<ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_description</jsf>, value=<js>"$L{description}"</js>),
- * 			<ja>@Property</ja>(name=HtmlDocSerializerContext.<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 (james.bognar@salesforce.com)
- */
-public final class HtmlDocSerializerContext extends HtmlSerializerContext {
-
-	/**
-	 * 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=HtmlDocSerializerContext.<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=HtmlDocSerializerContext.<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=HtmlDocSerializerContext.<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_links_add = "HtmlDocSerializer.links.add";
-
-	/**
-	 * Adds a link to the specified stylesheet URL (<l>String</l>, default=<jk>null</jk>).
-	 * <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 (<l>String[]</l>, default=<code>[]</code>).
-	 */
-	public static final String HTMLDOC_cssImports = "HtmlDocSerializer.cssImports";
-
-	/**
-	 * Append to the {@link #HTMLDOC_cssImports} property.
-	 */
-	public static final String HTMLDOC_cssImports_add = "HtmlDocSerializer.cssImports.add";
-
-	/**
-	 * Adds <js>"* {white-space:nowrap}"</js> to the style header to prevent word wrapping.
-	 */
-	public static final String HTMLDOC_nowrap = "HtmlDocSerializer.nowrap";
-
-	final String[] cssImports;
-	final Map<String,String> links;
-	final String title, description, cssUrl;
-	final boolean nowrap;
-
-	/**
-	 * Constructor.
-	 * <p>
-	 * Typically only called from {@link ContextFactory#getContext(Class)}.
-	 *
-	 * @param cf The factory that created this context.
-	 */
-	public HtmlDocSerializerContext(ContextFactory cf) {
-		super(cf);
-		cssImports = cf.getProperty(HTMLDOC_cssImports, String[].class, new String[0]);
-		title = cf.getProperty(HTMLDOC_title, String.class, null);
-		description = cf.getProperty(HTMLDOC_description, String.class, null);
-		cssUrl = cf.getProperty(HTMLDOC_cssUrl, String.class, null);
-		nowrap = cf.getProperty(HTMLDOC_nowrap, boolean.class, false);
-		links = cf.getMap(HTMLDOC_links, String.class, String.class, Collections.<String,String>emptyMap());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
deleted file mode 100644
index 476f6c5..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.serializer.*;
-
-/**
- * Context object that lives for the duration of a single serialization of {@link HtmlSerializer} and its subclasses.
- * <p>
- * 	See {@link SerializerContext} for details.
- * </p>
- * <p>
- * 	This class is NOT thread safe.  It is meant to be discarded after one-time use.
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class HtmlDocSerializerSession extends HtmlSerializerSession {
-
-	private final String title, description, cssUrl;
-	private final String[] cssImports;
-	private final Map<String,String> links;
-	private final boolean nowrap;
-
-	/**
-	 * Create a new session using properties specified in the context.
-	 *
-	 * @param ctx The context creating this session object.
-	 * 	The context contains all the configuration settings for this object.
-	 * @param beanContext The bean context being used.
-	 * @param output The output object.  See {@link JsonSerializerSession#getWriter()} for valid class types.
-	 * @param op The override properties.
-	 * 	These override any context properties defined in the context.
-	 * @param javaMethod The java method that called this parser, usually the method in a REST servlet.
-	 */
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	protected HtmlDocSerializerSession(HtmlDocSerializerContext ctx, BeanContext beanContext, Object output, ObjectMap op, Method javaMethod) {
-		super(ctx, beanContext, output, op, javaMethod);
-		if (op == null || op.isEmpty()) {
-			title = ctx.title;
-			description = ctx.description;
-			links = ctx.links;
-			cssUrl = ctx.cssUrl;
-			cssImports = ctx.cssImports;
-			nowrap = ctx.nowrap;
-		} else {
-			title = op.getString(HTMLDOC_title, ctx.title);
-			description = op.getString(HTMLDOC_description, ctx.description);
-			links = new LinkedHashMap(op.getMap(HTMLDOC_links, ctx.links));
-			cssUrl = op.getString(HTMLDOC_cssUrl, ctx.cssUrl);
-			cssImports = StringUtils.split(op.getString(HTMLDOC_cssImports, null), ',');
-			nowrap = op.getBoolean(HTMLDOC_cssUrl, ctx.nowrap);
-		}
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerContext#HTMLDOC_title} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerContext#HTMLDOC_title} setting value in this context.
-	 */
-	public final String getTitle() {
-		return title;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerContext#HTMLDOC_description} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerContext#HTMLDOC_description} setting value in this context.
-	 */
-	public final String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerContext#HTMLDOC_links} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerContext#HTMLDOC_links} setting value in this context.
-	 */
-	public final Map<String,String> getLinks() {
-		return links;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerContext#HTMLDOC_cssUrl} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerContext#HTMLDOC_cssUrl} setting value in this context.
-	 */
-	public final String getCssUrl() {
-		return cssUrl;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerContext#HTMLDOC_cssImports} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerContext#HTMLDOC_cssImports} setting value in this context.
-	 */
-	public final String[] getCssImports() {
-		return cssImports;
-	}
-
-	/**
-	 * Returns the {@link HtmlDocSerializerContext#HTMLDOC_nowrap} setting value in this context.
-	 *
-	 * @return The {@link HtmlDocSerializerContext#HTMLDOC_nowrap} setting value in this context.
-	 */
-	public final boolean isNoWrap() {
-		return nowrap;
-	}
-
-	@Override /* XmlSerializerSession */
-	public HtmlWriter getWriter() throws Exception {
-		Object output = getOutput();
-		if (output instanceof HtmlWriter)
-			return (HtmlWriter)output;
-		return new HtmlWriter(super.getWriter(), isUseIndentation(), isTrimStrings(), getQuoteChar(), getRelativeUriBase(), getAbsolutePathUriBase());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlLink.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlLink.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlLink.java
deleted file mode 100644
index 87f2954..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlLink.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 org.apache.juneau.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 (james.bognar@salesforce.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 "";
-}


[24/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Response.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Response.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Response.java
deleted file mode 100755
index ee8d32c..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Response.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Annotation used in conjunction with {@link RestMethod#responses()} to identify possible responses by the method.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(
- * 		name=<js>"*"</js>,
- * 		responses={
- * 			<ja>@Response</ja>(value=200,description=<js>"Everything was great."</js>),
- * 			<ja>@Response</ja>(value=404,description=<js>"File was not found."</js>)
- * 			<ja>@Response</ja>(500),
- * 		}
- * 	)
- * 	<jk>public void</jk> doAnything(RestRequest req, RestResponse res, <ja>@Method</ja> String method) {
- * 		...
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Response {
-
-	/**
-	 * HTTP response code.
-	 */
-	int value();
-
-	/**
-	 * Optional description.
-	 * <p>
-	 * 	The default value pulls the description from the <code>description</code> entry in the servlet resource bundle.
-	 * 	(e.g. <js>"myMethod.res.[code] = foo"</js> or <js>"MyServlet.myMethod.res.[code] = foo"</js>).
-	 * <p>
-	 * 	This field can contain variables (e.g. "$L{my.localized.variable}").
-	 */
-	String description() default "";
-
-	/**
-	 * Optional response variables.
-	 * <p>
-	 * 	Response variables can also be defined in the servlet resource bundle.
-	 * 	(e.g. <js>"myMethod.res.[code].[category].[name] = foo"</js> or <js>"MyServlet.myMethod.res.[code].[category].[name] = foo"</js>).
-	 */
-	Var[] output() default {};
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java
deleted file mode 100755
index 0df53ee..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-
-/**
- * Identifies a REST Java method on a {@link RestServlet} implementation class.
- * <p>
- *		Refer to {@link org.apache.juneau.server} doc for information on using this class.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(METHOD)
-@Retention(RUNTIME)
-@Inherited
-public @interface RestMethod {
-
-	/**
-	 * REST method name.
-	 * <p>
-	 * 	Typically <js>"GET"</js>, <js>"PUT"</js>, <js>"POST"</js>, <js>"DELETE"</js>, or <js>"OPTIONS"</js>.
-	 * <p>
-	 * 	Can also be a non-HTTP-standard name that is passed in through a <code>&amp;method=methodName</code> URL parameter.
-	 * <p>
-	 * 	Method names are case-insensitive (always folded to upper-case).
-	 * <p>
-	 * 	If a method name is not specified, then the method name is determined based on the Java method name.<br>
-	 * 	For example, if the method is <code>doPost(...)</code>, then the method name is automatically detected as <js>"POST"</js>.
-
-	 */
-	String name() default "";
-
-	/**
-	 * Optional path pattern for the specified method.
-	 * <p>
-	 * 	Appending <js>"/*"</js> to the end of the path pattern will make it match any remainder too.<br>
-	 * 	Not appending <js>"/*"</js> to the end of the pattern will cause a 404 (Not found) error to occur
-	 * 	if the exact pattern is not found.
-	 */
-	String path() default "/*";
-
-	/**
-	 * URL path pattern priority.
-	 * <p>
-	 * 	To force path patterns to be checked before other path patterns, use a higher priority number.
-	 * <p>
-	 * 	By default, it's <code>0</code>, which means it will use an internal heuristic to
-	 * 	determine a best match.
-	 */
-	int priority() default 0;
-
-	/**
-	 * Method guards.
-	 * <p>
-	 * 	Associates one or more {@link RestGuard RestGuards} with a method call.
-	 * 	These guards get called immediately before execution of the REST method.
-	 * <p>
-	 * 	Typically, guards will be used for permissions checking on the user making the request,
-	 * 	but it can also be used for other purposes like pre-call validation of a request.
-	 */
-	Class<? extends RestGuard>[] guards() default {};
-
-	/**
-	 * Method response converters.
-	 * <p>
-	 * 	Associates one or more {@link RestConverter RestConverters} with a method call.
-	 * 	These converters get called immediately after execution of the REST method in the same
-	 * 		order specified in the annotation.
-	 * <p>
-	 * 	Can be used for performing post-processing on the response object before serialization.
-	 * <p>
-	 * 	Default converters are available in the {@link org.apache.juneau.server.converters} package.
-	 */
-	Class<? extends RestConverter>[] converters() default {};
-
-	/**
-	 * Method matchers.
-	 * <p>
-	 * 	Associates one more more {@link RestMatcher RestMatchers} with this method.
-	 * <p>
-	 * 	Matchers are used to allow multiple Java methods to handle requests assigned to the same
-	 * 		URL path pattern, but differing based on some request attribute, such as a specific header value.
-	 * <p>
-	 * 	See {@link RestMatcher} for details.
-	 */
-	Class<? extends RestMatcher>[] matchers() default {};
-
-	/**
-	 * Overrides the list of serializers assigned at the method level.
-	 * <p>
-	 * Use this annotation when the list of serializers assigned to a method differs from the list of serializers assigned at the servlet level.
-	 * <p>
-	 * To append to the list of serializers assigned at the servlet level, use <code>serializersInherit=<jsf>SERIALIZERS</jsf></code>.
-	 *
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> MyResource <jk>extends</jk> RestServlet {
-	 *
-	 * 		<ja>@RestMethod</ja>(
-	 * 			name=<js>"GET"</js>,
-	 * 			path=<js>"/foo"</js>,
-	 * 			serializers=MySpecialSerializer.<jk>class</jk>,
-	 * 			serializersInherit=<jsf>SERIALIZERS</jsf>
-	 * 		)
-	 * 		<jk>public</jk> Object doGetWithSpecialAcceptType() {
-	 * 			<jc>// Handle request for special Accept type</jc>
-	 * 		}
-	 * 	}
-	 * </p>
-	 */
-	Class<? extends Serializer>[] serializers() default {};
-
-	/**
-	 * Used in conjunction with {@link #serializers()} to identify what class-level settings are inherited by the method serializer group.
-	 * <p>
-	 * Possible values:
-	 * </p>
-	 * <ul>
-	 * 	<li>{@link Inherit#SERIALIZERS} - Inherit class-level serializers.
-	 * 	<li>{@link Inherit#PROPERTIES} - Inherit class-level properties.
-	 * 	<li>{@link Inherit#TRANSFORMS} - Inherit class-level transforms.
-	 * </ul>
-	 * <p>
-	 * 	For example, to inherit all serializers, properties, and transforms from the servlet class:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<ja>@RestMethod</ja>(
-	 * 		path=<js>"/foo"</js>,
-	 * 		serializers=MySpecialSerializer.<jk>class</jk>,
-	 * 		serializersInherit={<jsf>SERIALIZERS</jsf>,<jsf>PROPERTIES</jsf>,<jsf>TRANSFORMS</jsf>}
-	 * 	)
-	 * </p>
-	 */
-	Inherit[] serializersInherit() default {};
-
-	/**
-	 * Overrides the list of parsers assigned at the method level.
-	 * <p>
-	 * Use this annotation when the list of parsers assigned to a method differs from the list of parsers assigned at the servlet level.
-	 * <p>
-	 * To append to the list of serializers assigned at the servlet level, use <code>serializersInherit=<jsf>SERIALIZERS</jsf></code>.
-	 *
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> MyResource <jk>extends</jk> RestServlet {
-	 *
-	 * 		<ja>@RestMethod</ja>(
-	 * 			name=<js>"PUT"</js>,
-	 * 			path=<js>"/foo"</js>,
-	 * 			parsers=MySpecialParser.<jk>class</jk>,
-	 * 			parsersInherit=<jsf>PARSERS</jsf>
-	 * 		)
-	 * 		<jk>public</jk> Object doGetWithSpecialAcceptType() {
-	 * 			<jc>// Handle request for special Accept type</jc>
-	 * 		}
-	 * 	}
-	 * </p>
-	 */
-	Class<? extends Parser>[] parsers() default {};
-
-	/**
-	 * Used in conjunction with {@link #parsers()} to identify what class-level settings are inherited by the method parser group.
-	 * <p>
-	 * Possible values:
-	 * <ul>
-	 * 	<li>{@link Inherit#PARSERS} - Inherit class-level parsers.
-	 * 	<li>{@link Inherit#PROPERTIES} - Inherit class-level properties.
-	 * 	<li>{@link Inherit#TRANSFORMS} - Inherit class-level transforms.
-	 * </ul>
-	 * <p>
-	 * 	For example, to inherit all parsers, properties, and transforms from the servlet class:
-	 * </p>
-	 * <p class='bcode'>
-	 * 	<ja>@RestMethod</ja>(
-	 * 		path=<js>"/foo"</js>,
-	 * 		parsers=MySpecialParser.<jk>class</jk>,
-	 * 		parsersInherit={<jsf>PARSERS</jsf>,<jsf>PROPERTIES</jsf>,<jsf>TRANSFORMS</jsf>}
-	 * 	)
-	 * </p>
-	 */
-	Inherit[] parsersInherit() default {};
-
-	/**
-	 * Appends to the list of {@link Encoder encoders} specified on the servlet.
-	 * <p>
-	 * Use this annotation when the list of encoders assigned to a method differs from the list of encoders assigned at the servlet level.
-	 * <p>
-	 * These can be used to enable various kinds of compression (e.g. <js>"gzip"</js>) on requests and responses.
-	 *
-	 * <p class='bcode'>
-	 * 	<jk>public class</jk> MyResource <jk>extends</jk> RestServlet {
-	 *
-	 * 		<ja>@RestMethod</ja>(
-	 * 			name=<js>"PUT"</js>,
-	 * 			path=<js>"/foo"</js>,
-	 * 			encoders={GzipEncoder.<jk>class</jk>}
-	 * 		)
-	 * 		<jk>public</jk> Object doGetWithSpecialEncoding() {
-	 * 			<jc>// Handle request with special encoding</jc>
-	 * 		}
-	 * 	}
-	 * </p>
-	 *
-	 * If you want to OVERRIDE the set of encoders specified by the servlet, combine this annotation with <code><ja>@RestMethod</ja>(inheritEncoders=<jk>false</jk>)</code>.
-	 */
-	Class<? extends Encoder>[] encoders() default {};
-
-	/**
-	 * Specifies whether the method should inherit encoders from the servlet.
-	 */
-	boolean inheritEncoders() default true;
-
-	/**
-	 * Same as {@link RestResource#properties()}, except defines property values by default when this method is called.
-	 * <p>
-	 * This is equivalent to simply calling <code>res.addProperties()</code> in the Java method, but is provided for convenience.
-	 */
-	Property[] properties() default {};
-
-	/**
-	 * Appends the specified transforms to all serializers and parsers used by this method.
-	 */
-	Class<?>[] transforms() default {};
-
-	/**
-	 * Possible HTTP response codes from this method.
-	 * <p>
-	 * 	This annotation is provided for documentation purposes.
-	 * 	It is used in conjunction with the following NLS resource bundle keys to populate options pages:
-	 * <ul class='spaced-list'>
-	 * 	<li><js>"(className.?)[javaMethodName].res.[rc]"</js> - Response description (defaults to HTTP status message).
-	 * 		e.g. <js>"MyClass.myMethod.res.404 = Sorry...I couldn't find that."</js> or <js>"myMethod.res.404 = Sorry...I couldn't find that."</js>
-	 * 	<li><js>"(className.?)[javaMethodName].res.[rc].[varCategory].[varName]"</js> - Response variable .
-	 * 		e.g. <js>"MyClass.myMethod.res.302.[header].[Location] = Set to the location where the thing can be found."</js> or  <js>"myMethod.res.302.[header].[Location] = Set to the location where the thing can be found."</js>
-	 * </ul>
-	 * <p>
-	 * Note that you can still define the keys in the resource bundle and not use this annotation.
-	 * However, the annotation is provided if you just want the OPTIONS page to show the possible status codes with
-	 * default HTTP status messages.
-	 */
-	int[] rc() default {};
-
-	/**
-	 * Specifies default values for request headers.
-	 * <p>
-	 * Strings are of the format <js>"Header-Name: header-value"</js>.
-	 * <p>
-	 * Affects values returned by {@link RestRequest#getHeader(String)} when the header is not present on the request.
-	 * <p>
-	 * The most useful reason for this annotation is to provide a default <code>Accept</code> header when one is not specified
-	 * 	so that a particular default {@link Serializer} is picked.
-	 * <p>
-	 * Only one header value can be specified per entry (i.e. it's not a delimited list of header entries).
-	 * <p>
-	 * Header values specified at the method level override header values specified at the servlet level.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Assume "text/json" Accept value when Accept not specified</jc>
-	 * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>, defaultRequestHeaders={<js>"Accept: text/json"</js>})
-	 * 	<jk>public</jk> String doGet() {
-	 * 		...
-	 * 	}
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String[] defaultRequestHeaders() default {};
-
-	/**
-	 * Optional description.
-	 * <p>
-	 * 	This description is used in the following locations:
-	 * 	<ul class='spaced-list'>
-	 * 		<li>The value returned by {@link RestRequest#getMethodDescription()}.
-	 * 		<li>The <js>"$R{methodDescription}"</js> variable.
-	 * 		<li>The description of the method in the OPTIONS page.
-	 * 	</ul>
-	 * <p>
-	 * 	The default value pulls the description from the <code>(className.?)[javaMethodName]</code> entry in the servlet resource bundle.
-	 * 	(e.g. <js>"MyClass.myMethod = foo"</js> or <js>"myMethod = foo"</js>).
-	 * <p>
-	 * 	This field value can contain variables (e.g. "$L{my.localized.variable}").
-	 */
-	String description() default "";
-
-	/**
-	 * Optional input description.
-	 * <p>
-	 * 	This annotation is provided for documentation purposes and is used to populate the method <js>"input"</js> column
-	 * 		on the OPTIONS page.
-	 * <p>
-	 * Example:
-	 * <p class='bcode'>
-	 * 	<ja>@RestMethod</ja>(
-	 * 		name=<js>"POST"</js>, path=<js>"/{a}"</js>,
-	 * 		description=<js>"This is my method."</js>,
-	 * 		input={
-	 * 			<ja>@Var</ja>(category=<js>"attr"</js>, name=<js>"a"</js>, description=<js>"The 'a' attribute"</js>),
-	 * 			<ja>@Var</ja>(category=<js>"param"</js>, name=<js>"b"</js>, description=<js>"The 'b' parameter"</js>),
-	 * 			<ja>@Var</ja>(category=<js>"content"</js>, description=<js>"The HTTP content"</js>),
-	 * 			<ja>@Var</ja>(category=<js>"header"</js>, name=<js>"D"</js>, description=<js>"The 'D' header"</js>),
-	 * 			<ja>@Var</ja>(category=<js>"foo"</js>, name=<js>"bar"</js>, description=<js>"An arbitrary category"</js>)
-	 * 		}
-	 * 	)
-	 * </p>
-	 * This is functionally equivalent to specifying the following keys in the resource bundle for the class, except in this case
-	 * the strings are internationalized.
-	 * <p class='bcode'>
-	 * 	<jk>MyClass.myMethod</jk> = <js>This is my method.</js>
-	 * 	<jk>MyClass.myMethod.req.attr.a</jk> = <js>The 'a' attribute</js>
-	 * 	<jk>MyClass.myMethod.req.param.b</jk> = <js>The 'b' parameter</js>
-	 * 	<jk>MyClass.myMethod.req.content</jk> = <js>The HTTP content</js>
-	 * 	<jk>MyClass.myMethod.req.header.d</jk> = <js>The 'D' header</js>
-	 * 	<jk>MyClass.myMethod.req.foo.bar</jk> = <js>An arbitrary category</js>
-	 * <p>
-	 * As a general rule, use annotations when you don't care about internationalization (i.e. you only want to support English),
-	 * and use resource bundles if you need to support localization.
-	 * <p>
-	 * 	These annotations can contain variables (e.g. "$L{my.localized.variable}").
-	 */
-	Var[] input() default {};
-
-
-	/**
-	 * Optional output description.
-	 * <p>
-	 * 	This annotation is provided for documentation purposes and is used to populate the method <js>"responses"</js> column
-	 * 		on the OPTIONS page.
-	 * <p>
-	 * Example:
-	 * <p class='bcode'>
-	 * 	<ja>@RestMethod</ja>(
-	 * 		name=<js>"GET"</js>, path=<js>"/"</js>,
-	 * 		responses={
-	 * 			<ja>@Response</ja>(200),
-	 * 			<ja>@Response</ja>(
-	 * 				value=302,
-	 * 				description=<js>"Thing wasn't found here"</js>,
-	 * 				output={
-	 * 					<ja>@Var</ja>(category=<js>"header"</js>, name=<js>"Location"</js>, description=<js>"The place to find the thing"</js>)
-	 * 				}
-	 * 			)
-	 * 		}
-	 * 	)
-	 * </p>
-	 * This is functionally equivalent to specifying the following keys in the resource bundle for the class, except in this case
-	 * the strings are internationalized.
-	 * <p class='bcode'>
-	 * 	<jk>MyClass.myMethod.res.200</jk> = <js>OK</js>
-	 * 	<jk>MyClass.myMethod.res.302</jk> = <js>Thing wasn't found here</js>
-	 * 	<jk>MyClass.myMethod.res.302.header.Location</jk> = <js>The place to find the thing</js>
-	 * <p>
-	 * As a general rule, use annotations when you don't care about internationalization (i.e. you only want to support English),
-	 * and use resource bundles if you need to support localization.
-	 * <p>
-	 * 	These annotations can contain variables (e.g. "$L{my.localized.variable}").
-	 */
-	Response[] responses() default {};
-
-	/**
-	 * Specifies whether this method can be called based on the client version.
-	 * <p>
-	 * 	The client version is identified via the HTTP request header identified by {@link RestResource#clientVersionHeader()} which
-	 * 	by default is <js>"X-Client-Version"</js>.
-	 * <p>
-	 * 	This is a specialized kind of {@link RestMatcher} that allows you to invoke different Java methods for the same method/path based
-	 * 	on the client version.
-	 * <p>
-	 * 	The format of the client version range is similar to that of OSGi versions.
-	 * <p>
-	 * 	In the following example, the Java methods are mapped to the same HTTP method and URL <js>"/foobar"</js>.
-	 * <p class='bcode'>
-	 * 	<jc>// Call this method if X-Client-Version is at least 2.0.
-	 * 	// Note that this also matches 2.0.1.</jc>
-	 * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foobar"</js>, clientVersion=<js>"2.0"</js>)
-	 * 	<jk>public</jk> Object method1() {
-	 * 		...
-	 * 	}
-	 *
-	 * 	<jc>// Call this method if X-Client-Version is at least 1.1, but less than 2.0.</jc>
-	 * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foobar"</js>, clientVersion=<js>"[1.1,2.0)"</js>)
-	 * 	<jk>public</jk> Object method2() {
-	 * 		...
-	 * 	}
-	 *
-	 * 	<jc>// Call this method if X-Client-Version is less than 1.1.</jc>
-	 * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foobar"</js>, clientVersion=<js>"[0,1.1)"</js>)
-	 * 	<jk>public</jk> Object method3() {
-	 * 		...
-	 * 	}
-	 * </p>
-	 * <p>
-	 * 	It's common to combine the client version with transforms that will convert new POJOs into older POJOs for backwards compatability.
-	 * <p class='bcode'>
-	 * 	<jc>// Call this method if X-Client-Version is at least 2.0.</jc>
-	 * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foobar"</js>, clientVersion=<js>"2.0"</js>)
-	 * 	<jk>public</jk> NewPojo newMethod() {
-	 * 		...
-	 * 	}
-	 *
-	 * 	<jc>// Call this method if X-Client-Version is at least 1.1, but less than 2.0.</jc>
-	 * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foobar"</js>, clientVersion=<js>"[1.1,2.0)"</js>, transforms={NewToOldPojoTransform.<jk>class</jk>})
-	 * 	<jk>public</jk> NewPojo oldMethod() {
-	 * 		<jk>return</jk> newMethod()
-	 * 	}
-	 * <p>
-	 * 	Note that in the previous example, we're returning the exact same POJO, but using a transform to convert it into an older form.
-	 * 	The old method could also just return back a completely different object.
-	 * 	The range can be any of the following:
-	 * <ul>
-	 * 	<li><js>"[0,1.0)"</js> = Less than 1.0.  1.0 and 1.0.0 does not match.
-	 * 	<li><js>"[0,1.0]"</js> = Less than or equal to 1.0.  Note that 1.0.1 will match.
-	 * 	<li><js>"1.0"</js> = At least 1.0.  1.0 and 2.0 will match.
-	 * </ul>
-	 */
-	String clientVersion() default "";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/RestResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/RestResource.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/RestResource.java
deleted file mode 100755
index 682b898..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/RestResource.java
+++ /dev/null
@@ -1,445 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.utils.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Optionally used to associate metadata on an instance of {@link RestServlet}.
- * <p>
- *		Refer to {@link org.apache.juneau.server} doc for information on using this class.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface RestResource {
-
-	/**
-	 * Identifies the location of the resource bundle for this class.
-	 * <p>
-	 * This annotation is used to provide localized messages for the following methods:
-	 * <ul>
-	 * 	<li>{@link RestServlet#getMessage(java.util.Locale, String, Object...)}
-	 * 	<li>{@link RestServlet#getMethodDescriptions(RestRequest)}
-	 * 	<li>{@link RestServlet#getLabel(RestRequest)}
-	 * 	<li>{@link RestServlet#getDescription(RestRequest)}
-	 * </ul>
-	 * <p>
-	 * Refer to the {@link MessageBundle} class for a description of the message key formats
-	 * 	used in the properties file.
-	 * <p>
-	 * The value can be a relative path like <js>"nls/Messages"</js>, indicating to look for the
-	 * 	resource bundle <js>"com.ibm.sample.nls.Messages"</js> if the resource class
-	 * 	is in <js>"com.ibm.sample"</js>, or it can be an absolute path, like <js>"com.ibm.sample.nls.Messages"</js>
-	 */
-	String messages() default "";
-
-	/**
-	 * Class-level guards.
-	 * <p>
-	 * Associates one or more {@link RestGuard RestGuards} with all REST methods defined
-	 * 	in this class.
-	 * These guards get called immediately before execution of any REST method in this class.
-	 * <p>
-	 * Typically, guards will be used for permissions checking on the user making the request,
-	 * 	but it can also be used for other purposes like pre-call validation of a request.
-	 */
-	Class<? extends RestGuard>[] guards() default {};
-
-	/**
-	 * Class-level converters.
-	 * <p>
-	 * Associates one or more {@link RestConverter converters} with a resource class.
-	 * These converters get called immediately after execution of the REST method in the same
-	 * 	order specified in the annotation.
-	 * <p>
-	 * Can be used for performing post-processing on the response object before serialization.
-	 * <p>
-	 * Default converter implementations are provided in the {@link org.apache.juneau.server.converters} package.
-	 */
-	Class<? extends RestConverter>[] converters() default {};
-
-	/**
-	 * Class-level POJO filters.
-	 * <p>
-	 * Shortcut to add POJO filters to the bean contexts of the objects returned by the following methods:
-	 * <ul>
-	 * 	<li>{@link RestServlet#getBeanContext()}
-	 * 	<li>{@link RestServlet#getSerializers()}
-	 * 	<li>{@link RestServlet#getParsers()}
-	 * </ul>
-	 * <p>
-	 * If the specified class is an instance of {@link Transform}, then that filter is added.
-	 * Any other classes are wrapped in a {@link BeanTransform} to indicate that subclasses should
-	 * 	be treated as the specified class type.
-	 */
-	Class<?>[] transforms() default {};
-
-	/**
-	 * Class-level properties.
-	 * <p>
-	 * 	Shortcut for specifying class-level properties on this servlet to the objects returned by the following methods:
-	 * <ul>
-	 * 	<li>{@link RestServlet#getBeanContext()}
-	 * 	<li>{@link RestServlet#getSerializers()}
-	 * 	<li>{@link RestServlet#getParsers()}
-	 * </ul>
-	 * <p>
-	 * 	Any of the following property names can be specified:
-	 * <ul>
-	 * 	<li>{@link RestServletContext}
-	 * 	<li>{@link BeanContext}
-	 * 	<li>{@link SerializerContext}
-	 * 	<li>{@link ParserContext}
-	 * 	<li>{@link JsonSerializerContext}
-	 * 	<li>{@link RdfSerializerContext}
-	 * 	<li>{@link RdfParserContext}
-	 * 	<li>{@link RdfCommonContext}
-	 * 	<li>{@link XmlSerializerContext}
-	 * 	<li>{@link XmlParserContext}
-	 * </ul>
-	 * <p>
-	 * Property values will be converted to the appropriate type.
-	 * <p>
-	 * In some cases, properties can be overridden at runtime through the {@link RestResponse#setProperty(String, Object)} method
-	 * 	or through a {@link Properties @Properties} annotated method parameter.
-	 */
-	Property[] properties() default {};
-
-	/**
-	 * Specifies a list of {@link Serializer} classes to add to the list of serializers available for this servlet.
-	 * <p>
-	 * This annotation can only be used on {@link Serializer} classes that have no-arg constructors.
-	 */
-	Class<? extends Serializer>[] serializers() default {};
-
-	/**
-	 * Specifies a list of {@link Parser} classes to add to the list of parsers available for this servlet.
-	 * <p>
-	 * This annotation can only be used on {@link Parser} classes that have no-arg constructors.
-	 */
-	Class<? extends Parser>[] parsers() default {};
-
-	/**
-	 * Specifies a list of {@link ResponseHandler} classes that know how to convert POJOs returned
-	 * 	by REST methods or set via {@link RestResponse#setOutput(Object)} into appropriate
-	 * 	HTTP responses.
-	 * See {@link ResponseHandler} for details.
-	 */
-	Class<? extends ResponseHandler>[] responseHandlers() default {};
-
-	/**
-	 * Specifies a list of {@link Encoder} to associate with this servlet.
-	 * <p>
-	 * These can be used to enable various kinds of compression (e.g. <js>"gzip"</js>) on requests and responses.
-	 * <p>
-	 * This annotation can only be used on {@link Encoder} classes that have no-arg constructors.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jc>// Servlet with automated support for GZIP compression</jc>
-	 * 	<ja>@RestResource</ja>(encoders={GzipEncoder.<jk>class</jk>})
-	 * 	<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-	 * 		...
-	 * 	}
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	Class<? extends Encoder>[] encoders() default {};
-
-	/**
-	 * Specifies default values for request headers.
-	 * <p>
-	 * Strings are of the format <js>"Header-Name: header-value"</js>.
-	 * <p>
-	 * Affects values returned by {@link RestRequest#getHeader(String)} when the header is not present on the request.
-	 * <p>
-	 * The most useful reason for this annotation is to provide a default <code>Accept</code> header when one is not specified
-	 * 	so that a particular default {@link Serializer} is picked.
-	 * <p>
-	 * Only one header value can be specified per entry (i.e. it's not a delimited list of header entries).
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jc>// Assume "text/json" Accept value when Accept not specified</jc>
-	 * 	<ja>@RestResource</ja>(defaultRequestHeaders={<js>"Accept: text/json"</js>})
-	 * 	<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-	 * 		...
-	 * 	}
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String[] defaultRequestHeaders() default {};
-
-	/**
-	 * Specifies default values for response headers.
-	 * <p>
-	 * Strings are of the format <js>"Header-Name: header-value"</js>.
-	 * <p>
-	 * This is equivalent to calling {@link RestResponse#setHeader(String, String)} programmatically in each of the Java methods.
-	 * <p>
-	 * The header value will not be set if the header value has already been specified (hence the 'default' in the name).
-	 * <p>
-	 * Only one header value can be specified per entry (i.e. it's not a delimited list of header entries).
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jc>// Add a version header attribute to all responses</jc>
-	 * 	<ja>@RestResource</ja>(defaultResponseHeaders={<js>"X-Version: 1.0"</js>})
-	 * 	<jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
-	 * 		...
-	 * 	}
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String[] defaultResponseHeaders() default {};
-
-	/**
-	 * Defines children of this resource.
-	 * <p>
-	 * A REST child resource is simply another servlet that is initialized as part of the parent
-	 * 	resource and has a servlet path directly under the parent servlet path.
-	 * The main advantage to defining servlets as REST children is that you do not need
-	 * 	to define them in the <code>web.xml</code> file of the web application.
-	 * This can cut down on the number of entries that show up in the <code>web.xml</code> file
-	 * 	if you are defining large numbers of servlets.
-	 * <p>
-	 * Child resources must specify a value for {@link #path()} that identifies the subpath of the
-	 * 	child resource relative to the parent path.
-	 * <p>
-	 * It should be noted that servlets can be nested arbitrarily deep using this technique (i.e. children can also have children).
-	 *
-	 * <dl>
-	 * 	<dt>Servlet initialization:</dt>
-	 * 	<dd>
-	 * 		<p>
-	 * 			A child resource will be initialized immediately after the parent servlet is initialized.  The child resource
-	 * 			receives the same servlet config as the parent resource.  This allows configuration information such as
-	 * 			servlet initialization parameters to filter to child resources.
-	 * 		</p>
-	 * 	</dd>
-	 * 	<dt>Runtime behavior:</dt>
-	 * 	<dd>
-	 * 		<p>
-	 * 			As a rule, methods defined on the <code>HttpServletRequest</code> object will behave as if
-	 * 			the child servlet were deployed as a top-level resource under the child's servlet path.
-	 * 			For example, the <code>getServletPath()</code> and <code>getPathInfo()</code> methods on the
-	 * 			<code>HttpServletRequest</code> object will behave as if the child resource were deployed
-	 * 			using the child's servlet path.
-	 * 			Therefore, the runtime behavior should be equivalent to deploying the child servlet in
-	 * 			the <code>web.xml</code> file of the web application.
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	Class<?>[] children() default {};
-
-	/**
-	 * Identifies the URL subpath relative to the parent resource.
-	 * <p>
-	 * Typically, this annotation is only applicable to resources defined as children through the {@link #children()}
-	 * 	annotation.  However, it may be used in other ways (e.g. defining paths for top-level resources in microservices).
-	 * <p>
-	 * This annotation is ignored on top-level servlets (i.e. servlets defined in <code>web.xml</code> files).
-	 * Therefore, implementers can optionally specify a path value for documentation purposes.
-	 */
-	String path() default "";
-
-	/**
-	 * Optional servlet label.
-	 * <p>
-	 * 	The default value pulls the label from the <code>label</code> entry in the servlet resource bundle.
-	 * 	(e.g. <js>"label = foo"</js> or <js>"MyServlet.label = foo"</js>).
-	 * <p>
-	 * 	This field can contain variables (e.g. "$L{my.localized.variable}").
-	 */
-	String label() default "";
-
-	/**
-	 * Optional servlet description.
-	 * <p>
-	 * 	The default value pulls the description from the <code>description</code> entry in the servlet resource bundle.
-	 * 	(e.g. <js>"description = foo"</js> or <js>"MyServlet.description = foo"</js>).
-	 * <p>
-	 * 	This field can contain variables (e.g. "$L{my.localized.variable}").
-	 */
-	String description() default "";
-
-	/**
-	 * Optional location of configuration file for this servlet.
-	 * <p>
-	 * 	The configuration file .
-	 * <p>
-	 * 	This field can contain variables (e.g. "$L{my.localized.variable}").
-	 */
-	String config() default "";
-
-	/**
-	 * The stylesheet to use for HTML views.
-	 * <p>
-	 * 	The name is a path to a stylesheet located in either the classpath or working directory.
-	 * 	The resulting stylesheet becomes available through the servlet via the URL <js>"[servletpath]/style.css"</js>.
-	 * <p>
-	 * 	The default set of styles located in the <code>org.apache.juneau.server.styles</code> package are:
-	 * <ul class='spaced-list'>
-	 * 	<li><js>"styles/juneau.css"</js> - Theme based on Jazz look-and-feel.
-	 * 	<li><js>"styles/devops.css"</js> - Theme based on IBM DevOps look-and-feel.
-	 * </ul>
-	 * <p>
-	 * 	The classpath search starts with the child servlet class and proceeds up the class hierarchy
-	 * 	chain.  Since the {@link RestServlet} class is in the <code>org.apache.juneau.server</code> package
-	 * 	and the predefined styles are in the <code>org.apache.juneau.server.styles</code> package, the paths to
-	 * 	the predefined styles are prefixed with <js>"styles/"</js>.
-	 * <p>
-	 * 	If the stylesheet cannot be found on the classpath, an attempt to look in the working directory
-	 * 	for it will be made.  This allows for stylesheets to be placed on the file system in the working
-	 * 	directory.
-	 * <p>
-	 * 	If the file cannot be located, the request to <js>"[servletpath]/style.css"</js> will return {@link HttpServletResponse#SC_NOT_FOUND}.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jk>package</jk> com.ibm.mypackage;
-	 *
-	 * 	<ja>@RestResource</ja>(
-	 * 		stylesheet=<js>"mystyles/mycss.css"</js>
-	 * 	)
-	 * 	<jk>public class</jk> MyResource <jk>extends</jk> RestServletDefault {
-	 * 	}
-	 * 		</p>
-	 * 		<p>
-	 * 			In this example, the servlet will attempt to find the <code>mycss.css</code> file in the following ordered locations:
-	 * 		</p>
-	 * 		<ol>
-	 * 			<li><code>com.ibm.mypackage.mystyles</code> package.
-	 * 			<li><code>org.apache.juneau.server.mystyles</code> package (since <code>RestServletDefault</code> is in <code>org.apache.juneau.server</code>).
-	 * 			<li><code>[working-dir]/mystyles</code> directory.
-	 * 		</ol>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String stylesheet() default "";
-
-	/**
-	 * The favicon to use for HTML views.
-	 * <p>
-	 * 	The name is a path to an icon file located in either the classpath or working directory in a similar way
-	 * 	to how the {@link #stylesheet()} stylesheet is resolved.
-	 * 	The resulting favicon becomes available in the servlet via the URL <js>"[servletpath]/favicon.ico"</js>.
-	 * <p>
-	 * 	If the file cannot be located, the request to <js>"[servletpath]/favicon.ico"</js> will return {@link HttpServletResponse#SC_NOT_FOUND}.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jk>package</jk> com.ibm.mypackage;
-	 *
-	 * 	<ja>@RestResource</ja>(
-	 * 		favicon=<js>"mydocs/myicon.ico"</js>
-	 * 	)
-	 * 	<jk>public class</jk> MyResource <jk>extends</jk> RestServletDefault {
-	 * 	}
-	 * 		</p>
-	 * 		<p>
-	 * 			In this example, the servlet will attempt to find the <code>myicon.ico</code> file in the following ordered locations:
-	 * 		</p>
-	 * 		<ol>
-	 * 			<li><code>com.ibm.mypackage.mydocs</code> package.
-	 * 			<li><code>org.apache.juneau.server.mydocs</code> package (since <code>RestServletDefault</code> is in <code>org.apache.juneau.server</code>).
-	 * 			<li><code>[working-dir]/mydocs</code> directory.
-	 * 		</ol>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String favicon() default "";
-
-	/**
-	 * Defines paths and locations of statically served files.
-	 * <p>
-	 * 	This is a JSON map of paths to packages/directories located on either the classpath or working directory.
-	 * <p>
-	 * 	Mappings are cumulative from parent to child.  Child resources can override mappings made on parent resources.
-	 * <p>
-	 * 	If the file cannot be located, the request will return {@link HttpServletResponse#SC_NOT_FOUND}.
-	 * <p>
-	 * 	The media type on the response is determined by the {@link RestServlet#getMimetypesFileTypeMap()} method.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jk>package</jk> com.ibm.mypackage;
-	 *
-	 * 	<ja>@RestResource</ja>(
-	 * 		path=<js>"/myresource"</js>,
-	 * 		staticFiles=<js>"{htdocs:'docs'}"</js>
-	 * 	)
-	 * 	<jk>public class</jk> MyResource <jk>extends</jk> RestServletDefault {
-	 * 	}
-	 * 		</p>
-	 * 		<p>
-	 * 			In this example, given a GET request to <code>/myresource/htdocs/foobar.html</code>, the servlet will attempt to find the <code>foobar.html</code> file
-	 * 			in the following ordered locations:
-	 * 		</p>
-	 * 		<ol>
-	 * 			<li><code>com.ibm.mypackage.docs</code> package.
-	 * 			<li><code>org.apache.juneau.server.docs</code> package (since <code>RestServletDefault</code> is in <code>org.apache.juneau.server</code>).
-	 * 			<li><code>[working-dir]/docs</code> directory.
-	 * 		</ol>
-	 * 	</dd>
-	 * </dl>
-	 */
-	String staticFiles() default "";
-
-	/**
-	 * Specifies the HTTP header name used to identify the client version.
-	 * <p>
-	 * 	The client version is used to support backwards compatibility for breaking REST interface
-	 * 	changes.  Used in conjunction with {@link RestMethod#clientVersion()} annotation.
-	 * <p>
-	 * 	If not specified, uses <js>"X-Client-Version"</js>.
-	 */
-	String clientVersionHeader() default "";
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Var.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Var.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Var.java
deleted file mode 100755
index 16c0db5..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Var.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Annotation used in conjunction with {@link RestMethod#input()} and {@link Response#output()} to identify content and header descriptions
- * 	on specific method responses.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(
- * 		name=<js>"*"</js>,
- * 		requestVars={
- * 				<ja>@Var</ja>(category=<js>"header"</js>,name=<js>"Range"</js>,description=<js>"$L{ContentRange.description}"</js>)
- * 		}
- * 		responses={
- * 			<ja>@Response</ja>(code=200,description=<js>"Everything was great."</js>,
- * 				responseVars={
- * 					<ja>@Var</ja>(category=<js>"header"</js>,name=<js>"Content-Range"</js>,description=<js>"$L{ContentRange.description}"</js>)
- * 				})
- * 			<ja>@Response</ja>(code=404,description=<js>"File was not found."</js>)
- * 		}
- * 	)
- * 	<jk>public void</jk> doAnything(RestRequest req, RestResponse res, <ja>@Method</ja> String method) {
- * 		...
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Var {
-
-	/**
-	 * Variable category (e.g. <js>"header"</js>, <js>"content"</js>).
-	 * The {@link VarCategory} class contains predefined constants.
-	 */
-	String category();
-
-	/**
-	 * Variable name (e.g. <js>"Content-Range"</js>).
-	 */
-	String name() default "";
-
-	/**
-	 * Variable description (e.g. <js>"Indicates the range returned when Range header is present in the request"</js>).
-	 * <p>
-	 * 	The default value pulls the description from the <code>description</code> entry in the servlet resource bundle.
-	 * 	(e.g. <js>"myMethod.res.[code].[category].[name] = foo"</js> or <js>"MyServlet.myMethod.res.[code].[category].[name] = foo"</js>).
-	 */
-	String description() default "";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/VarCategory.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/VarCategory.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/VarCategory.java
deleted file mode 100755
index 3d80d01..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/VarCategory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-/**
- * Predefined string constants for the {@link Var#category()} annotation.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class VarCategory {
-
-	/** Constant: 'attr'*/
-	public static final String ATTR = "attr";
-
-	/** Constant: 'param'*/
-	public static final String PARAM = "param";
-
-	/** Constant: 'content'*/
-	public static final String CONTENT = "content";
-
-	/** Constant: 'header'*/
-	public static final String HEADER = "header";
-
-	/** Constant: 'other'*/
-	public static final String OTHER = "other";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/package.html
deleted file mode 100755
index c0c0d41..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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 servlet annotations</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Introspectable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Introspectable.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Introspectable.java
deleted file mode 100755
index f55fe22..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Introspectable.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.converters;
-
-import static javax.servlet.http.HttpServletResponse.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Converter for enablement of {@link PojoIntrospector} support on response objects returned by a <code>@RestMethod</code> method.
- * <p>
- * 	When enabled, public methods can be called on objects returned through the {@link RestResponse#setOutput(Object)} method.
- * <p>
- * 	Note that opening up public methods for calling through a REST interface can be dangerous, and should
- * 	be done with caution.
- * <p>
- * 	Java methods are invoked by passing in the following URL parameters:
- * <ul class='spaced-list'>
- * 	<li><code>&amp;invokeMethod</code> - The Java method name, optionally with arguments if necessary to differentiate between methods.
- * 	<li><code>&amp;invokeArgs</code> - The arguments as a JSON array.
- * </ul>
- * <p>
- * 	See {@link PojoIntrospector} for additional information on introspecting POJO methods.
- */
-public final class Introspectable implements RestConverter {
-
-	@Override /* RestConverter */
-	@SuppressWarnings({"unchecked", "rawtypes"})
-	public Object convert(RestRequest req, Object o, ClassMeta cm) throws RestException {
-		String method = req.getParameter("invokeMethod");
-		String args = req.getParameter("invokeArgs");
-		if (method == null)
-			return o;
-		try {
-			if (cm.getPojoTransform() != null)
-				o = cm.getPojoTransform().transform(o);
-			return new PojoIntrospector(o, JsonParser.DEFAULT).invokeMethod(method, args);
-		} catch (Exception e) {
-			e.printStackTrace();
-			return new RestException(SC_INTERNAL_SERVER_ERROR,
-				"Error occurred trying to invoke method: {0}",
-				e.getLocalizedMessage()
-			).initCause(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Queryable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Queryable.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Queryable.java
deleted file mode 100755
index 088aa97..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Queryable.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.converters;
-
-import static javax.servlet.http.HttpServletResponse.*;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Converter for enablement of {@link PojoQuery} support on response objects returned by a <code>@RestMethod</code> method.
- * <p>
- * 	When enabled, objects in a POJO tree can be filtered using the functionality described in the {@link PojoQuery}
- * 	class.
- * <p>
- * 	The following HTTP request parameters are available for tabular data (e.g. {@code Collections} of {@code Maps}, arrays of beans, etc...):
- * <ul class='spaced-list'>
- * 	<li><b>&amp;q=<i>JSON-object</i></b> - Query parameter.  Only return rows that match the specified search string. <br>
- * 			The JSON object keys are column names, and the values are search parameter strings.<br>
- * 			Example:  <code>&amp;s=(name=Bill*,birthDate=&gt;2000)</code>
- * 	<li><b>&amp;v=<i>JSON-array or comma-delimited list</i></b> - View parameter.  Only return the specified columns.<br>
- * 			Example:  <code>&amp;v=(name,birthDate)</code>
- * 	<li><b>&amp;s=<i>JSON-object</i></b> - Sort parameter.  Sort the results by the specified columns.<br>
- * 			The JSON object keys are the column names, and the values are either {@code 'A'} for ascending or {@code 'D'} for descending.
- * 			Example:  <code>&amp;s=(name=A,birthDate=D)</code>
- * 	<li><b>&amp;i=<i>true/false</i></b> - Case-insensitive parameter.  Specify <jk>true</jk> for case-insensitive matching on the {@code &amp;q} parameter.
- * 	<li><b>&amp;p=<i>number</i></b> - Position parameter.  Only return rows starting at the specified index position (zero-indexed).  Default is {@code 0}.
- * 	<li><b>&amp;q=<i>number</i></b> - Limit parameter.  Only return the specified number of rows. Default is {@code 0} (meaning return all rows).
- * </ul>
- *
- * <p>
- * 	The <b>&amp;v</b> parameter can also be used on {@code Maps} and beans.
- *
- * <p>
- * 	See {@link PojoQuery} for additional information on filtering POJO models.
- */
-public final class Queryable implements RestConverter {
-
-	@Override /* RestConverter */
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	public Object convert(RestRequest req, Object o, ClassMeta cm) {
-		if (o == null)
-			return null;
-
-		try {
-
-			// If no actual filtering parameters have been passed in, and there is no map augmenter specified,
-			// then just pass the original object back.
-			if (req.hasAnyQueryParameters("q","v","s","g","i","p","l")) {
-				BeanContext bc = req.getBeanContext();
-
-				if (cm.getPojoTransform() != null)
-					o = cm.getPojoTransform().transform(o);
-
-				PojoQuery f = new PojoQuery(o, bc);
-
-				if (o instanceof Collection || o.getClass().isArray()) {
-					ObjectMap query = req.getQueryParameter("q", ObjectMap.class);
-					ClassMeta<List<String>> cm1 = bc.getCollectionClassMeta(List.class, String.class);
-					List<String> view = req.getQueryParameter("v", cm1);
-					ClassMeta<List<Object>> cm2 = bc.getCollectionClassMeta(List.class, String.class);
-					List sort = req.getQueryParameter("s", cm2);
-					boolean ignoreCase = req.getQueryParameter("i", Boolean.class, false);
-					int pos = req.getQueryParameter("p", Integer.class, 0);
-					int limit = req.getQueryParameter("l", Integer.class, 0);
-					o = f.filterCollection(query, view, sort, pos, limit, ignoreCase);
-
-				} else {
-					ClassMeta<List<String>> cm2 = bc.getCollectionClassMeta(List.class, String.class);
-					List<String> view = req.getQueryParameter("v", cm2);
-					o = f.filterMap(view);
-				}
-			}
-			return o;
-		} catch (SerializeException e) {
-			throw new RestException(SC_BAD_REQUEST, e);
-		} catch (ParseException e) {
-			throw new RestException(SC_BAD_REQUEST, e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Traversable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Traversable.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Traversable.java
deleted file mode 100755
index ebcdbe9..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/Traversable.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.converters;
-
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Converter for enablement of {@link PojoRest} support on response objects returned by a <code>@RestMethod</code> method.
- * <p>
- * 	When enabled, objects in a POJO tree returned by the REST method can be addressed through additional URL path information.
- *
- * <p class='bcode'>
- * 	<jc>// Resource method on resource "http://localhost:8080/sample/addressBook"</jc>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, converters=Traversable.<jk>class</jk>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res) {
- * 		<jk>return new</jk> AddressBook();
- * 	}
- *
- * 	<jc>// Sample usage</jc>
- * 	<jk>public static void</jk> main(String[] args) {
- * 		<jc>// Get the zip code of the 2nd address of the first person in the address book.</jc>
- * 		RestCall r = <jk>new</jk> RestClient().doGet(<js>"http://localhost:8080/sample/addressBook/0/addresses/1/zip"</js>);
- * 		<jk>int</jk> zip = r.getResponse(Integer.<jk>class</jk>);
- * 	}
- * </p>
- * <p>
- * 	See {@link PojoRest} for additional information on addressing elements in a POJO tree using URL notation.
- */
-public final class Traversable implements RestConverter {
-
-	@Override /* RestConverter */
-	@SuppressWarnings({"rawtypes", "unchecked"})
-	public Object convert(RestRequest req, Object o, ClassMeta cm) throws RestException {
-		if (o == null)
-			return null;
-
-		if (req.getPathRemainder() != null) {
-			try {
-				if (cm.getPojoTransform() != null)
-					o = cm.getPojoTransform().transform(o);
-				PojoRest p = new PojoRest(o, req.getReaderParser());
-				o = p.get(req.getPathRemainder());
-			} catch (SerializeException e) {
-				throw new RestException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e);
-			} catch (PojoRestException e) {
-				throw new RestException(e.getStatus(), e);
-			}
-		}
-
-		return o;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/package.html
deleted file mode 100755
index 2599329..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/converters/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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>Predefined REST response converters</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBook.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBook.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBook.png
deleted file mode 100755
index 96426b7..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBook.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBookJson.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBookJson.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBookJson.png
deleted file mode 100755
index 68c0ec8..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBookJson.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBookOptions.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBookOptions.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBookOptions.png
deleted file mode 100755
index 36c3e42..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBookOptions.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBook_juneaustyle.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBook_juneaustyle.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBook_juneaustyle.png
deleted file mode 100755
index 94327eb..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/AddressBook_juneaustyle.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource1.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource1.png
deleted file mode 100755
index 3b54341..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource2.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource2.png
deleted file mode 100755
index 7a4c816..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource3.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource3.png
deleted file mode 100755
index dd088bd..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource4.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource4.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource4.png
deleted file mode 100755
index 17bdbf6..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResource4.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResourceOptions.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResourceOptions.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResourceOptions.png
deleted file mode 100755
index 237dc2b..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResourceOptions.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResourceOptionsJson.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResourceOptionsJson.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResourceOptionsJson.png
deleted file mode 100755
index c528651..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/HelloWorldResourceOptionsJson.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/Options2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/Options2.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/Options2.png
deleted file mode 100755
index 52b9ad1..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/Options2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/OptionsPage.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/OptionsPage.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/OptionsPage.png
deleted file mode 100755
index c524ede..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/OptionsPage.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/Samples_RootResources.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/Samples_RootResources.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/Samples_RootResources.png
deleted file mode 100755
index 62408e2..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/Samples_RootResources.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/UrlEncodedForm.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/UrlEncodedForm.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/UrlEncodedForm.png
deleted file mode 100755
index 2cd173f..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/doc-files/UrlEncodedForm.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/htdocs/MethodExampleResource1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/htdocs/MethodExampleResource1.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/htdocs/MethodExampleResource1.png
deleted file mode 100755
index 1ca74fe..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/htdocs/MethodExampleResource1.png and /dev/null differ


[37/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/SamplesRestClient.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/SamplesRestClient.java b/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/SamplesRestClient.java
deleted file mode 100755
index ec52519..0000000
--- a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/SamplesRestClient.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import java.security.*;
-
-import javax.net.ssl.*;
-
-import org.apache.http.conn.ssl.*;
-import org.apache.http.impl.client.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-
-/**
- * REST client with lenient SSL support and lax redirection strategy.
- */
-public class SamplesRestClient extends RestClient {
-
-	public SamplesRestClient(Class<? extends Serializer> s, Class<? extends Parser> p) throws InstantiationException {
-		super(s,p);
-		setRootUrl(Constants.getSampleUrl());
-	}
-
-	public SamplesRestClient(Serializer s, Parser p) {
-		super(s,p);
-		setRootUrl(Constants.getSampleUrl());
-	}
-
-	public SamplesRestClient() {
-		setRootUrl(Constants.getSampleUrl());
-	}
-
-	public SamplesRestClient(CloseableHttpClient c) {
-		super(c);
-		setRootUrl(Constants.getSampleUrl());
-	}
-
-	public static SSLConnectionSocketFactory getSSLSocketFactory() throws Exception {
-		SSLContext sslContext = SSLContext.getInstance("SSL");
-		TrustManager tm = new SimpleX509TrustManager(true);
-		sslContext.init(null, new TrustManager[]{tm}, new SecureRandom());
-		return new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier());
-	}
-
-	@Override /* RestClient */
-	protected CloseableHttpClient createHttpClient() throws Exception {
-		try {
-			return HttpClients.custom().setSSLSocketFactory(getSSLSocketFactory()).setRedirectStrategy(new LaxRedirectStrategy()).build();
-		} catch (KeyStoreException e) {
-			throw new RuntimeException(e);
-		} catch (NoSuchAlgorithmException e) {
-			throw new RuntimeException(e);
-		} catch (Throwable e) {
-			e.printStackTrace();
-			return null;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java b/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java
deleted file mode 100755
index 8393bcb..0000000
--- a/com.ibm.team.juno.samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.samples;
-
-import static org.apache.juneau.BeanContext.*;
-import static org.apache.juneau.serializer.SerializerContext.*;
-import static org.apache.juneau.xml.XmlSerializerContext.*;
-import static org.junit.Assert.*;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-import java.util.regex.*;
-
-import javax.xml.*;
-import javax.xml.parsers.*;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.*;
-import javax.xml.transform.stream.*;
-import javax.xml.validation.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.xml.*;
-import org.junit.*;
-import org.w3c.dom.*;
-import org.w3c.dom.bootstrap.*;
-import org.w3c.dom.ls.*;
-import org.xml.sax.*;
-
-public class TestUtils {
-
-	private static JsonSerializer js = new JsonSerializer.Simple()
-		.setProperty(SERIALIZER_trimNullProperties, false);
-
-	private static JsonSerializer jsSorted = new JsonSerializer.Simple()
-		.setProperty(SERIALIZER_sortCollections, true)
-		.setProperty(SERIALIZER_sortMaps, true)
-		.setProperty(SERIALIZER_trimNullProperties, false);
-
-
-	private static JsonSerializer js2 = new JsonSerializer.Simple()
-		.addTransforms(IteratorTransform.class, EnumerationTransform.class);
-
-	private static JsonSerializer js3 = new JsonSerializer.Simple()
-		.addTransforms(IteratorTransform.class, EnumerationTransform.class)
-		.setProperty(BEAN_sortProperties, true);
-
-	/**
-	 * Verifies that two objects are equivalent.
-	 * Does this by doing a string comparison after converting both to JSON.
-	 */
-	public static void assertEqualObjects(Object o1, Object o2) throws SerializeException {
-		assertEqualObjects(o1, o2, false);
-	}
-
-	/**
-	 * Verifies that two objects are equivalent.
-	 * Does this by doing a string comparison after converting both to JSON.
-	 * @param sort If <jk>true</jk> sort maps and collections before comparison.
-	 */
-	public static void assertEqualObjects(Object o1, Object o2, boolean sort) throws SerializeException {
-		JsonSerializer s = (sort ? jsSorted : js);
-		String s1 = s.serialize(o1);
-		String s2 = s.serialize(o2);
-		if (s1.equals(s2))
-			return;
-		throw new ComparisonFailure(null, s1, s2);
-	}
-
-	/**
-	 * Validates that the whitespace is correct in the specified XML.
-	 */
-	public static void checkXmlWhitespace(String out) throws SerializeException {
-		if (out.indexOf('\u0000') != -1) {
-			for (String s : out.split("\u0000"))
-				checkXmlWhitespace(s);
-			return;
-		}
-
-		int indent = -1;
-		Pattern startTag = Pattern.compile("^(\\s*)<[^/>]+(\\s+\\S+=['\"]\\S*['\"])*\\s*>$");
-		Pattern endTag = Pattern.compile("^(\\s*)</[^>]+>$");
-		Pattern combinedTag = Pattern.compile("^(\\s*)<[^>/]+(\\s+\\S+=['\"]\\S*['\"])*\\s*/>$");
-		Pattern contentOnly = Pattern.compile("^(\\s*)[^\\s\\<]+$");
-		Pattern tagWithContent = Pattern.compile("^(\\s*)<[^>]+>.*</[^>]+>$");
-		String[] lines = out.split("\n");
-		try {
-			for (int i = 0; i < lines.length; i++) {
-				String line = lines[i];
-				Matcher m = startTag.matcher(line);
-				if (m.matches()) {
-					indent++;
-					if (m.group(1).length() != indent)
-						throw new SerializeException("Wrong indentation detected on start tag line ''{0}''", i+1);
-					continue;
-				}
-				m = endTag.matcher(line);
-				if (m.matches()) {
-					if (m.group(1).length() != indent)
-						throw new SerializeException("Wrong indentation detected on end tag line ''{0}''", i+1);
-					indent--;
-					continue;
-				}
-				m = combinedTag.matcher(line);
-				if (m.matches()) {
-					indent++;
-					if (m.group(1).length() != indent)
-						throw new SerializeException("Wrong indentation detected on combined tag line ''{0}''", i+1);
-					indent--;
-					continue;
-				}
-				m = contentOnly.matcher(line);
-				if (m.matches()) {
-					indent++;
-					if (m.group(1).length() != indent)
-						throw new SerializeException("Wrong indentation detected on content-only line ''{0}''", i+1);
-					indent--;
-					continue;
-				}
-				m = tagWithContent.matcher(line);
-				if (m.matches()) {
-					indent++;
-					if (m.group(1).length() != indent)
-						throw new SerializeException("Wrong indentation detected on tag-with-content line ''{0}''", i+1);
-					indent--;
-					continue;
-				}
-				throw new SerializeException("Unmatched whitespace line at line number ''{0}''", i+1);
-			}
-			if (indent != -1)
-				throw new SerializeException("Possible unmatched tag.  indent=''{0}''", indent);
-		} catch (SerializeException e) {
-			printLines(lines);
-			throw e;
-		}
-	}
-
-	private static void printLines(String[] lines) {
-		for (int i = 0; i < lines.length; i++)
-			System.err.println(String.format("%4s:" + lines[i], i+1));
-	}
-
-	/**
-	 * Validates that the specified XML conforms to the specified schema.
-	 */
-	private static void validateXml(String xml, String xmlSchema) throws Exception {
-		// parse an XML document into a DOM tree
-		DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
-		f.setNamespaceAware(true);
-		DocumentBuilder documentBuilder = f.newDocumentBuilder();
-		Document document = documentBuilder.parse(new InputSource(new StringReader(xml)));
-
-		// create a SchemaFactory capable of understanding WXS schemas
-		SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-
-		if (xmlSchema.indexOf('\u0000') != -1) {
-
-			// Break it up into a map of namespaceURI->schema document
-			final Map<String,String> schemas = new HashMap<String,String>();
-			String[] ss = xmlSchema.split("\u0000");
-			xmlSchema = ss[0];
-			for (String s : ss) {
-				Matcher m = pTargetNs.matcher(s);
-				if (m.find())
-					schemas.put(m.group(1), s);
-			}
-
-			// Create a custom resolver
-			factory.setResourceResolver(
-				new LSResourceResolver() {
-
-					@Override /* LSResourceResolver */
-					public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
-
-						String schema = schemas.get(namespaceURI);
-						if (schema == null)
-							throw new RuntimeException(MessageFormat.format("No schema found for namespaceURI ''{0}''", namespaceURI));
-
-						try {
-							DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
-							DOMImplementationLS domImplementationLS = (DOMImplementationLS)registry.getDOMImplementation("LS 3.0");
-							LSInput in = domImplementationLS.createLSInput();
-							in.setCharacterStream(new StringReader(schema));
-							in.setSystemId(systemId);
-							return in;
-
-						} catch (Exception e) {
-							throw new RuntimeException(e);
-						}
-					}
-				}
-			);
-		}
-
-		Schema schema = factory.newSchema(new StreamSource(new StringReader(xmlSchema)));
-
-		// create a Validator instance, which can be used to validate an instance document
-		Validator validator = schema.newValidator();
-
-		// validate the DOM tree
-		validator.validate(new DOMSource(document));
-	}
-
-	private static Pattern pTargetNs = Pattern.compile("targetNamespace=['\"]([^'\"]+)['\"]");
-
-	public static void validateXml(Object o) throws Exception {
-		validateXml(o, XmlSerializer.DEFAULT_SQ);
-	}
-
-	/**
-	 * Test whitespace and generated schema.
-	 */
-	public static void validateXml(Object o, XmlSerializer s) throws Exception {
-		s = s.clone().setProperty(SERIALIZER_useIndentation, true).setProperty(XML_enableNamespaces, true).setProperty(XML_addNamespaceUrisToRoot, true);
-		String xml = s.serialize(o);
-
-		String xmlSchema = null;
-		try {
-			xmlSchema = s.getSchemaSerializer().serialize(o);
-			TestUtils.checkXmlWhitespace(xml);
-			TestUtils.checkXmlWhitespace(xmlSchema);
-			TestUtils.validateXml(xml, xmlSchema);
-		} catch (Exception e) {
-			System.err.println("---XML---");
-			System.err.println(xml);
-			System.err.println("---XMLSchema---");
-			System.err.println(xmlSchema);
-			throw e;
-		}
-	}
-
-	public static String readFile(String p) throws Exception {
-		InputStream is = TestUtils.class.getResourceAsStream(p);
-		if (is == null) {
-			is = new FileInputStream(p);
-		}
-		String e = IOUtils.read(is);
-		e = e.replaceAll("\r", "");
-		return e;
-	}
-
-	final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
-	public static String toHex(byte b) {
-	    char[] c = new char[2];
-	    int v = b & 0xFF;
-	    c[0] = hexArray[v >>> 4];
-	    c[1] = hexArray[v & 0x0F];
-	    return new String(c);
-	}
-
-	public static void debugOut(Object o) {
-		try {
-			System.err.println(StringUtils.decodeHex(JsonSerializer.DEFAULT_LAX.serialize(o)));
-		} catch (SerializeException e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * Sort an XML document by element and attribute names.
-	 * This method is primarily meant for debugging purposes.
-	 */
-	private static final String sortXml(String xml) throws Exception {
-
-		xml = xml.replaceAll("\\w+\\:", "");  // Strip out all namespaces.
-
-		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-		dbf.setIgnoringElementContentWhitespace(true);
-		dbf.setNamespaceAware(false);
-		DocumentBuilder db = dbf.newDocumentBuilder();
-		Document doc = db.parse(new InputSource(new StringReader(xml)));
-
-		DOMSource s = new DOMSource(doc);
-
-		StringWriter sw = new StringWriter();
-		StreamResult sr = new StreamResult(sw);
-		XML_SORT_TRANSFORMER.transform(s, sr);
-		return sw.toString().replace('"', '\'').replace("\r", "");
-	}
-
-	/**
-	 * Compares two XML documents for equality.
-	 * Namespaces are stripped from each and elements/attributes are ordered in alphabetical order,
-	 * 	then a simple string comparison is performed.
-	 */
-	public static final void assertXmlEquals(String expected, String actual) throws Exception {
-		assertEquals(sortXml(expected), sortXml(actual));
-	}
-
-	private static Transformer XML_SORT_TRANSFORMER;
-	static {
-		try {
-			String xsl = ""
-				+ "	<xsl:stylesheet version='1.0'"
-				+ "	 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>"
-				+ "	 <xsl:output omit-xml-declaration='yes' indent='yes'/>"
-				+ "	 <xsl:strip-space elements='*'/>"
-				+ "	 <xsl:template match='node()|@*'>"
-				+ "	  <xsl:copy>"
-				+ "	   <xsl:apply-templates select='@*'>"
-				+ "	    <xsl:sort select='name()'/>"
-				+ "	   </xsl:apply-templates>"
-				+ "	   <xsl:apply-templates select='node()'>"
-				+ "	    <xsl:sort select='name()'/>"
-				+ "	    <xsl:sort select='text()'/>"
-				+ "	   </xsl:apply-templates>"
-				+ "	  </xsl:copy>"
-				+ "	 </xsl:template>"
-				+ "	</xsl:stylesheet>";
-			TransformerFactory tf = TransformerFactory.newInstance();
-			StreamSource ss = new StreamSource(new StringReader(xsl));
-			XML_SORT_TRANSFORMER = tf.newTransformer(ss);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * Assert that the object equals the specified string after running it through JsonSerializer.DEFAULT_LAX.toString().
-	 */
-	public static void assertObjectEquals(String s, Object o) {
-		assertObjectEquals(s, o, js2);
-	}
-
-	/**
-	 * Assert that the object equals the specified string after running it through JsonSerializer.DEFAULT_LAX.toString()
-	 * with BEAN_sortProperties set to true.
-	 */
-	public static void assertSortedObjectEquals(String s, Object o) {
-		assertObjectEquals(s, o, js3);
-	}
-
-	/**
-	 * Assert that the object equals the specified string after running it through ws.toString().
-	 */
-	public static void assertObjectEquals(String s, Object o, WriterSerializer ws) {
-		Assert.assertEquals(s, ws.toString(o));
-	}
-
-	/**
-	 * Replaces all newlines with pipes, then compares the strings.
-	 */
-	public static void assertTextEquals(String s, Object o) {
-		String s2 = o.toString().replaceAll("\\r?\\n", "|");
-		Assert.assertEquals(s, s2);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.samples/war/web.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.samples/war/web.xml b/com.ibm.team.juno.samples/war/web.xml
deleted file mode 100755
index 8aeea03..0000000
--- a/com.ibm.team.juno.samples/war/web.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ***************************************************************************************************************************
- * 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.                                              *
- *                                                                                                                         *
- ***************************************************************************************************************************
--->
-<web-app 
-	version="2.4" 
-	xmlns="http://java.sun.com/xml/ns/j2ee" 
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
-		 
-	<servlet>
-		<servlet-name>sample</servlet-name>
-		<servlet-class>org.apache.juneau.server.samples.RootResources</servlet-class>
-	</servlet>
-	<servlet>
-		<servlet-name>test</servlet-name>
-		<servlet-class>org.apache.juneau.server.samples.test.Root</servlet-class>
-	</servlet>
-	<servlet>
-		<servlet-name>testuris</servlet-name>
-		<servlet-class>org.apache.juneau.server.samples.test.TestUris</servlet-class>
-	</servlet>
-	
-	<servlet-mapping>
-		<servlet-name>sample</servlet-name>
-		<url-pattern>/*</url-pattern>
-	</servlet-mapping>
-	<servlet-mapping>
-		<servlet-name>test</servlet-name>
-		<url-pattern>/test/*</url-pattern>
-	</servlet-mapping>
-	<servlet-mapping>
-		<servlet-name>testuris</servlet-name>
-		<url-pattern>/testuris/*</url-pattern>
-	</servlet-mapping>
-</web-app>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.DS_Store b/com.ibm.team.juno.server.test/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/com.ibm.team.juno.server.test/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.classpath b/com.ibm.team.juno.server.test/.classpath
deleted file mode 100755
index 538e633..0000000
--- a/com.ibm.team.juno.server.test/.classpath
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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 including="**/*.java" 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 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.microservice"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/org.apache.juneau.samples"/>
-	<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/2c3a7cb5/com.ibm.team.juno.server.test/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.gitignore b/com.ibm.team.juno.server.test/.gitignore
deleted file mode 100644
index c1d3d3c..0000000
--- a/com.ibm.team.juno.server.test/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin/
-/logs/
-/target/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.jazzignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.jazzignore b/com.ibm.team.juno.server.test/.jazzignore
deleted file mode 100755
index 73bebc2..0000000
--- a/com.ibm.team.juno.server.test/.jazzignore
+++ /dev/null
@@ -1,32 +0,0 @@
-### Jazz Ignore 0
-# Ignored files and folders will not be committed, but may be modified during 
-# accept or update.  
-# - Ignore properties should contain a space separated list of filename patterns.  
-# - Each pattern is case sensitive and surrounded by braces ('{' and '}').  
-# - "*" matches zero or more characters.  
-# - "?" matches a single character.  
-# - The pattern list may be split across lines by ending the line with a 
-#     backslash and starting the next line with a tab.  
-# - Patterns in core.ignore prevent matching resources in the same 
-#     directory from being committed.  
-# - Patterns in core.ignore.recursive matching resources in the current 
-#     directory and all subdirectories from being committed.  
-# - The default value of core.ignore.recursive is *.class 
-# - The default value for core.ignore is bin 
-# 
-# To ignore shell scripts and hidden files in this subtree: 
-#     e.g: core.ignore.recursive = {*.sh} {\.*} 
-# 
-# To ignore resources named 'bin' in the current directory (but allow 
-#  them in any sub directorybelow): 
-#     e.g: core.ignore = {bin} 
-# 
-# NOTE: modifying ignore files will not change the ignore status of 
-#     Eclipse derived resources.
-
-core.ignore.recursive= \
-	{*.class} 
-
-core.ignore= \
-	{bin} \
-	{logs} 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.project b/com.ibm.team.juno.server.test/.project
deleted file mode 100755
index 87dae5d..0000000
--- a/com.ibm.team.juno.server.test/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau.server.test</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.apt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.apt.core.prefs b/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.apt.core.prefs
deleted file mode 100755
index ec0c557..0000000
--- a/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.apt.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.apt.aptEnabled=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.core.prefs b/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index d10cfc0..0000000
--- a/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,393 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-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.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.processAnnotations=disabled
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.ui.prefs b/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100755
index a0ab617..0000000
--- a/com.ibm.team.juno.server.test/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,120 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=false
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=true
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-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=_Juneau
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Juneau
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-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.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\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" dele
 ted\="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 * Description.\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\="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\="true" 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 * ${ta
 gs}\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\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\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 bodie
 s" 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" nam
 e\="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" des
 cription\="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
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.update_ibm_copyright_to_current_year=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.settings/org.eclipse.ltk.core.refactoring.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/com.ibm.team.juno.server.test/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100755
index 4823f83..0000000
--- a/com.ibm.team.juno.server.test/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Feb 03 13:34:43 EST 2009
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.settings/org.eclipse.m2e.core.prefs b/com.ibm.team.juno.server.test/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/com.ibm.team.juno.server.test/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.settings/org.eclipse.pde.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.settings/org.eclipse.pde.core.prefs b/com.ibm.team.juno.server.test/.settings/org.eclipse.pde.core.prefs
deleted file mode 100755
index ecf8088..0000000
--- a/com.ibm.team.juno.server.test/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 05 14:46:11 EST 2009
-eclipse.preferences.version=1
-resolve.requirebundle=false

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/.settings/org.eclipse.pde.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/.settings/org.eclipse.pde.prefs b/com.ibm.team.juno.server.test/.settings/org.eclipse.pde.prefs
deleted file mode 100755
index a9e32da..0000000
--- a/com.ibm.team.juno.server.test/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Thu Feb 05 14:13:09 EST 2009
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/META-INF/MANIFEST.MF b/com.ibm.team.juno.server.test/META-INF/MANIFEST.MF
deleted file mode 100755
index fc039da..0000000
--- a/com.ibm.team.juno.server.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Juneau Cloud Tools - Server Test
-Bundle-SymbolicName: org.apache.juneau.server
-Bundle-Version: 5.1.1000.qualifier
-Bundle-Vendor: IBM
-Main-Class: org.apache.juneau.microservice.RestMicroservice
-Rest-Resources: org.apache.juneau.server.Root
-Main-ConfigFile: juneau-server-test.cfg
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/OSGI-INF/l10n/plugin.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/OSGI-INF/l10n/plugin.properties b/com.ibm.team.juno.server.test/OSGI-INF/l10n/plugin.properties
deleted file mode 100755
index 73a94bb..0000000
--- a/com.ibm.team.juno.server.test/OSGI-INF/l10n/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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 = Juneau Cloud Tools - REST server test component
-bundle.vendor = IBM

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/build.properties
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/build.properties b/com.ibm.team.juno.server.test/build.properties
deleted file mode 100755
index 01ef7a9..0000000
--- a/com.ibm.team.juno.server.test/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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,\
-           src/test/java
-output.. = target/classes
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/juneau-server-test.cfg
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/juneau-server-test.cfg b/com.ibm.team.juno.server.test/juneau-server-test.cfg
deleted file mode 100755
index 95d0601..0000000
--- a/com.ibm.team.juno.server.test/juneau-server-test.cfg
+++ /dev/null
@@ -1,97 +0,0 @@
-#================================================================================
-# Basic configuration file for SaaS microservices
-# Subprojects can use this as a starting point.
-#================================================================================
-
-#================================================================================
-# REST settings
-#================================================================================
-[REST]
-
-port = 10001
-
-# Authentication:  NONE, BASIC.
-authType = NONE
-
-# 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'.
-saveConfigAction = RESTART_SERVER
-
-useSsl = false
-
-#================================================================================
-# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
-#--------------------------------------------------------------------------------
-# Specify any of the following fields:
-# 	allowRenegotiate (boolean)
-# 	certAlias (String)
-# 	crlPath (String)
-# 	enableCRLDP (boolean)
-# 	enableOCSP (boolean)
-# 	excludeCipherSuites (String[]) 
-# 	excludeProtocols (String[])
-# 	includeCipherSuites (String[])
-# 	includeProtocols (String...)
-# 	keyManagerPassword (String)
-# 	keyStore (String)
-# 	keyStorePassword (String)
-# 	keyStorePath (String)
-# 	keyStoreProvider (String)
-# 	keyStoreType (String)
-# 	maxCertPathLength (int)
-# 	needClientAuth (boolean)
-# 	ocspResponderURL (String)
-# 	protocol (String)
-# 	provider (String)
-# 	secureRandomAlgorithm (String)
-# 	sessionCachingEnabled (boolean) 
-# 	sslKeyManagerFactoryAlgorithm (String)
-# 	sslSessionCacheSize (int)
-# 	sslSessionTimeout (int)
-# 	trustAll (boolean)
-# 	trustManagerFactoryAlgorithm (String)
-# 	trustStore (String)
-# 	trustStorePassword (String)
-# 	trustStoreProvider (String)
-# 	trustStoreType (String)
-# 	validateCerts (boolean)
-# 	validatePeerCerts (boolean)
-# 	wantClientAuth (boolean)			
-#================================================================================
-[REST-SslContextFactory]
-keyStorePath = client_keystore.jks
-keyStorePassword* = {HRAaRQoT}
-excludeCipherSuites = TLS_DHE.*, TLS_EDH.*
-excludeProtocols = SSLv3
-allowRenegotiate = false
-
-#================================================================================
-# Logger settings
-# See FileHandler Java class for details.
-#================================================================================
-[Logging]
-logDir = logs
-logFile = test.%g.log
-dateFormat = yyyy.MM.dd hh:mm:ss
-format = [{date} {level}] {msg}%n
-append = false
-limit = 10M
-count = 5
-levels = { com.ibm.team:'INFO' }
-useStackTraceHashes = true
-consoleLevel = WARNING
-
-[Test]
-int1 = 1
-int2 = 1,2,3
-int3 = $C{Test/int1, -1}
-int4 = $C{Test/int3, -1}
-int5 = $C{XXX, -1}
-boolean1 = true
-boolean2 = true,true
-path = $E{PATH}
-mainClass = $MF{Main-Class}
-importPackage = $MF{Import-Package}


[23/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/htdocs/javadoc.css
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/htdocs/javadoc.css b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/htdocs/javadoc.css
deleted file mode 100755
index 7498d63..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/htdocs/javadoc.css
+++ /dev/null
@@ -1,782 +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;
-}
-pre {
-    font-size:1.3em;
-}
-h1 {
-    font-size:1.8em;
-}
-h2 {
-    font-size:1.5em;
-}
-h3 {
-    font-size:1.4em;
-}
-h4 {
-    font-size:1.3em;
-}
-h5 {
-    font-size:1.2em;
-}
-h6 {
-    font-size:1.1em;
-}
-ul {
-    list-style-type:disc;
-}
-code, tt {
-    font-size:9pt;
-}
-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:3px 0 0 0;
-}
-.strong {
-    font-weight:bold;
-}
-
-/*--- Juneau-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:rgb(248,248,248);
-    border-color:rgb(204,204,204);
-    -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:rgb(63,95,191);
-}
-/* Javadoc tag */
-jt {
-	color:rgb(127,159,191);
-	font-weight: bold;
-}
-/* Primitive */
-jk {
-	color:rgb(127,0,85);
-	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: rgb(222,227,233));
-	border:1px solid rgb(158,173,192);
-	padding: 3px 10px 3px 10px;
-}
-
-table.styled td {
-	padding: 3px;
-}
-
-table.styled ul {
-	padding: 0px 10px;
-}
-
-table.styled tr:nth-child(1) {
-	background-color: rgb(222,227,233);
-}
-
-table.styled tr:nth-child(2n+2) {
-	background-color: rgb(238,238,239);
-}
-
-table.styled tr:nth-child(2n+3) {
-	background-color: rgb(255,255,255);
-}
-
-/* Same as r1 except with a border on the bottom */
-table.styled tr.bb {
-	border-bottom: 1px solid rgb(158,173,192)
-}
-
-table.styled tr.light {
-	background-color: rgb(255,255,255) !important;
-}
-
-table.styled tr.dark {
-	background-color: rgb(238,238,239) !important;
-}
-
-/*--- Juneau topic headers ---*/
-h2.topic,h3.topic,h4.topic {
-	margin-bottom:20px;
-	margin-top:25px;
-	padding-top:3px;
-	padding-left: 25px;
-	color: rgb(44,69,87);
-	border-top: 2px groove rgb(158,173,192);
-	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: rgb(44,69,87);
-	text-decoration: underline;
-}
-h6 {
-	margin:10px 0px;
-}
-h6.figure {
-	color: rgb(44,69,87);
-	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 rgb(204,204,204);
-	margin: 0px 20px;
-	border-radius: 10px;
-}
-
-.padded {
-	padding-left:20px;
-	padding-right:20px;
-}
-
-/*--- Rows with bottom borders ---*/
-tr.borderbottom td {
-	border-bottom: 1px solid rgb(158,173,192)
-}
-
-/* Article links */
-a.doclink {
-	font-weight:bold;
-}
-
-.nomargin {
-	margin:0px;
-}
-
-ol.toc, .toc ol {
-  background: rgb(222, 227, 233);
-  font: italic 1em Georgia, Times, serif;
-  color: rgb(76,107,135);
-  margin: 0px;
-  padding: 0px;
-}
-
-ol.toc p, .toc ol p, ol.toc div, .toc ol div {
-    color:#353833;
-  	font: normal 1em Arial, Helvetica, sans-serif;
-  	padding-bottom: 5px;
-  	margin: 0px;
-}
-
-.toc li {
-  background: #FFFFFF;
-  margin-left: 30px;
-  padding-left: 5px;
-}
-
-h5.toc, h6.toc {
-	color: rgb(44,69,87);
-	margin-bottom: 0px;
-	padding: 5px 30px;
-	border-radius: 15px 15px 15px 0px;
-	text-decoration: none;
-	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));
-}
-
-body > p:first-child, 
-div.subTitle > div.block > p:first-child, 
-div.contentContainer > div.block > p:first-child {
-    font-size:1.5em;
-	color: rgb(44,69,87);
-	margin-bottom: 0px;
-	padding: 5px 30px;
-	border-radius: 15px;
-	text-decoration: none;
-	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));
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java
deleted file mode 100755
index 576ae67..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.jaxrs;
-
-import static javax.servlet.http.HttpServletResponse.*;
-
-import java.io.*;
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.*;
-import javax.ws.rs.ext.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Base class for defining JAX-RS providers based on Juneau serializers and parsers.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class BaseProvider implements MessageBodyReader<Object>, MessageBodyWriter<Object> {
-
-	private SerializerGroup serializers = new SerializerGroup();
-	private ParserGroup parsers = new ParserGroup();
-	private ObjectMap properties = new ObjectMap();
-
-	/**
-	 * Constructor.
-	 */
-	protected BaseProvider() {
-		try {
-			properties = new ObjectMap();
-			JuneauProvider jp = getClass().getAnnotation(JuneauProvider.class);
-			serializers.append(jp.serializers());
-			parsers.append(jp.parsers());
-			for (Property p : jp.properties())
-				properties.put(p.name(), p.value());
-			serializers.addTransforms(jp.transforms());
-			parsers.addTransforms(jp.transforms());
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * Returns properties defined on the specified method through the {@link RestMethod#properties()}
-	 * 	annotation specified on the method and the {@link JuneauProvider#properties()} annotation
-	 * 	specified on the provider class.
-	 *
-	 * @param a All annotations defined on the method.
-	 * @return A map of all properties define on the method.
-	 */
-	protected ObjectMap getMethodProperties(Annotation[] a) {
-		ObjectMap m = new ObjectMap().setInner(properties);
-		for (Annotation aa : a) {
-			if (aa instanceof RestMethod) {
-				for (Property p : ((RestMethod)aa).properties())
-					m.put(p.name(), p.value());
-			}
-		}
-		return m;
-	}
-
-	@Override /* MessageBodyWriter */
-	public long getSize(Object o, Class<?> type, Type gType, Annotation[] a, MediaType mediaType) {
-		return -1;
-	}
-
-	@Override /* MessageBodyWriter */
-	public boolean isWriteable(Class<?> type, Type gType, Annotation[] a, MediaType mediaType) {
-		return serializers.findMatch(mediaType.toString()) != null;
-	}
-
-	@Override /* MessageBodyWriter */
-	public void writeTo(Object o, Class<?> type, Type gType, Annotation[] a, MediaType mediaType,
-			MultivaluedMap<String,Object> headers, OutputStream out) throws IOException, WebApplicationException {
-		try {
-			String mt = serializers.findMatch(mediaType.toString());
-			if (mt == null)
-				throw new WebApplicationException(SC_NOT_ACCEPTABLE);
-			Serializer s = serializers.getSerializer(mt);
-			ObjectMap mp = getMethodProperties(a);
-			mp.append("mediaType", mediaType.toString());
-			if (s.isWriterSerializer()) {
-				WriterSerializer s2 = (WriterSerializer)s;
-				OutputStreamWriter w = new OutputStreamWriter(out, IOUtils.UTF8);
-				SerializerSession session = s.createSession(w, mp, null);
-				s2.serialize(session, o);
-				w.flush();
-				w.close();
-			} else {
-				OutputStreamSerializer s2 = (OutputStreamSerializer)s;
-				SerializerSession session = s.createSession(s2, mp, null);
-				s2.serialize(session, o);
-				out.flush();
-				out.close();
-			}
-		} catch (SerializeException e) {
-			throw new IOException(e);
-		}
-	}
-
-	@Override /* MessageBodyReader */
-	public boolean isReadable(Class<?> type, Type gType, Annotation[] a, MediaType mediaType) {
-		return parsers.findMatch(mediaType.toString()) != null;
-	}
-
-	@Override /* MessageBodyReader */
-	public Object readFrom(Class<Object> type, Type gType, Annotation[] a, MediaType mediaType,
-			MultivaluedMap<String,String> headers, InputStream in) throws IOException, WebApplicationException {
-		try {
-			String mt = parsers.findMatch(mediaType.toString());
-			if (mt == null)
-				throw new WebApplicationException(SC_UNSUPPORTED_MEDIA_TYPE);
-			Parser p = parsers.getParser(mt);
-			BeanContext bc = p.getBeanContext();
-			ClassMeta<?> cm = bc.getClassMeta(gType);
-			ObjectMap mp = getMethodProperties(a);
-			mp.put("mediaType", mediaType.toString());
-			if (p.isReaderParser()) {
-				ReaderParser p2 = (ReaderParser)p;
-				InputStreamReader r = new InputStreamReader(in, IOUtils.UTF8);
-				ParserSession session = p2.createSession(r, mp, null, null);
-				return p2.parse(session, cm);
-			}
-			InputStreamParser p2 = (InputStreamParser)p;
-			ParserSession session = p2.createSession(in, mp, null, null);
-			return p2.parse(session, cm);
-		} catch (ParseException e) {
-			throw new IOException(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/DefaultProvider.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/DefaultProvider.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/DefaultProvider.java
deleted file mode 100755
index 6e28c91..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/DefaultProvider.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.jaxrs;
-
-import javax.ws.rs.*;
-import javax.ws.rs.ext.*;
-
-import org.apache.juneau.html.*;
-import org.apache.juneau.jso.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.soap.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.xml.*;
-
-/**
- * JAX-RS provider for the same serialize/parse support provided by the {@link RestServletDefault} class.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Provider
-@Produces({
-	"application/json", "text/json",                 // JsonSerializer
-	"application/json+simple", "text/json+simple",   // JsonSerializer.Simple
-	"application/json+schema",                       // JsonSchemaSerializer
-	"text/xml",                                      // XmlDocSerializer
-	"text/xml+simple",                               // XmlDocSerializer.Simple
-	"text/xml+schema",                               // XmlSchemaDocSerializer
-	"text/html",                                     // HtmlDocSerializer
-	"application/x-www-form-urlencoded",             // UrlEncodingSerializer
-	"text/xml+soap",                                 // SoapXmlSerializer
-	"application/x-java-serialized-object"           // JavaSerializedObjectSerializer
-})
-@Consumes({
-	"application/json", "text/json",                 // JsonParser
-	"text/xml",                                      // XmlParser
-	"text/html",                                     // HtmlParser
-	"application/x-www-form-urlencoded",             // UrlEncodingParser
-	"application/x-java-serialized-object"           // JavaSerializedObjectParser
-})
-@JuneauProvider(
-	serializers={
-		JsonSerializer.class,
-		JsonSerializer.Simple.class,
-		JsonSchemaSerializer.class,
-		XmlDocSerializer.class,
-		XmlDocSerializer.Simple.class,
-		XmlSchemaDocSerializer.class,
-		HtmlDocSerializer.class,
-		UrlEncodingSerializer.class,
-		SoapXmlSerializer.class,
-		JavaSerializedObjectSerializer.class
-	},
-	parsers={
-		JsonParser.class,
-		XmlParser.class,
-		HtmlParser.class,
-		UrlEncodingParser.class,
-		JavaSerializedObjectParser.class
-	}
-)
-public final class DefaultProvider extends BaseProvider {}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java
deleted file mode 100755
index 83715dc..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.jaxrs;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Annotations applicable to subclasses of {@link BaseProvider}.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Used to associate serializers, parsers, filters, and properties with instances of {@link BaseProvider}.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface JuneauProvider {
-
-	/**
-	 * Provider-level POJO filters.
-	 * <p>
-	 * 	These filters are applied to all serializers and parsers being used by the provider.
-	 * <p>
-	 * 	If the specified class is an instance of {@link Transform}, then that filter is added.
-	 * 	Any other classes are wrapped in a {@link BeanTransform} to indicate that subclasses should
-	 * 		be treated as the specified class type.
-	 */
-	Class<?>[] transforms() default {};
-
-	/**
-	 * Provider-level properties.
-	 * <p>
-	 * 	Any of the following property names can be specified:
-	 * <ul>
-	 * 	<li>{@link RestServletContext}
-	 * 	<li>{@link BeanContext}
-	 * 	<li>{@link SerializerContext}
-	 * 	<li>{@link ParserContext}
-	 * 	<li>{@link JsonSerializerContext}
-	 * 	<li>{@link XmlSerializerContext}
-	 * 	<li>{@link XmlParserContext}
-	 * </ul>
-	 * <p>
-	 * 	Property values will be converted to the appropriate type.
-	 * <p>
-	 * 	These properties can be augmented/overridden through the {@link RestMethod#properties()} annotation on the REST method.
-	 */
-	Property[] properties() default {};
-
-	/**
-	 * Specifies a list of {@link Serializer} classes to add to the list of serializers available for this provider.
-	 * <p>
-	 * 	This annotation can only be used on {@link Serializer} classes that have no-arg constructors.
-	 */
-	Class<? extends Serializer>[] serializers() default {};
-
-	/**
-	 * Specifies a list of {@link Parser} classes to add to the list of parsers available for this provider.
-	 * <p>
-	 * 	This annotation can only be used on {@link Parser} classes that have no-arg constructors.
-	 */
-	Class<? extends Parser>[] parsers() default {};
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/package.html
deleted file mode 100755
index 5fc4d22..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/package.html
+++ /dev/null
@@ -1,361 +0,0 @@
-<!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>JAX-RS / Wink integration components</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>
-
-<p>
-	Defines an API and default provides for using Juneau serializers and parsers as JAX-RS providers.
-</p>
-
-<a name='TOC'></a><h5 class='toc'>Table of Contents</h5>
-<ol class='toc'>
-	<li><p><a class='doclink' href='#BaseProvider'>Juneau JAX-RS Provider</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a name="BaseProvider"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Juneau JAX-RS Provider</h2>
-<div class='topic'>
-	<p>
-		The Juneau framework contains the <code>org.apache.juneau.server.jaxrs</code> package for performing simple
-			integration of Juneau serializers and parsers in JAX-RS compliant environments.
-	</p>
-	<p>
-		It should be noted that although some of the functionality of the Juneau Server API is provided through the JAX-RS 
-			integration components, it is not nearly as flexible as using the {@link org.apache.juneau.server.RestServlet} class directly.
-	</p>
-	<p>
-		What you can do with the Juneau JAX-RS provider classes:
-	</p>
-	<ul class='spaced-list'>
-		<li>Use existing Juneau serializers and parsers for converting streams to POJOs and vis-versa.
-		<li>Use annotations to specify filters and properties using the {@link org.apache.juneau.server.annotation.RestMethod}
-			and {@link org.apache.juneau.server.jaxrs.JuneauProvider} annotations.
-	</ul>
-	<p>
-		What you can't do with the Juneau JAX-RS provider classes:
-	</p>
-	<ul class='spaced-list'>
-		<li>Specify or override serializers/parsers at the Java class and method levels.
-			<br>JAX-RS does not provide the capability to use different providers for the same media types
-				at the class or method levels. 
-		<li>Specify or override filters and properties at the Java class level.
-		<li>Default stylesheets for the {@link org.apache.juneau.html.HtmlDocSerializer} class.
-			<br>It will produce HTML, but it won't contain any styles applied.
-			<br>However, it's possible to specify your own stylesheet using the {@link org.apache.juneau.html.HtmlDocSerializerContext#HTMLDOC_cssUrl} property.
-		<li>The ability to specify HTTP method, headers, and content using GET parameters.
-			<br>These make debugging REST interfaces using only a browser possible.
-		<li>Class or method level encoding.
-		<li>Class or method level guards.
-		<li>Class or method level converters.
-	</ul>
-	
-	<h6 class='topic'>Juneau JAX-RS Provider API</h6>
-	<p>
-		The Juneau JAX-RS provider API consists of the following classes:
-	</p>
-	<ul class='spaced-list'>
-		<li>{@link org.apache.juneau.server.jaxrs.BaseProvider} - The base provider class that implements the JAX-RS 
-			<code>MessageBodyReader</code> and <code>MessageBodyWriter</code> interfaces.
-		<li>{@link org.apache.juneau.server.jaxrs.JuneauProvider} - Annotation that is applied to subclasses of <code>BaseProvider</code>
-			to specify the serializers/parsers associated with a provider, and optionally filters and properties to 
-			apply to those serializers and parsers.
-		<li>{@link org.apache.juneau.server.jaxrs.DefaultProvider} - A default provider that provides the same level
-			of media type support as the {@link org.apache.juneau.server.RestServletDefault} class.
-	</ul>
-	<p>
-		For the most part, when using these components, you'll either use the existing <code>DefaultProvider</code> or
-			<code>JuneauProvider</code> providers, or define your own by subclassing <code>BaseProvider</code>.
-	
-	<h6 class='topic'>Example</h6>
-	<p>
-		The <code>juneau_sample.war</code> project contains a sample <code>HelloWorldResource</code> class that
-			shows how to use the JAX-RS provider.  It uses Wink as the JAX-RS implementation.
-	</p>
-	<p>
-		Wink is configured by registering the following servlet in the <code>web.xml</code> file of the web app:
-	</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;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>
-	  <xt>&lt;servlet-mapping&gt;</xt>
-		 <xt>&lt;servlet-name&gt;</xt>WinkService<xt>&lt;/servlet-name&gt;</xt>
-		 <xt>&lt;url-pattern&gt;</xt>/wink/*<xt>&lt;/url-pattern&gt;</xt>
-	  <xt>&lt;/servlet-mapping&gt;</xt>
-	<xt>&lt;/web-app&gt;</xt>
-	</p>
-	<p>
-		The <code>wink.cfg</code> file lists our default provider and our sample resource:
-	</p>
-	<p class='bcode'>
-	org.apache.juneau.server.jaxrs.DefaultProvider		
-	com.ibm.sample.jaxrs.HelloWorldResource
-	</p>
-	<p>
-		Interestingly, the <code>DefaultProvider</code> itself is a subclass of <code>BaseProvider</code>
-			with no code at all.  It consists of annotations only:
-	</p>
-	<p class='bcode'>
-	<ja>@Provider</ja>
-	<ja>@Produces</ja>({
-		<js>"application/json"</js>, <js>"text/json"</js>,                 <jc>// JsonSerializer</jc>
-		<js>"application/json+schema"</js>,<js>"text/json+schema"</js>,    <jc>// JsonSchemaSerializer</jc>
-		<js>"text/xml"</js>,                                      <jc>// XmlDocSerializer</jc>
-		<js>"text/xml+schema"</js>,                               <jc>// XmlDocSerializer</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>// RdfXmlDocSerializer</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>
-	})
-	<ja>@JuneauProvider</ja>(
-		serializers={
-			JsonSerializer.<jk>class</jk>,
-			JsonSchemaSerializer.<jk>class</jk>,
-			XmlDocSerializer.<jk>class</jk>,
-			XmlSchemaDocSerializer.<jk>class</jk>,
-			HtmlDocSerializer.<jk>class</jk>,
-			UrlEncodingSerializer.<jk>class</jk>,
-			SoapXmlSerializer.<jk>class</jk>,
-			RdfXmlDocSerializer.<jk>class</jk>,
-			JavaSerializedObjectSerializer.<jk>class</jk>
-		},
-		parsers={
-			JsonParser.<jk>class</jk>,
-			XmlParser.<jk>class</jk>,
-			HtmlParser.<jk>class</jk>,
-			UrlEncodingParser.<jk>class</jk>
-		}
-	)
-	<jk>public final class</jk> DefaultProvider <jk>extends</jk> BaseProvider {}
-	</p>	
-	<p>
-		Similarly, if you're defining your own JAX-RS provider, you can do so using annotations only.
-	</p>
-	<p>
-	<p>
-		Our sample resource is shown below.
-		In this example, we've specified a <code><ja>@RestMethod</ja></code> annotation on the 
-			getter to show how properties can be overridden on the serializers/parsers at the method level.
-		This annotation is optional.
-	</p>
-	
-	<p class='bcode'>
-	<ja>@Path</ja>(<js>"/helloworld"</js>)
-	<jk>public class</jk> HelloWorldResource {
-	
-		<jc>// Our bean message class</jc>
-		<jk>public static class</jk> Message {
-		
-			<jc>// No-arg bean constructor (needed for parsers)</jc>
-			<jk>public</jk> Message() {}
-	
-			<jk>public</jk> Message(String text, String author) {
-				<jk>this</jk>.text = text;
-				<jk>this</jk>.author = author;
-			}
-	
-			<jk>public</jk> String text;
-			<jk>public</jk> String author;
-		}
-	
-		<jk>private static</jk> Message message = <jk>new</jk> Message(<js>"Hello world"</js>, <js>"John Smith"</js>);
-	
-		<ja>@GET</ja>
-		<ja>@Produces</ja>(<js>"*/*"</js>)
-		<ja>@RestMethod</ja>( <jc>/* Override some properties */</jc>
-			properties={
-				<ja>@Property</ja>(name=SerializerContext.<jsf>SERIALIZER_useIndentation</jsf>, value=<js>"true"</js>),
-				<ja>@Property</ja>(name=JsonSerializerContext.<jsf>LAX_MODE</jsf>, value=<js>"true"</js>)
-			}
-		)
-		<jk>public</jk> Message getMessage() {
-			<jk>return</jk> message;
-		}
-
-		<ja>@PUT</ja>
-		<ja>@Produces</ja>(<js>"*/*"</js>)
-		<ja>@Consumes</ja>(<js>"*/*"</js>)
-		<jk>public</jk> Message replaceMessage(Message message) {
-			HelloWorldResource.message = message;
-			<jk>return</jk> message;
-		}
-	}
-	</p>	
-	<p>
-		When we start up the servlet, we can interact with the resource using cURL.
-		In these examples, note that the <jsf>SERIALIZER_useIndentation</jsf> and <jsf>LAX_MODE</jsf> settings
-			cause the output to be readable instead of condensed.
-	</p>
-	</p>
-	<p class='bcode'>
-	C:\>curl.exe -H "Accept: text/json" -X GET http://localhost:9080/sample/wink/helloworld
-	<ja>{
-	        text:"Hello world",
-	        author:"John Smith"
-	}</ja>
-	</p>
-	<p class='bcode'>
-	C:\>curl.exe -H "Accept: text/html" -X GET http://localhost:9080/sample/wink/helloworld
-	<ja>&lt;html&gt;
-	&lt;head&gt;
-	&lt;/head&gt;
-	&lt;body&gt;
-	&lt;table type="object"&gt;
-	        &lt;tr&gt;
-	                &lt;th&gt;
-	                        &lt;string&gt;key&lt;/string&gt;
-	                &lt;/th&gt;
-	                &lt;th&gt;
-	                        &lt;string&gt;value&lt;/string&gt;
-	                &lt;/th&gt;
-	        &lt;/tr&gt;
-	        &lt;tr&gt;
-	                &lt;td&gt;
-	                        &lt;string&gt;text&lt;/string&gt;
-	                &lt;/td&gt;
-	                &lt;td&gt;
-	                        &lt;string&gt;Hello world&lt;/string&gt;
-	                &lt;/td&gt;
-	        &lt;/tr&gt;
-	        &lt;tr&gt;
-	                &lt;td&gt;
-	                        &lt;string&gt;author&lt;/string&gt;
-	                &lt;/td&gt;
-	                &lt;td&gt;
-	                        &lt;string&gt;John Smith&lt;/string&gt;
-	                &lt;/td&gt;
-	        &lt;/tr&gt;
-	&lt;/table&gt;
-	&lt;/body&gt;
-	&lt;/html&gt;</ja>	
-	</p>
-	<p class='bcode'>
-	C:\&gt;curl.exe -H "Accept: text/xml" -X GET http://localhost:9080/sample/wink/helloworld
-	<ja>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-	&lt;object&gt;
-	        &lt;text&gt;Hello world&lt;/text&gt;
-	        &lt;author&gt;John Smith&lt;/author&gt;
-	&lt;/object&gt;</ja>
-	</p>
-	<p class='bcode'>
-	C:\>curl.exe -H "Accept: application/x-www-form-urlencoded" -X GET http://localhost:9080/sample/wink/helloworld
-	<ja>text='Hello+world'&author='John+Smith'</ja>
-	</p>
-	<p class='bcode'>
-	C:\&gt;curl.exe -H "Accept: text/xml+schema" -X GET http://localhost:9080/sample/wink/helloworld
-	<ja>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-	&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
-	        &lt;xs:element name="object" nillable="true"&gt;
-	                &lt;xs:complexType&gt;
-	                        &lt;xs:sequence minOccurs="0" maxOccurs="unbounded"&gt;
-	                                &lt;xs:element name="text" type="xs:string" nillable="true" minOccurs="0"/&gt;
-	                                &lt;xs:element name="author" type="xs:string" nillable="true" minOccurs="0"/&gt;
-	                        &lt;/xs:sequence&gt;
-	                &lt;/xs:complexType&gt;
-	        &lt;/xs:element&gt;
-	        &lt;xs:element name="null"/&gt;
-	&lt;/xs:schema&gt;</ja>
-	</p>
-	<p class='bcode'>
-	C:\>curl.exe -H "Accept: application/x-java-serialized-object" -X GET http://localhost:9080/sample/wink/helloworld
-	<ja>detailMessaget \u2195Ljava/lang/String;[ ption(Vx \u03c4�\u25ac5\u263b  xr \u2194java.io.ObjectStreamExceptiond\u251c\u03a3k�9\u221a\u2580\u263b  xr \u203cjava.io.IOExcept
-	stackTracet \u25b2[Ljava/lang/StackTraceElement;xpq t /com.ibm.sample.jaxrs.HelloWorldResource$Messageur \u25b2[Ljava.lang.Sta
-	lineNumberL \u266bdeclaringClassq ~ \u2660LfileNameq ~ \u2660L
-	methodNameq ~ \u2660xp  \u2666�t \u2192java.io.ObjectOutputStreamt \u21a8ObjectOutputStream.javat \u2640writeObject0sq ~ \u2640  \u263a[t \u2192java.io.Obje
-	 3org.apache.juneau.serializer.OutputStreamSerializert \u2190OutputStreamSerializer.javat    serializesq ~ \u2640   ^t &com.ib
-	 &t /org.apache.wink.server.handlers.AbstractHandlert �AbstractHandler.javat \u266bhandleResponsesq ~ \u2640   \u2192t 5org.apache.
-	sq ~ \u2640   Ct 5org.apache.wink.server.handlers.AbstractHandlersChaint \u2192AbstractHandlersChain.javat doChainsq ~ \u2640   't
-	 \u2660handlesq ~ \u2640   \u25act 5org.apache.wink.server.handlers.ResponseHandlersChaint \u2192ResponseHandlersChain.javat \u2660handlesq ~
-	 \u266bhandleResponsesq ~ \u2640   \u2192t 5org.apache.wink.server.handlers.ResponseHandlersChaint \u2192ResponseHandlersChain.javat \u2660ha
-	tHandlersChain.javat doChainsq ~ \u2640   Zt -org.apache.wink.server.internal.log.Responsest \u266bResponses.javat \u266bhandleResp
-	eHandlersChain.javat \u2660handlesq ~ \u2640   Ct 5org.apache.wink.server.handlers.AbstractHandlersChaint \u2192AbstractHandlersCha
-	handleRequestsq ~ \u2640   |t 3org.apache.wink.server.internal.servlet.RestServlett \u25baRestServlet.javat servicesq ~ \u2640  \u263b�t
-	handleRequestsq ~ \u2640   \u251ct -com.ibm.ws.webcontainer.channel.WCChannelLinkt \u2195WCChannelLink.javat \u2663readysq ~ \u2640  \u263a\u2500t 4com
-	 \u25bahandleNewRequestsq ~ \u2640  \u263a1t 4com.ibm.ws.http.channel.inbound.impl.HttpInboundLinkt �HttpInboundLink.javat \u266bprocess
-	nnectionInitialReadCallback.javat �sendToDiscriminatorssq ~ \u2640   qt &lt;com.ibm.ws.tcp.channel.impl.NewConnectionInitial
-	  \u2518t $com.ibm.io.async.AbstractAsyncFuturet \u2191AbstractAsyncFuture.javat \u266binvokeCallbacksq ~ \u2640   �t #com.ibm.io.async.
-	t \u2195ResultHandler.javatcompletesq ~ \u2640  \u2665t \u25b2com.ibm.io.async.ResultHandlert \u2195ResultHandler.javat \u25acrunEventProcessingLo
-	on: java.io.NotSerializableException: com.ibm.sample.jaxrs.HelloWorldResource$Message</ja>
-	</p>
-	<p>
-		The following shows the PUT method being invoked.  
-		In this case, we're passing in the new bean as a JSON object.
-		Also notice how the response is in standard condensed JSON since we did not override any properties on the REST method.
-	</p>
-	<p class='bcode'>
-	C:\>curl.exe -H "Content-Type: text/json" -H "Accept: text/json" -d "{text:'Hello again',author:'Jane Doe'}" 
-		-X PUT http://localhost:9080/sample/wink/helloworld
-	<ja>{"text":"Hello again","author":"Jane Doe"}</ja>
-	</p>
-</div>
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/rdf/DefaultJenaProvider.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/rdf/DefaultJenaProvider.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/rdf/DefaultJenaProvider.java
deleted file mode 100755
index 4520494..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/rdf/DefaultJenaProvider.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.jaxrs.rdf;
-
-import javax.ws.rs.*;
-import javax.ws.rs.ext.*;
-
-import org.apache.juneau.html.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.jso.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.server.jaxrs.*;
-import org.apache.juneau.server.jena.*;
-import org.apache.juneau.soap.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.xml.*;
-
-/**
- * JAX-RS provider for the same serialize/parse support provided by the {@link RestServletJenaDefault} class.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Provider
-@Produces({
-	"application/json", "text/json",                 // JsonSerializer
-	"application/json+simple","text/json+simple",    // JsonSerializer.Simple
-	"application/json+schema","text/json+schema",    // JsonSchemaSerializer
-	"text/xml",                                      // XmlDocSerializer
-	"text/xml+simple",                               // XmlDocSerializer.Simple
-	"text/xml+schema",                               // XmlSchemaDocSerializer
-	"text/html",                                     // HtmlDocSerializer
-	"application/x-www-form-urlencoded",             // UrlEncodingSerializer
-	"text/xml+soap",                                 // SoapXmlSerializer
-	"text/xml+rdf",                                  // RdfSerializer.Xml
-	"text/xml+rdf+abbrev",                           // RdfSerializer.XmlAbbrev
-	"text/n-triple",                                 // RdfSerializer.NTriple
-	"text/turtle",                                   // RdfSerializer.Turtle
-	"text/n3",                                       // RdfSerializer.N3
-	"application/x-java-serialized-object"           // JavaSerializedObjectSerializer
-})
-@Consumes({
-	"application/json", "text/json",                 // JsonParser
-	"text/xml",                                      // XmlParser
-	"text/html",                                     // HtmlParser
-	"application/x-www-form-urlencoded",             // UrlEncodingParser
-	"text/xml+rdf",                                  // RdfParser.Xml
-	"text/n-triple",                                 // RdfParser.NTriple
-	"text/turtle",                                   // RdfParser.Turtle
-	"text/n3",                                       // RdfParser.N3
-	"application/x-java-serialized-object"           // JavaSerializedObjectParser
-})
-@JuneauProvider(
-	serializers={
-		JsonSerializer.class,
-		JsonSerializer.Simple.class,
-		JsonSchemaSerializer.class,
-		XmlDocSerializer.class,
-		XmlDocSerializer.Simple.class,
-		XmlSchemaDocSerializer.class,
-		HtmlDocSerializer.class,
-		UrlEncodingSerializer.class,
-		SoapXmlSerializer.class,
-		RdfSerializer.Xml.class,
-		RdfSerializer.XmlAbbrev.class,
-		RdfSerializer.NTriple.class,
-		RdfSerializer.Turtle.class,
-		RdfSerializer.N3.class,
-		JavaSerializedObjectSerializer.class
-	},
-	parsers={
-		JsonParser.class,
-		XmlParser.class,
-		HtmlParser.class,
-		UrlEncodingParser.class,
-		RdfParser.Xml.class,
-		RdfParser.NTriple.class,
-		RdfParser.Turtle.class,
-		RdfParser.N3.class,
-		JavaSerializedObjectParser.class,
-	}
-)
-public final class DefaultJenaProvider extends BaseProvider {}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/rdf/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/rdf/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/rdf/package.html
deleted file mode 100755
index 6bb6d97..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/jaxrs/rdf/package.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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>
-</head>
-<body>
-<p>JAX-RS / Wink integration components with RDF support</p>
-</body>
-</html>
\ No newline at end of file


[42/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/prettify.js
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/prettify.js b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/prettify.js
deleted file mode 100644
index ab27882..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/prettify.js
+++ /dev/null
@@ -1,1510 +0,0 @@
-// Copyright (C) 2006 Google Inc.
-//
-// Licensed 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.
-
-
-/**
- * @fileoverview
- * some functions for browser-side pretty printing of code contained in html.
- * <p>
- *
- * For a fairly comprehensive set of languages see the
- * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
- * file that came with this source.  At a minimum, the lexer should work on a
- * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
- * XML, CSS, Javascript, and Makefiles.  It works passably on Ruby, PHP and Awk
- * and a subset of Perl, but, because of commenting conventions, doesn't work on
- * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
- * <p>
- * Usage: <ol>
- * <li> include this source file in an html page via
- *   {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
- * <li> define style rules.  See the example page for examples.
- * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
- *    {@code class=prettyprint.}
- *    You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
- *    printer needs to do more substantial DOM manipulations to support that, so
- *    some css styles may not be preserved.
- * </ol>
- * That's it.  I wanted to keep the API as simple as possible, so there's no
- * need to specify which language the code is in, but if you wish, you can add
- * another class to the {@code <pre>} or {@code <code>} element to specify the
- * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
- * starts with "lang-" followed by a file extension, specifies the file type.
- * See the "lang-*.js" files in this directory for code that implements
- * per-language file handlers.
- * <p>
- * Change log:<br>
- * cbeust, 2006/08/22
- * <blockquote>
- *   Java annotations (start with "@") are now captured as literals ("lit")
- * </blockquote>
- * @requires console
- */
-
-// JSLint declarations
-/*global console, document, navigator, setTimeout, window */
-
-/**
- * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
- * UI events.
- * If set to {@code false}, {@code prettyPrint()} is synchronous.
- */
-window['PR_SHOULD_USE_CONTINUATION'] = true;
-
-/** the number of characters between tab columns */
-window['PR_TAB_WIDTH'] = 8;
-
-/** Walks the DOM returning a properly escaped version of innerHTML.
-  * @param {Node} node
-  * @param {Array.<string>} out output buffer that receives chunks of HTML.
-  */
-window['PR_normalizedHtml']
-
-/** Contains functions for creating and registering new language handlers.
-  * @type {Object}
-  */
-  = window['PR']
-
-/** Pretty print a chunk of code.
-  *
-  * @param {string} sourceCodeHtml code as html
-  * @return {string} code as html, but prettier
-  */
-  = window['prettyPrintOne']
-/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
-  * {@code class=prettyprint} and prettify them.
-  * @param {Function?} opt_whenDone if specified, called when the last entry
-  *     has been finished.
-  */
-  = window['prettyPrint'] = void 0;
-
-/** browser detection. @extern @returns false if not IE, otherwise the major version. */
-window['_pr_isIE6'] = function () {
-  var ieVersion = navigator && navigator.userAgent &&
-      navigator.userAgent.match(/\bMSIE ([678])\./);
-  ieVersion = ieVersion ? +ieVersion[1] : false;
-  window['_pr_isIE6'] = function () { return ieVersion; };
-  return ieVersion;
-};
-
-
-(function () {
-  // Keyword lists for various languages.
-  var FLOW_CONTROL_KEYWORDS =
-      "break continue do else for if return while ";
-  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
-      "double enum extern float goto int long register short signed sizeof " +
-      "static struct switch typedef union unsigned void volatile ";
-  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
-      "new operator private protected public this throw true try typeof ";
-  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
-      "concept concept_map const_cast constexpr decltype " +
-      "dynamic_cast explicit export friend inline late_check " +
-      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
-      "template typeid typename using virtual wchar_t where ";
-  var JAVA_KEYWORDS = COMMON_KEYWORDS +
-      "abstract boolean byte extends final finally implements import " +
-      "instanceof null native package strictfp super synchronized throws " +
-      "transient ";
-  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
-      "as base by checked decimal delegate descending event " +
-      "fixed foreach from group implicit in interface internal into is lock " +
-      "object out override orderby params partial readonly ref sbyte sealed " +
-      "stackalloc string select uint ulong unchecked unsafe ushort var ";
-  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
-      "debugger eval export function get null set undefined var with " +
-      "Infinity NaN ";
-  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
-      "goto if import last local my next no our print package redo require " +
-      "sub undef unless until use wantarray while BEGIN END ";
-  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
-      "elif except exec finally from global import in is lambda " +
-      "nonlocal not or pass print raise try with yield " +
-      "False True None ";
-  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
-      " defined elsif end ensure false in module next nil not or redo rescue " +
-      "retry self super then true undef unless until when yield BEGIN END ";
-  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
-      "function in local set then until ";
-  var ALL_KEYWORDS = (
-      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
-      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
-
-  // token style names.  correspond to css classes
-  /** token style for a string literal */
-  var PR_STRING = 'str';
-  /** token style for a keyword */
-  var PR_KEYWORD = 'kwd';
-  /** token style for a comment */
-  var PR_COMMENT = 'com';
-  /** token style for a type */
-  var PR_TYPE = 'typ';
-  /** token style for a literal value.  e.g. 1, null, true. */
-  var PR_LITERAL = 'lit';
-  /** token style for a punctuation string. */
-  var PR_PUNCTUATION = 'pun';
-  /** token style for a punctuation string. */
-  var PR_PLAIN = 'pln';
-
-  /** token style for an sgml tag. */
-  var PR_TAG = 'tag';
-  /** token style for a markup declaration such as a DOCTYPE. */
-  var PR_DECLARATION = 'dec';
-  /** token style for embedded source. */
-  var PR_SOURCE = 'src';
-  /** token style for an sgml attribute name. */
-  var PR_ATTRIB_NAME = 'atn';
-  /** token style for an sgml attribute value. */
-  var PR_ATTRIB_VALUE = 'atv';
-
-  /**
-   * A class that indicates a section of markup that is not code, e.g. to allow
-   * embedding of line numbers within code listings.
-   */
-  var PR_NOCODE = 'nocode';
-
-  /** A set of tokens that can precede a regular expression literal in
-    * javascript.
-    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
-    * list, but I've removed ones that might be problematic when seen in
-    * languages that don't support regular expression literals.
-    *
-    * <p>Specifically, I've removed any keywords that can't precede a regexp
-    * literal in a syntactically legal javascript program, and I've removed the
-    * "in" keyword since it's not a keyword in many languages, and might be used
-    * as a count of inches.
-    *
-    * <p>The link a above does not accurately describe EcmaScript rules since
-    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
-    * very well in practice.
-    *
-    * @private
-    */
-  var REGEXP_PRECEDER_PATTERN = function () {
-      var preceders = [
-          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
-          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
-          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
-          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
-          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
-          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
-          "||=", "~" /* handles =~ and !~ */,
-          "break", "case", "continue", "delete",
-          "do", "else", "finally", "instanceof",
-          "return", "throw", "try", "typeof"
-          ];
-      var pattern = '(?:^^|[+-]';
-      for (var i = 0; i < preceders.length; ++i) {
-        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
-      }
-      pattern += ')\\s*';  // matches at end, and matches empty string
-      return pattern;
-      // CAVEAT: this does not properly handle the case where a regular
-      // expression immediately follows another since a regular expression may
-      // have flags for case-sensitivity and the like.  Having regexp tokens
-      // adjacent is not valid in any language I'm aware of, so I'm punting.
-      // TODO: maybe style special characters inside a regexp as punctuation.
-    }();
-
-  // Define regexps here so that the interpreter doesn't have to create an
-  // object each time the function containing them is called.
-  // The language spec requires a new object created even if you don't access
-  // the $1 members.
-  var pr_amp = /&/g;
-  var pr_lt = /</g;
-  var pr_gt = />/g;
-  var pr_quot = /\"/g;
-  /** like textToHtml but escapes double quotes to be attribute safe. */
-  function attribToHtml(str) {
-    return str.replace(pr_amp, '&amp;')
-        .replace(pr_lt, '&lt;')
-        .replace(pr_gt, '&gt;')
-        .replace(pr_quot, '&quot;');
-  }
-
-  /** escapest html special characters to html. */
-  function textToHtml(str) {
-    return str.replace(pr_amp, '&amp;')
-        .replace(pr_lt, '&lt;')
-        .replace(pr_gt, '&gt;');
-  }
-
-
-  var pr_ltEnt = /&lt;/g;
-  var pr_gtEnt = /&gt;/g;
-  var pr_aposEnt = /&apos;/g;
-  var pr_quotEnt = /&quot;/g;
-  var pr_ampEnt = /&amp;/g;
-  var pr_nbspEnt = /&nbsp;/g;
-  /** unescapes html to plain text. */
-  function htmlToText(html) {
-    var pos = html.indexOf('&');
-    if (pos < 0) { return html; }
-    // Handle numeric entities specially.  We can't use functional substitution
-    // since that doesn't work in older versions of Safari.
-    // These should be rare since most browsers convert them to normal chars.
-    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
-      var end = html.indexOf(';', pos);
-      if (end >= 0) {
-        var num = html.substring(pos + 3, end);
-        var radix = 10;
-        if (num && num.charAt(0) === 'x') {
-          num = num.substring(1);
-          radix = 16;
-        }
-        var codePoint = parseInt(num, radix);
-        if (!isNaN(codePoint)) {
-          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
-                  html.substring(end + 1));
-        }
-      }
-    }
-
-    return html.replace(pr_ltEnt, '<')
-        .replace(pr_gtEnt, '>')
-        .replace(pr_aposEnt, "'")
-        .replace(pr_quotEnt, '"')
-        .replace(pr_nbspEnt, ' ')
-        .replace(pr_ampEnt, '&');
-  }
-
-  /** is the given node's innerHTML normally unescaped? */
-  function isRawContent(node) {
-    return 'XMP' === node.tagName;
-  }
-
-  var newlineRe = /[\r\n]/g;
-  /**
-   * Are newlines and adjacent spaces significant in the given node's innerHTML?
-   */
-  function isPreformatted(node, content) {
-    // PRE means preformatted, and is a very common case, so don't create
-    // unnecessary computed style objects.
-    if ('PRE' === node.tagName) { return true; }
-    if (!newlineRe.test(content)) { return true; }  // Don't care
-    var whitespace = '';
-    // For disconnected nodes, IE has no currentStyle.
-    if (node.currentStyle) {
-      whitespace = node.currentStyle.whiteSpace;
-    } else if (window.getComputedStyle) {
-      // Firefox makes a best guess if node is disconnected whereas Safari
-      // returns the empty string.
-      whitespace = window.getComputedStyle(node, null).whiteSpace;
-    }
-    return !whitespace || whitespace === 'pre';
-  }
-
-  function normalizedHtml(node, out, opt_sortAttrs) {
-    switch (node.nodeType) {
-      case 1:  // an element
-        var name = node.tagName.toLowerCase();
-
-        out.push('<', name);
-        var attrs = node.attributes;
-        var n = attrs.length;
-        if (n) {
-          if (opt_sortAttrs) {
-            var sortedAttrs = [];
-            for (var i = n; --i >= 0;) { sortedAttrs[i] = attrs[i]; }
-            sortedAttrs.sort(function (a, b) {
-                return (a.name < b.name) ? -1 : a.name === b.name ? 0 : 1;
-              });
-            attrs = sortedAttrs;
-          }
-          for (var i = 0; i < n; ++i) {
-            var attr = attrs[i];
-            if (!attr.specified) { continue; }
-            out.push(' ', attr.name.toLowerCase(),
-                     '="', attribToHtml(attr.value), '"');
-          }
-        }
-        out.push('>');
-        for (var child = node.firstChild; child; child = child.nextSibling) {
-          normalizedHtml(child, out, opt_sortAttrs);
-        }
-        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
-          out.push('<\/', name, '>');
-        }
-        break;
-      case 3: case 4: // text
-        out.push(textToHtml(node.nodeValue));
-        break;
-    }
-  }
-
-  /**
-   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
-   * matches the union o the sets o strings matched d by the input RegExp.
-   * Since it matches globally, if the input strings have a start-of-input
-   * anchor (/^.../), it is ignored for the purposes of unioning.
-   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
-   * @return {RegExp} a global regex.
-   */
-  function combinePrefixPatterns(regexs) {
-    var capturedGroupIndex = 0;
-
-    var needToFoldCase = false;
-    var ignoreCase = false;
-    for (var i = 0, n = regexs.length; i < n; ++i) {
-      var regex = regexs[i];
-      if (regex.ignoreCase) {
-        ignoreCase = true;
-      } else if (/[a-z]/i.test(regex.source.replace(
-                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
-        needToFoldCase = true;
-        ignoreCase = false;
-        break;
-      }
-    }
-
-    function decodeEscape(charsetPart) {
-      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
-      switch (charsetPart.charAt(1)) {
-        case 'b': return 8;
-        case 't': return 9;
-        case 'n': return 0xa;
-        case 'v': return 0xb;
-        case 'f': return 0xc;
-        case 'r': return 0xd;
-        case 'u': case 'x':
-          return parseInt(charsetPart.substring(2), 16)
-              || charsetPart.charCodeAt(1);
-        case '0': case '1': case '2': case '3': case '4':
-        case '5': case '6': case '7':
-          return parseInt(charsetPart.substring(1), 8);
-        default: return charsetPart.charCodeAt(1);
-      }
-    }
-
-    function encodeEscape(charCode) {
-      if (charCode < 0x20) {
-        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
-      }
-      var ch = String.fromCharCode(charCode);
-      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
-        ch = '\\' + ch;
-      }
-      return ch;
-    }
-
-    function caseFoldCharset(charSet) {
-      var charsetParts = charSet.substring(1, charSet.length - 1).match(
-          new RegExp(
-              '\\\\u[0-9A-Fa-f]{4}'
-              + '|\\\\x[0-9A-Fa-f]{2}'
-              + '|\\\\[0-3][0-7]{0,2}'
-              + '|\\\\[0-7]{1,2}'
-              + '|\\\\[\\s\\S]'
-              + '|-'
-              + '|[^-\\\\]',
-              'g'));
-      var groups = [];
-      var ranges = [];
-      var inverse = charsetParts[0] === '^';
-      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
-        var p = charsetParts[i];
-        switch (p) {
-          case '\\B': case '\\b':
-          case '\\D': case '\\d':
-          case '\\S': case '\\s':
-          case '\\W': case '\\w':
-            groups.push(p);
-            continue;
-        }
-        var start = decodeEscape(p);
-        var end;
-        if (i + 2 < n && '-' === charsetParts[i + 1]) {
-          end = decodeEscape(charsetParts[i + 2]);
-          i += 2;
-        } else {
-          end = start;
-        }
-        ranges.push([start, end]);
-        // If the range might intersect letters, then expand it.
-        if (!(end < 65 || start > 122)) {
-          if (!(end < 65 || start > 90)) {
-            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
-          }
-          if (!(end < 97 || start > 122)) {
-            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
-          }
-        }
-      }
-
-      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
-      // -> [[1, 12], [14, 14], [16, 17]]
-      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
-      var consolidatedRanges = [];
-      var lastRange = [NaN, NaN];
-      for (var i = 0; i < ranges.length; ++i) {
-        var range = ranges[i];
-        if (range[0] <= lastRange[1] + 1) {
-          lastRange[1] = Math.max(lastRange[1], range[1]);
-        } else {
-          consolidatedRanges.push(lastRange = range);
-        }
-      }
-
-      var out = ['['];
-      if (inverse) { out.push('^'); }
-      out.push.apply(out, groups);
-      for (var i = 0; i < consolidatedRanges.length; ++i) {
-        var range = consolidatedRanges[i];
-        out.push(encodeEscape(range[0]));
-        if (range[1] > range[0]) {
-          if (range[1] + 1 > range[0]) { out.push('-'); }
-          out.push(encodeEscape(range[1]));
-        }
-      }
-      out.push(']');
-      return out.join('');
-    }
-
-    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
-      // Split into character sets, escape sequences, punctuation strings
-      // like ('(', '(?:', ')', '^'), and runs of characters that do not
-      // include any of the above.
-      var parts = regex.source.match(
-          new RegExp(
-              '(?:'
-              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
-              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
-              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
-              + '|\\\\[0-9]+'  // a back-reference or octal escape
-              + '|\\\\[^ux0-9]'  // other escape sequence
-              + '|\\(\\?[:!=]'  // start of a non-capturing group
-              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
-              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
-              + ')',
-              'g'));
-      var n = parts.length;
-
-      // Maps captured group numbers to the number they will occupy in
-      // the output or to -1 if that has not been determined, or to
-      // undefined if they need not be capturing in the output.
-      var capturedGroups = [];
-
-      // Walk over and identify back references to build the capturedGroups
-      // mapping.
-      for (var i = 0, groupIndex = 0; i < n; ++i) {
-        var p = parts[i];
-        if (p === '(') {
-          // groups are 1-indexed, so max group index is count of '('
-          ++groupIndex;
-        } else if ('\\' === p.charAt(0)) {
-          var decimalValue = +p.substring(1);
-          if (decimalValue && decimalValue <= groupIndex) {
-            capturedGroups[decimalValue] = -1;
-          }
-        }
-      }
-
-      // Renumber groups and reduce capturing groups to non-capturing groups
-      // where possible.
-      for (var i = 1; i < capturedGroups.length; ++i) {
-        if (-1 === capturedGroups[i]) {
-          capturedGroups[i] = ++capturedGroupIndex;
-        }
-      }
-      for (var i = 0, groupIndex = 0; i < n; ++i) {
-        var p = parts[i];
-        if (p === '(') {
-          ++groupIndex;
-          if (capturedGroups[groupIndex] === undefined) {
-            parts[i] = '(?:';
-          }
-        } else if ('\\' === p.charAt(0)) {
-          var decimalValue = +p.substring(1);
-          if (decimalValue && decimalValue <= groupIndex) {
-            parts[i] = '\\' + capturedGroups[groupIndex];
-          }
-        }
-      }
-
-      // Remove any prefix anchors so that the output will match anywhere.
-      // ^^ really does mean an anchored match though.
-      for (var i = 0, groupIndex = 0; i < n; ++i) {
-        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
-      }
-
-      // Expand letters to groupts to handle mixing of case-sensitive and
-      // case-insensitive patterns if necessary.
-      if (regex.ignoreCase && needToFoldCase) {
-        for (var i = 0; i < n; ++i) {
-          var p = parts[i];
-          var ch0 = p.charAt(0);
-          if (p.length >= 2 && ch0 === '[') {
-            parts[i] = caseFoldCharset(p);
-          } else if (ch0 !== '\\') {
-            // TODO: handle letters in numeric escapes.
-            parts[i] = p.replace(
-                /[a-zA-Z]/g,
-                function (ch) {
-                  var cc = ch.charCodeAt(0);
-                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
-                });
-          }
-        }
-      }
-
-      return parts.join('');
-    }
-
-    var rewritten = [];
-    for (var i = 0, n = regexs.length; i < n; ++i) {
-      var regex = regexs[i];
-      if (regex.global || regex.multiline) { throw new Error('' + regex); }
-      rewritten.push(
-          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
-    }
-
-    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
-  }
-
-  var PR_innerHtmlWorks = null;
-  function getInnerHtml(node) {
-    // inner html is hopelessly broken in Safari 2.0.4 when the content is
-    // an html description of well formed XML and the containing tag is a PRE
-    // tag, so we detect that case and emulate innerHTML.
-    if (null === PR_innerHtmlWorks) {
-      var testNode = document.createElement('PRE');
-      testNode.appendChild(
-          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
-      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
-    }
-
-    if (PR_innerHtmlWorks) {
-      var content = node.innerHTML;
-      // XMP tags contain unescaped entities so require special handling.
-      if (isRawContent(node)) {
-        content = textToHtml(content);
-      } else if (!isPreformatted(node, content)) {
-        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
-            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
-      }
-      return content;
-    }
-
-    var out = [];
-    for (var child = node.firstChild; child; child = child.nextSibling) {
-      normalizedHtml(child, out);
-    }
-    return out.join('');
-  }
-
-  /** returns a function that expand tabs to spaces.  This function can be fed
-    * successive chunks of text, and will maintain its own internal state to
-    * keep track of how tabs are expanded.
-    * @return {function (string) : string} a function that takes
-    *   plain text and return the text with tabs expanded.
-    * @private
-    */
-  function makeTabExpander(tabWidth) {
-    var SPACES = '                ';
-    var charInLine = 0;
-
-    return function (plainText) {
-      // walk over each character looking for tabs and newlines.
-      // On tabs, expand them.  On newlines, reset charInLine.
-      // Otherwise increment charInLine
-      var out = null;
-      var pos = 0;
-      for (var i = 0, n = plainText.length; i < n; ++i) {
-        var ch = plainText.charAt(i);
-
-        switch (ch) {
-          case '\t':
-            if (!out) { out = []; }
-            out.push(plainText.substring(pos, i));
-            // calculate how much space we need in front of this part
-            // nSpaces is the amount of padding -- the number of spaces needed
-            // to move us to the next column, where columns occur at factors of
-            // tabWidth.
-            var nSpaces = tabWidth - (charInLine % tabWidth);
-            charInLine += nSpaces;
-            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
-              out.push(SPACES.substring(0, nSpaces));
-            }
-            pos = i + 1;
-            break;
-          case '\n':
-            charInLine = 0;
-            break;
-          default:
-            ++charInLine;
-        }
-      }
-      if (!out) { return plainText; }
-      out.push(plainText.substring(pos));
-      return out.join('');
-    };
-  }
-
-  var pr_chunkPattern = new RegExp(
-      '[^<]+'  // A run of characters other than '<'
-      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
-      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
-      // a probable tag that should not be highlighted
-      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
-      + '|<',  // A '<' that does not begin a larger chunk
-      'g');
-  var pr_commentPrefix = /^<\!--/;
-  var pr_cdataPrefix = /^<!\[CDATA\[/;
-  var pr_brPrefix = /^<br\b/i;
-  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
-
-  /** split markup into chunks of html tags (style null) and
-    * plain text (style {@link #PR_PLAIN}), converting tags which are
-    * significant for tokenization (<br>) into their textual equivalent.
-    *
-    * @param {string} s html where whitespace is considered significant.
-    * @return {Object} source code and extracted tags.
-    * @private
-    */
-  function extractTags(s) {
-    // since the pattern has the 'g' modifier and defines no capturing groups,
-    // this will return a list of all chunks which we then classify and wrap as
-    // PR_Tokens
-    var matches = s.match(pr_chunkPattern);
-    var sourceBuf = [];
-    var sourceBufLen = 0;
-    var extractedTags = [];
-    if (matches) {
-      for (var i = 0, n = matches.length; i < n; ++i) {
-        var match = matches[i];
-        if (match.length > 1 && match.charAt(0) === '<') {
-          if (pr_commentPrefix.test(match)) { continue; }
-          if (pr_cdataPrefix.test(match)) {
-            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
-            sourceBuf.push(match.substring(9, match.length - 3));
-            sourceBufLen += match.length - 12;
-          } else if (pr_brPrefix.test(match)) {
-            // <br> tags are lexically significant so convert them to text.
-            // This is undone later.
-            sourceBuf.push('\n');
-            ++sourceBufLen;
-          } else {
-            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
-              // A <span class="nocode"> will start a section that should be
-              // ignored.  Continue walking the list until we see a matching end
-              // tag.
-              var name = match.match(pr_tagNameRe)[2];
-              var depth = 1;
-              var j;
-              end_tag_loop:
-              for (j = i + 1; j < n; ++j) {
-                var name2 = matches[j].match(pr_tagNameRe);
-                if (name2 && name2[2] === name) {
-                  if (name2[1] === '/') {
-                    if (--depth === 0) { break end_tag_loop; }
-                  } else {
-                    ++depth;
-                  }
-                }
-              }
-              if (j < n) {
-                extractedTags.push(
-                    sourceBufLen, matches.slice(i, j + 1).join(''));
-                i = j;
-              } else {  // Ignore unclosed sections.
-                extractedTags.push(sourceBufLen, match);
-              }
-            } else {
-              extractedTags.push(sourceBufLen, match);
-            }
-          }
-        } else {
-          var literalText = htmlToText(match);
-          sourceBuf.push(literalText);
-          sourceBufLen += literalText.length;
-        }
-      }
-    }
-    return { source: sourceBuf.join(''), tags: extractedTags };
-  }
-
-  /** True if the given tag contains a class attribute with the nocode class. */
-  function isNoCodeTag(tag) {
-    return !!tag
-        // First canonicalize the representation of attributes
-        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
-                 ' $1="$2$3$4"')
-        // Then look for the attribute we want.
-        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
-  }
-
-  /**
-   * Apply the given language handler to sourceCode and add the resulting
-   * decorations to out.
-   * @param {number} basePos the index of sourceCode within the chunk of source
-   *    whose decorations are already present on out.
-   */
-  function appendDecorations(basePos, sourceCode, langHandler, out) {
-    if (!sourceCode) { return; }
-    var job = {
-      source: sourceCode,
-      basePos: basePos
-    };
-    langHandler(job);
-    out.push.apply(out, job.decorations);
-  }
-
-  /** Given triples of [style, pattern, context] returns a lexing function,
-    * The lexing function interprets the patterns to find token boundaries and
-    * returns a decoration list of the form
-    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
-    * where index_n is an index into the sourceCode, and style_n is a style
-    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
-    * all characters in sourceCode[index_n-1:index_n].
-    *
-    * The stylePatterns is a list whose elements have the form
-    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
-    *
-    * Style is a style constant like PR_PLAIN, or can be a string of the
-    * form 'lang-FOO', where FOO is a language extension describing the
-    * language of the portion of the token in $1 after pattern executes.
-    * E.g., if style is 'lang-lisp', and group 1 contains the text
-    * '(hello (world))', then that portion of the token will be passed to the
-    * registered lisp handler for formatting.
-    * The text before and after group 1 will be restyled using this decorator
-    * so decorators should take care that this doesn't result in infinite
-    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
-    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
-    * '<script>foo()<\/script>', which would cause the current decorator to
-    * be called with '<script>' which would not match the same rule since
-    * group 1 must not be empty, so it would be instead styled as PR_TAG by
-    * the generic tag rule.  The handler registered for the 'js' extension would
-    * then be called with 'foo()', and finally, the current decorator would
-    * be called with '<\/script>' which would not match the original rule and
-    * so the generic tag rule would identify it as a tag.
-    *
-    * Pattern must only match prefixes, and if it matches a prefix, then that
-    * match is considered a token with the same style.
-    *
-    * Context is applied to the last non-whitespace, non-comment token
-    * recognized.
-    *
-    * Shortcut is an optional string of characters, any of which, if the first
-    * character, gurantee that this pattern and only this pattern matches.
-    *
-    * @param {Array} shortcutStylePatterns patterns that always start with
-    *   a known character.  Must have a shortcut string.
-    * @param {Array} fallthroughStylePatterns patterns that will be tried in
-    *   order if the shortcut ones fail.  May have shortcuts.
-    *
-    * @return {function (Object)} a
-    *   function that takes source code and returns a list of decorations.
-    */
-  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
-    var shortcuts = {};
-    var tokenizer;
-    (function () {
-      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
-      var allRegexs = [];
-      var regexKeys = {};
-      for (var i = 0, n = allPatterns.length; i < n; ++i) {
-        var patternParts = allPatterns[i];
-        var shortcutChars = patternParts[3];
-        if (shortcutChars) {
-          for (var c = shortcutChars.length; --c >= 0;) {
-            shortcuts[shortcutChars.charAt(c)] = patternParts;
-          }
-        }
-        var regex = patternParts[1];
-        var k = '' + regex;
-        if (!regexKeys.hasOwnProperty(k)) {
-          allRegexs.push(regex);
-          regexKeys[k] = null;
-        }
-      }
-      allRegexs.push(/[\0-\uffff]/);
-      tokenizer = combinePrefixPatterns(allRegexs);
-    })();
-
-    var nPatterns = fallthroughStylePatterns.length;
-    var notWs = /\S/;
-
-    /**
-     * Lexes job.source and produces an output array job.decorations of style
-     * classes preceded by the position at which they start in job.source in
-     * order.
-     *
-     * @param {Object} job an object like {@code
-     *    source: {string} sourceText plain text,
-     *    basePos: {int} position of job.source in the larger chunk of
-     *        sourceCode.
-     * }
-     */
-    var decorate = function (job) {
-      var sourceCode = job.source, basePos = job.basePos;
-      /** Even entries are positions in source in ascending order.  Odd enties
-        * are style markers (e.g., PR_COMMENT) that run from that position until
-        * the end.
-        * @type {Array.<number|string>}
-        */
-      var decorations = [basePos, PR_PLAIN];
-      var pos = 0;  // index into sourceCode
-      var tokens = sourceCode.match(tokenizer) || [];
-      var styleCache = {};
-
-      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
-        var token = tokens[ti];
-        var style = styleCache[token];
-        var match = void 0;
-
-        var isEmbedded;
-        if (typeof style === 'string') {
-          isEmbedded = false;
-        } else {
-          var patternParts = shortcuts[token.charAt(0)];
-          if (patternParts) {
-            match = token.match(patternParts[1]);
-            style = patternParts[0];
-          } else {
-            for (var i = 0; i < nPatterns; ++i) {
-              patternParts = fallthroughStylePatterns[i];
-              match = token.match(patternParts[1]);
-              if (match) {
-                style = patternParts[0];
-                break;
-              }
-            }
-
-            if (!match) {  // make sure that we make progress
-              style = PR_PLAIN;
-            }
-          }
-
-          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
-          if (isEmbedded && !(match && typeof match[1] === 'string')) {
-            isEmbedded = false;
-            style = PR_SOURCE;
-          }
-
-          if (!isEmbedded) { styleCache[token] = style; }
-        }
-
-        var tokenStart = pos;
-        pos += token.length;
-
-        if (!isEmbedded) {
-          decorations.push(basePos + tokenStart, style);
-        } else {  // Treat group 1 as an embedded block of source code.
-          var embeddedSource = match[1];
-          var embeddedSourceStart = token.indexOf(embeddedSource);
-          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
-          if (match[2]) {
-            // If embeddedSource can be blank, then it would match at the
-            // beginning which would cause us to infinitely recurse on the
-            // entire token, so we catch the right context in match[2].
-            embeddedSourceEnd = token.length - match[2].length;
-            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
-          }
-          var lang = style.substring(5);
-          // Decorate the left of the embedded source
-          appendDecorations(
-              basePos + tokenStart,
-              token.substring(0, embeddedSourceStart),
-              decorate, decorations);
-          // Decorate the embedded source
-          appendDecorations(
-              basePos + tokenStart + embeddedSourceStart,
-              embeddedSource,
-              langHandlerForExtension(lang, embeddedSource),
-              decorations);
-          // Decorate the right of the embedded section
-          appendDecorations(
-              basePos + tokenStart + embeddedSourceEnd,
-              token.substring(embeddedSourceEnd),
-              decorate, decorations);
-        }
-      }
-      job.decorations = decorations;
-    };
-    return decorate;
-  }
-
-  /** returns a function that produces a list of decorations from source text.
-    *
-    * This code treats ", ', and ` as string delimiters, and \ as a string
-    * escape.  It does not recognize perl's qq() style strings.
-    * It has no special handling for double delimiter escapes as in basic, or
-    * the tripled delimiters used in python, but should work on those regardless
-    * although in those cases a single string literal may be broken up into
-    * multiple adjacent string literals.
-    *
-    * It recognizes C, C++, and shell style comments.
-    *
-    * @param {Object} options a set of optional parameters.
-    * @return {function (Object)} a function that examines the source code
-    *     in the input job and builds the decoration list.
-    */
-  function sourceDecorator(options) {
-    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
-    if (options['tripleQuotedStrings']) {
-      // '''multi-line-string''', 'single-line-string', and double-quoted
-      shortcutStylePatterns.push(
-          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
-           null, '\'"']);
-    } else if (options['multiLineStrings']) {
-      // 'multi-line-string', "multi-line-string"
-      shortcutStylePatterns.push(
-          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
-           null, '\'"`']);
-    } else {
-      // 'single-line-string', "single-line-string"
-      shortcutStylePatterns.push(
-          [PR_STRING,
-           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
-           null, '"\'']);
-    }
-    if (options['verbatimStrings']) {
-      // verbatim-string-literal production from the C# grammar.  See issue 93.
-      fallthroughStylePatterns.push(
-          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
-    }
-    if (options['hashComments']) {
-      if (options['cStyleComments']) {
-        // Stop C preprocessor declarations at an unclosed open comment
-        shortcutStylePatterns.push(
-            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
-             null, '#']);
-        fallthroughStylePatterns.push(
-            [PR_STRING,
-             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
-             null]);
-      } else {
-        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
-      }
-    }
-    if (options['cStyleComments']) {
-      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
-      fallthroughStylePatterns.push(
-          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
-    }
-    if (options['regexLiterals']) {
-      var REGEX_LITERAL = (
-          // A regular expression literal starts with a slash that is
-          // not followed by * or / so that it is not confused with
-          // comments.
-          '/(?=[^/*])'
-          // and then contains any number of raw characters,
-          + '(?:[^/\\x5B\\x5C]'
-          // escape sequences (\x5C),
-          +    '|\\x5C[\\s\\S]'
-          // or non-nesting character sets (\x5B\x5D);
-          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
-          // finally closed by a /.
-          + '/');
-      fallthroughStylePatterns.push(
-          ['lang-regex',
-           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
-           ]);
-    }
-
-    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
-    if (keywords.length) {
-      fallthroughStylePatterns.push(
-          [PR_KEYWORD,
-           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
-    }
-
-    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
-    fallthroughStylePatterns.push(
-        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
-        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
-        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
-        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
-        [PR_LITERAL,
-         new RegExp(
-             '^(?:'
-             // A hex number
-             + '0x[a-f0-9]+'
-             // or an octal or decimal number,
-             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
-             // possibly in scientific notation
-             + '(?:e[+\\-]?\\d+)?'
-             + ')'
-             // with an optional modifier like UL for unsigned long
-             + '[a-z]*', 'i'),
-         null, '0123456789'],
-        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
-
-    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
-  }
-
-  var decorateSource = sourceDecorator({
-        'keywords': ALL_KEYWORDS,
-        'hashComments': true,
-        'cStyleComments': true,
-        'multiLineStrings': true,
-        'regexLiterals': true
-      });
-
-  /** Breaks {@code job.source} around style boundaries in
-    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
-    * and leaves the result in {@code job.prettyPrintedHtml}.
-    * @param {Object} job like {
-    *    source: {string} source as plain text,
-    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
-    *                   html preceded by their position in {@code job.source}
-    *                   in order
-    *    decorations: {Array.<number|string} an array of style classes preceded
-    *                 by the position at which they start in job.source in order
-    * }
-    * @private
-    */
-  function recombineTagsAndDecorations(job) {
-    var sourceText = job.source;
-    var extractedTags = job.extractedTags;
-    var decorations = job.decorations;
-
-    var html = [];
-    // index past the last char in sourceText written to html
-    var outputIdx = 0;
-
-    var openDecoration = null;
-    var currentDecoration = null;
-    var tagPos = 0;  // index into extractedTags
-    var decPos = 0;  // index into decorations
-    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
-
-    var adjacentSpaceRe = /([\r\n ]) /g;
-    var startOrSpaceRe = /(^| ) /gm;
-    var newlineRe = /\r\n?|\n/g;
-    var trailingSpaceRe = /[ \r\n]$/;
-    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
-
-    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
-    var isIE678 = window['_pr_isIE6']();
-    var lineBreakHtml = (
-        isIE678
-        ? (job.sourceNode.tagName === 'PRE'
-           // Use line feeds instead of <br>s so that copying and pasting works
-           // on IE.
-           // Doing this on other browsers breaks lots of stuff since \r\n is
-           // treated as two newlines on Firefox.
-           ? (isIE678 === 6 ? '&#160;\r\n' :
-              isIE678 === 7 ? '&#160;<br>\r' : '&#160;\r')
-           // IE collapses multiple adjacent <br>s into 1 line break.
-           // Prefix every newline with '&#160;' to prevent such behavior.
-           // &nbsp; is the same as &#160; but works in XML as well as HTML.
-           : '&#160;<br />')
-        : '<br />');
-
-    // Look for a class like linenums or linenums:<n> where <n> is the 1-indexed
-    // number of the first line.
-    var numberLines = job.sourceNode.className.match(/\blinenums\b(?::(\d+))?/);
-    var lineBreaker;
-    if (numberLines) {
-      var lineBreaks = [];
-      for (var i = 0; i < 10; ++i) {
-        lineBreaks[i] = lineBreakHtml + '</li><li class="L' + i + '">';
-      }
-      var lineNum = numberLines[1] && numberLines[1].length 
-          ? numberLines[1] - 1 : 0;  // Lines are 1-indexed
-      html.push('<ol class="linenums"><li class="L', (lineNum) % 10, '"');
-      if (lineNum) {
-        html.push(' value="', lineNum + 1, '"');
-      }
-      html.push('>');
-      lineBreaker = function () {
-        var lb = lineBreaks[++lineNum % 10];
-        // If a decoration is open, we need to close it before closing a list-item
-        // and reopen it on the other side of the list item.
-        return openDecoration
-            ? ('</span>' + lb + '<span class="' + openDecoration + '">') : lb;
-      };
-    } else {
-      lineBreaker = lineBreakHtml;
-    }
-
-    // A helper function that is responsible for opening sections of decoration
-    // and outputing properly escaped chunks of source
-    function emitTextUpTo(sourceIdx) {
-      if (sourceIdx > outputIdx) {
-        if (openDecoration && openDecoration !== currentDecoration) {
-          // Close the current decoration
-          html.push('</span>');
-          openDecoration = null;
-        }
-        if (!openDecoration && currentDecoration) {
-          openDecoration = currentDecoration;
-          html.push('<span class="', openDecoration, '">');
-        }
-        // This interacts badly with some wikis which introduces paragraph tags
-        // into pre blocks for some strange reason.
-        // It's necessary for IE though which seems to lose the preformattedness
-        // of <pre> tags when their innerHTML is assigned.
-        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
-        // and it serves to undo the conversion of <br>s to newlines done in
-        // chunkify.
-        var htmlChunk = textToHtml(
-            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
-            .replace(lastWasSpace
-                     ? startOrSpaceRe
-                     : adjacentSpaceRe, '$1&#160;');
-        // Keep track of whether we need to escape space at the beginning of the
-        // next chunk.
-        lastWasSpace = trailingSpaceRe.test(htmlChunk);
-        html.push(htmlChunk.replace(newlineRe, lineBreaker));
-        outputIdx = sourceIdx;
-      }
-    }
-
-    while (true) {
-      // Determine if we're going to consume a tag this time around.  Otherwise
-      // we consume a decoration or exit.
-      var outputTag;
-      if (tagPos < extractedTags.length) {
-        if (decPos < decorations.length) {
-          // Pick one giving preference to extractedTags since we shouldn't open
-          // a new style that we're going to have to immediately close in order
-          // to output a tag.
-          outputTag = extractedTags[tagPos] <= decorations[decPos];
-        } else {
-          outputTag = true;
-        }
-      } else {
-        outputTag = false;
-      }
-      // Consume either a decoration or a tag or exit.
-      if (outputTag) {
-        emitTextUpTo(extractedTags[tagPos]);
-        if (openDecoration) {
-          // Close the current decoration
-          html.push('</span>');
-          openDecoration = null;
-        }
-        html.push(extractedTags[tagPos + 1]);
-        tagPos += 2;
-      } else if (decPos < decorations.length) {
-        emitTextUpTo(decorations[decPos]);
-        currentDecoration = decorations[decPos + 1];
-        decPos += 2;
-      } else {
-        break;
-      }
-    }
-    emitTextUpTo(sourceText.length);
-    if (openDecoration) {
-      html.push('</span>');
-    }
-    if (numberLines) { html.push('</li></ol>'); }
-    job.prettyPrintedHtml = html.join('');
-  }
-
-  /** Maps language-specific file extensions to handlers. */
-  var langHandlerRegistry = {};
-  /** Register a language handler for the given file extensions.
-    * @param {function (Object)} handler a function from source code to a list
-    *      of decorations.  Takes a single argument job which describes the
-    *      state of the computation.   The single parameter has the form
-    *      {@code {
-    *        source: {string} as plain text.
-    *        decorations: {Array.<number|string>} an array of style classes
-    *                     preceded by the position at which they start in
-    *                     job.source in order.
-    *                     The language handler should assigned this field.
-    *        basePos: {int} the position of source in the larger source chunk.
-    *                 All positions in the output decorations array are relative
-    *                 to the larger source chunk.
-    *      } }
-    * @param {Array.<string>} fileExtensions
-    */
-  function registerLangHandler(handler, fileExtensions) {
-    for (var i = fileExtensions.length; --i >= 0;) {
-      var ext = fileExtensions[i];
-      if (!langHandlerRegistry.hasOwnProperty(ext)) {
-        langHandlerRegistry[ext] = handler;
-      } else if ('console' in window) {
-        console['warn']('cannot override language handler %s', ext);
-      }
-    }
-  }
-  function langHandlerForExtension(extension, source) {
-    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
-      // Treat it as markup if the first non whitespace character is a < and
-      // the last non-whitespace character is a >.
-      extension = /^\s*</.test(source)
-          ? 'default-markup'
-          : 'default-code';
-    }
-    return langHandlerRegistry[extension];
-  }
-  registerLangHandler(decorateSource, ['default-code']);
-  registerLangHandler(
-      createSimpleLexer(
-          [],
-          [
-           [PR_PLAIN,       /^[^<?]+/],
-           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
-           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
-           // Unescaped content in an unknown language
-           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
-           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
-           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
-           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
-           // Unescaped content in javascript.  (Or possibly vbscript).
-           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
-           // Contains unescaped stylesheet content
-           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
-           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
-          ]),
-      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
-  registerLangHandler(
-      createSimpleLexer(
-          [
-           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
-           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
-           ],
-          [
-           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
-           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
-           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
-           [PR_PUNCTUATION,  /^[=<>\/]+/],
-           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
-           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
-           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
-           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
-           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
-           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
-           ]),
-      ['in.tag']);
-  registerLangHandler(
-      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
-  registerLangHandler(sourceDecorator({
-          'keywords': CPP_KEYWORDS,
-          'hashComments': true,
-          'cStyleComments': true
-        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
-  registerLangHandler(sourceDecorator({
-          'keywords': 'null true false'
-        }), ['json']);
-  registerLangHandler(sourceDecorator({
-          'keywords': CSHARP_KEYWORDS,
-          'hashComments': true,
-          'cStyleComments': true,
-          'verbatimStrings': true
-        }), ['cs']);
-  registerLangHandler(sourceDecorator({
-          'keywords': JAVA_KEYWORDS,
-          'cStyleComments': true
-        }), ['java']);
-  registerLangHandler(sourceDecorator({
-          'keywords': SH_KEYWORDS,
-          'hashComments': true,
-          'multiLineStrings': true
-        }), ['bsh', 'csh', 'sh']);
-  registerLangHandler(sourceDecorator({
-          'keywords': PYTHON_KEYWORDS,
-          'hashComments': true,
-          'multiLineStrings': true,
-          'tripleQuotedStrings': true
-        }), ['cv', 'py']);
-  registerLangHandler(sourceDecorator({
-          'keywords': PERL_KEYWORDS,
-          'hashComments': true,
-          'multiLineStrings': true,
-          'regexLiterals': true
-        }), ['perl', 'pl', 'pm']);
-  registerLangHandler(sourceDecorator({
-          'keywords': RUBY_KEYWORDS,
-          'hashComments': true,
-          'multiLineStrings': true,
-          'regexLiterals': true
-        }), ['rb']);
-  registerLangHandler(sourceDecorator({
-          'keywords': JSCRIPT_KEYWORDS,
-          'cStyleComments': true,
-          'regexLiterals': true
-        }), ['js']);
-  registerLangHandler(
-      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
-
-  function applyDecorator(job) {
-    var sourceCodeHtml = job.sourceCodeHtml;
-    var opt_langExtension = job.langExtension;
-
-    // Prepopulate output in case processing fails with an exception.
-    job.prettyPrintedHtml = sourceCodeHtml;
-
-    try {
-      // Extract tags, and convert the source code to plain text.
-      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
-      /** Plain text. @type {string} */
-      var source = sourceAndExtractedTags.source;
-      job.source = source;
-      job.basePos = 0;
-
-      /** Even entries are positions in source in ascending order.  Odd entries
-        * are tags that were extracted at that position.
-        * @type {Array.<number|string>}
-        */
-      job.extractedTags = sourceAndExtractedTags.tags;
-
-      // Apply the appropriate language handler
-      langHandlerForExtension(opt_langExtension, source)(job);
-      // Integrate the decorations and tags back into the source code to produce
-      // a decorated html string which is left in job.prettyPrintedHtml.
-      recombineTagsAndDecorations(job);
-    } catch (e) {
-      if ('console' in window) {
-        console['log'](e && e['stack'] ? e['stack'] : e);
-      }
-    }
-  }
-
-  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
-    var job = {
-      sourceCodeHtml: sourceCodeHtml,
-      langExtension: opt_langExtension
-    };
-    applyDecorator(job);
-    return job.prettyPrintedHtml;
-  }
-
-  function prettyPrint(opt_whenDone) {
-    function byTagName(tn) { return document.getElementsByTagName(tn); }
-    // fetch a list of nodes to rewrite
-    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
-    var elements = [];
-    for (var i = 0; i < codeSegments.length; ++i) {
-      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
-        elements.push(codeSegments[i][j]);
-      }
-    }
-    codeSegments = null;
-
-    var clock = Date;
-    if (!clock['now']) {
-      clock = { 'now': function () { return (new Date).getTime(); } };
-    }
-
-    // The loop is broken into a series of continuations to make sure that we
-    // don't make the browser unresponsive when rewriting a large page.
-    var k = 0;
-    var prettyPrintingJob;
-
-    function doWork() {
-      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
-                     clock.now() + 250 /* ms */ :
-                     Infinity);
-      for (; k < elements.length && clock.now() < endTime; k++) {
-        var cs = elements[k];
-        // [JACOCO] 'prettyprint' -> 'source' 
-        if (cs.className && cs.className.indexOf('source') >= 0) {
-          // If the classes includes a language extensions, use it.
-          // Language extensions can be specified like
-          //     <pre class="prettyprint lang-cpp">
-          // the language extension "cpp" is used to find a language handler as
-          // passed to PR_registerLangHandler.
-          var langExtension = cs.className.match(/\blang-(\w+)\b/);
-          if (langExtension) { langExtension = langExtension[1]; }
-
-          // make sure this is not nested in an already prettified element
-          var nested = false;
-          for (var p = cs.parentNode; p; p = p.parentNode) {
-            if ((p.tagName === 'pre' || p.tagName === 'code' ||
-                 p.tagName === 'xmp') &&
-                // [JACOCO] 'prettyprint' -> 'source' 
-                p.className && p.className.indexOf('source') >= 0) {
-              nested = true;
-              break;
-            }
-          }
-          if (!nested) {
-            // fetch the content as a snippet of properly escaped HTML.
-            // Firefox adds newlines at the end.
-            var content = getInnerHtml(cs);
-            content = content.replace(/(?:\r\n?|\n)$/, '');
-
-            // do the pretty printing
-            prettyPrintingJob = {
-              sourceCodeHtml: content,
-              langExtension: langExtension,
-              sourceNode: cs
-            };
-            applyDecorator(prettyPrintingJob);
-            replaceWithPrettyPrintedHtml();
-          }
-        }
-      }
-      if (k < elements.length) {
-        // finish up in a continuation
-        setTimeout(doWork, 250);
-      } else if (opt_whenDone) {
-        opt_whenDone();
-      }
-    }
-
-    function replaceWithPrettyPrintedHtml() {
-      var newContent = prettyPrintingJob.prettyPrintedHtml;
-      if (!newContent) { return; }
-      var cs = prettyPrintingJob.sourceNode;
-
-      // push the prettified html back into the tag.
-      if (!isRawContent(cs)) {
-        // just replace the old html with the new
-        cs.innerHTML = newContent;
-      } else {
-        // we need to change the tag to a <pre> since <xmp>s do not allow
-        // embedded tags such as the span tags used to attach styles to
-        // sections of source code.
-        var pre = document.createElement('PRE');
-        for (var i = 0; i < cs.attributes.length; ++i) {
-          var a = cs.attributes[i];
-          if (a.specified) {
-            var aname = a.name.toLowerCase();
-            if (aname === 'class') {
-              pre.className = a.value;  // For IE 6
-            } else {
-              pre.setAttribute(a.name, a.value);
-            }
-          }
-        }
-        pre.innerHTML = newContent;
-
-        // remove the old
-        cs.parentNode.replaceChild(pre, cs);
-        cs = pre;
-      }
-    }
-
-    doWork();
-  }
-
-  window['PR_normalizedHtml'] = normalizedHtml;
-  window['prettyPrintOne'] = prettyPrintOne;
-  window['prettyPrint'] = prettyPrint;
-  window['PR'] = {
-        'combinePrefixPatterns': combinePrefixPatterns,
-        'createSimpleLexer': createSimpleLexer,
-        'registerLangHandler': registerLangHandler,
-        'sourceDecorator': sourceDecorator,
-        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
-        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
-        'PR_COMMENT': PR_COMMENT,
-        'PR_DECLARATION': PR_DECLARATION,
-        'PR_KEYWORD': PR_KEYWORD,
-        'PR_LITERAL': PR_LITERAL,
-        'PR_NOCODE': PR_NOCODE,
-        'PR_PLAIN': PR_PLAIN,
-        'PR_PUNCTUATION': PR_PUNCTUATION,
-        'PR_SOURCE': PR_SOURCE,
-        'PR_STRING': PR_STRING,
-        'PR_TAG': PR_TAG,
-        'PR_TYPE': PR_TYPE
-      };
-})();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/redbar.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/redbar.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/redbar.gif
deleted file mode 100644
index c2f7146..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/redbar.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/report.css
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/report.css b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/report.css
deleted file mode 100644
index 08eba79..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/report.css
+++ /dev/null
@@ -1,243 +0,0 @@
-body, td {
-  font-family:sans-serif;
-  font-size:10pt;
-}
-
-h1 {
-  font-weight:bold;
-  font-size:18pt;
-}
-
-.breadcrumb {
-  border:#d6d3ce 1px solid;
-  padding:2px 4px 2px 4px;
-}
-
-.breadcrumb .info {
-  float:right;
-}
-
-.breadcrumb .info a {
-  margin-left:8px;
-}
-
-.el_report {
-  padding-left:18px;
-  background-image:url(report.gif);
-  background-position:left center;
-  background-repeat:no-repeat;
-}
-
-.el_group {
-  padding-left:18px;
-  background-image:url(group.gif);
-  background-position:left center;
-  background-repeat:no-repeat;
-}
-
-.el_bundle {
-  padding-left:18px;
-  background-image:url(bundle.gif);
-  background-position:left center;
-  background-repeat:no-repeat;
-}
-
-.el_package {
-  padding-left:18px;
-  background-image:url(package.gif);
-  background-position:left center;
-  background-repeat:no-repeat;
-}
-
-.el_class {
-  padding-left:18px;
-  background-image:url(class.gif);
-  background-position:left center;
-  background-repeat:no-repeat;
-}
-
-.el_source {
-  padding-left:18px;
-  background-image:url(source.gif);
-  background-position:left center;
-  background-repeat:no-repeat;
-}
-
-.el_method {
-  padding-left:18px;
-  background-image:url(method.gif);
-  background-position:left center;
-  background-repeat:no-repeat;
-}
-
-.el_session {
-  padding-left:18px;
-  background-image:url(session.gif);
-  background-position:left center;
-  background-repeat:no-repeat;
-}
-
-pre.source {
-  border:#d6d3ce 1px solid;
-  font-family:monospace;
-}
-
-pre.source ol {
-  margin-bottom: 0px;
-  margin-top: 0px;
-}
-
-pre.source li {
-  border-left: 1px solid #D6D3CE;
-  color: #A0A0A0;
-  padding-left: 0px;
-}
-
-pre.source span.fc {
-  background-color:#ccffcc;
-}
-
-pre.source span.nc {
-  background-color:#ffaaaa;
-}
-
-pre.source span.pc {
-  background-color:#ffffcc;
-}
-
-pre.source span.bfc {
-  background-image: url(branchfc.gif);
-  background-repeat: no-repeat;
-  background-position: 2px center;
-}
-
-pre.source span.bfc:hover {
-  background-color:#80ff80;
-}
-
-pre.source span.bnc {
-  background-image: url(branchnc.gif);
-  background-repeat: no-repeat;
-  background-position: 2px center;
-}
-
-pre.source span.bnc:hover {
-  background-color:#ff8080;
-}
-
-pre.source span.bpc {
-  background-image: url(branchpc.gif);
-  background-repeat: no-repeat;
-  background-position: 2px center;
-}
-
-pre.source span.bpc:hover {
-  background-color:#ffff80;
-}
-
-table.coverage {
-  empty-cells:show;
-  border-collapse:collapse; 
-}
-
-table.coverage thead {
-  background-color:#e0e0e0;
-}
-
-table.coverage thead td {
-  white-space:nowrap;
-  padding:2px 14px 0px 6px;
-  border-bottom:#b0b0b0 1px solid;
-}
-
-table.coverage thead td.bar {
-  border-left:#cccccc 1px solid;
-}
-
-table.coverage thead td.ctr1 {
-  text-align:right;
-  border-left:#cccccc 1px solid;
-}
-
-table.coverage thead td.ctr2 {
-  text-align:right;
-  padding-left:2px;
-}
-
-table.coverage thead td.sortable {
-  cursor:pointer;
-  background-image:url(sort.gif);
-  background-position:right center;
-  background-repeat:no-repeat;
-}
-
-table.coverage thead td.up {
-  background-image:url(up.gif);
-}
-
-table.coverage thead td.down {
-  background-image:url(down.gif);
-}
-
-table.coverage tbody td {
-  white-space:nowrap;
-  padding:2px 6px 2px 6px;
-  border-bottom:#d6d3ce 1px solid;
-}
-
-table.coverage tbody tr:hover { 
-  background: #f0f0d0 !important;
-}
-
-table.coverage tbody td.bar {
-  border-left:#e8e8e8 1px solid;
-}
-
-table.coverage tbody td.ctr1 {
-  text-align:right;
-  padding-right:14px;
-  border-left:#e8e8e8 1px solid;
-}
-
-table.coverage tbody td.ctr2 {
-  text-align:right;
-  padding-right:14px;
-  padding-left:2px;
-}
-
-table.coverage tfoot td {
-  white-space:nowrap;
-  padding:2px 6px 2px 6px;
-}
-
-table.coverage tfoot td.bar {
-  border-left:#e8e8e8 1px solid;
-}
-
-table.coverage tfoot td.ctr1 {
-  text-align:right;
-  padding-right:14px;
-  border-left:#e8e8e8 1px solid;
-}
-
-table.coverage tfoot td.ctr2 {
-  text-align:right;
-  padding-right:14px;
-  padding-left:2px;
-}
-
-.footer {
-  margin-top:20px;
-  border-top:#d6d3ce 1px solid;
-  padding-top:2px;
-  font-size:8pt;
-  color:#a0a0a0;
-}
-
-.footer a {
-  color:#a0a0a0;
-}
-
-.right {
-  float:right;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/report.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/report.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/report.gif
deleted file mode 100644
index 8547be5..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/report.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/session.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/session.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/session.gif
deleted file mode 100644
index 0151bad..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/session.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/sort.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/sort.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/sort.gif
deleted file mode 100644
index 6757c2c..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/sort.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/sort.js
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/sort.js b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/sort.js
deleted file mode 100644
index 511e47c..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/sort.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2015 Mountainminds GmbH & Co. KG and Contributors
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Marc R. Hoffmann - initial API and implementation
- *    
- *******************************************************************************/
-
-(function () {
-
-  /**
-   * Sets the initial sorting derived from the hash.
-   *
-   * @param linkelementids
-   *          list of element ids to search for links to add sort inidcator
-   *          hash links   
-   */  
-  function initialSort(linkelementids) {
-    window.linkelementids = linkelementids;
-    var hash = window.location.hash;
-    if (hash) {
-      var m = hash.match(/up-./);
-      if (m) {
-        var header = window.document.getElementById(m[0].charAt(3));
-        if (header) {
-          sortColumn(header, true);
-        }
-        return;
-      }
-      var m = hash.match(/dn-./);
-      if (m) {
-        var header = window.document.getElementById(m[0].charAt(3));
-        if (header) {
-          sortColumn(header, false);
-        }
-        return
-      }
-    }
-  }
-
-  /**
-   * Sorts the columns with the given header dependening on the current sort state.
-   */  
-  function toggleSort(header) {
-    var sortup = header.className.indexOf('down ') == 0;
-    sortColumn(header, sortup);
-  }
-
-  /**
-   * Sorts the columns with the given header in the given direction.
-   */  
-  function sortColumn(header, sortup) {
-    var table = header.parentNode.parentNode.parentNode;
-    var body = table.tBodies[0];
-    var colidx = getNodePosition(header);
-    
-    resetSortedStyle(table);
-    
-    var rows = body.rows;
-    var sortedrows = [];
-    for (var i = 0; i < rows.length; i++) {
-      r = rows[i];
-      sortedrows[parseInt(r.childNodes[colidx].id.slice(1))] = r;
-    }
-    
-    var hash;
-    
-    if (sortup) {
-      for (var i = sortedrows.length - 1; i >= 0; i--) {
-        body.appendChild(sortedrows[i]);
-      }
-      header.className = 'up ' + header.className;
-      hash = 'up-' + header.id;
-    } else {
-      for (var i = 0; i < sortedrows.length; i++) {
-        body.appendChild(sortedrows[i]);
-      }
-      header.className = 'down ' + header.className;
-      hash = 'dn-' + header.id;
-    }
-    
-    setHash(hash);
-  }
-
-  /**
-   * Adds the sort indicator as a hash to the document URL and all links.
-   */
-  function setHash(hash) {
-    window.document.location.hash = hash;
-    ids = window.linkelementids;
-    for (var i = 0; i < ids.length; i++) {
-        setHashOnAllLinks(document.getElementById(ids[i]), hash);
-    }
-  }
-
-  /**
-   * Extend all links within the given tag with the given hash.
-   */
-  function setHashOnAllLinks(tag, hash) {
-    links = tag.getElementsByTagName("a");
-    for (var i = 0; i < links.length; i++) {
-        var a = links[i];
-        var href = a.href;
-        var hashpos = href.indexOf("#");
-        if (hashpos != -1) {
-            href = href.substring(0, hashpos);
-        } 
-        a.href = href + "#" + hash;
-    }
-  }
-
-  /**
-   * Calculates the position of a element within its parent.
-   */  
-  function getNodePosition(element) {
-    var pos = -1;
-    while (element) {
-      element = element.previousSibling;
-      pos++;
-    }
-    return pos;
-  }
-
-  /**
-   * Remove the sorting indicator style from all headers.
-   */
-  function resetSortedStyle(table) {
-    for (var c = table.tHead.firstChild.firstChild; c; c = c.nextSibling) {
-      if (c.className) {
-        if (c.className.indexOf('down ') == 0) {
-          c.className = c.className.slice(5);
-        }
-        if (c.className.indexOf('up ') == 0) {
-          c.className = c.className.slice(3);
-        }
-      }
-    }
-  }
-  
-  window['initialSort'] = initialSort;
-  window['toggleSort'] = toggleSort;
-
-})();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/source.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/source.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/source.gif
deleted file mode 100644
index b226e41..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/source.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/up.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/up.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/up.gif
deleted file mode 100644
index 58ed216..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/up.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.sessions.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.sessions.html b/com.ibm.team.juno.releng/build/test/jacoco/results/.sessions.html
deleted file mode 100644
index 9a60007..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/.sessions.html
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href=".resources/report.css" type="text/css"/><link rel="shortcut icon" href=".resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href=".sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">Juneau</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">jamesbognar-ltm.internal.salesforce.com-caf6922</span></td><td>Jul
  24, 2016 4:56:35 PM</td><td>Jul 24, 2016 4:56:37 PM</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">org.apache.juneau.BeanContext</span></td><td><code>0c75d89b29ca9843</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ClassMeta</span></td><td><code>87dcb5708188f4dd</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ClassMeta.ClassCategory</span></td><td><code>bba3740fabffd619</code></td></tr><tr><td><span class="el_class">org.apache.juneau.Context</span></td><td><code>4beef9699cf62c90</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ContextFactory</span></td><td><code>afc7e92db4a34781</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ContextFactory.1</span></td><td><code>a3b8758766f0c19d</code></td></tr><tr><td><span class="el_class">org.apache.
 juneau.ContextFactory.Property</span></td><td><code>360ba4fb6ee19b7a</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ContextFactory.PropertyMap</span></td><td><code>d26b2a8beb275044</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ContextFactory.SetProperty</span></td><td><code>cc8b5eed91241357</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ContextFactory.SimpleProperty</span></td><td><code>b276a8586f8822b5</code></td></tr><tr><td><span class="el_class">org.apache.juneau.CoreApi</span></td><td><code>e35b247482ccb10a</code></td></tr><tr><td><span class="el_class">org.apache.juneau.Lockable</span></td><td><code>8b3997646b3102b0</code></td></tr><tr><td><span class="el_class">org.apache.juneau.MediaRange</span></td><td><code>9ee151a83d43abd0</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ObjectMap</span></td><td><code>98bf6f82593335a5</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ObjectMap.1</span></
 td><td><code>b37325fbf8015e57</code></td></tr><tr><td><span class="el_class">org.apache.juneau.Visibility</span></td><td><code>490fb5697ec19aad</code></td></tr><tr><td><span class="el_class">org.apache.juneau.Visibility.1</span></td><td><code>c72c0277abd772d8</code></td></tr><tr><td><span class="el_class">org.apache.juneau.html.HtmlClassMeta</span></td><td><code>d3519cc656f386ca</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ini.ConfigMgr</span></td><td><code>dfcfa8b4d2f5aa95</code></td></tr><tr><td><span class="el_class">org.apache.juneau.ini.XorEncoder</span></td><td><code>cf93686d5bdb9852</code></td></tr><tr><td><span class="el_class">org.apache.juneau.internal.ClassUtils</span></td><td><code>471f8262ffdb4a78</code></td></tr><tr><td><span class="el_class">org.apache.juneau.internal.ClassUtils.ClassComparator</span></td><td><code>86f6292677771397</code></td></tr><tr><td><span class="el_class">org.apache.juneau.internal.CollectionUtils</span></td><td><code>5797c1b
 17fc3585f</code></td></tr><tr><td><span class="el_class">org.apache.juneau.internal.HashCode</span></td><td><code>2a90c4c53c870657</code></td></tr><tr><td><span class="el_class">org.apache.juneau.internal.ReflectionUtils</span></td><td><code>03813721f730947e</code></td></tr><tr><td><span class="el_class">org.apache.juneau.jena.RdfClassMeta</span></td><td><code>0964dc96b7edd67c</code></td></tr><tr><td><span class="el_class">org.apache.juneau.jena.RdfCollectionFormat</span></td><td><code>211296ebd4c11aa9</code></td></tr><tr><td><span class="el_class">org.apache.juneau.jena.RdfUtils</span></td><td><code>24235b50d224966a</code></td></tr><tr><td><span class="el_class">org.apache.juneau.json.JsonClassMeta</span></td><td><code>01c202a99187f922</code></td></tr><tr><td><span class="el_class">org.apache.juneau.json.JsonParser</span></td><td><code>4815b7c79df375bb</code></td></tr><tr><td><span class="el_class">org.apache.juneau.json.JsonSerializer</span></td><td><code>08c0e4dbef009627</code></
 td></tr><tr><td><span class="el_class">org.apache.juneau.json.JsonSerializer.Readable</span></td><td><code>b6456fae4b7e1143</code></td></tr><tr><td><span class="el_class">org.apache.juneau.json.JsonSerializer.Simple</span></td><td><code>123c73c5e85a5105</code></td></tr><tr><td><span class="el_class">org.apache.juneau.json.JsonSerializer.SimpleReadable</span></td><td><code>22757ec3f09ebdcb</code></td></tr><tr><td><span class="el_class">org.apache.juneau.json.JsonSerializer.SimpleReadableSafe</span></td><td><code>81266d8a92193888</code></td></tr><tr><td><span class="el_class">org.apache.juneau.microservice.Microservice</span></td><td><code>c55e9e1d6ff84ab0</code></td></tr><tr><td><span class="el_class">org.apache.juneau.microservice.RestMicroservice</span></td><td><code>fc6858951f8c3cc9</code></td></tr><tr><td><span class="el_class">org.apache.juneau.parser.Parser</span></td><td><code>d8d41885b8dd00d4</code></td></tr><tr><td><span class="el_class">org.apache.juneau.parser.ReaderParser
 </span></td><td><code>71845893546e5b7c</code></td></tr><tr><td><span class="el_class">org.apache.juneau.serializer.Serializer</span></td><td><code>56e742052b8268f7</code></td></tr><tr><td><span class="el_class">org.apache.juneau.serializer.WriterSerializer</span></td><td><code>4d0e31105c5fa3f5</code></td></tr><tr><td><span class="el_class">org.apache.juneau.urlencoding.UrlEncodingClassMeta</span></td><td><code>c27725e8dce76b63</code></td></tr><tr><td><span class="el_class">org.apache.juneau.utils.Args</span></td><td><code>177daa23eaf40ca4</code></td></tr><tr><td><span class="el_class">org.apache.juneau.utils.ManifestFile</span></td><td><code>b007c167475eeae6</code></td></tr><tr><td><span class="el_class">org.apache.juneau.xml.XmlClassMeta</span></td><td><code>00886a54efc2eca7</code></td></tr><tr><td><span class="el_class">org.apache.juneau.xml.XmlUtils</span></td><td><code>7c529d06c95094c3</code></td></tr><tr><td><span class="el_class">org.apache.juneau.xml.annotation.XmlFormat</spa
 n></td><td><code>3fc4eab6ffba144b</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.5.201505241946</span></div></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/Client/index.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/Client/index.html b/com.ibm.team.juno.releng/build/test/jacoco/results/Client/index.html
deleted file mode 100644
index ee983b0..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/Client/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>Client</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Juneau</a> &gt; <span class="el_bundle">Client</span></div><h1>Client</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" oncli
 ck="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td></tr></tfoot><tbody/></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.5.201505241946</span></div></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/Core/index.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/Core/index.html b/com.ibm.team.juno.releng/build/test/jacoco/results/Core/index.html
deleted file mode 100644
index 2f6d81e..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/Core/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>Core</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Juneau</a> &gt; <span class="el_bundle">Core</span></div><h1>Core</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="to
 ggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td></tr></tfoot><tbody/></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.5.201505241946</span></div></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/Server/index.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/Server/index.html b/com.ibm.team.juno.releng/build/test/jacoco/results/Server/index.html
deleted file mode 100644
index d54068e..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/Server/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>Server</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Juneau</a> &gt; <span class="el_bundle">Server</span></div><h1>Server</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" oncli
 ck="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td></tr></tfoot><tbody/></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.5.201505241946</span></div></body></html>
\ No newline at end of file


[03/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Meter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Meter.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Meter.java
deleted file mode 100644
index 7f3ac0b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Meter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Meter extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Nav.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Nav.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Nav.java
deleted file mode 100644
index 6187d51..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Nav.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Nav extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Noscript.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Noscript.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Noscript.java
deleted file mode 100644
index e5a9c45..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Noscript.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Noscript extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Object.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Object.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Object.java
deleted file mode 100644
index 11a3ed0..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Object.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Object extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ol.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ol.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ol.java
deleted file mode 100644
index 2203849..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ol.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Ol extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Optgroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Optgroup.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Optgroup.java
deleted file mode 100644
index bd46cea..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Optgroup.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Optgroup extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Option.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Option.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Option.java
deleted file mode 100644
index c00ba9c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Option.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Option extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Output.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Output.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Output.java
deleted file mode 100644
index 920b1d3..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Output.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Output extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/P.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/P.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/P.java
deleted file mode 100644
index 86f5126..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/P.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class P extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Param.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Param.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Param.java
deleted file mode 100644
index 9ea876b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Param.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Param extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Pre.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Pre.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Pre.java
deleted file mode 100644
index 2096a17..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Pre.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Pre extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Progress.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Progress.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Progress.java
deleted file mode 100644
index 3646bee..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Progress.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Progress extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Q.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Q.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Q.java
deleted file mode 100644
index add1040..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Q.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Q extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Rp.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Rp.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Rp.java
deleted file mode 100644
index fdeae0a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Rp.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Rp extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Rt.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Rt.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Rt.java
deleted file mode 100644
index 1ca64ff..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Rt.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Rt extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ruby.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ruby.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ruby.java
deleted file mode 100644
index ae3dc4f..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ruby.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Ruby extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/S.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/S.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/S.java
deleted file mode 100644
index 7ac35f0..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/S.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class S extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Samp.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Samp.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Samp.java
deleted file mode 100644
index 2113f94..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Samp.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Samp extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Script.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Script.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Script.java
deleted file mode 100644
index dcbfca2..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Script.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Script extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Section.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Section.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Section.java
deleted file mode 100644
index 6f385d3..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Section.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Section extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Select.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Select.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Select.java
deleted file mode 100644
index 621c6b4..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Select.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Select extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Small.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Small.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Small.java
deleted file mode 100644
index c55c100..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Small.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Small extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Source.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Source.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Source.java
deleted file mode 100644
index 8f5b54b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Source.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Source extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Span.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Span.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Span.java
deleted file mode 100644
index 3a0ea97..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Span.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Span extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Strong.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Strong.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Strong.java
deleted file mode 100644
index 3e1c2da..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Strong.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Strong extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Style.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Style.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Style.java
deleted file mode 100644
index 8d2b900..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Style.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Style extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Sub.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Sub.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Sub.java
deleted file mode 100644
index a074e6d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Sub.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Sub extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Summary.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Summary.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Summary.java
deleted file mode 100644
index 528859e..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Summary.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Summary extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Sup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Sup.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Sup.java
deleted file mode 100644
index abff4d7..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Sup.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Sup extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Table.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Table.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Table.java
deleted file mode 100644
index 4e9c699..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Table.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Table extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tbody.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tbody.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tbody.java
deleted file mode 100644
index 7987f6a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tbody.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Tbody extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Td.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Td.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Td.java
deleted file mode 100644
index 42cb8d2..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Td.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Td extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Textarea.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Textarea.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Textarea.java
deleted file mode 100644
index fbad17b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Textarea.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Textarea extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tfoot.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tfoot.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tfoot.java
deleted file mode 100644
index ad7ef55..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tfoot.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Tfoot extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Th.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Th.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Th.java
deleted file mode 100644
index 19ff38d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Th.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Th extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Thead.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Thead.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Thead.java
deleted file mode 100644
index df9b32b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Thead.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Thead extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Time.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Time.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Time.java
deleted file mode 100644
index 1e2ee72..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Time.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Time extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Title.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Title.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Title.java
deleted file mode 100644
index 24619a8..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Title.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Title extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tr.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tr.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tr.java
deleted file mode 100644
index e27d7b6..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Tr.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Tr extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Track.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Track.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Track.java
deleted file mode 100644
index add86c0..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Track.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Track extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/U.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/U.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/U.java
deleted file mode 100644
index 1fa5e19..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/U.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class U extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ul.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ul.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ul.java
deleted file mode 100644
index 7e4f820..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ul.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Ul extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Var.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Var.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Var.java
deleted file mode 100644
index eeaac40..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Var.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Var extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Video.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Video.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Video.java
deleted file mode 100644
index d03de13..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Video.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Video extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Wbr.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Wbr.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Wbr.java
deleted file mode 100644
index d95eaf7..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Wbr.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Wbr extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/X.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/X.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/X.java
deleted file mode 100644
index 4960105..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/X.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class X extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/package.html
deleted file mode 100644
index a721d71..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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>HTML Data Transfer Objects</p>
-</body>
-</html>
\ No newline at end of file


[11/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/Visibility.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/Visibility.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/Visibility.java
deleted file mode 100644
index 03a927f..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/Visibility.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-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 BeanContext#BEAN_beanConstructorVisibility}
- * 	<li>{@link BeanContext#BEAN_beanClassVisibility}
- * 	<li>{@link BeanContext#BEAN_beanFieldVisibility}
- * 	<li>{@link BeanContext#BEAN_methodVisibility}
- * </ul>
- *
- * @author James Bognar (james.bognar@salesforce.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> transform(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 transform(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 transform(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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/Writable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/Writable.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/Writable.java
deleted file mode 100644
index a14e544..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/Writable.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Bean.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Bean.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Bean.java
deleted file mode 100644
index 55b6468..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Bean.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.beans.*;
-import java.lang.annotation.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.transform.*;
-
-/**
- * Used to tailor how beans get interpreted by the framework.
- * <p>
- * 	Can be used to do the following:
- * <ul class='spaced-list'>
- * 	<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 (james.bognar@salesforce.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 BeanTransform} class with an implemented {@link BeanTransform#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 {};
-
-	/**
-	 * Sort bean properties in alphabetical order.
-	 * <p>
-	 * 	When <jk>true</jk>, all bean properties will be serialized and access in alphabetical order.
-	 * 	Otherwise, the natural order of the bean properties is used which is dependent on the
-	 * 		JVM vendor.
-	 * 	On IBM JVMs, the bean properties are ordered based on their ordering in the Java file.
-	 * 	On Oracle JVMs, the bean properties are not ordered (which follows the offical JVM specs).
-	 * <p>
-	 * 	This property is disabled by default so that IBM JVM users don't have to use {@link Bean @Bean} annotations
-	 * 	to force bean properties to be in a particular order and can just alter the order of the fields/methods
-	 * 	in the Java file.
-	 * <p>
-	 * 	This annotation is equivalent to using the {@link BeanContext#BEAN_sortProperties} property, but
-	 * 	applied to individual classes instead of globally at the serializer or parser level.
-	 */
-	boolean sort() default false;
-
-	/**
-	 * Specifies a list of properties that should be excluded from {@link BeanMap#entrySet()}.
-	 * <p>
-	 * 	This annotation is an alternative to using the {@link BeanTransform} class with an implemented {@link BeanTransform#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 BeanTransform} class with an implemented {@link BeanTransform#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>
-	 * 	The following shows what happens when serializing a subclassed object to JSON:
-	 * <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 BeanTransform} class with an implemented {@link BeanTransform#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 BeanTransform} class with an implemented {@link BeanTransform#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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanConstructor.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanConstructor.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanConstructor.java
deleted file mode 100644
index 875bbe4..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanConstructor.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.*;
-
-/**
- * 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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanIgnore.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanIgnore.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanIgnore.java
deleted file mode 100644
index a976759..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanIgnore.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 (james.bognar@salesforce.com)
- */
-@Documented
-@Target({FIELD,METHOD,TYPE})
-@Retention(RUNTIME)
-@Inherited
-public @interface BeanIgnore {}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanProperty.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanProperty.java
deleted file mode 100644
index e9ff331..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanProperty.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.xml.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * Used tailor how bean properties get interpreted by the framework.
- * <p>
- * 	Can be used to do the following:
- * <ul class='spaced-list'>
- * 	<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 transforms with bean property values, such as a transform 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 (james.bognar@salesforce.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 BeanContext#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 transform with this bean property that will convert it
-	 * to a different value during serialization and parsing.
-	 * <p>
-	 * This annotation supersedes any transform 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>(transform=CalendarTransform.ISO8601DT.<jk>class</jk>)
-	 * 		<jk>public</jk> Calendar getTime();
-	 * 	}
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 */
-	Class<? extends PojoTransform<?,?>> transform() default PojoTransform.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 class='spaced-list'>
-	 * 	<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 class='spaced-list'>
-	 * 	<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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanSubType.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanSubType.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanSubType.java
deleted file mode 100644
index f4486a9..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/BeanSubType.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Consumes.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Consumes.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Consumes.java
deleted file mode 100644
index f9db621..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Consumes.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/NameProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/NameProperty.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/NameProperty.java
deleted file mode 100644
index dfc3926..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/NameProperty.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.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 (james.bognar@salesforce.com)
- */
-@Target({METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface NameProperty {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/ParentProperty.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/ParentProperty.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/ParentProperty.java
deleted file mode 100644
index 0b044bf..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/ParentProperty.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.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 (james.bognar@salesforce.com)
- */
-@Target({METHOD})
-@Retention(RUNTIME)
-@Inherited
-public @interface ParentProperty {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Produces.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Produces.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Produces.java
deleted file mode 100644
index 77f41f2..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Produces.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Remoteable.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Remoteable.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Remoteable.java
deleted file mode 100644
index 5b68bb8..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Remoteable.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/***************************************************************************************************************************
- * 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.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/ThreadSafe.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/ThreadSafe.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/ThreadSafe.java
deleted file mode 100644
index 0fe4abb..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/ThreadSafe.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-
-import java.lang.annotation.*;
-
-/**
- * Identifies a class as being thread-safe.
- * <p>
- * Used for documentation purposes only.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(TYPE)
-@Inherited
-public @interface ThreadSafe {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Transform.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Transform.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Transform.java
deleted file mode 100644
index f0029a6..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/Transform.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-
-/**
- * Annotation that can be applied to a class to associate a transform with it.
- * <p>
- * 	Typically used to associate {@link PojoTransform PojoTransforms} with classes using annotations
- * 		instead of programatically through a method such as {@link Serializer#addTransforms(Class...)}.
- *
- * <h6 class='topic'>Example</h6>
- * <p>
- * 	In this case, a transform 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>@Transform</ja>(BTransform.<jk>class</jk>)
- * 	<jk>public class</jk> B {
- * 		<jk>public</jk> String <jf>f1</jf>;
- * 	}
- *
- * 	<jc>// Our transform to force the bean to be serialized as a String</jc>
- * 	<jk>public class</jk> BTransform <jk>extends</jk> PojoTransform&lt;B,String&gt; {
- * 		<jk>public</jk> String transform(B o) <jk>throws</jk> SerializeException {
- * 			<jk>return</jk> o.f1;
- * 		}
- * 		<jk>public</jk> B normalize(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> testTransform() <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 transforms to the serializers and parsers:
- * <p class='bcode'>
- * 	WriterSerializer s = <jk>new</jk> JsonSerializer.addTransforms(BTransform.<jk>class</jk>);
- * 	ReaderParser p = <jk>new</jk> JsonParser.addTransforms(BTransform.<jk>class</jk>);
- * </p>
- * <p>
- * 	It is technically possible to associate a {@link BeanTransform} 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 (james.bognar@salesforce.com)
- */
-@Documented
-@Target(TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface Transform {
-
-	/**
-	 * The transform class.
-	 */
-	Class<? extends org.apache.juneau.transform.Transform> value() default org.apache.juneau.transform.Transform.NULL.class;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/URI.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/URI.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/URI.java
deleted file mode 100644
index df1d02a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/URI.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/***************************************************************************************************************************
- * 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.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-import java.net.*;
-
-import org.apache.juneau.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 SerializerContext#SERIALIZER_absolutePathUriBase} and {@link SerializerContext#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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/package.html
deleted file mode 100644
index 5e0089b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/annotation/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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>General bean annotations</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/csv/CsvSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/csv/CsvSerializer.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/csv/CsvSerializer.java
deleted file mode 100644
index 19b73e5..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/csv/CsvSerializer.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/***************************************************************************************************************************
- * 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.csv;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.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(SerializerSession session, Object o) throws Exception {
-		Writer out = session.getWriter();
-		BeanContext bc = session.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/csv/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/csv/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/csv/package.html
deleted file mode 100644
index 9dc8113..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/csv/package.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!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>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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/doc-files/AddressBook.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/doc-files/AddressBook.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/doc-files/AddressBook.html
deleted file mode 100644
index 10f6427..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/doc-files/AddressBook.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!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 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 transformed 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/Link.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/Link.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/Link.java
deleted file mode 100644
index 080047d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/Link.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto;
-
-import java.text.*;
-
-import org.apache.juneau.html.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/ResultSetList.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/ResultSetList.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/ResultSetList.java
deleted file mode 100644
index df4e1cc..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/ResultSetList.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto;
-
-import java.sql.*;
-import java.util.*;
-
-import org.apache.juneau.internal.*;
-
-/**
- * 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 (james.bognar@salesforce.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 {
-			rs.close();
-		}
-	}
-
-	/**
-	 * 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();
-		}
-	}
-}


[32/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOnPostCall.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOnPostCall.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOnPostCall.java
deleted file mode 100755
index 92a62cc..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOnPostCall.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import java.io.*;
-
-import org.apache.juneau.client.*;
-import org.junit.*;
-
-public class CT_TestOnPostCall {
-
-	private static String URL = "/testOnPostCall";
-
-	//====================================================================================================
-	// Properties overridden via properties annotation.
-	//====================================================================================================
-	@Test
-	public void testPropertiesOverridenByAnnotation() throws Exception {
-		RestClient client = new TestRestClient().setAccept("text/s1");
-		String url = URL + "/testPropertiesOverridenByAnnotation";
-		String r;
-		RestCall rc;
-
-		r = client.doPut(url, new StringReader("")).getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=mp3,p4=xp4,p5=xp5,contentType=text/s1", r);
-
-		r = client.doPut(url, new StringReader("")).setHeader("Override-Accept", "text/s2").getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=mp3,p4=xp4,p5=xp5,contentType=text/s2", r);
-
-		rc = client.doPut(url, new StringReader("")).setHeader("Override-Content-Type", "text/s3").connect();
-		r = rc.getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=mp3,p4=xp4,p5=xp5,contentType=text/s1", r);
-		assertTrue(rc.getResponse().getFirstHeader("Content-Type").getValue().startsWith("text/s3"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Properties overridden via properties annotation.  Default Accept header.
-	//====================================================================================================
-	@Test
-	public void testPropertiesOverridenByAnnotationDefaultAccept() throws Exception {
-		RestClient client = new TestRestClient().setAccept("");
-		String url = URL + "/testPropertiesOverridenByAnnotation";
-		String r;
-		RestCall rc;
-
-		r = client.doPut(url, new StringReader("")).getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=mp3,p4=xp4,p5=xp5,contentType=text/s2", r);
-
-		r = client.doPut(url, new StringReader("")).setHeader("Override-Accept", "text/s3").getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=mp3,p4=xp4,p5=xp5,contentType=text/s3", r);
-
-		rc = client.doPut(url, new StringReader("")).setHeader("Override-Content-Type", "text/s3").connect();
-		r = rc.getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=mp3,p4=xp4,p5=xp5,contentType=text/s2", r);
-		assertTrue(rc.getResponse().getFirstHeader("Content-Type").getValue().startsWith("text/s3"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Properties overridden programmatically.
-	//====================================================================================================
-	@Test
-	public void testPropertiesOverriddenProgramatically() throws Exception {
-		RestClient client = new TestRestClient().setAccept("text/s1");
-		String url = URL + "/testPropertiesOverriddenProgramatically";
-		String r;
-		RestCall rc;
-
-		r = client.doPut(url, new StringReader("")).getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=pp3,p4=xp4,p5=xp5,contentType=text/s1", r);
-
-		r = client.doPut(url, new StringReader("")).setHeader("Override-Accept", "text/s2").getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=pp3,p4=xp4,p5=xp5,contentType=text/s2", r);
-
-		rc = client.doPut(url, new StringReader("")).setHeader("Override-Content-Type", "text/s3").connect();
-		r = rc.getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=pp3,p4=xp4,p5=xp5,contentType=text/s1", r);
-		assertTrue(rc.getResponse().getFirstHeader("Content-Type").getValue().startsWith("text/s3"));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Properties overridden programmatically.  Default Accept header.
-	//====================================================================================================
-	@Test
-	public void testPropertiesOverriddenProgramaticallyDefaultAccept() throws Exception {
-		RestClient client = new TestRestClient().setAccept("");
-		String url = URL + "/testPropertiesOverriddenProgramatically";
-		String r;
-		RestCall rc;
-
-		r = client.doPut(url, new StringReader("")).getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=pp3,p4=xp4,p5=xp5,contentType=text/s2", r);
-
-		r = client.doPut(url, new StringReader("")).setHeader("Override-Accept", "text/s3").getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=pp3,p4=xp4,p5=xp5,contentType=text/s3", r);
-
-		rc = client.doPut(url, new StringReader("")).setHeader("Override-Content-Type", "text/s3").connect();
-		r = rc.getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=pp3,p4=xp4,p5=xp5,contentType=text/s2", r);
-		assertTrue(rc.getResponse().getFirstHeader("Content-Type").getValue().startsWith("text/s3"));
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOnPreCall.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOnPreCall.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOnPreCall.java
deleted file mode 100755
index 6c52d2b..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOnPreCall.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import java.io.*;
-
-import org.apache.juneau.client.*;
-import org.junit.*;
-
-public class CT_TestOnPreCall {
-
-	private static String URL = "/testOnPreCall";
-
-	//====================================================================================================
-	// Properties overridden via properties annotation.
-	//====================================================================================================
-	@Test
-	public void testPropertiesOverriddenByAnnotation() throws Exception {
-		RestClient client = new TestRestClient().setContentType("text/a1").setAccept("text/plain");
-		String url = URL + "/testPropertiesOverriddenByAnnotation";
-		String r;
-
-		r = client.doPut(url, new StringReader("")).getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=mp3,p4=xp4,p5=xp5,contentType=text/a1", r);
-
-		r = client.doPut(url, new StringReader("")).setHeader("Override-Content-Type", "text/a2").getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=mp3,p4=xp4,p5=xp5,contentType=text/a2", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Properties overridden programmatically.
-	//====================================================================================================
-	@Test
-	public void testPropertiesOverriddenProgrammatically() throws Exception {
-		RestClient client = new TestRestClient().setContentType("text/a1").setAccept("text/plain");
-		String url = URL + "/testPropertiesOverriddenProgrammatically";
-		String r;
-
-		r = client.doPut(url, new StringReader("")).getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=pp3,p4=pp4,p5=xp5,contentType=text/a1", r);
-
-		r = client.doPut(url, new StringReader("")).setHeader("Override-Content-Type", "text/a2").getResponseAsString();
-		assertEquals("p1=sp1,p2=xp2,p3=pp3,p4=pp4,p5=xp5,contentType=text/a2", r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOptionsWithoutNls.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOptionsWithoutNls.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOptionsWithoutNls.java
deleted file mode 100755
index d55bd80..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOptionsWithoutNls.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.server.labels.*;
-import org.junit.*;
-
-public class CT_TestOptionsWithoutNls {
-
-	private static String URL = "/testOptionsWithoutNls";
-
-	//====================================================================================================
-	// Should get to the options page without errors
-	//====================================================================================================
-	@Test
-	public void testOptions() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		RestCall r = client.doOptions(URL + "/testOptions");
-		ResourceOptions o = r.getResponse(ResourceOptions.class);
-		assertEquals("", o.getDescription());
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Missing resource bundle should cause {!!x} string.
-	//====================================================================================================
-	@Test
-	public void testMissingResourceBundle() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		RestCall r = client.doGet(URL + "/testMissingResourceBundle");
-		String o = r.getResponse(String.class);
-		assertEquals("{!!bad}", o);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOverlappingMethods.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOverlappingMethods.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOverlappingMethods.java
deleted file mode 100755
index 5c0942a..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestOverlappingMethods.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.junit.*;
-
-public class CT_TestOverlappingMethods {
-
-	private static String URL = "/testOverlappingMethods";
-	private static boolean debug = false;
-
-	//====================================================================================================
-	// Overlapping guards
-	//====================================================================================================
-	@Test
-	public void testOverlappingGuards1() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testOverlappingGuards1";
-
-		r = client.doGet(url + "?t1=1").getResponseAsString();
-		assertEquals("test1_doGet", r);
-
-		try {
-			client.doGet(url + "?noTrace=true").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_FORBIDDEN, "Access denied by guard");
-		}
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Overlapping guards
-	//====================================================================================================
-	@Test
-	public void testOverlappingGuards2() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testOverlappingGuards2";
-		try {
-			client.doGet(url + "?noTrace=true").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_FORBIDDEN, "Access denied by guard");
-		}
-
-		try {
-			client.doGet(url + "?t1=1&noTrace=true").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_FORBIDDEN, "Access denied by guard");
-		}
-
-		try {
-			client.doGet(url + "?t2=2&noTrace=true").connect();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_FORBIDDEN, "Access denied by guard");
-		}
-
-		r = client.doGet(url + "?t1=1&t2=2").getResponseAsString();
-		assertEquals("test2_doGet", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Overlapping matchers
-	//====================================================================================================
-	@Test
-	public void testOverlappingMatchers1() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testOverlappingMatchers1";
-
-		r = client.doGet(url + "?t1=1").getResponseAsString();
-		assertEquals("test3a", r);
-
-		r = client.doGet(url + "?t2=2").getResponseAsString();
-		assertEquals("test3b", r);
-
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("test3c", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Overlapping matchers
-	//====================================================================================================
-	@Test
-	public void testOverlappingMatchers2() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testOverlappingMatchers2";
-
-		r = client.doGet(url + "?t1=1").getResponseAsString();
-		assertEquals("test4b", r);
-
-		r = client.doGet(url + "?t2=2").getResponseAsString();
-		assertEquals("test4b", r);
-
-		r = client.doGet(url + "?t1=1&t2=2").getResponseAsString();
-		assertEquals("test4b", r);
-
-		r = client.doGet(url + "?tx=x").getResponseAsString();
-		assertEquals("test4a", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Overlapping URL patterns
-	//====================================================================================================
-	@Test
-	public void testOverlappingUrlPatterns() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testOverlappingUrlPatterns";
-
-		// [/test5] = [test5a]
-		// [/test5/*] = [test5b]   -- Cannot get called.
-		// [/test5/foo] = [test5c]
-		// [/test5/foo/*] = [test5d]
-		// [/test5/{id}] = [test5e]
-		// [/test5/{id}/*] = [test5f]
-		// [/test5/{id}/foo] = [test5g]
-		// [/test5/{id}/foo/*] = [test5h]
-
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("test5a", r);
-
-		r = client.doGet(url + "/foo").getResponseAsString();
-		assertEquals("test5c", r);
-
-		r = client.doGet(url + "/foo/x").getResponseAsString();
-		assertEquals("test5d", r);
-
-		r = client.doGet(url + "/x").getResponseAsString();
-		assertEquals("test5e", r);
-
-		r = client.doGet(url + "/x/x").getResponseAsString();
-		assertEquals("test5f", r);
-
-		r = client.doGet(url + "/x/foo").getResponseAsString();
-		assertEquals("test5g", r);
-
-		r = client.doGet(url + "/x/foo/x").getResponseAsString();
-		assertEquals("test5h", r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestParams.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestParams.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestParams.java
deleted file mode 100755
index 6ecc8d1..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestParams.java
+++ /dev/null
@@ -1,716 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import java.util.*;
-
-import org.apache.http.*;
-import org.apache.http.client.entity.*;
-import org.apache.http.entity.*;
-import org.apache.http.message.*;
-import org.apache.juneau.*;
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestParams {
-
-	private static String URL = "/testParams";
-	private static boolean debug = false;
-
-	//====================================================================================================
-	// Basic tests
-	//====================================================================================================
-	@Test
-	public void testBasic() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		RestCall r;
-
-		//		@Override
-		//		@RestMethod(name="GET",pattern="/")
-		//		public void doGet(RestRequest req, RestResponse res) {
-		//			res.setOutput("No args");
-		//		}
-		r = client.doGet(URL);
-		assertEquals("GET", r.getResponse(String.class));
-
-		r = client.doGet(URL + "/getx?noTrace=true");
-		try {
-			r.connect();
-			fail("Connection should have failed.");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_FOUND, "Method 'GET' not found on resource with matching pattern on path '/getx'");
-		}
-
-		//	@RestMethod(name="GET",pattern="/get1")
-		//	public void doGet1(RestRequest req, RestResponse res) {
-		//		res.setOutput("/get1");
-		//	}
-		r = client.doGet(URL + "/get1");
-		assertEquals("GET /get1", r.getResponse(String.class));
-
-		r = client.doGet(URL + "/get1a?noTrace=true");
-		try {
-			r.connect();
-			fail("Connection should have failed.");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_FOUND, "Method 'GET' not found on resource with matching pattern on path '/get1a'");
-		}
-
-		//	@RestMethod(name="GET",pattern="/get1/{foo}")
-		//	public void doGet(RestRequest req, RestResponse res, String foo) {
-		//		res.setOutput("/get1/" + foo);
-		//	}
-		r = client.doGet(URL + "/get1/foo");
-		assertEquals("GET /get1a foo", r.getResponse(String.class));
-
-		// URL-encoded part should not get decoded before finding method to invoke.
-		// This should match /get1/{foo} and not /get1/{foo}/{bar}
-		// NOTE:  When testing on Tomcat, must specify the following system property:
-		// -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
-		String x = "x%2Fy+z";  // [x/y z]
-		r = client.doGet(URL + "/get1/"+x);
-		assertEquals("GET /get1a x/y z", r.getResponse(String.class));
-
-		r = client.doGet(URL + "/get1/"+x+"/"+x);
-		assertEquals("GET /get1b x/y z,x/y z", r.getResponse(String.class));
-
-		r = client.doGet(URL + "/get1/foo");
-		assertEquals("GET /get1a foo", r.getResponse(String.class));
-
-		r = client.doGet(URL + "/get1/foo/bar/baz?noTrace=true");
-		try {
-			r.connect();
-			fail("Connection should have failed.");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_NOT_FOUND, "Method 'GET' not found on resource with matching pattern on path '/get1/foo/bar/baz'");
-		}
-
-		//	@RestMethod(name="GET",pattern="/get3/{foo}/{bar}/*")
-		//	public void doGet3(RestRequest req, RestResponse res, String foo, int bar) {
-		//		res.setOutput("/get3/"+foo+"/"+bar+", remainder="+req.getRemainder());
-		//	}
-		r = client.doGet(URL + "/get3/foo/123");
-		assertEquals("GET /get3/foo/123 remainder=null", r.getResponse(String.class));
-
-		r = client.doGet(URL + "/get3/foo/123/xxx");
-		assertEquals("GET /get3/foo/123 remainder=xxx", r.getResponse(String.class));
-
-		//	// Test method name with overlapping name, remainder allowed.
-		//	@RestMethod(name="GET2")
-		//	public void get2(RestRequest req, RestResponse res) {
-		//		res.setOutput("GET2, remainder="+req.getRemainder());
-		//	}
-		r = client.doGet(URL + "?method=get2");
-		assertEquals("GET2 remainder=null", r.getResponse(String.class));
-		r = client.doGet(URL + "/foo/bar?method=get2");
-		assertEquals("GET2 remainder=foo/bar", r.getResponse(String.class));
-		r = client.doGet(URL + "/foo/bar?method=GET2");
-		assertEquals("GET2 remainder=foo/bar", r.getResponse(String.class));
-
-		//	// Default POST
-		//	@Override
-		//	public void doPost(RestRequest req, RestResponse res) {
-		//		res.setOutput("POST, remainder="+req.getRemainder());
-		//	}
-		r = client.doPost(URL, "");
-		assertEquals("POST remainder=null", r.getResponse(String.class));
-		r = client.doPost(URL + "/foo", "");
-		assertEquals("POST remainder=foo", r.getResponse(String.class));
-
-		//	// Bunch of different argument types
-		//	@RestMethod(name="POST",pattern="/person/{person}")
-		//	public void doPost(RestRequest req, RestResponse res, Person p) {
-		//		res.setOutput("POST, /person, name="+p.name+", age="+p.age+" remainder="+req.getRemainder());
-		//	}
-		r = client.doPost(URL + "/person/(name=John+Smith,birthDate=Jan+12~,+1952)", "");
-		assertEquals("POST /person/{name=John Smith,birthDate.year=1952} remainder=null", r.getResponse(String.class));
-
-		// Fall through to top-level POST
-		r = client.doPost(URL + "/person/(name:'John+Smith',age:123)/foo", "");
-		assertEquals("POST remainder=person/(name:'John Smith',age:123)/foo", r.getResponse(String.class));
-
-		//	// Various primitive types
-		//	@RestMethod(name="PUT",pattern="/primitives/{xInt}.{xShort},{xLong}/{xChar}/{xFloat}/{xDouble}/{xByte}/{xBoolean}")
-		//	public void doPut1(RestRequest req, RestResponse res, int xInt, short xShort, long xLong, char xChar, float xFloat, double xDouble, byte xByte, boolean xBoolean) {
-		//		res.setOutput("PUT, /primitives/"+xInt+"."+xShort+","+xLong+"/"+xChar+"/"+xFloat+"/"+xDouble+"/"+xByte+"/"+xBoolean);
-		//	}
-		r = client.doPut(URL + "/primitives/1/2/3/x/4/5/6/true", "");
-		assertEquals("PUT /primitives/1/2/3/x/4.0/5.0/6/true", r.getResponse(String.class));
-
-		//	// Various primitive objects
-		//	@RestMethod(name="PUT",pattern="/primitiveObjects/{xInt}/{xShort}/{xLong}/{xChar}/{xFloat}/{xDouble}/{xByte}/{xBoolean}")
-		//	public void doPut1(RestRequest req, RestResponse res, Integer xInt, Short xShort, Long xLong, Character xChar, Float xFloat, Double xDouble, Byte xByte, Boolean xBoolean) {
-		//		res.setOutput("PUT /primitives/"+xInt+"/"+xShort+"/"+xLong+"/"+xChar+"/"+xFloat+"/"+xDouble+"/"+xByte+"/"+xBoolean);
-		//	}
-		r = client.doPut(URL + "/primitiveObjects/1/2/3/x/4/5/6/true", "");
-		assertEquals("PUT /primitiveObjects/1/2/3/x/4.0/5.0/6/true", r.getResponse(String.class));
-
-		//	// Object with forString(String) method
-		//	@RestMethod(name="PUT",pattern="/uuid/{uuid}")
-		//	public void doPut1(RestRequest req, RestResponse res, UUID uuid) {
-		//		res.setOutput("PUT /uuid/"+uuid);
-		//	}
-		UUID uuid = UUID.randomUUID();
-		r = client.doPut(URL + "/uuid/"+uuid, "");
-		assertEquals("PUT /uuid/"+uuid, r.getResponse(String.class));
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @Param annotation - GET
-	//====================================================================================================
-	@Test
-	public void testParamGet() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testParamGet";
-
-		r = client.doGet(url + "?p1=p1&p2=2").getResponseAsString();
-		assertEquals("p1=[p1,p1,p1],p2=[2,2,2]", r);
-
-		r = client.doGet(url + "?p1&p2").getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doGet(url + "?p1").getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doGet(url + "?p2").getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doGet(url + "?p1=foo&p2").getResponseAsString();
-		assertEquals("p1=[foo,foo,foo],p2=[0,null,0]", r);
-
-		r = client.doGet(url + "?p1&p2=1").getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[1,1,1]", r);
-
-		String x = "a%2Fb%25c%3Dd+e"; // [x/y%z=a+b]
-		r = client.doGet(url + "?p1="+x+"&p2=1").getResponseAsString();
-		assertEquals("p1=[a/b%c=d e,a/b%c=d e,a/b%c=d e],p2=[1,1,1]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @Param(format=PLAIN) annotation - GET
-	//====================================================================================================
-	@Test
-	public void testPlainParamGet() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testPlainParamGet";
-
-		r = client.doGet(url + "?p1=(p1)").getResponseAsString();
-		assertEquals("p1=[(p1),(p1),p1]", r);
-
-		r = client.doGet(url + "?p1=$s(p1)").getResponseAsString();
-		assertEquals("p1=[$s(p1),$s(p1),p1]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @Param annotation - POST
-	//====================================================================================================
-	@Test
-	public void testParamPost() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testParamPost";
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'p1',p2:2}")).getResponseAsString();
-		assertEquals("p1=[p1,p1,p1],p2=[2,$n(2),2]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null,p2:0}")).getResponseAsString();
-		assertEquals("p1=[null,\u0000,null],p2=[0,$n(0),0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null}")).getResponseAsString();
-		assertEquals("p1=[null,\u0000,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p2:0}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,$n(0),0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'foo',p2:0}")).getResponseAsString();
-		assertEquals("p1=[foo,foo,foo],p2=[0,$n(0),0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null,p2:1}")).getResponseAsString();
-		assertEquals("p1=[null,\u0000,null],p2=[1,$n(1),1]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'a/b%c=d e,f/g%h=i j',p2:1}")).getResponseAsString();
-		assertEquals("p1=[a/b%c=d e,f/g%h=i j,a/b%c=d e,f/g%h=i j,a/b%c=d e,f/g%h=i j],p2=[1,$n(1),1]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @Param(format=PLAIN) annotation - POST
-	//====================================================================================================
-	@Test
-	public void testPlainParamPost() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testPlainParamPost";
-
-		List<NameValuePair> nvps = new ArrayList<NameValuePair>();
-		nvps.add(new BasicNameValuePair("p1", "(p1)"));
-		HttpEntity he = new UrlEncodedFormEntity(nvps);
-
-		r = client.doPost(url, he).getResponseAsString();
-		assertEquals("p1=[(p1),(p1),p1]", r);
-
-		nvps = new ArrayList<NameValuePair>();
-		nvps.add(new BasicNameValuePair("p1", "$s(p1)"));
-		he = new UrlEncodedFormEntity(nvps);
-
-		r = client.doFormPost(url, he).getResponseAsString();
-		assertEquals("p1=[$s(p1),$s(p1),p1]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @QParam annotation - GET
-	//====================================================================================================
-	@Test
-	public void testQParamGet() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testQParamGet";
-
-		r = client.doGet(url + "?p1=p1&p2=2").getResponseAsString();
-		assertEquals("p1=[p1,p1,p1],p2=[2,2,2]", r);
-
-		r = client.doGet(url + "?p1&p2").getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doGet(url + "?p1").getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doGet(url + "?p2").getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doGet(url + "?p1=foo&p2").getResponseAsString();
-		assertEquals("p1=[foo,foo,foo],p2=[0,null,0]", r);
-
-		r = client.doGet(url + "?p1&p2=1").getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[1,1,1]", r);
-
-		String x = "a%2Fb%25c%3Dd+e"; // [x/y%z=a+b]
-		r = client.doGet(url + "?p1="+x+"&p2=1").getResponseAsString();
-		assertEquals("p1=[a/b%c=d e,a/b%c=d e,a/b%c=d e],p2=[1,1,1]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @QParam(format=PLAIN) annotation - GET
-	//====================================================================================================
-	@Test
-	public void testPlainQParamGet() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testPlainQParamGet";
-
-		r = client.doGet(url + "?p1=(p1)").getResponseAsString();
-		assertEquals("p1=[(p1),(p1),p1]", r);
-
-		r = client.doGet(url + "?p1=$s(p1)").getResponseAsString();
-		assertEquals("p1=[$s(p1),$s(p1),p1]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @QParam annotation - POST
-	//====================================================================================================
-	@Test
-	public void testQParamPost() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testQParamPost";
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'p1',p2:2}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null,p2:0}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p2:0}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'foo',p2:0}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null,p2:1}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'a/b%c=d e,f/g%h=i j',p2:1}")).getResponseAsString();
-		assertEquals("p1=[null,null,null],p2=[0,null,0]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @HasParam annotation - GET
-	//====================================================================================================
-	@Test
-	public void testHasParamGet() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testHasParamGet";
-
-		r = client.doGet(url + "?p1=p1&p2=2").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doGet(url + "?p1&p2").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doGet(url + "?p1").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[false,false]", r);
-
-		r = client.doGet(url + "?p2").getResponseAsString();
-		assertEquals("p1=[false,false],p2=[true,true]", r);
-
-		r = client.doGet(url + "?p1=foo&p2").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doGet(url + "?p1&p2=1").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		String x = "x%2Fy%25z%3Da+b"; // [x/y%z=a+b]
-		r = client.doGet(url + "?p1="+x+"&p2=1").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @HasParam annotation - POST
-	//====================================================================================================
-	@Test
-	public void testHasParamPost() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testHasParamPost";
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'p1',p2:2}")).getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null,p2:0}")).getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null}")).getResponseAsString();
-		assertEquals("p1=[true,true],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p2:0}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[true,true]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'foo',p2:0}")).getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null,p2:1}")).getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'a/b%c=d e,f/g%h=i j',p2:1}")).getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @HasQParam annotation - GET
-	//====================================================================================================
-	@Test
-	public void testHasQParamGet() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testHasQParamGet";
-
-		r = client.doGet(url + "?p1=p1&p2=2").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doGet(url + "?p1&p2").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doGet(url).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doGet(url + "?p1").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[false,false]", r);
-
-		r = client.doGet(url + "?p2").getResponseAsString();
-		assertEquals("p1=[false,false],p2=[true,true]", r);
-
-		r = client.doGet(url + "?p1=foo&p2").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		r = client.doGet(url + "?p1&p2=1").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		String x = "x%2Fy%25z%3Da+b"; // [x/y%z=a+b]
-		r = client.doGet(url + "?p1="+x+"&p2=1").getResponseAsString();
-		assertEquals("p1=[true,true],p2=[true,true]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// @HasQParam annotation - POST
-	//====================================================================================================
-	@Test
-	public void testHasQParamPost() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testHasQParamPost";
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'p1',p2:2}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null,p2:0}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p2:0}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'foo',p2:0}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:null,p2:1}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'a/b%c=d e,f/g%h=i j',p2:1}")).getResponseAsString();
-		assertEquals("p1=[false,false],p2=[false,false]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Form POSTS with @Content parameter
-	//====================================================================================================
-	@Test
-	public void testFormPostAsContent() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testFormPostAsContent";
-
-		r = client.doFormPost(url, new ObjectMap("{p1:'p1',p2:2}")).getResponseAsString();
-		assertEquals("bean=[{p1:'p1',p2:2}],qp1=[null],qp2=[0],hqp1=[false],hqp2=[false]", r);
-
-		r = client.doFormPost(url, new ObjectMap("{}")).getResponseAsString();
-		assertEquals("bean=[{p2:0}],qp1=[null],qp2=[0],hqp1=[false],hqp2=[false]", r);
-
-		r = client.doFormPost(url+"?p1=p3&p2=4", new ObjectMap("{p1:'p1',p2:2}")).getResponseAsString();
-		assertEquals("bean=[{p1:'p1',p2:2}],qp1=[p3],qp2=[4],hqp1=[true],hqp2=[true]", r);
-
-		r = client.doFormPost(url+"?p1=p3&p2=4", new ObjectMap("{}")).getResponseAsString();
-		assertEquals("bean=[{p2:0}],qp1=[p3],qp2=[4],hqp1=[true],hqp2=[true]", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test @Param and @QParam annotations when using multi-part parameters (e.g. &key=val1,&key=val2).
-	//====================================================================================================
-	@Test
-	public void testMultiPartParams() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testMultiPartParams";
-
-		String in = ""
-			+ "?p1=a&p1=b"
-			+ "&p2=1&p2=2"
-			+ "&p3=a&p3=b"
-			+ "&p4=1&p4=2"
-			+ "&p5=a&p5=b"
-			+ "&p6=1&p6=2"
-			+ "&p7=a&p7=b"
-			+ "&p8=1&p8=2"
-			+ "&p9=(a=1,b=2,c=false)&p9=(a=3,b=4,c=true)"
-			+ "&p10=(a=1,b=2,c=false)&p10=(a=3,b=4,c=true)"
-			+ "&p11=(a=1,b=2,c=false)&p11=(a=3,b=4,c=true)"
-			+ "&p12=(a=1,b=2,c=false)&p12=(a=3,b=4,c=true)";
-		r = client.doGet(url + in).getResponseAsString();
-		String e = "{"
-			+ "p1:['a','b'],"
-			+ "p2:[1,2],"
-			+ "p3:['a','b'],"
-			+ "p4:[1,2],"
-			+ "p5:['a','b'],"
-			+ "p6:[1,2],"
-			+ "p7:['a','b'],"
-			+ "p8:[1,2],"
-			+ "p9:[{a:'1',b:2,c:false},{a:'3',b:4,c:true}],"
-			+ "p10:[{a:'1',b:2,c:false},{a:'3',b:4,c:true}],"
-			+ "p11:[{a:'1',b:2,c:false},{a:'3',b:4,c:true}],"
-			+ "p12:[{a:'1',b:2,c:false},{a:'3',b:4,c:true}]"
-		+"}";
-		assertEquals(e, r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Same as testMultiPartParams(), except make sure single values are still interpreted as collections.
-	//====================================================================================================
-	@Test
-	public void testMultiPartParamsSingleValues() throws Exception {
-		RestClient client = new TestRestClient().setHeader("Accept", "text/plain");
-		String r;
-		String url = URL + "/testMultiPartParams";
-
-		String in = ""
-			+ "?p1=a"
-			+ "&p2=1"
-			+ "&p3=a"
-			+ "&p4=1"
-			+ "&p5=a"
-			+ "&p6=1"
-			+ "&p7=a"
-			+ "&p8=1"
-			+ "&p9=(a=1,b=2,c=false)"
-			+ "&p10=(a=1,b=2,c=false)"
-			+ "&p11=(a=1,b=2,c=false)"
-			+ "&p12=(a=1,b=2,c=false)";
-		r = client.doGet(url + in).getResponseAsString();
-		String e = "{"
-			+ "p1:['a'],"
-			+ "p2:[1],"
-			+ "p3:['a'],"
-			+ "p4:[1],"
-			+ "p5:['a'],"
-			+ "p6:[1],"
-			+ "p7:['a'],"
-			+ "p8:[1],"
-			+ "p9:[{a:'1',b:2,c:false}],"
-			+ "p10:[{a:'1',b:2,c:false}],"
-			+ "p11:[{a:'1',b:2,c:false}],"
-			+ "p12:[{a:'1',b:2,c:false}]"
-		+"}";
-		assertEquals(e, r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test multi-part parameter keys on bean properties of type array/Collection (i.e. &key=val1,&key=val2)
-	// using URLENC_expandedParams property.
-	// A simple round-trip test to verify that both serializing and parsing works.
-	//====================================================================================================
-	@Test
-	public void testFormPostsWithMultiParamsUsingProperty() throws Exception {
-		RestClient client = new TestRestClient()
-			.setHeader("Content-Type", "application/x-www-form-urlencoded")
-			.setHeader("Accept", "application/x-www-form-urlencoded");
-		String r;
-		String url = URL + "/testFormPostsWithMultiParamsUsingProperty";
-
-		String in = ""
-			+ "f1=a&f1=b"
-			+ "&f2=c&f2=d"
-			+ "&f3=1&f3=2"
-			+ "&f4=3&f4=4"
-			+ "&f5=(e,f)&f5=(g,h)"
-			+ "&f6=(i,j)&f6=(k,l)"
-			+ "&f7=(a=a,b=1,c=true)&f7=(a=b,b=2,c=false)"
-			+ "&f8=(a=a,b=1,c=true)&f8=(a=b,b=2,c=false)"
-			+ "&f9=((a=a,b=1,c=true))&f9=((a=b,b=2,c=false))"
-			+ "&f10=((a=a,b=1,c=true))&f10=((a=b,b=2,c=false))"
-			+ "&f11=a&f11=b"
-			+ "&f12=c&f12=d"
-			+ "&f13=1&f13=2"
-			+ "&f14=3&f14=4"
-			+ "&f15=(e,f)&f15=(g,h)"
-			+ "&f16=(i,j)&f16=(k,l)"
-			+ "&f17=(a=a,b=1,c=true)&f17=(a=b,b=2,c=false)"
-			+ "&f18=(a=a,b=1,c=true)&f18=(a=b,b=2,c=false)"
-			+ "&f19=((a=a,b=1,c=true))&f19=((a=b,b=2,c=false))"
-			+ "&f20=((a=a,b=1,c=true))&f20=((a=b,b=2,c=false))";
-		r = client.doPost(url, new StringEntity(in)).getResponseAsString();
-		assertEquals(in, r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Test multi-part parameter keys on bean properties of type array/Collection (i.e. &key=val1,&key=val2)
-	// using @UrlEncoding(expandedParams=true) annotation.
-	// A simple round-trip test to verify that both serializing and parsing works.
-	//====================================================================================================
-	@Test
-	public void testFormPostsWithMultiParamsUsingAnnotation() throws Exception {
-		RestClient client = new TestRestClient()
-			.setHeader("Content-Type", "application/x-www-form-urlencoded")
-			.setHeader("Accept", "application/x-www-form-urlencoded");
-		String r;
-		String url = URL + "/testFormPostsWithMultiParamsUsingAnnotation";
-
-		String in = ""
-			+ "f1=a&f1=b"
-			+ "&f2=c&f2=d"
-			+ "&f3=1&f3=2"
-			+ "&f4=3&f4=4"
-			+ "&f5=(e,f)&f5=(g,h)"
-			+ "&f6=(i,j)&f6=(k,l)"
-			+ "&f7=(a=a,b=1,c=true)&f7=(a=b,b=2,c=false)"
-			+ "&f8=(a=a,b=1,c=true)&f8=(a=b,b=2,c=false)"
-			+ "&f9=((a=a,b=1,c=true))&f9=((a=b,b=2,c=false))"
-			+ "&f10=((a=a,b=1,c=true))&f10=((a=b,b=2,c=false))"
-			+ "&f11=a&f11=b"
-			+ "&f12=c&f12=d"
-			+ "&f13=1&f13=2"
-			+ "&f14=3&f14=4"
-			+ "&f15=(e,f)&f15=(g,h)"
-			+ "&f16=(i,j)&f16=(k,l)"
-			+ "&f17=(a=a,b=1,c=true)&f17=(a=b,b=2,c=false)"
-			+ "&f18=(a=a,b=1,c=true)&f18=(a=b,b=2,c=false)"
-			+ "&f19=((a=a,b=1,c=true))&f19=((a=b,b=2,c=false))"
-			+ "&f20=((a=a,b=1,c=true))&f20=((a=b,b=2,c=false))";
-		r = client.doPost(url, new StringEntity(in)).getResponseAsString();
-		assertEquals(in, r);
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestParsers.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestParsers.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestParsers.java
deleted file mode 100755
index b214f2d..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestParsers.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-import static org.apache.juneau.server.TestUtils.*;
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.plaintext.*;
-import org.junit.*;
-
-public class CT_TestParsers {
-
-	private static String URL = "/testParsers";
-	private static boolean debug = false;
-
-	//====================================================================================================
-	// Parser defined on class.
-	//====================================================================================================
-	@Test
-	public void testParserOnClass() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String url = URL + "/testParserOnClass";
-
-		client.setContentType("text/a");
-		String r = client.doPut(url, "test1").getResponseAsString();
-		assertEquals("text/a - test1", r);
-
-		try {
-			client.setContentType("text/b");
-			client.doPut(url + "?noTrace=true", "test1").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/b'",
-				"Supported media-types: [text/a"
-			);
-		}
-
-		client.setContentType("text/json").setAccept("text/json");
-		r = client.doPut(url, "'test1'").getResponseAsString();
-		assertEquals("\"test1\"", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Parser defined on method.
-	//====================================================================================================
-	@Test
-	public void testParserOnMethod() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String url = URL + "/testParserOnMethod";
-
-		client.setContentType("text/b");
-		String r = client.doPut(url, "test2").getResponseAsString();
-		assertEquals("text/b - test2", r);
-
-		try {
-			client.setContentType("text/a");
-			client.doPut(url + "?noTrace=true", "test2").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/a'",
-				"Supported media-types: [text/b]"
-			);
-		}
-
-		try {
-			client.setContentType("text/json");
-			r = client.doPut(url + "?noTrace=true", "'test2'").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/json'",
-				"Supported media-types: [text/b]"
-			);
-		}
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Parser overridden on method.
-	//====================================================================================================
-	@Test
-	public void testParserOverriddenOnMethod() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String url = URL + "/testParserOverriddenOnMethod";
-
-		client.setContentType("text/a");
-		String r = client.doPut(url, "test3").getResponseAsString();
-		assertEquals("text/a - test3", r);
-
-		client.setContentType("text/b");
-		r = client.doPut(url, "test3").getResponseAsString();
-		assertEquals("text/b - test3", r);
-
-		client.setContentType("text/json");
-		r = client.doPut(url, "'test3'").getResponseAsString();
-		assertEquals("test3", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Parser with different Accept than Content-Type.
-	//====================================================================================================
-	@Test
-	public void testParserWithDifferentMediaTypes() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String url = URL + "/testParserWithDifferentMediaTypes";
-
-		client.setContentType("text/a");
-		String r = client.doPut(url, "test4").getResponseAsString();
-		assertEquals("text/d - test4", r);
-
-		client.setContentType("text/d");
-		r = client.doPut(url, "test4").getResponseAsString();
-		assertEquals("text/d - test4", r);
-
-		client.setContentType("text/json");
-		r = client.doPut(url, "'test4'").getResponseAsString();
-		assertEquals("test4", r);
-
-		client.closeQuietly();
-	}
-
-	//====================================================================================================
-	// Check for valid error response.
-	//====================================================================================================
-	@Test
-	public void testValidErrorResponse() throws Exception {
-		RestClient client = new TestRestClient(PlainTextSerializer.class, PlainTextParser.class);
-		String url = URL + "/testValidErrorResponse";
-
-		try {
-			client.setContentType("text/bad");
-			client.doPut(url + "?noTrace=true", "test1").getResponseAsString();
-			fail("Exception expected");
-		} catch (RestCallException e) {
-			checkErrorResponse(debug, e, SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header 'Content-Type': 'text/bad'",
-				"Supported media-types: [text/a"
-			);
-		}
-
-		client.closeQuietly();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestPath.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestPath.java b/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestPath.java
deleted file mode 100755
index 2af035b..0000000
--- a/com.ibm.team.juno.server.test/src/test/java/org/apache/juneau/server/CT_TestPath.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.junit.Assert.*;
-
-import org.apache.juneau.client.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_TestPath {
-
-	private static String URL = "/testPath";
-
-	//====================================================================================================
-	// Basic tests
-	//====================================================================================================
-	@Test
-	public void testBasic() throws Exception {
-		RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
-		String r = null;
-
-		r = client.doGet(URL).getResponse(String.class);
-		assertEquals("/testPath", r);
-
-		r = client.doGet(URL + "/testPath2").getResponse(String.class);
-		assertEquals("/testPath/testPath2", r);
-
-		r = client.doGet(URL + "/testPath2/testPath3").getResponse(String.class);
-		assertEquals("/testPath/testPath2/testPath3", r);
-
-		client.closeQuietly();
-	}
-}


[14/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
deleted file mode 100644
index 344758b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanRuntimeException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanRuntimeException.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanRuntimeException.java
deleted file mode 100644
index 2df2070..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanRuntimeException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-
-/**
- * General bean runtime operation exception.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class BeanRuntimeException extends FormattedRuntimeException {
-
-	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) {
-		super(c.getName() + ": " + 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ClassMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ClassMeta.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ClassMeta.java
deleted file mode 100644
index 3fee68a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ClassMeta.java
+++ /dev/null
@@ -1,1331 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import static org.apache.juneau.ClassMeta.ClassCategory.*;
-import static org.apache.juneau.internal.ClassUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.lang.reflect.Proxy;
-import java.net.*;
-import java.net.URI;
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.transform.Transform;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.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 (james.bognar@salesforce.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, CLASS, 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<?>
-		transformedClassMeta,                             // The transformed class type (in class has transform 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 fromStringMethod;                          // 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> numberConstructor;                 // The X(Number) constructor (if it has one).
-	Class<? extends Number> numberConstructorType;    // The class type of the object in the number constructor.
-	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.
-	PojoTransform<T,?> pojoTransform;                       // The object transform associated with this bean (if it has one).
-	BeanTransform<? extends T> beanTransform;               // The bean transform 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 hasChildPojoTransforms;               // True if this class or any subclass of this class has a PojoTransform 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 {
-			Transform transform = findTransform(beanContext);
-			if (transform != null) {
-				if (transform.getType() == Transform.TransformType.BEAN)
-					beanTransform = (BeanTransform)transform;
-				else
-					pojoTransform = (PojoTransform)transform;
-				transformedClassMeta = (pojoTransform == null ? this : beanContext.getClassMeta(pojoTransform.getTransformedClass()));
-			}
-			if (transformedClassMeta == null)
-				transformedClassMeta = this;
-
-			if (innerClass != Object.class) {
-				this.noArgConstructor = beanContext.getImplClassConstructor(innerClass, Visibility.PUBLIC);
-				if (noArgConstructor == null)
-					noArgConstructor = findNoArgConstructor(innerClass, Visibility.PUBLIC);
-			}
-
-			this.hasChildPojoTransforms = beanContext.hasChildPojoTransforms(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 (c.equals(Class.class))
-					classCategory = CLASS;
-				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(org.apache.juneau.annotation.URI.class))
-					classCategory = URI;
-				else if (isParentClass(Reader.class, c))
-					classCategory = READER;
-				else if (isParentClass(InputStream.class, c))
-					classCategory = INPUTSTREAM;
-			}
-
-			isMemberClass = c.isMemberClass() && ! isStatic(c);
-
-			// 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.fromStringMethod == null) {
-					for (Method m : c.getMethods()) {
-						if (isStatic(m) && isPublic(m) && isNotDeprecated(m)) {
-							String mName = m.getName();
-							if (mName.equals(methodName) && m.getReturnType() == innerClass) {
-								Class<?>[] args = m.getParameterTypes();
-								if (args.length == 1 && args[0] == String.class) {
-									this.fromStringMethod = m;
-									break;
-								}
-							}
-						}
-					}
-				}
-			}
-
-			// Find toObjectMap() method if present.
-			for (Method m : c.getMethods()) {
-				if (isPublic(m) && isNotDeprecated(m) && ! isStatic(m)) {
-					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()) {
-				if (isPublic(cs) && isNotDeprecated(cs)) {
-					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;
-						else if (classCategory != NUMBER && (Number.class.isAssignableFrom(arg) || (arg.isPrimitive() && (arg == int.class || arg == short.class || arg == long.class || arg == float.class || arg == double.class)))) {
-							this.numberConstructor = cs;
-							this.numberConstructorType = (Class<? extends Number>)ClassUtils.getWrapperIfPrimitive(arg);
-						}
-					}
-				}
-			}
-
-			// 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, beanTransform);
-				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 BeanTransform#getSubTypes()}.
-	 *
-	 * @return <jk>true</jk> if this class has subtypes.
-	 */
-	public boolean hasSubTypes() {
-		return beanTransform != null && beanTransform.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 PojoTransform} associated with it.
-	 * <p>
-	 * Used when transforming bean properties to prevent having to look up transforms if we know for certain
-	 * that no transforms are associated with a bean property.
-	 *
-	 * @return <jk>true</jk> if this class or any child classes has a {@link PojoTransform} associated with it.
-	 */
-	public boolean hasChildPojoTransforms() {
-		return hasChildPojoTransforms;
-	}
-
-	private Transform findTransform(BeanContext context) {
-		try {
-			org.apache.juneau.annotation.Transform b = innerClass.getAnnotation(org.apache.juneau.annotation.Transform.class);
-			if (b != null) {
-				Class<? extends Transform> c = b.value();
-				if (c != Transform.NULL.class) {
-					Transform f = c.newInstance();
-					f.setBeanContext(context);
-					return f;
-				}
-			}
-			if (context == null)
-				return null;
-			Transform f = context.findBeanTransform(innerClass);
-			if (f != null)
-				return f;
-			f = context.findPojoTransform(innerClass);
-			if (f != null)
-				return f;
-			List<Bean> ba = ReflectionUtils.findAnnotations(Bean.class, innerClass);
-			if (! ba.isEmpty())
-				f = new AnnotationBeanTransform<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() && ! isStatic(c);
-		for (Constructor cc : c.getConstructors()) {
-			mod = cc.getModifiers();
-			if (cc.getParameterTypes().length == (isMemberClass ? 1 : 0) && v.isVisible(mod) && isNotDeprecated(cc))
-				return v.transform(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 PojoTransform} associated with it.
-	 *
-	 * @return The transformed class type, or this object if no transform is associated with the class.
-	 */
-	@BeanIgnore
-	public ClassMeta<?> getTransformedClassMeta() {
-		return transformedClassMeta;
-	}
-
-	/**
-	 * 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 {@link Class}.
-	 *
-	 * @return <jk>true</jk> if this class is {@link Class}.
-	 */
-	public boolean isClass() {
-		return classCategory == CLASS;
-	}
-
-	/**
-	 * 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 (isPublic(m) && isNotDeprecated(m))
-						map.put(ClassUtils.getMethodSignature(m), m);
-				publicMethods = Collections.unmodifiableMap(map);
-			}
-		}
-		return publicMethods;
-	}
-
-	/**
-	 * Returns the {@link PojoTransform} associated with this class.
-	 *
-	 * @return The {@link PojoTransform} associated with this class, or <jk>null</jk> if there is no POJO transform
-	 * 	associated with this class.
-	 */
-	public PojoTransform<T,?> getPojoTransform() {
-		return pojoTransform;
-	}
-
-	/**
-	 * 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 transforms with subtype properties are assumed to be constructable.
-		if (beanTransform != null && beanTransform.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 (fromStringMethod != 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 canCreateNewInstanceFromNumber(Object outer) {
-		if (numberConstructor != null) {
-			if (isMemberClass)
-				return outer != null && numberConstructor.getParameterTypes()[0] == outer.getClass();
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the class type of the parameter of the numeric constructor.
-	 *
-	 * @return The class type of the numeric constructor, or <jk>null</jk> if no such constructor exists.
-	 */
-	public Class<? extends Number> getNewInstanceFromNumberClass() {
-		return numberConstructorType;
-	}
-
-	/**
-	 * 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 string 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 = fromStringMethod;
-		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 a <code>Number</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(Number 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 numeric 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.
-	 */
-	public T newInstanceFromNumber(Object outer, Number arg) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException {
-		Constructor<T> c = numberConstructor;
-		if (c != null) {
-			Object arg2 = beanContext.convertToType(arg, numberConstructor.getParameterTypes()[0]);
-			if (isMemberClass)
-				return c.newInstance(outer, arg2);
-			return c.newInstance(arg2);
-		}
-		throw new InstantiationError("No string constructor or valueOf(Number) 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 class='spaced-list'>
-	 * 		<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 class='spaced-list'>
-	 * 		<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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/ConfigException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/ConfigException.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/ConfigException.java
deleted file mode 100644
index a63e317..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/ConfigException.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-class ConfigException extends FormattedRuntimeException {
-	private static final long serialVersionUID = 1L;
-
-	public ConfigException(String message, Object...args) {
-		super(message, args);
-	}
-
-	@Override
-	public ConfigException initCause(Throwable t) {
-		super.initCause(t);
-		return this;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/Context.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/Context.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/Context.java
deleted file mode 100644
index 828a1f4..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/Context.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-/**
- * A reusable stateless thread-safe read-only configuration, typically used for creating one-time use {@link Session} objects.
- * <p>
- * 	Contexts are created through the {@link ContextFactory#getContext(Class)} method.
- * <p>
- * 	Subclasses MUST implement a constructor method that takes in a {@link ContextFactory} parameter.
- * 	Besides that restriction, a context object can do anything you desire.  However, it MUST
- * 		be thread-safe and all fields should be declared final to prevent modification.
- * 	It should NOT be used for storing temporary or state information.
- *
- * @see ContextFactory
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public abstract class Context {
-
-	/**
-	 * Constructor for this class.
-	 * <p>
-	 * Subclasses MUST implement the same constructor.
-	 *
-	 * @param configFactory The factory that created this config.
-	 */
-	public Context(ContextFactory configFactory) {}
-}


[25/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletContext.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletContext.java
deleted file mode 100755
index f093a35..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletContext.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Configurable properties on the {@link RestServlet} class.
- * <p>
- * Properties can be set on the {@link RestServlet} class using the {@link RestResource#properties} or {@link RestMethod#properties} annotations.
- * <p>
- * These properties can also be passed in as servlet init parameters or system properties.
- * <p>
- * Some of these properties are only applicable on the servlet class, and others can be specified on the servlet class or method.<br>
- * These distinctions are noted below.
- * <p>
- * See {@link ContextFactory} for more information about context properties.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class RestServletContext extends Context {
-
-	/**
-	 * Allow header URL parameters ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * When enabled, headers such as <js>"Accept"</js> and <js>"Content-Type"</js> to be passed in as URL query parameters.
-	 * For example:  <js>"?Accept=text/json&Content-Type=text/json"</js>
-	 * <p>
-	 * Parameter names are case-insensitive.
-	 * <p>
-	 * Useful for debugging REST interface using only a browser.
-	 * <p>
-	 * Applicable to servlet class only.
-	 */
-	public static final String REST_allowHeaderParams = "RestServlet.allowHeaderParams";
-
-	/**
-	 * Allow <js>"method"</js> URL parameter for specific HTTP methods (String, default=<js>""</js>, example=<js>"HEAD,OPTIONS"</js>).
-	 * <p>
-	 * When specified, the HTTP method can be overridden by passing in a <js>"method"</js> URL parameter on a regular GET request.
-	 * For example:  <js>"?method=OPTIONS"</js>
-	 * <p>
-	 * Parameter name is case-insensitive.  Use "*" to represent all methods.  For backwards compatibility, "true" also means "*".
-	 * <p>
-	 * Note that per the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html">HTTP specification</a>, special care should
-	 * 	be taken when allowing non-safe (POST, PUT, DELETE) methods to be invoked through GET requests.
-	 * <p>
-	 * Applicable to servlet class only.
-	 */
-	public static final String REST_allowMethodParam = "RestServlet.allowMethodParam";
-
-	/**
-	 * Allow <js>"content"</js> URL parameter ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * When enabled, the HTTP body content on PUT and POST requests can be passed in as text using the <js>"content"</js> URL parameter.
-	 * For example:  <js>"?content={name:'John%20Smith',age:45}"</js>
-	 * <p>
-	 * Parameter name is case-insensitive.
-	 * <p>
-	 * Useful for debugging PUT and POST methods using only a browser.
-	 * <p>
-	 * Applicable to servlet class only.
-	 */
-	public static final String REST_allowContentParam = "RestServlet.allowContentParam";
-
-	/**
-	 * Render stack traces in HTTP response bodies when errors occur ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * When enabled, Java stack traces will be rendered in the output response.
-	 * Useful for debugging, although allowing stack traces to be rendered may cause security concerns.
-	 * <p>
-	 * Applicable to servlet class only.
-	 */
-	public static final String REST_renderResponseStackTraces = "RestServlet.renderResponseStackTraces";
-
-	/**
-	 * Use stack trace hashes ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * When enabled, the number of times an exception has occurred will be determined based on stack trace hashsums,
-	 * made available through the {@link RestException#getOccurrence()} method.
-	 * <p>
-	 * Applicable to servlet class only.
-	 */
-	public static final String REST_useStackTraceHashes = "RestServlet.useStackTraceHashes";
-
-	/**
-	 * The default character encoding for the request and response if not specified on the request ({@link String}>, default=<js>"utf-8"</js>).
-	 * <p>
-	 * Applicable to servlet class and methods.
-	 */
-	public static final String REST_defaultCharset = "RestServlet.defaultCharset";
-
-	/**
-	 * The expected format of request parameters ({@link String}, default=<js>"UON"</js>).
-	 * <p>
-	 * Possible values:
-	 * <ul class='spaced-list'>
-	 * 	<li><js>"UON"</js> - URL-Encoded Object Notation.<br>
-	 *			This notation allows for request parameters to contain arbitrarily complex POJOs.
-	 * 	<li><js>"PLAIN"</js> - Plain text.<br>
-	 *			This treats request parameters as plain text.<br>
-	 *			Only POJOs directly convertable from <l>Strings</l> can be represented in parameters when using this mode.
-	 * </ul>
-	 * <p>
-	 * Note that the parameter value <js>"(foo)"</js> is interpreted as <js>"(foo)"</js> when using plain mode, but
-	 * 	<js>"foo"</js> when using UON mode.
-	 * <p>
-	 * The format can also be specified per-parameter using the {@link Param#format() @Param.format()} and {@link QParam#format() @QParam.format()}
-	 * 	annotations.
-	 * <p>
-	 * Applicable to servlet class and methods.
-	 */
-	public static final String REST_paramFormat = "RestServlet.paramFormat";
-
-	//--------------------------------------------------------------------------------
-	// Automatically added properties.
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * The request servlet path.
-	 * <p>
-	 * Automatically added to properties return by {@link RestServlet#createRequestProperties(org.apache.juneau.ObjectMap, RestRequest)}
-	 * 	and are therefore available through {@link SerializerSession#getProperties()} and {@link ParserSession#getProperties()}.
-	 * <p>
-	 * Equivalent to the value returned by {@link RestRequest#getServletPath()}
-	 */
-	public static final String REST_servletPath = "RestServlet.servletPath";
-
-	/**
-	 * The request servlet URI.
-	 * <p>
-	 * Equivalent to the value returned by {@link RestRequest#getServletURI()}
-	 */
-	public static final String REST_servletURI = "RestServlet.servletURI";
-
-	/**
-	 * The request servlet URI.
-	 * <p>
-	 * Equivalent to the value returned by {@link RestRequest#getRelativeServletURI()}
-	 */
-	public static final String REST_relativeServletURI = "RestServlet.relativeServletURI";
-
-	/**
-	 * The request URI path info.
-	 * <p>
-	 * Automatically added to properties return by {@link RestServlet#createRequestProperties(org.apache.juneau.ObjectMap, RestRequest)}
-	 * 	and are therefore available through {@link SerializerSession#getProperties()} and {@link ParserSession#getProperties()}.
-	 * <p>
-	 * Equivalent to the value returned by {@link RestRequest#getPathInfo()}
-	 */
-	public static final String REST_pathInfo = "RestServlet.pathInfo";
-
-	/**
-	 * The request URI.
-	 * <p>
-	 * Automatically added to properties return by {@link RestServlet#createRequestProperties(org.apache.juneau.ObjectMap, RestRequest)}
-	 * 	and are therefore available through {@link SerializerSession#getProperties()} and {@link ParserSession#getProperties()}.
-	 * <p>
-	 * Equivalent to the value returned by {@link RestRequest#getRequestURI()}
-	 */
-	public static final String REST_requestURI = "RestServlet.requestURI";
-
-	/**
-	 * The request method.
-	 * <p>
-	 * Automatically added to properties return by {@link RestServlet#createRequestProperties(org.apache.juneau.ObjectMap, RestRequest)}
-	 * 	and are therefore available through {@link SerializerSession#getProperties()} and {@link ParserSession#getProperties()}.
-	 * <p>
-	 * Equivalent to the value returned by {@link RestRequest#getMethod()}
-	 */
-	public static final String REST_method = "RestServlet.method";
-
-
-	final boolean allowHeaderParams, allowContentParam, renderResponseStackTraces, useStackTraceHashes;
-	final String defaultCharset, paramFormat;
-	final Set<String> allowMethodParams;
-
-	/**
-	 * Constructor.
-	 * <p>
-	 * Typically only called from {@link ContextFactory#getContext(Class)}.
-	 *
-	 * @param cf The factory that created this context.
-	 */
-	public RestServletContext(ContextFactory cf) {
-		super(cf);
-		allowHeaderParams = cf.getProperty(REST_allowHeaderParams, boolean.class, true);
-		allowContentParam = cf.getProperty(REST_allowContentParam, boolean.class, true);
-		renderResponseStackTraces = cf.getProperty(REST_renderResponseStackTraces, boolean.class, false);
-		useStackTraceHashes = cf.getProperty(REST_useStackTraceHashes, boolean.class, true);
-		defaultCharset = cf.getProperty(REST_defaultCharset, String.class, "utf-8");
-		paramFormat = cf.getProperty(REST_paramFormat, String.class, "");
-
-		Set<String> s = new LinkedHashSet<String>();
-		for (String m : StringUtils.split(cf.getProperty(REST_allowMethodParam, String.class, ""), ','))
-			if (m.equals("true"))  // For backwards compatibility when this was a boolean field.
-				s.add("*");
-			else
-				s.add(m.toUpperCase());
-		allowMethodParams = Collections.unmodifiableSet(s);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletDefault.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletDefault.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletDefault.java
deleted file mode 100755
index 2402927..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletDefault.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.html.HtmlDocSerializerContext.*;
-import static org.apache.juneau.server.RestServletContext.*;
-
-import org.apache.juneau.html.*;
-import org.apache.juneau.jso.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.msgpack.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.labels.*;
-import org.apache.juneau.soap.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Subclass of {@link RestServlet} with default serializers and parsers defined.
- * <p>
- * 	Supports the following request <code>Accept</code> header values with the resulting response <code>Content-Type</code>:
- * </p>
- * <table class='styled'>
- * 	<tr>
- * 		<th>Accept</th>
- * 		<th>Content-Type</th>
- * 		<th>Serializer</th>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/json<br>text/json</td>
- * 		<td class='code'>application/json</td>
- * 		<td>{@link JsonSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/json+simple<br>text/json+simple</td>
- * 		<td class='code'>application/json</td>
- * 		<td>{@link org.apache.juneau.json.JsonSerializer.Simple}</td>
- * 	</tr>
- * 		<td class='code'>application/json+schema<br>text/json+schema</td>
- * 		<td class='code'>application/json</td>
- * 		<td>{@link JsonSchemaSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml</td>
- * 		<td class='code'>text/xml</td>
- * 		<td>{@link XmlDocSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml+schema</td>
- * 		<td class='code'>text/xml</td>
- * 		<td>{@link XmlSchemaDocSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/html</td>
- * 		<td class='code'>text/html</td>
- * 		<td>{@link HtmlDocSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/html+stripped</td>
- * 		<td class='code'>text/html</td>
- * 		<td>{@link HtmlStrippedDocSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/uon</td>
- * 		<td class='code'>text/uon</td>
- * 		<td>{@link UonSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/uon-simple</td>
- * 		<td class='code'>text/uon</td>
- * 		<td>{@link org.apache.juneau.urlencoding.UonSerializer.Simple}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/x-www-form-urlencoded</td>
- * 		<td class='code'>application/x-www-form-urlencoded</td>
- * 		<td>{@link UrlEncodingSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/x-www-form-urlencoded-simple</td>
- * 		<td class='code'>application/x-www-form-urlencoded</td>
- * 		<td>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer.Simple}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml+soap</td>
- * 		<td class='code'>text/xml</td>
- * 		<td>{@link SoapXmlSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/plain</td>
- * 		<td class='code'>text/plain</td>
- * 		<td>{@link PlainTextSerializer}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/x-java-serialized-object</td>
- * 		<td class='code'>application/x-java-serialized-object</td>
- * 		<td>{@link JavaSerializedObjectSerializer}</td>
- * 	</tr>
- * </table>
- * <p>
- * 	Supports the following request <code>Content-Type</code> header values:
- * </p>
- * <table class='styled'>
- * 	<tr>
- * 		<th>Content-Type</th>
- * 		<th>Parser</th>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/json<br>text/json</td>
- * 		<td>{@link JsonParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/xml<br>application/xml</td>
- * 		<td>{@link XmlParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/html<br>text/html+stripped</td>
- * 		<td>{@link HtmlParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/uon</td>
- * 		<td>{@link UonParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>application/x-www-form-urlencoded</td>
- * 		<td>{@link UrlEncodingParser}</td>
- * 	</tr>
- * 	<tr>
- * 		<td class='code'>text/plain</td>
- * 		<td>{@link PlainTextParser}</td>
- * 	</tr>
- * </table>
- * <p>
- * 	It should be noted that we do NOT add {@link JavaSerializedObjectParser} to the list of parsers since this could
- * 		cause security issues.  Use caution when using this particular parser as it could inadvertantly cause
- * 		code execution security holes.
- *	</p>
- * <p>
- * 	The list of serializers and parsers can be appended to using the {@link RestResource#serializers() @RestResource.serializers()}
- * 		and {@link RestResource#parsers() @RestResource.parsers()} annotations on subclasses.
- * </p>
- * <p>
- * 	This subclass also provides a default OPTIONS page by implementing a {@link #getOptions(RestRequest)} that returns a POJO consisting
- * 		of beans describing the class.
- * </p>
- * <img class='bordered' src='doc-files/OptionsPage.png'>
- * <p>
- * 	The OPTIONS page can be modified or augmented by overriding this method and providing your own data.
- * </p>
- *
- * <h6 class='topic'>Other Notes</h6>
- * <ul class='spaced-list'>
- * 	<li>Provides a default HTML stylesheet by setting {@link RestResource#stylesheet() @RestResource.stylesheet()} to <js>"styles/juneau.css"</js>.
- * 	<li>Provides a default favicon by setting {@link RestResource#favicon() @RestResource.favicon()} to <js>"juneau.ico"</js>.
- * 	<li>Provides a default classpath entry "htdocs" by setting {@link RestResource#staticFiles() @RestResource.staticFiles()} to <js>"{htdocs:'htdocs'}"</js>.
- * 		This allows files inside the <code>[servletPackage].htdocs</code> package to be served up under the URL <code>/servletPath/htdocs</code>.
- * </ul>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@RestResource(
-	serializers={
-		HtmlDocSerializer.class, // HTML must be listed first because Internet Explore does not include text/html in their Accept header.
-		HtmlStrippedDocSerializer.class,
-		HtmlSchemaDocSerializer.class,
-		JsonSerializer.class,
-		JsonSerializer.Simple.class,
-		JsonSchemaSerializer.class,
-		XmlDocSerializer.class,
-		XmlSchemaDocSerializer.class,
-		UonSerializer.class,
-		UonSerializer.Simple.class,
-		UrlEncodingSerializer.class,
-		UrlEncodingSerializer.Simple.class,
-		MsgPackSerializer.class,
-		SoapXmlSerializer.class,
-		PlainTextSerializer.class,
-		JavaSerializedObjectSerializer.class
-	},
-	parsers={
-		JsonParser.class,
-		XmlParser.class,
-		HtmlParser.class,
-		UonParser.class,
-		UrlEncodingParser.class,
-		MsgPackParser.class,
-		PlainTextParser.class
-	},
-	properties={
-		// Allow &method parameter on safe HTTP methods.
-		@Property(name=REST_allowMethodParam, value="OPTIONS"),
-		// Provide a default title on HTML pages.
-		@Property(name=HTMLDOC_title, value="$R{servletLabel}"),
-		// Provide a default description on HTML pages.
-		@Property(name=HTMLDOC_description, value="$R{servletDescription}")
-	},
-	stylesheet="styles/juneau.css",
-	favicon="juneau.ico",
-	staticFiles="{htdocs:'htdocs'}"
-)
-public abstract class RestServletDefault extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * [OPTIONS /*] - Show resource options.
-	 *
-	 * @param req The HTTP request.
-	 * @return A bean containing the contents for the OPTIONS page.
-	 */
-	@RestMethod(name="OPTIONS", path="/*",
-		properties={
-			@Property(name=HTMLDOC_links, value="{back:'$R{servletURI}'}"),
-			@Property(name=HTMLDOC_description, value="Resource options")
-		},
-		description="Resource options"
-	)
-	public ResourceOptions getOptions(RestRequest req) {
-		return new ResourceOptions(this, req);
-	}
-
-	@Override /* RestServlet */
-	public boolean hasOptionsPage() {
-		return true;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletException.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletException.java
deleted file mode 100755
index 1e33808..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletException.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.text.*;
-
-import javax.servlet.*;
-
-/**
- * General exception thrown from {@link RestServlet} during construction or initialization.
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class RestServletException extends ServletException {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param message The detailed message.
-	 * @param args Optional message arguments.
-	 */
-	public RestServletException(String message, Object...args) {
-		super(args.length == 0 ? message : MessageFormat.format(message, args));
-	}
-
-	/**
-	 * Sets the inner cause for this exception.
-	 *
-	 * @param cause The inner cause.
-	 * @return This object (for method chaining).
-	 */
-	@Override /* Throwable */
-	public synchronized RestServletException initCause(Throwable cause) {
-		super.initCause(cause);
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletGroupDefault.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletGroupDefault.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletGroupDefault.java
deleted file mode 100755
index 4083e61..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestServletGroupDefault.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.labels.*;
-
-/**
- * Specialized subclass of {@link RestServletDefault} for showing "group" pages.
- * <p>
- * 	Group pages consist of simple lists of child resource URLs and their labels.
- * 	They're meant to be used as jumping-off points for child resources.
- * <p>
- * 	Child resources are specified using the {@link RestResource#children()} annotation.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@RestResource()
-public abstract class RestServletGroupDefault extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * [GET /] - Get child resources.
-	 *
-	 * @param req The HTTP request.
-	 * @return The bean containing links to the child resources.
-	 */
-	@RestMethod(name="GET", path="/", description="Child resources")
-	public ChildResourceDescriptions getChildren(RestRequest req) {
-		return new ChildResourceDescriptions(this, req);
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestUtils.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestUtils.java
deleted file mode 100755
index 12ce0cd..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestUtils.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import javax.servlet.http.*;
-
-import org.apache.juneau.internal.*;
-
-/**
- * Various reusable utility methods.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class RestUtils {
-
-	/**
-	 * Returns readable text for an HTTP response code.
-	 *
-	 * @param rc The HTTP response code.
-	 * @return Readable text for an HTTP response code, or <jk>null</jk> if it's an invalid code.
-	 */
-	public static String getHttpResponseText(int rc) {
-		return httpMsgs.get(rc);
-	}
-
-	@SuppressWarnings("serial")
-	private static Map<Integer,String> httpMsgs = new HashMap<Integer,String>() {{
-		put(200, "OK");
-		put(201, "Created");
-		put(202, "Accepted");
-		put(203, "Non-Authoritative Information");
-		put(204, "No Content");
-		put(205, "Reset Content");
-		put(206, "Partial Content");
-		put(300, "Multiple Choices");
-		put(301, "Moved Permanently");
-		put(302, "Temporary Redirect");
-		put(303, "See Other");
-		put(304, "Not Modified");
-		put(305, "Use Proxy");
-		put(307, "Temporary Redirect");
-		put(400, "Bad Request");
-		put(401, "Unauthorized");
-		put(402, "Payment Required");
-		put(403, "Forbidden");
-		put(404, "Not Found");
-		put(405, "Method Not Allowed");
-		put(406, "Not Acceptable");
-		put(407, "Proxy Authentication Required");
-		put(408, "Request Time-Out");
-		put(409, "Conflict");
-		put(410, "Gone");
-		put(411, "Length Required");
-		put(412, "Precondition Failed");
-		put(413, "Request Entity Too Large");
-		put(414, "Request-URI Too Large");
-		put(415, "Unsupported Media Type");
-		put(500, "Internal Server Error");
-		put(501, "Not Implemented");
-		put(502, "Bad Gateway");
-		put(503, "Service Unavailable");
-		put(504, "Gateway Timeout");
-		put(505, "HTTP Version Not Supported");
-	}};
-
-	/**
-	 * Trims <js>'/'</js> characters from both the start and end of the specified string.
-	 *
-	 * @param s The string to trim.
-	 * @return A new trimmed string, or the same string if no trimming was necessary.
-	 */
-	public static String trimSlashes(String s) {
-		if (s == null)
-			return null;
-		while (StringUtils.endsWith(s, '/'))
-			s = s.substring(0, s.length()-1);
-		while (s.length() > 0 && s.charAt(0) == '/')
-			s = s.substring(1);
-		return s;
-	}
-
-	/**
-	 * Trims <js>'/'</js> characters from the end of the specified string.
-	 *
-	 * @param s The string to trim.
-	 * @return A new trimmed string, or the same string if no trimming was necessary.
-	 */
-	public static String trimTrailingSlashes(String s) {
-		if (s == null)
-			return null;
-		while (StringUtils.endsWith(s, '/'))
-			s = s.substring(0, s.length()-1);
-		return s;
-	}
-
-	/**
-	 * Trims <js>'/'</js> characters from the end of the specified string.
-	 *
-	 * @param s The string to trim.
-	 * @return The same string buffer.
-	 */
-	public static StringBuffer trimTrailingSlashes(StringBuffer s) {
-		if (s == null)
-			return null;
-		while (s.length() > 0 && s.charAt(s.length()-1) == '/')
-			s.setLength(s.length()-1);
-		return s;
-	}
-
-   /**
-    * Decodes a <code>application/x-www-form-urlencoded</code> string using <code>UTF-8</code> encoding scheme.
-    *
-	 * @param s The string to decode.
-	 * @return The decoded string, or <jk>null</jk> if input is <jk>null</jk>.
-    */
-	public static String decode(String s) {
-		if (s == null)
-			return s;
-		boolean needsDecode = false;
-		for (int i = 0; i < s.length() && ! needsDecode; i++) {
-			char c = s.charAt(i);
-			if (c == '+' || c == '%')
-				needsDecode = true;
-		}
-		if (needsDecode)
-		try {
-				return URLDecoder.decode(s, "UTF-8");
-			} catch (UnsupportedEncodingException e) {/* Won't happen */}
-		return s;
-	}
-
-	// Characters that do not need to be URL-encoded
-	private static final AsciiSet unencodedChars = new AsciiSet("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.!~*'()\\");
-
-   /**
-    * Encodes a <code>application/x-www-form-urlencoded</code> string using <code>UTF-8</code> encoding scheme.
-    *
-    * @param s The string to encode.
-    * @return The encoded string, or <jk>null</jk> if input is <jk>null</jk>.
-    */
-	public static String encode(String s) {
-		if (s == null)
-			return null;
-		boolean needsEncode = false;
-		for (int i = 0; i < s.length() && ! needsEncode; i++)
-			needsEncode |= (! unencodedChars.contains(s.charAt(i)));
-		if (needsEncode)
-		try {
-				return URLEncoder.encode(s, "UTF-8");
-			} catch (UnsupportedEncodingException e) {/* Won't happen */}
-		return s;
-	}
-
-   /**
-    * Identical to {@link HttpServletRequest#getPathInfo()} but doesn't decode encoded characters.
-    *
-    * @param req The HTTP request
-    * @return The undecoded path info.
-    */
-	public static String getPathInfoUndecoded(HttpServletRequest req) {
-		String requestURI = req.getRequestURI();
-		String contextPath = req.getContextPath();
-		String servletPath = req.getServletPath();
-		int l = contextPath.length() + servletPath.length();
-		if (requestURI.length() == l)
-			return null;
-		return requestURI.substring(l);
-	}
-
-	/**
-	 * Efficiently trims the path info part from a request URI.
-	 * <p>
-	 * The result is the URI of the servlet itself.
-	 *
-	 * @param requestURI The value returned by {@link HttpServletRequest#getRequestURL()}
-	 * @param contextPath The value returned by {@link HttpServletRequest#getContextPath()}
-	 * @param servletPath The value returned by {@link HttpServletRequest#getServletPath()}
-	 * @return The same StringBuilder with remainder trimmed.
-	 */
-	public static StringBuffer trimPathInfo(StringBuffer requestURI, String contextPath, String servletPath) {
-		if (servletPath.equals("/"))
-			servletPath = "";
-		if (contextPath.equals("/"))
-			contextPath = "";
-
-		try {
-			// Given URL:  http://hostname:port/servletPath/extra
-			// We want:    http://hostname:port/servletPath
-			int sc = 0;
-			for (int i = 0; i < requestURI.length(); i++) {
-				char c = requestURI.charAt(i);
-				if (c == '/') {
-					sc++;
-					if (sc == 3) {
-						if (servletPath.isEmpty()) {
-							requestURI.setLength(i);
-							return requestURI;
-						}
-
-						// Make sure context path follows the authority.
-						for (int j = 0; j < contextPath.length(); i++, j++)
-							if (requestURI.charAt(i) != contextPath.charAt(j))
-								throw new Exception("case=1");
-
-						// Make sure servlet path follows the authority.
-						for (int j = 0; j < servletPath.length(); i++, j++)
-							if (requestURI.charAt(i) != servletPath.charAt(j))
-								throw new Exception("case=2");
-
-						// Make sure servlet path isn't a false match (e.g. /foo2 should not match /foo)
-						c = (requestURI.length() == i ? '/' : requestURI.charAt(i));
-						if (c == '/' || c == '?') {
-							requestURI.setLength(i);
-							return requestURI;
-						}
-
-						throw new Exception("case=3");
-					}
-				} else if (c == '?') {
-					if (sc != 2)
-						throw new Exception("case=4");
-					if (servletPath.isEmpty()) {
-						requestURI.setLength(i);
-						return requestURI;
-					}
-					throw new Exception("case=5");
-				}
-			}
-			if (servletPath.isEmpty())
-				return requestURI;
-			throw new Exception("case=6");
-		} catch (Exception e) {
-			throw new RuntimeException("Could not find servlet path in request URI.  URI=["+requestURI+"], servletPath=["+servletPath+"]", e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/StreamResource.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/StreamResource.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/StreamResource.java
deleted file mode 100755
index fb7dd13..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/StreamResource.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.server.response.*;
-
-/**
- * Represents the contents of a byte stream file with convenience methods for adding HTTP response headers.
- * <p>
- * This class is handled special by the {@link StreamableHandler} class.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class StreamResource implements Streamable {
-
-	private byte[] contents;
-	private String mediaType;
-	private Map<String,String> headers = new LinkedHashMap<String,String>();
-
-	/**
-	 * Constructor.
-	 * Create a stream resource from a byte array.
-	 *
-	 * @param contents The resource contents.
-	 * @param mediaType The resource media type.
-	 */
-	public StreamResource(byte[] contents, String mediaType) {
-		this.contents = contents;
-		this.mediaType = mediaType;
-	}
-
-	/**
-	 * Constructor.
-	 * Create a stream resource from an <code>InputStream</code>.
-	 * Contents of stream will be loaded into a reusable byte array.
-	 *
-	 * @param contents The resource contents.
-	 * @param mediaType The resource media type.
-	 * @throws IOException
-	 */
-	public StreamResource(InputStream contents, String mediaType) throws IOException {
-		this.contents = IOUtils.readBytes(contents, 1024);
-		this.mediaType = mediaType;
-	}
-
-	/**
-	 * Add an HTTP response header.
-	 *
-	 * @param name The header name.
-	 * @param value The header value, converted to a string using {@link Object#toString()}.
-	 * @return This object (for method chaining).
-	 */
-	public StreamResource setHeader(String name, Object value) {
-		headers.put(name, value == null ? "" : value.toString());
-		return this;
-	}
-
-	/**
-	 * Get the HTTP response headers.
-	 *
-	 * @return The HTTP response headers.  Never <jk>null</jk>.
-	 */
-	public Map<String,String> getHeaders() {
-		return headers;
-	}
-
-	@Override /* Streamable */
-	public void streamTo(OutputStream os) throws IOException {
-		os.write(contents);
-	}
-
-	@Override /* Streamable */
-	public String getMediaType() {
-		return mediaType;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/UrlPathPattern.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/UrlPathPattern.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/UrlPathPattern.java
deleted file mode 100755
index 4c161bb..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/UrlPathPattern.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.RestUtils.*;
-
-import java.util.*;
-import java.util.regex.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * A parsed path pattern constructed from a {@link RestMethod#path()} value.
- * <p>
- * Handles aspects of matching and precedence ordering.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class UrlPathPattern implements Comparable<UrlPathPattern> {
-	private Pattern pattern;
-	String patternString;
-	private boolean isOnlyDotAll, isDotAll;
-	String[] vars = new String[0];
-
-	/**
-	 * Constructor.
-	 *
-	 * @param patternString The raw pattern string from the {@link RestMethod#path()} annotation.
-	 */
-	public UrlPathPattern(String patternString) {
-		this.patternString = patternString;
-		if (! StringUtils.startsWith(patternString, '/'))
-			patternString = '/' + patternString;
-		if (patternString.equals("/*")) {
-			isOnlyDotAll = true;
-			return;
-		}
-		if (patternString.endsWith("/*"))
-			isDotAll = true;
-
-		// Find all {xxx} variables.
-		Pattern p = Pattern.compile("\\{([^\\}]+)\\}");
-		List<String> vl = new LinkedList<String>();
-		Matcher m = p.matcher(patternString);
-		while (m.find())
-			vl.add(m.group(1));
-		this.vars = vl.toArray(new String[vl.size()]);
-
-		patternString = patternString.replaceAll("\\{[^\\}]+\\}", "([^\\/]+)");
-		patternString = patternString.replaceAll("\\/\\*$", "((?:)|(?:\\/.*))");
-		pattern = Pattern.compile(patternString);
-	}
-
-	/**
-	 * Returns a non-<jk>null</jk> value if the specified path matches this pattern.
-	 *
-	 * @param path The path to match against.
-	 * @return An array of values matched against <js>"{var}"</js> variable in the pattern,
-	 * 	or an empty array if the pattern matched but no vars were present, or <jk>null</jk>
-	 * 	if the specified path didn't match the pattern.
-	 */
-	protected String[] match(String path) {
-
-		if (isOnlyDotAll) {
-			// Remainder always gets leading slash trimmed.
-			if (path != null)
-				path = path.substring(1);
-			return new String[]{path};
-		}
-
-		if (path == null)
-			return (patternString.equals("/") ? new String[]{} : null);
-
-		Matcher m = pattern.matcher(path);
-		if (! m.matches())
-			return null;
-
-		int len = m.groupCount();
-		String[] v = new String[len];
-
-		for (int i = 0; i < len; i++) {
-			if (isDotAll && i == len-1)
-				v[i] = m.group(i+1).isEmpty() ? null : m.group(i+1).substring(1);
-			else
-			v[i] = decode(m.group(i+1));
-		}
-
-		return v;
-	}
-
-	/**
-	 * Comparator for this object.
-	 * The comparator is designed to order URL pattern from most-specific to least-specific.
-	 * For example, the following patterns would be ordered as follows:
-	 * <ol>
-	 * 	<li><code>/foo/bar</code>
-	 * 	<li><code>/foo/bar/*</code>
-	 * 	<li><code>/foo/{id}/bar</code>
-	 * 	<li><code>/foo/{id}/bar/*</code>
-	 * 	<li><code>/foo/{id}</code>
-	 * 	<li><code>/foo/{id}/*</code>
-	 * 	<li><code>/foo</code>
-	 * 	<li><code>/foo/*</code>
-	 * </ol>
-	 */
-	@Override /* Comparable */
-	public int compareTo(UrlPathPattern o) {
-		String s1 = patternString.replaceAll("\\{[^\\}]+\\}", ".").replaceAll("\\w+", "X").replaceAll("\\.", "W");
-		String s2 = o.patternString.replaceAll("\\{[^\\}]+\\}", ".").replaceAll("\\w+", "X").replaceAll("\\.", "W");
-		if (s1.isEmpty())
-			s1 = "+";
-		if (s2.isEmpty())
-			s2 = "+";
-		if (! s1.endsWith("/*"))
-			s1 = s1 + "/W";
-		if (! s2.endsWith("/*"))
-			s2 = s2 + "/W";
-		int c = s2.compareTo(s1);
-		if (c == 0)
-			return o.toRegEx().compareTo(toRegEx());
-		return c;
-	}
-
-	@Override /* Object */
-	public boolean equals(Object o) {
-		if (! (o instanceof UrlPathPattern))
-			return false;
-		return (compareTo((UrlPathPattern)o) == 0);
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		return super.hashCode();
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return patternString;
-	}
-
-	/**
-	 * Returns this path pattern as the compiled regular expression.
-	 * Useful for debugging.
-	 *
-	 * @return The path pattern.
-	 */
-	public String toRegEx() {
-		return isOnlyDotAll ? "*" : pattern.pattern();
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Attr.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Attr.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Attr.java
deleted file mode 100755
index 6c1aed5..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Attr.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify it as a variable in a URL path pattern converted to a POJO.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/myurl/{foo}/{bar}/{baz}/*"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res,
- * 			<ja>@Attr</ja> String foo, <ja>@Attr</ja> <jk>int</jk> bar, <ja>@Attr</ja> UUID baz) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	The <ja>@Attr</ja> annotation is optional if the parameters are specified immediately
- * 	following the <code>RestRequest</code> and <code>RestResponse</code> parameters,
- * 	and are specified in the same order as the variables in the URL path pattern.
- * 	The following example is equivalent to the previous example.
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/myurl/{foo}/{bar}/{baz}/*"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res,
- * 			String foo, <jk>int</jk> bar, UUID baz) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	If the order of parameters is not the default order shown above, the
- * 	attribute names must be specified (since parameter names are lost during compilation).
- * 	The following example is equivalent to the previous example, except
- * 	the parameter order has been switched, requiring the use of the <ja>@Attr</ja>
- * 	annotations.
- * <p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/myurl/{foo}/{bar}/{baz}/*"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res,
- * 			<ja>@Attr</ja>(<js>"baz"</js>) UUID baz, <ja>@Attr</ja>(<js>"foo"</js>) String foo, <ja>@Attr</ja>(<js>"bar"</js>) <jk>int</jk> bar) {
- * 		...
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Attr {
-
-	/**
-	 * URL variable name.
-	 * <p>
-	 * 	Optional if the attributes are specified in the same order as in the URL path pattern.
-	 */
-	String value() default "";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Content.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Content.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Content.java
deleted file mode 100755
index bdf3e65..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Content.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.io.*;
-import java.lang.annotation.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify it as the HTTP request body converted to a POJO.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"POST"</js>)
- * 	<jk>public void</jk> doPostPerson(RestRequest req, RestResponse res, <ja>@Content</ja> Person person) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"POST"</js>)
- * 	<jk>public void</jk> doPostPerson(RestRequest req, RestResponse res) {
- * 		Person person = req.getInput(Person.<jk>class</jk>);
- * 		...
- * 	}
- * </p>
- * <p>
- * 	{@link Reader Readers} and {@link InputStream InputStreams} can also be specified as content parameters.
- * 	When specified, any registered parsers are bypassed.
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"POST"</js>)
- * 	<jk>public void</jk> doPostPerson(<ja>@Header</ja> String mediaType, <ja>@Content</ja> InputStream input) {
- * 		...
- * 	}
- * </p>
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Content {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/HasParam.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/HasParam.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/HasParam.java
deleted file mode 100755
index 06c44a6..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/HasParam.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.server.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify whether or not the request has the specified GET or POST parameter.
- * <p>
- * Note that this can be used to detect the existence of a parameter when it's not set to a particular value.
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(<ja>@HasParam</ja>(<js>"p1"</js>) <jk>boolean</jk> p1) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req) {
- * 		<jk>boolean</jk> p1 = req.hasParameter(<js>"p1"</js>);
- * 		...
- * 	}
- * </p>
- * <p>
- * The following table shows the behavioral differences between <code>@HasParam</code> and <code>@Param</code>...
- * <table class='styled'>
- * 	<tr>
- * 		<th><code>URL</code></th>
- * 		<th><code><ja>@HasParam</ja>(<js>"a"</js>)</code></th>
- * 		<th><code><ja>@Param</ja>(<js>"a"</js>)</code></th>
- * 	</tr>
- * 	<tr>
- * 		<td><code>?a=foo</code></td>
- * 		<td><code><jk>true</jk></td>
- * 		<td><code><js>"foo"</js></td>
- * 	</tr>
- * 	<tr>
- * 		<td><code>?a=</code></td>
- * 		<td><code><jk>true</jk></td>
- * 		<td><code><js>""</js></td>
- * 	</tr>
- * 	<tr>
- * 		<td><code>?a</code></td>
- * 		<td><code><jk>true</jk></td>
- * 		<td><code><jk>null</jk></td>
- * 	</tr>
- * 	<tr>
- * 		<td><code>?b=foo</code></td>
- * 		<td><code><jk>false</jk></td>
- * 		<td><code><jk>null</jk></td>
- * 	</tr>
- * </table>
- *
- * <h6 class='topic'>Important note concerning FORM posts</h6>
- * <p>
- * This annotation should not be combined with the {@link Content @Content} annotation or {@link RestRequest#getInput(Class)} method
- * 	for <code>application/x-www-form-urlencoded POST</code> posts, since it will trigger the underlying servlet API to parse the body
- * 	content as key-value pairs, resulting in empty content.
- * <p>
- * The {@link HasQParam @HasQParam} annotation can be used to check for the existing of a URL parameter
- * 	in the URL string without triggering the servlet to drain the body content.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface HasParam {
-
-	/**
-	 * URL parameter name.
-	 */
-	String value();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/HasQParam.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/HasQParam.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/HasQParam.java
deleted file mode 100755
index a51a56b..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/HasQParam.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.server.*;
-
-/**
- * Identical to {@link HasParam @HasParam}, but only checks the existing of the parameter in the
- * 	URL string, not URL-encoded form posts.
- * <p>
- * Unlike {@link HasParam @HasParam}, using this annotation does not result in the servlet reading the contents
- * 	of URL-encoded form posts.
- * Therefore, this annotation can be used in conjunction with the {@link Content @Content} annotation
- * 	or {@link RestRequest#getInput(Class)} method for <code>application/x-www-form-urlencoded POST</code> calls.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doPost(<ja>@HasQParam</ja>(<js>"p1"</js>) <jk>boolean</jk> p1, <ja>@Content</ja> Bean myBean) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req) {
- * 		<jk>boolean</jk> p1 = req.hasQueryParameter(<js>"p1"</js>);
- * 		...
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface HasQParam {
-
-	/**
-	 * URL parameter name.
-	 */
-	String value();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Header.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Header.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Header.java
deleted file mode 100755
index b26674d..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Header.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify it as a HTTP request header converted to a POJO.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res, <ja>@Header</ja>(<js>"ETag"</js>) UUID etag) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doPostPerson(RestRequest req, RestResponse res) {
- * 		UUID etag = req.getHeader(UUID.<jk>class</jk>, "ETag");
- * 		...
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Header {
-
-	/**
-	 * HTTP header name.
-	 */
-	String value();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Inherit.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Inherit.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Inherit.java
deleted file mode 100755
index de0f6ac..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Inherit.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-/**
- * Inheritance values for the {@link RestMethod#serializersInherit()} and {@link RestMethod#parsersInherit()}
- * 	annotations.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public enum Inherit {
-
-	/** Inherit serializers from parent. */
-	SERIALIZERS,
-
-	/** Inherit parsers from parent. */
-	PARSERS,
-
-	/** Inherit transforms from parent. */
-	TRANSFORMS,
-
-	/** Inherit properties from parent. */
-	PROPERTIES
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Messages.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Messages.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Messages.java
deleted file mode 100755
index 66cbc7f..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Messages.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-import java.util.*;
-
-import org.apache.juneau.utils.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify it as the resource bundle for the request locale.
- * <p>
- * 	Parameter type must be either {@link ResourceBundle} or {@link MessageBundle}.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public</jk> String doGet(<ja>@Messages</ja> ResourceBundle messages) {
- * 		<jk>return</jk> messages.getString(<js>"myLocalizedMessage"</js>);
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public</jk> String doGet(RestRequest req) {
- * 		<jk>return</jk> req.getMessage(<js>"myLocalizedMessage"</js>);
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Messages {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Method.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Method.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Method.java
deleted file mode 100755
index 80acbb4..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Method.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify it as the HTTP method.
- * <p>
- * 	Typically used for HTTP method handlers of type <js>"*"</js> (i.e. handle all requests).
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"*"</js>)
- * 	<jk>public void</jk> doAnything(RestRequest req, RestResponse res, <ja>@Method</ja> String method) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"*"</js>)
- * 	<jk>public void</jk> doAnything(RestRequest req, RestResponse res) {
- * 		String method = req.getMethod();
- * 		...
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Method {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Param.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Param.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Param.java
deleted file mode 100755
index d20f08c..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Param.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.server.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify it as a URL query parameter converted to a POJO.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res,
- * 				<ja>@Param</ja>(<js>"p1"</js>) <jk>int</jk> p1, <ja>@Param</ja>(<js>"p2"</js>) String p2, <ja>@Param</ja>(<js>"p3"</js>) UUID p3) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res) {
- * 		<jk>int</jk> p1 = req.getParam(<jk>int</jk>.<jk>class</jk>, <js>"p1"</js>, 0);
- * 		String p2 = req.getParam(String.<jk>class</jk>, <js>"p2"</js>);
- * 		UUID p3 = req.getParam(UUID.<jk>class</jk>, <js>"p3"</js>);
- * 		...
- * 	}
- * </p>
- *
- * <h6 class='topic'>Important note concerning FORM posts</h6>
- * <p>
- * This annotation should not be combined with the {@link Content @Content} annotation or {@link RestRequest#getInput(Class)} method
- * 	for <code>application/x-www-form-urlencoded POST</code> posts, since it will trigger the underlying servlet
- * 	API to parse the body content as key-value pairs resulting in empty content.
- * <p>
- * The {@link QParam @QParam} annotation can be used to retrieve a URL parameter
- * 	in the URL string without triggering the servlet to drain the body content.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Param {
-
-	/**
-	 * URL parameter name.
-	 */
-	String value();
-
-	/**
-	 * Specify <jk>true</jk> if using multi-part parameters to represent collections and arrays.
-	 * <p>
-	 * 	Normally, we expect single parameters to be specified in UON notation for representing
-	 * 	collections of values (e.g. <js>"&key=(1,2,3)"</js>.
-	 * 	This annotation allows the use of multi-part parameters to represent collections
-	 * 	(e.g. <js>"&key=1&key=2&key=3"</js>.
-	 * <p>
-	 *		This setting should only be applied to Java parameters of type array or Collection.
-	 */
-	boolean multipart() default false;
-
-	/**
-	 * The expected format of the request parameter.
-	 * <p>
-	 * Possible values:
-	 * <ul class='spaced-list'>
-	 * 	<li><js>"UON"</js> - URL-Encoded Object Notation.<br>
-	 *			This notation allows for request parameters to contain arbitrarily complex POJOs.
-	 * 	<li><js>"PLAIN"</js> - Plain text.<br>
-	 *			This treats request parameters as plain text.<br>
-	 *			Only POJOs directly convertable from <l>Strings</l> can be represented in parameters when using this mode.
-	 * 	<li><js>"INHERIT"</js> (default) - Inherit from the {@link RestServletContext#REST_paramFormat} property on the servlet method or class.
-	 * </ul>
-	 * <p>
-	 * Note that the parameter value <js>"(foo)"</js> is interpreted as <js>"(foo)"</js> when using plain mode, but
-	 * 	<js>"foo"</js> when using UON mode.
-	 */
-	String format() default "INHERIT";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/PathRemainder.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/PathRemainder.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/PathRemainder.java
deleted file mode 100755
index b51ff6b..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/PathRemainder.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify it as the URL parameter remainder after a path pattern match.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo/*"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res, <ja>@PathRemainder</ja> String remainder) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo/*"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res) {
- * 		String remainder = req.getPathRemainder();
- * 		...
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface PathRemainder {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Properties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Properties.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Properties.java
deleted file mode 100755
index 5aba15e..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Properties.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.*;
-
-/**
- * Annotation that can be applied to a parameter of a {@link RestMethod} annotated method
- * 	to identify the request-duration properties object for the current request.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public Person</jk> doGetPerson(<ja>@Properties</ja> ObjectMap properties) {
- * 		properties.put(<jsf>HTMLDOC_title</jsf>, <js>"This is a person"</js>);
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public Person</jk> doGetPerson(RestResponse res) {
- * 		ObjectMap properties = res.getProperties();
- * 		properties.put(<jsf>HTMLDOC_title</jsf>, <js>"This is a person"</js>);
- * 		...
- * 	}
- * </p>
- * <p>
- * 	...or this...
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public Person</jk> doGetPerson(RestResponse res) {
- * 		res.setProperty(<jsf>HTMLDOC_title</jsf>, <js>"This is a person"</js>);
- * 		...
- * 	}
- * </p>
- * <p>
- * 	The parameter type can be one of the following:
- * 	<ul>
- * 		<li>{@link ObjectMap}
- * 		<li><code>Map&lt;String,Object&gt;</code>
- * 	</ul>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface Properties {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Property.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Property.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Property.java
deleted file mode 100755
index c06675d..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/Property.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Property name/value pair used in the {@link RestResource#properties()} annotation.
- * <p>
- * 	Any of the following property names can be specified:
- * <ul>
- * 	<li>{@link BeanContext}
- * 	<li>{@link SerializerContext}
- * 	<li>{@link ParserContext}
- * 	<li>{@link JsonSerializerContext}
- * 	<li>{@link RdfSerializerContext}
- * 	<li>{@link RdfParserContext}
- * 	<li>{@link RdfCommonContext}
- * 	<li>{@link XmlSerializerContext}
- * 	<li>{@link XmlParserContext}
- * </ul>
- * <p>
- * 	Property values types that are not <code>Strings</code> will automatically be converted to the
- * 		correct type (e.g. <code>Boolean</code>, etc...).
- * <p>
- * 	See {@link RestResource#properties} for more information.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(ANNOTATION_TYPE)
-@Retention(RUNTIME)
-@Inherited
-public @interface Property {
-
-	/**
-	 * Property name.
-	 */
-	String name();
-
-	/**
-	 * Property value.
-	 */
-	String value();
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/QParam.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/QParam.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/QParam.java
deleted file mode 100755
index 0b13621..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/annotation/QParam.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.server.*;
-
-/**
- * Identical to {@link Param @Param}, but only retrieves the parameter from the
- * 	URL string, not URL-encoded form posts.
- * <p>
- * Unlike {@link Param @Param}, using this annotation does not result in the servlet reading the contents
- * 	of URL-encoded form posts.
- * Therefore, this annotation can be used in conjunction with the {@link Content @Content} annotation
- * 	or {@link RestRequest#getInput(Class)} method for <code>application/x-www-form-urlencoded POST</code> calls.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res,
- * 				<ja>@QParam</ja>(<js>"p1"</js>) <jk>int</jk> p1, <ja>@QParam</ja>(<js>"p2"</js>) String p2, <ja>@QParam</ja>(<js>"p3"</js>) UUID p3) {
- * 		...
- * 	}
- * </p>
- * <p>
- * 	This is functionally equivalent to the following code...
- * </p>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res) {
- * 		<jk>int</jk> p1 = req.getQueryParameter(<jk>int</jk>.<jk>class</jk>, <js>"p1"</js>, 0);
- * 		String p2 = req.getQueryParameter(String.<jk>class</jk>, <js>"p2"</js>);
- * 		UUID p3 = req.getQueryParameter(UUID.<jk>class</jk>, <js>"p3"</js>);
- * 		...
- * 	}
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Documented
-@Target(PARAMETER)
-@Retention(RUNTIME)
-@Inherited
-public @interface QParam {
-
-	/**
-	 * URL parameter name.
-	 */
-	String value();
-
-	/**
-	 * Specify <jk>true</jk> if using multi-part parameters to represent collections and arrays.
-	 * <p>
-	 * 	Normally, we expect single parameters to be specified in UON notation for representing
-	 * 	collections of values (e.g. <js>"&key=(1,2,3)"</js>.
-	 * 	This annotation allows the use of multi-part parameters to represent collections
-	 * 	(e.g. <js>"&key=1&key=2&key=3"</js>.
-	 * <p>
-	 *		This setting should only be applied to Java parameters of type array or Collection.
-	 */
-	boolean multipart() default false;
-
-	/**
-	 * The expected format of the request parameter.
-	 * <p>
-	 * Possible values:
-	 * <ul class='spaced-list'>
-	 * 	<li><js>"UON"</js> - URL-Encoded Object Notation.<br>
-	 *			This notation allows for request parameters to contain arbitrarily complex POJOs.
-	 * 	<li><js>"PLAIN"</js> - Plain text.<br>
-	 *			This treats request parameters as plain text.<br>
-	 *			Only POJOs directly convertable from <l>Strings</l> can be represented in parameters when using this mode.
-	 * 	<li><js>"INHERIT"</js> (default) - Inherit from the {@link RestServletContext#REST_paramFormat} property on the servlet method or class.
-	 * </ul>
-	 * <p>
-	 * Note that the parameter value <js>"(foo)"</js> is interpreted as <js>"(foo)"</js> when using plain mode, but
-	 * 	<js>"foo"</js> when using UON mode.
-	 */
-	String format() default "INHERIT";
-}


[20/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/RemoteableServiceProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/RemoteableServiceProperties.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/RemoteableServiceProperties.java
deleted file mode 100755
index 6de35ea..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/RemoteableServiceProperties.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.remoteable;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Configurable properties for the {@link RemoteableServlet} class.
- * <p>
- * Properties can be set on the {@link RestServlet} class using the {@link RestResource#properties} or {@link RestMethod#properties} annotations.
- * <p>
- * These properties can also be passed in as servlet init parameters.
- * <p>
- * These properties are only valid at the class level, not the method level.  Setting them on {@link RestMethod#properties()} has no effect.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class RemoteableServiceProperties {
-
-	/**
-	 * Only expose interfaces and methods annotated with {@link Remoteable @Remoteable} ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * When enabled, the {@link RemoteableServlet} class will only work with annotated remoteable interfaces and methods.
-	 * Otherwise, all public methods can be executed through the service.
-	 */
-	public static final String REMOTEABLE_includeOnlyRemotableMethods = "RemoteableService.includeOnlyRemoteableMethods";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/RemoteableServlet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/RemoteableServlet.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/RemoteableServlet.java
deleted file mode 100755
index 7834e34..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/RemoteableServlet.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.remoteable;
-
-import static javax.servlet.http.HttpServletResponse.*;
-
-import java.util.*;
-import java.util.concurrent.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.dto.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Abstract class for defining Remoteable services.
- * <p>
- * Remoteable services are POJOs whose methods can be invoked remotely through proxy interfaces.
- * <p>
- * To implement a remoteable service, developers must simply subclass from this class and implement the {@link #getServiceMap()} method that
- * 	maps java interfaces to POJO instances.
- *
- * See {@link org.apache.juneau.server.remoteable} for details.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@SuppressWarnings("serial")
-public abstract class RemoteableServlet extends RestServletDefault {
-
-	private Map<String,Class<?>> classNameMap = new ConcurrentHashMap<String,Class<?>>();
-
-	//--------------------------------------------------------------------------------
-	// Abstract methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Returns the list of interfaces to their implementation objects.
-	 * <p>
-	 * This class is called often and not cached, so any caching should occur in the subclass if necessary.
-	 *
-	 * @return The service map.
-	 * @throws Exception
-	 */
-	protected abstract Map<Class<?>,Object> getServiceMap() throws Exception;
-
-	//--------------------------------------------------------------------------------
-	// REST methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * [GET /] - Get the list of all remote interfaces.
-	 *
-	 * @param req The HTTP servlet request.
-	 * @return The list of links to the remote interfaces.
-	 * @throws Exception
-	 */
-	@RestMethod(name="GET", path="/")
-	public List<Link> getInterfaces(RestRequest req) throws Exception {
-		List<Link> l = new LinkedList<Link>();
-		boolean useAll = ! useOnlyAnnotated();
-		for (Class<?> c : getServiceMap().keySet()) {
-			if (useAll || getBeanContext().getClassMeta(c).isRemoteable())
-				l.add(new Link(c.getName(), "{0}/{1}", req.getRequestURI(), c.getName())); //$NON-NLS-1$
-		}
-		return l;
-	}
-
-	/**
-	 * [GET /{javaInterface] - Get the list of all remoteable methods on the specified interface name.
-	 *
-	 * @param javaInterface The Java interface name.
-	 * @return The methods defined on the interface.
-	 * @throws Exception
-	 */
-	@RestMethod(name="GET", path="/{javaInterface}")
-	public Collection<String> listMethods(@Attr String javaInterface) throws Exception {
-		return getMethods(javaInterface).keySet();
-	}
-
-	/**
-	 * [POST /{javaInterface}/{javaMethod}] - Invoke the specified service method.
-	 *
-	 * @param req The HTTP request.
-	 * @param javaInterface The Java interface name.
-	 * @param javaMethod The Java method name or signature.
-	 * @return The results from invoking the specified Java method.
-	 * @throws Exception
-	 */
-	@RestMethod(name="POST", path="/{javaInterface}/{javaMethod}")
-	public Object invoke(RestRequest req, @Attr String javaInterface, @Attr String javaMethod) throws Exception {
-
-		// Find the parser.
-		ReaderParser p = req.getReaderParser();
-		if (p == null)
-			throw new RestException(SC_UNSUPPORTED_MEDIA_TYPE, "Could not find parser for media type ''{0}''", req.getMediaType()); //$NON-NLS-1$
-		Class<?> c = getInterfaceClass(javaInterface);
-
-		// Find the service.
-		Object service = getServiceMap().get(c);
-		if (service == null)
-			throw new RestException(SC_NOT_FOUND, "Service not found"); //$NON-NLS-1$
-
-		// Find the method.
-		java.lang.reflect.Method m = getMethods(javaInterface).get(javaMethod);
-		if (m == null)
-			throw new RestException(SC_NOT_FOUND, "Method not found"); //$NON-NLS-1$
-
-		// Parse the args and invoke the method.
-		ClassMeta<?>[] argTypes = p.getBeanContext().getClassMetas(m.getParameterTypes());
-		Object[] params = p.parseArgs(req.getReader(), argTypes);
-		return m.invoke(service, params);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Other methods
-	//--------------------------------------------------------------------------------
-
-	private boolean useOnlyAnnotated() {
-		return getProperties().getBoolean(RemoteableServiceProperties.REMOTEABLE_includeOnlyRemotableMethods, false);
-	}
-
-	private Map<String,java.lang.reflect.Method> getMethods(String javaInterface) throws Exception {
-		Class<?> c = getInterfaceClass(javaInterface);
-		ClassMeta<?> cm = getBeanContext().getClassMeta(c);
-		return (useOnlyAnnotated() ? cm.getRemoteableMethods() : cm.getPublicMethods());
-	}
-
-	/**
-	 * Return the <code>Class</code> given it's name if it exists in the services map.
-	 */
-	private Class<?> getInterfaceClass(String javaInterface) throws Exception {
-		Class<?> c = classNameMap.get(javaInterface);
-		if (c == null) {
-			for (Class<?> c2 : getServiceMap().keySet())
-				if (c2.getName().equals(javaInterface)) {
-					classNameMap.put(javaInterface, c2);
-					return c2;
-				}
-			throw new RestException(SC_NOT_FOUND, "Interface class not found");
-		}
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/1.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/1.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/1.png
deleted file mode 100755
index 9cd4b2f..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/2.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/2.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/2.png
deleted file mode 100755
index de2074d..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/3.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/3.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/3.png
deleted file mode 100755
index 8307c13..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/4.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/4.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/4.png
deleted file mode 100755
index 896f579..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/4.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/5.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/5.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/5.png
deleted file mode 100755
index 2c255d3..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/5.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/6.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/6.png b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/6.png
deleted file mode 100755
index f45a3d2..0000000
Binary files a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/doc-files/6.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/package.html
deleted file mode 100755
index 1f7ab39..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/remoteable/package.html
+++ /dev/null
@@ -1,356 +0,0 @@
-<!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>Remoteable service 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>
-
-<p>
-	Defines an API for remote proxy interfaces (e.g. Remoteable Services).
-</p>
-
-<a name='TOC'></a><h5 class='toc'>Table of Contents</h5>
-<ol class='toc'>
-	<li><p><a class='doclink' href='#Intro'>Remoteable Services</a></p>
-	<li><p><a class='doclink' href='#Client'>Client Side</a></p> 
-	<li><p><a class='doclink' href='#Server'>Server Side</a></p>
-	<li><p><a class='doclink' href='#RemoteableAnnotation'>@Remoteable Annotation</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a name="Intro"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Remoteable Services</h2>
-<div class='topic'>
-	<p>
-		The Remoteable Service API allows for client side code to use interface proxies for 
-			calling methods on POJOs on the server side.
-	</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 remoteable services (e.g. POJOs) remotely. 
-	</p>
-	<p>
-		The following simplified example shows how a method on a POJO on a server can be called through an interface
-			on a client...
-	<p class='bcode'>
-	<jk>public interface</jk> IAddressBook {
-		Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
-		Person findPerson(<jk>int</jk> id);
-		Address findAddress(<jk>int</jk> id);
-		Person findPersonWithAddress(<jk>int</jk> id);
-	}
-	</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 the remoteable service are:
-		<ul class='spaced-list'>
-			<li>The method must be public.
-			<li>The parameter and return types must be <a href='../../core/package-summary.html#PojoCategories'><u>serializable and parsable</u></a>.
-		</ul>
-	</p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a name="Client"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Client Side</h2>
-<div class='topic'>
-	<p>
-		Remoteable interface proxies are retrieved through the existing {@link org.apache.juneau.client.RestClient} class.
-	</p>
-	<p>
-		It may seem that the client-side code would need to be complex.
-		In reality, it builds upon existing serializing, parsing, and REST capabilities in Juneau resulting
-			in very little additional code.
-		The entire code for the <code>RestClient.getRemoteableProxy(Class)</code> method is shown below:
-	</p>
-	<p class='bcode'>
-	<jk>public</jk> &lt;T&gt; T getRemoteableProxy(<jk>final</jk> Class&lt;T&gt; interfaceClass) {
-		<jk>return</jk> (T)Proxy.newProxyInstance(
-			interfaceClass.getClassLoader(),
-			<jk>new</jk> Class[] { interfaceClass },
-			<jk>new</jk> InvocationHandler() {
-				<ja>@Override</ja>
-				<jk>public</jk> Object invoke(Object proxy, Method method, Object[] args) {
-					<jk>try</jk> {
-						String uri = <jf>remoteableServletUri</jf> + '/' + interfaceClass.getName() + '/' + ClassUtils.<jsm>getMethodSignature</jsm>(method);
-						<jk>return</jk> doPost(uri, args).getResponse(method.getReturnType());
-					} <jk>catch</jk> (Exception e) {
-						<jk>throw new</jk> RuntimeException(e);
-					}
-				}
-		});
-	}
-	</p>
-	<p>
-		Since we build upon the existing <code>RestClient</code> API, we inherit all of it's features.
-		For example, convenience methods for setting POJO filters and properties to customize 
-			the behavior of the serializers and parsers, and the ability to provide your own
-			customized Apache <code>HttpClient</code> for handling various scenarios involving
-			authentication and internet proxies.
-	</p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a name="Server"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - Server Side</h2>
-<div class='topic'>
-	<p>
-		The server side is only slightly more complex, but boasts useful debugging and discovery capabilities.  
-	</p>
-	<p>
-		The {@link org.apache.juneau.server.remoteable.RemoteableServlet} class is an implementation of {@link org.apache.juneau.server.RestServlet} 
-			that provides a REST interface for invoking calls on POJOs.
-		The <code>RemoteableServlet</code> class is abstract and must implement a single method for providing
-			the set of POJOs to expose as remote interfaces.  
-	</p>
-	<p>
-		The samples bundle includes a sample implementation of a remotable service that can be used to interact with the
-			address book POJO also included in the bundle.  
-		The method that must be implemented is {@link org.apache.juneau.server.remoteable.RemoteableServlet#getServiceMap()}
-			that simply returns a mapping of Java interfaces (or classes) to POJO instances.
-	</p>
-	<p class='bcode'>
-	<ja>@RestResource</ja>(
-		path=<js>"/remoteable"</js>
-	)
-	<jk>public class</jk> SampleRemoteableServlet <jk>extends</jk> RemoteableServlet {
-	
-		<jc>// The POJO being manipulated (i.e. the remoteable service)</jc>
-		AddressBook <jf>addressBook</jf> = <jk>new</jk> AddressBook();
-	
-		<ja>@Override</ja> <jc>/* RemoteableServlet */</jc>
-		<jk>protected</jk> Map&lt;Class&lt;?&gt;,Object&gt; getServiceMap() <jk>throws</jk> Exception {
-			Map&lt;Class&lt;?&gt;,Object&gt; m = <jk>new</jk> LinkedHashMap&lt;Class&lt;?&gt;,Object&gt;();
-	
-			<jc>// In this simplified example, we expose the same POJO service under two different interfaces.
-			// One is IAddressBook which only exposes methods defined on that interface, and
-			// the other is AddressBook itself which exposes all public methods defined on the class itself.</jc>
-			m.put(IAddressBook.<jk>class</jk>, addressBook);
-			m.put(AddressBook.<jk>class</jk>, addressBook);
-			<jk>return</jk> m;
-		}
-	}
-	</p>
-	<p>
-		Since this class is a servlet, and can be deployed as such.  
-		In the sample code, it's listed as a child resource to <code>org.apache.juneau.server.samples.RootResources</code>
-			which makes it available under the URL <code>/juneau/sample/remoteable</code>.
-	</p>
-	<p>
-		If you point your browser to that URL, you get a list of available interfaces:
-	</p>
-	<img class='bordered' src="doc-files/1.png">
-	<p>
-		Clicking the hyperlinks on each shows you the list of methods that can be invoked on that service.
-		Note that the <code>IAddressBook</code> link shows that you can only invoke methods defined on that
-			interface, whereas the <code>AddressBook</code> link shows ALL public methods defined on that class.
-		Since <code>AddressBook</code> extends from <code>LinkedList</code>, you may notice familiar collections
-			framework methods listed.
-	</p>
-	<img class='bordered' src="doc-files/2.png">
-	<img class='bordered' src="doc-files/3.png">
-	<p>
-		Let's see how we can interact with this interface through nothing more than REST calls
-			to get a better idea on how this works.
-			We'll use the same method call as in the introduction.
-		First, we need to create the serialized form of the arguments:
-	</p>
-	<p class='bcode'>
-	Object[] args = <jk>new</jk> Object[] {
-		<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>))
-	};
-	String asJson = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.toString(args);
-	System.<jsf>err</jsf>.println(asJson);
-	</p>
-	<p>
-		That produces the following JSON output:
-	</p>
-	<p class='bcode'>
-	[
-		{
-			name: <js>'Test Person'</js>, 
-			birthDate: <js>'Aug 1, 1999'</js>, 
-			addresses: [
-				{
-					street: <js>'Test street'</js>, 
-					city: <js>'Test city'</js>, 
-					state: <js>'Test state'</js>, 
-					zip: 12345, 
-					isCurrent: <jk>true</jk>
-				}
-			]
-		}
-	]	
-	</p>
-	<p>
-		Note that in this example we're using JSON.  
-		However, various other content types can also be used such as XML, URL-Encoding, UON, or HTML.  
-		In practice however, JSON will preferred since it is often the most efficient.
-	</p>
-	<p>
-		Next, we can use a tool such as Poster to make the REST call.
-		Methods are invoked by POSTing the serialized object array to the URI of the interface method.
-		In this case, we want to POST our JSON to <code>/juneau/sample/remoteable/org.apache.juneau.samples.addressbook.IAddressBook/createPerson(org.apache.juneau.samples.addressbook.CreatePerson)</code>.
-		Make sure that we specify the <code>Content-Type</code> of the body as <code>text/json</code>.
-		We also want the results to be returned as JSON, so we set the <code>Accept</code> header to <code>text/json</code> as well.
-	</p>
-	<img class='bordered' src="doc-files/4.png">
-	<p>
-		When we execute the POST, we should see the following successful response whose body contains the returned <code>Person</code> bean
-			serialized to JSON:
-	</p>
-	<img class='bordered' src="doc-files/5.png">
-	<p>
-		From there, we could use the following code snippet to reconstruct the response object from JSON:
-	</p>
-	<p class='bcode'>
-		String response = <js>"<i>output from above</i>"</js>;
-		Person p = JsonParser.<jsf>DEFAULT</jsf>.parse(response, Person.<jk>class</jk>);
-	</p>
-	<p>
-		If we alter our servlet to allow overloaded GET requests, we can invoke methods using nothing more than a browser...
-	</p>
-	<p class='bcode'>
-	<ja>@RestResource</ja>(
-		path=<js>"/remoteable"</js>,
-		properties={
-			<jc>// Allow us to use method=POST from a browser.</jc>
-			<ja>@Property</ja>(name=<jsf>REST_allowMethodParam</jsf>, value=<js>"*"</js>)
-		}
-	)
-	<jk>public class</jk> SampleRemoteableServlet <jk>extends</jk> RemoteableServlet {
-	</p>
-	<p>
-		For example, here we call the <code>findPerson(<jk>int</jk>)</code> method to retrieve a person and get the returned POJO 
-			(in this case as HTML since that's what's in the <code>Accept</code> header when calling from a browser):
-	</p>
-	<img class='bordered' src="doc-files/6.png">
-	<p>
-		When specifying the POST body as a <code>&content</code> parameter, the method arguments should be in UON notation.
-		See {@link org.apache.juneau.urlencoding.UonSerializer} for more information about this encoding.
-		Usually you can also pass in JSON if you specify <code>&Content-Type=text/json</code> in the URL parameters
-			but passing in unencoded JSON in a URL may not work in all browsers.  Therefore, UON is preferred.
-	</p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a name="RemoteableAnnotation"></a>
-<h2 class='topic' onclick='toggle(this)'>4 - @Remoteable Annotation</h2>
-<div class='topic'>
-	<p>
-		What if you want fine-tuned control over which methods are exposed in an interface instead of just all public methods?
-		For this, the {@link org.apache.juneau.annotation.Remoteable @Remoteable} annotation is provided.
-		It can be applied to individual interface methods to only expose those methods through the remoteable servlet.
-	</p>
-	<p>
-		For example, to expose only the first 2 methods in our <code>IAddressBook</code> interface...
-	</p>
-	<p class='bcode'>
-	<jk>public interface</jk> IAddressBook {
-		<ja>@Remoteable</ja> Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
-		<ja>@Remoteable</ja> Person findPerson(<jk>int</jk> id);
-		Address findAddress(<jk>int</jk> id);
-		Person findPersonWithAddress(<jk>int</jk> id);
-	}
-	</p>	
-	<p>
-		On the server side, the option to restrict access to only annotated methods is defined through a property:
-	</p>
-	<p class='bcode'>
-	<ja>@RestResource</ja>(
-		path=<js>"/remoteable"</js>,
-		properties={
-			<jc>// Only expose methods annotated with @Remoteable.</jc>
-			<ja>@Property</ja>(name=<jsf>REMOTEABLE_includeOnlyRemotableMethods</jsf>, value=<js>"true"</js>)
-		}
-	)
-	<jk>public class</jk> SampleRemoteableServlet <jk>extends</jk> RemoteableServlet {
-	</p>
-	<p>
-		The <ja>@Remoteable</ja> annotation can also be applied to the interface class to expose all public methods defined on that interface.
-	</p>
-	<p class='bcode'>
-	<ja>@Remoteable</ja>
-	<jk>public interface</jk> IAddressBook {
-		Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
-		Person findPerson(<jk>int</jk> id);
-		Address findAddress(<jk>int</jk> id);
-		Person findPersonWithAddress(<jk>int</jk> id);
-	}
-	</p>	
-</div>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/DefaultHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/DefaultHandler.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/DefaultHandler.java
deleted file mode 100755
index a66f754..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/DefaultHandler.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.response;
-
-import static javax.servlet.http.HttpServletResponse.*;
-
-import java.io.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-
-/**
- * Response handler for POJOs not handled by other handlers.
- * <p>
- * This uses the serializers defined on the response to serialize the POJO.
- * <p>
- * The {@link Serializer} used is based on the <code>Accept</code> header on the request.
- * <p>
- * The <code>Content-Type</code> header is set to the mime-type defined on the selected
- * 	serializer based on the {@link Produces#contentType() @Produces.contentType} annotation.
- * <p>
- * This handler is registered by default on {@link RestServlet RestServlets} via the
- * 	default implementation of the {@link RestServlet#createResponseHandlers} method.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class DefaultHandler implements ResponseHandler {
-
-	@Override /* ResponseHandler */
-	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
-		SerializerGroup g = res.getSerializerGroup();
-		String accept = req.getHeader("Accept", "");
-		String matchingAccept = g.findMatch(accept);
-		if (matchingAccept != null) {
-			Serializer s = g.getSerializer(matchingAccept);
-			String contentType = s.getResponseContentType();
-			if (contentType == null)
-				contentType = res.getContentType();
-			if (contentType == null)
-				contentType = matchingAccept;
-			res.setContentType(contentType);
-			ObjectMap headers = s.getResponseHeaders(res.getProperties());
-			if (headers != null)
-				for (String key : headers.keySet())
-					res.setHeader(key, headers.getString(key));
-
-			try {
-				ObjectMap p = res.getProperties();
-				if (req.isPlainText()) {
-					p.put(SerializerContext.SERIALIZER_useIndentation, true);
-					res.setContentType("text/plain");
-				}
-				p.append("mediaType", matchingAccept).append("characterEncoding", res.getCharacterEncoding());
-				if (! s.isWriterSerializer()) {
-					OutputStreamSerializer s2 = (OutputStreamSerializer)s;
-					OutputStream os = res.getNegotiatedOutputStream();
-					SerializerSession session = s.createSession(os, p, req.getJavaMethod());
-					s2.serialize(session, output);
-					os.close();
-				} else {
-					WriterSerializer s2 = (WriterSerializer)s;
-					Writer w = res.getNegotiatedWriter();
-					SerializerSession session = s.createSession(w, p, req.getJavaMethod());
-					s2.serialize(session, output);
-					w.close();
-				}
-			} catch (SerializeException e) {
-				throw new RestException(SC_INTERNAL_SERVER_ERROR, e);
-			}
-		} else {
-			throw new RestException(SC_NOT_ACCEPTABLE,
-				"Unsupported media-type in request header ''Accept'': ''{0}''\n\tSupported media-types: {1}",
-				req.getHeader("Accept", ""), g.getSupportedMediaTypes()
-			);
-		}
-		return true;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/InputStreamHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/InputStreamHandler.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/InputStreamHandler.java
deleted file mode 100755
index 2045de4..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/InputStreamHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.response;
-
-import java.io.*;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Response handler for {@link InputStream} objects.
- * <p>
- * Simply pipes the contents of the {@link InputStream} to {@link RestResponse#getNegotiatedOutputStream()}.
- * <p>
- * Sets the <code>Content-Type</code> response header to whatever was set via {@link RestResponse#setContentType(String)}.
- * <p>
- * This handler is registered by default on {@link RestServlet RestServlets} via the
- * 	default implementation of the {@link RestServlet#createResponseHandlers} method.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class InputStreamHandler implements ResponseHandler {
-
-	@Override /* ResponseHandler */
-	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
-		if (output instanceof InputStream) {
-			res.setHeader("Content-Type", res.getContentType());
-			OutputStream os = res.getNegotiatedOutputStream();
-			IOPipe.create(output, os).closeOut().run();
-			return true;
-		}
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/ReaderHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/ReaderHandler.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/ReaderHandler.java
deleted file mode 100755
index 77e7768..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/ReaderHandler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.response;
-
-import java.io.*;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Response handler for {@link Reader} objects.
- * <p>
- * Simply pipes the contents of the {@link Reader} to {@link RestResponse#getNegotiatedWriter()}.
- * <p>
- * This handler is registered by default on {@link RestServlet RestServlets} via the
- * 	default implementation of the {@link RestServlet#createResponseHandlers} method.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class ReaderHandler implements ResponseHandler {
-
-	@Override /* ResponseHandler */
-	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
-		if (output instanceof Reader) {
-			Writer w = res.getNegotiatedWriter();
-			IOPipe.create(output, w).closeOut().run();
-			return true;
-		}
-		return false;
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/RedirectHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/RedirectHandler.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/RedirectHandler.java
deleted file mode 100755
index c741363..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/RedirectHandler.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.response;
-
-import java.io.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.server.*;
-
-/**
- * Response handler for {@link Redirect} objects.
- * <p>
- * This handler is registered by default on {@link RestServlet RestServlets} via the
- * 	default implementation of the {@link RestServlet#createResponseHandlers} method.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class RedirectHandler implements ResponseHandler {
-
-	@Override /* ResponseHandler */
-	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
-		if (output instanceof Redirect) {
-			Redirect r = (Redirect)output;
-			String uri = r.toUrl(res.getUrlEncodingSerializer());
-			if (StringUtils.isEmpty(uri))
-				uri = req.getServletURI();
-			else {
-				char c = (uri.length() > 0 ? uri.charAt(0) : 0);
-				if (c != '/' && uri.indexOf("://") == -1)
-					uri = req.getServletURIBuilder().append('/').append(uri).toString();
-			}
-			int rc = r.getHttpResponseCode();
-			if (rc != 0)
-				res.setStatus(rc);   // TODO - This may get ignored by the call below.
-			res.sendRedirect(uri);
-			return true;
-		}
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/StreamableHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/StreamableHandler.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/StreamableHandler.java
deleted file mode 100755
index 480e7f0..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/StreamableHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.response;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.*;
-
-/**
- * Response handler for {@link Writable} and {@link ReaderResource} objects.
- * <p>
- * Uses the {@link Writable#writeTo(Writer)} method to send the contents to the {@link RestResponse#getNegotiatedWriter()} writer.
- * <p>
- * This handler is registered by default on {@link RestServlet RestServlets} via the
- * 	default implementation of the {@link RestServlet#createResponseHandlers} method.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class StreamableHandler implements ResponseHandler {
-
-	@Override /* ResponseHandler */
-	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
-		if (output instanceof Streamable) {
-			if (output instanceof StreamResource) {
-				StreamResource r = (StreamResource)output;
-				String mediaType = r.getMediaType();
-				if (mediaType != null)
-					res.setContentType(mediaType);
-				for (Map.Entry<String,String> h : r.getHeaders().entrySet())
-					res.setHeader(h.getKey(), h.getValue());
-			}
-			OutputStream os = res.getOutputStream();
-			((Streamable)output).streamTo(os);
-			os.flush();
-			os.close();
-			return true;
-		}
-		return false;
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/WritableHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/WritableHandler.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/WritableHandler.java
deleted file mode 100755
index 8b2296d..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/WritableHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.response;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.*;
-
-/**
- * Response handler for {@link Writable} and {@link ReaderResource} objects.
- * <p>
- * Uses the {@link Writable#writeTo(Writer)} method to send the contents to the {@link RestResponse#getNegotiatedWriter()} writer.
- * <p>
- * This handler is registered by default on {@link RestServlet RestServlets} via the
- * 	default implementation of the {@link RestServlet#createResponseHandlers} method.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class WritableHandler implements ResponseHandler {
-
-	@Override /* ResponseHandler */
-	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
-		if (output instanceof Writable) {
-			if (output instanceof ReaderResource) {
-				ReaderResource r = (ReaderResource)output;
-				String mediaType = r.getMediaType();
-				if (mediaType != null)
-					res.setContentType(mediaType);
-				for (Map.Entry<String,String> h : r.getHeaders().entrySet())
-					res.setHeader(h.getKey(), h.getValue());
-			}
-			Writer w = res.getNegotiatedWriter();
-			((Writable)output).writeTo(w);
-			w.flush();
-			w.close();
-			return true;
-		}
-		return false;
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/ZipFileListResponseHandler.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/ZipFileListResponseHandler.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/ZipFileListResponseHandler.java
deleted file mode 100755
index 1f2e18d..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/ZipFileListResponseHandler.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.response;
-
-import java.io.*;
-import java.util.zip.*;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.utils.*;
-import org.apache.juneau.utils.ZipFileList.*;
-
-/**
- * Response handler for ZipFileList objects.
- * <p>
- * Can be associated with a REST resource using the {@link RestResource#responseHandlers} annotation.
- * <p>
- * Sets the following headers:
- * <ul class='spaced-list'>
- * 	<li><code>Content-Type</code> - <code>application/zip</code>
- * 	<li><code>Content-Disposition=attachment;filename=X</code> - Sets X to the file name passed in through
- * 		the constructor {@link ZipFileList#ZipFileList(String)}.
- * </ul>
- */
-public class ZipFileListResponseHandler implements ResponseHandler {
-
-	@Override /* ResponseHandler */
-	public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {
-		if (output.getClass() == ZipFileList.class) {
-			ZipFileList m = (ZipFileList)output;
-			res.setContentType("application/zip"); //$NON-NLS-1$
-			res.setHeader("Content-Disposition", "attachment;filename=" + m.fileName); //$NON-NLS-1$ //$NON-NLS-2$
-			OutputStream os = res.getOutputStream();
-			try {
-				ZipOutputStream zos = new ZipOutputStream(os);
-				try {
-					for (ZipFileEntry e : m)
-						e.write(zos);
-				} catch (Exception e) {
-					e.printStackTrace();
-				} finally {
-					zos.flush();
-					zos.close();
-				}
-			} finally {
-				os.flush();
-			}
-			return true;
-		}
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/package.html b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/package.html
deleted file mode 100755
index 6e89506..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/response/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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>HTTP Response handlers</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/styles/devops.css
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/styles/devops.css b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/styles/devops.css
deleted file mode 100755
index c26e023..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/styles/devops.css
+++ /dev/null
@@ -1,203 +0,0 @@
-/***************************************************************************************************************************
- * 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 {
-	height: 100%;
-}
-
-body {
-	background-color: rgb(59,75,84);
-	margin: 0px;
-	font-family: sans-serif;
-	font-size: 12px;
-	color: #26343F;
-	height: 100%;
-}
-
-/************************************************************************************/
-/**  Title/description section                                                     **/
-/************************************************************************************/
-h3.title {
-    font-size:12pt;
-	color: white;
-	margin: 0px;
-	padding: 10px 20px;
-	text-decoration: none;
-	font-weight: normal;
-	background-color: rgb(38,52,63);
-	border-bottom: 2px solid #34534B;
-	font-family: HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;
-}
-
-h5.description {
-    font-size:11pt;
-	color: #B3B3B3;
-	margin: 0;
-	padding: 10px 20px;
-	text-decoration: none;
-	font-weight: normal;
-	background-color: rgb(38,52,63);
-	border-bottom: 2px solid #34534B;
-	font-family: HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;
-}
-
-
-
-/************************************************************************************/
-/**  Links section                                                                 **/
-/************************************************************************************/
-p.links {
-	margin-left: 20px;
-	margin-bottom: 0;
-	text-align: left;
-	color: #94A3AB;
-	text-transform: uppercase;
-}
-
-p.links a {
-	font-size:12px;
-	color: #94A3AB;
-	text-decoration: none;
-	margin-left: 15px;
-	margin-right: 15px;
-}
-
-p.links a:active, p.links a:hover {
-	font-size:12px;
-	color: white;
-	text-decoration: underline;
-}
-
-/* Use this to place links in description section aligned on the left.
-p.links {
-	margin-right: 20px;
-	margin-top: -30px;
-	text-align: right;
-	color: #94A3AB;
-	text-transform: uppercase;
-}
-*/
-
-
-/************************************************************************************/
-/**  Data section                                                                  **/
-/************************************************************************************/
-div.outerdata {
-	width: 100%;
-	height: 100%;
-}
-
-div.data {
-	padding:10px;
-	background-color: white;
-	border-radius: 4px;
-	margin: 20px;
-	display: inline-block;
-	overflow-x: auto;
-	box-shadow: 2px 3px 3px 0px rgba(0, 0, 0, 0.5);
-}
-
-div.data td {
-	vertical-align: middle;
-	border-bottom:1px solid #E9EACB;
-	border-right:1px solid #E9EACB;
-	padding:0.2em 0.5em;
-	color:#26343F;
-	font-size:12px;
-}
-
-
-/************************************************************************************/
-/**  Other                                                                         **/
-/************************************************************************************/
-
-table {
-	border: none;
-}
-
-p {
-	font-family: sans-serif;
-	font-size: 12px;
-}
-
-a {
-	color: #116998;
-	text-decoration: none;
-}
-
-a:hover {
-	color: #26343F;
-	text-decoration: underline;
-}
-
-th, .header {
-	border-top:1px solid #CCCC99;
-	padding: 5px 8px;
-	font-weight: bold;
-	text-align:center;
-	background-color: rgb(59,75,84);
-	font-family: sans-serif;
-	font-size: 12px;
-	color: white;
-}
-
-button {
-	border-left:1px solid #A1AFAC;
-	border-top:1px solid #A1AFAC;
-	color: white;
-	font-size: 12px;
-	background: #00b299;
-    font-weight: bold;
-    padding: 5px 20px;	
-	border-radius: 5px;
-	text-transform: uppercase;
-	margin-left: 10px;
-}
-
-button:hover {
-	background-image: none;
-	background-color: #66D1C2;
-}
-
-ul {
-	margin:0px;
-	padding-left:20px;
-}
-
-textarea, pre { 
-	-moz-tab-size:3; 
-	-o-tab-size:3; 
-	-webkit-tab-size:3; 
-	tab-size:3; 
-}
-
-.table {
-	display:table;
-}
-.row {display:table-row;}
-.cell {display:table-cell;}
-.monospace {font-family:monospace;}
-
-iframe.output {
-	background-color: #F6F7F9;
-    border: 1px solid gray;
-    padding: 0px;
-    overflow: hidden;
-    width:100%;
-	min-height:400px;
-}
-
-input {
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/styles/juneau.css
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/styles/juneau.css b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/styles/juneau.css
deleted file mode 100755
index 8ad3924..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/styles/juneau.css
+++ /dev/null
@@ -1,142 +0,0 @@
-/***************************************************************************************************************************
- * 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.
- *
- ***************************************************************************************************************************/
-
-table {
-	border:1px solid #CCCC99;
-	background-color: white;
-	border-collapse: collapse;
-	margin-bottom: 10px;
-	margin-top: 10px;
-	display: inline-table;
-}
-
-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;
-	margin: 20px;
-	font-family: sans-serif;
-	font-size: 12px;
-	color: rgb(44, 69, 87);
-	height: 100%;
-}
-
-p {
-	font-family: sans-serif;
-	font-size: 12px;
-}
-
-p.links {
-	margin-left: 10px;
-}
-
-th, .header {
-	border-top:1px solid #CCCC99;
-	padding:0.3em 0.5em;
-	font-weight: bold;
-	font-size: 12px;
-	color:#666666;
-	text-align:center;
-	background-image: linear-gradient(top, #FBF9E4 0%, #F3F2C2 100%);
-	background-image: -o-linear-gradient(top, #FBF9E4 0%, #F3F2C2 100%);
-	background-image: -moz-linear-gradient(top, #FBF9E4 0%, #F3F2C2 100%);
-	background-image: -webkit-linear-gradient(top, #FBF9E4 0%, #F3F2C2 100%);
-	background-image: -ms-linear-gradient(top, #FBF9E4 0%, #F3F2C2 100%);
-	background-image: -webkit-gradient(
-		linear,
-		left top,
-		left bottom,
-		color-stop(0, #FBF9E4),
-		color-stop(1, #F3F2C2)
-	);
-}
-
-button {
-	border-left:1px solid #CCCC99;
-	border-top:1px solid #CCCC99;
-	border-radius: 5px;
-	color: rgb(44,69,87);
-	font-size: 12px;
-	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));
-	
-}
-
-button:hover {
-	background-image: none;
-	background-color: #FBF9E4;
-}
-
-
-td, .entry {
-	border:1px solid #E9EACB;
-	padding:0.2em 0.5em;
-	color:#005C87;
-	font-size:12px;
-	vertical-align:top;
-}
-
-ul {
-	margin:0px;
-	padding-left:20px;
-}
-
-a {
-	font-size:12px;
-}
-
-textarea, pre { 
-	-moz-tab-size:3; 
-	-o-tab-size:3; 
-	-webkit-tab-size:3; 
-	tab-size:3; 
-}
-
-h3.title {
-    font-size:1.5em;
-	color: rgb(44,69,87);
-	margin-bottom: 10px;
-	padding: 5px 30px;
-	border-radius: 15px;
-	text-decoration: none;
-	font-weight: normal;
-	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));
-}
-
-h5.description {
-	font-size:12px;
-	font-weight: normal;
-	color: rgb(44,69,87);
-	margin-left: 20px;
-}
-
-.table {display:table;}
-.row {display:table-row;}
-.cell {display:table-cell;}
-.monospace {font-family:monospace;}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/LocalizationVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/LocalizationVar.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/LocalizationVar.java
deleted file mode 100644
index 9dabe82..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/LocalizationVar.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.vars;
-
-import java.util.*;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Localized string variable resolver.
- * <p>
- * The format for this var is <js>"$L{key}"</js> or <js>"$L{key,args...}"</js>.
- * <p>
- * This variable resolver requires that a {@link RestRequest} object be set as a context object on the resolver or a
- * 	session object on the resolver session.
- * <p>
- * Values are pulled from the {@link RestRequest#getMessage(String,Object[])} method.
- * These in turn are pulled from the resource bundle associated with the servlet class where the request was made.
- * <p>
- * Since this is a {@link SimpleVar}, any variables contained in the result will be recursively resolved.
- * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.
- *
- * @see org.apache.juneau.svl
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class LocalizationVar extends MultipartVar {
-
-	/**
-	 * Constructor.
-	 */
-	public LocalizationVar() {
-		super("L");
-	}
-
-	@Override /* Var */
-	public String resolve(VarResolverSession session, String[] args) {
-		if (args.length > 0) {
-			String key = args[0];
-			String[] a = (args.length > 1) ? Arrays.copyOfRange(args, 1, args.length) : new String[0];
-			return session.getSessionObject(RestRequest.class, RequestVar.SESSION_req).getMessage(key, (Object[])a);
-		}
-		return "";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestAttrVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestAttrVar.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestAttrVar.java
deleted file mode 100644
index 1631b82..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestAttrVar.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.vars;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Request attribute variable resolver.
- * <p>
- * The format for this var is <js>"$A{key}"</js> or <js>"$A{key,defaultValue}"</js>.
- * <p>
- * This variable resolver requires that a {@link RestRequest} object be set as a context object on the resolver or a
- * 	session object on the resolver session.
- * <p>
- * Values are pulled from the {@link RestRequest#getAttribute(String)} method.
- * <p>
- * Since this is a {@link SimpleVar}, any variables contained in the result will be recursively resolved.
- * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.
- *
- * @see org.apache.juneau.svl
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class RequestAttrVar extends DefaultingVar {
-
-	/**
-	 * Constructor.
-	 */
-	public RequestAttrVar() {
-		super("A");
-	}
-
-	@Override /* Var */
-	public String resolve(VarResolverSession session, String key) {
-		RestRequest req = session.getSessionObject(RestRequest.class, RequestVar.SESSION_req);
-		Object o = req.getAttribute(key);
-		return (o == null ? "" : o.toString());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestParamVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestParamVar.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestParamVar.java
deleted file mode 100644
index 5dbf3d5..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestParamVar.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.vars;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Request parameter variable resolver.
- * <p>
- * The format for this var is <js>"$P{key}"</js> or <js>"$P{key,defaultValue}"</js>.
- * <p>
- * This variable resolver requires that a {@link RestRequest} object be set as a context object on the resolver or a
- * 	session object on the resolver session.
- * <p>
- * Values are pulled from the {@link RestRequest#getParameter(String)} method.
- * <p>
- * Since this is a {@link SimpleVar}, any variables contained in the result will be recursively resolved.
- * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.
- *
- * @see org.apache.juneau.svl
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class RequestParamVar extends DefaultingVar {
-
-	/**
-	 * Constructor.
-	 */
-	public RequestParamVar() {
-		super("P");
-	}
-
-	@Override /* Var */
-	public String resolve(VarResolverSession session, String key) {
-		return session.getSessionObject(RestRequest.class, RequestVar.SESSION_req).getParameter(key);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestVar.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestVar.java
deleted file mode 100644
index a0cdf9a..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/RequestVar.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.vars;
-
-import org.apache.juneau.server.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Request attribute variable resolver.
- * <p>
- * The format for this var is <js>"$R{key}"</js>.
- * The possible values are:
- * <ul>
- * 	<li><code>$R{contextPath}</code> - Value returned by {@link RestRequest#getContextPath()}.
- * 	<li><code>$R{method}</code> - Value returned by {@link RestRequest#getMethod()}.
- * 	<li><code>$R{methodDescription}</code> - Value returned by {@link RestRequest#getMethodDescription()}.
- * 	<li><code>$R{pathInfo}</code> - Value returned by {@link RestRequest#getPathInfo()}.
- * 	<li><code>$R{requestParentURI}</code> - Value returned by {@link RestRequest#getRequestParentURI()}.
- * 	<li><code>$R{requestURI}</code> - Value returned by {@link RestRequest#getRequestURI()}.
- * 	<li><code>$R{servletDescription}</code> - Value returned by {@link RestRequest#getServletDescription()}.
- * 	<li><code>$R{servletLabel}</code> - Value returned by {@link RestRequest#getServletLabel()}.
- * 	<li><code>$R{servletParentURI}</code> - Value returned by {@link RestRequest#getServletParentURI()}.
- * 	<li><code>$R{servletPath}</code> - Value returned by {@link RestRequest#getServletPath()}.
- * 	<li><code>$R{servletURI}</code> - Value returned by {@link RestRequest#getServletURI()}.
- * 	<li><code>$R{trimmedRequestURI}</code> - Value returned by {@link RestRequest#getTrimmedRequestURI()}.
- * </ul>
- * <p>
- * This variable resolver requires that a {@link RestRequest} object be set as a context object on the resolver or a
- * 	session object on the resolver session.
- * <p>
- * Since this is a {@link SimpleVar}, any variables contained in the result will be recursively resolved.
- * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.
- *
- * @see org.apache.juneau.svl
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class RequestVar extends SimpleVar {
-
-	/**
-	 * The name of the session or context object that identifies the {@link RestRequest} object.
-	 */
-	public static final String SESSION_req = "req";
-
-	/**
-	 * Constructor.
-	 */
-	public RequestVar() {
-		super("R");
-	}
-
-	@Override /* Var */
-	public String resolve(VarResolverSession session, String key) {
-		RestRequest req = session.getSessionObject(RestRequest.class, SESSION_req);
-		if (key.length() > 0) {
-				char c = key.charAt(0);
-				if (c == 'c') {
-					if (key.equals("contextPath"))
-						return req.getContextPath();
-				} else if (c == 'm') {
-					if (key.equals("method"))
-						return req.getMethod();
-					if (key.equals("methodDescription"))
-						return req.getMethodDescription();
-				} else if (c == 'p') {
-					if (key.equals("pathInfo"))
-						return req.getPathInfo();
-				} else if (c == 'r') {
-					if (key.equals("requestURI"))
-						return req.getRequestURI();
-					if (key.equals("relativeServletURI"))
-						return req.getRelativeServletURI();
-					if (key.equals("requestParentURI"))
-						return req.getRequestParentURI();
-				} else if (c == 's') {
-					if (key.equals("servletPath"))
-						return req.getServletPath();
-					if (key.equals("servletURI"))
-						return req.getServletURI();
-					if (key.equals("servletParentURI"))
-						return req.getServletParentURI();
-					if (key.equals("servletLabel"))
-						return req.getServletLabel();
-					if (key.equals("servletDescription"))
-						return req.getServletDescription();
-				} else if (c == 't') {
-					if (key.equals("trimmedRequestURI"))
-						return req.getTrimmedRequestURI();
-				}
-				Object o = req.getProperties().get(key);
-				if (o != null)
-					return o.toString();
-			}
-		return null;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/SerializedRequestAttrVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/SerializedRequestAttrVar.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/SerializedRequestAttrVar.java
deleted file mode 100644
index 21c7d06..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/SerializedRequestAttrVar.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.vars;
-
-import java.io.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Serialized request attribute variable resolver.
- * <p>
- * The format for this var is <js>"$SA{contentType,key}"</js> or <js>"$SA{contentType,key,defaultValue}"</js>.
- * <p>
- * This variable resolver requires that a {@link RestRequest} object be set as a context object on the resolver or a
- * 	session object on the resolver session.
- * <p>
- * Similar to the {@link RequestAttrVar} class except uses the {@link RestRequest#getAttribute(String)} object
- * 	and passes the value to the {@link Serializer} whose {@link Produces @Produces} annotation matches the specified content type.
- * <p>
- * Since this is a {@link SimpleVar}, any variables contained in the result will be recursively resolved.
- * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.
- *
- * @see org.apache.juneau.svl
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class SerializedRequestAttrVar extends StreamedVar {
-
-	/**
-	 * Constructor.
-	 */
-	public SerializedRequestAttrVar() {
-		super("SA");
-	}
-
-	@Override /* Var */
-	public void resolveTo(VarResolverSession session, Writer w, String key) {
-		try {
-			int i = key.indexOf(',');
-			if (i == -1)
-				throw new RuntimeException("Invalid format for $SP var.  Must be of the format $SP{contentType,key[,defaultValue]}");
-			String[] s2 = StringUtils.split(key, ',');
-			RestRequest req = session.getSessionObject(RestRequest.class, RequestVar.SESSION_req);
-			if (req != null) {
-				Object o = req.getParameter(key, Object.class);
-				if (o == null)
-					o = key;
-				Serializer s = req.getSerializerGroup().getSerializer(s2[0]);
-				if (s != null)
-					s.serialize(w, o);
-			}
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/SerializedRequestParamVar.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/SerializedRequestParamVar.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/SerializedRequestParamVar.java
deleted file mode 100644
index 2f071b7..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/vars/SerializedRequestParamVar.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/***************************************************************************************************************************
- * 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.server.vars;
-
-import java.io.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Serialized request parameter variable resolver.
- * <p>
- * The format for this var is <js>"$SP{contentType,key}"</js> or <js>"$SP{contentType,key,defaultValue}"</js>.
- * <p>
- * This variable resolver requires that a {@link RestRequest} object be set as a context object on the resolver or a
- * 	session object on the resolver session.
- * <p>
- * Similar to the {@link RequestParamVar} class except uses the {@link RestRequest#getParameter(String)} object
- * 	and passes the value to the {@link Serializer} whose {@link Produces @Produces} annotation matches the specified content type.
- * <p>
- * Since this is a {@link SimpleVar}, any variables contained in the result will be recursively resolved.
- * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.
- *
- * @see org.apache.juneau.svl
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class SerializedRequestParamVar extends StreamedVar {
-
-	/**
-	 * Constructor.
-	 */
-	public SerializedRequestParamVar() {
-		super("SP");
-	}
-
-	@Override /* Var */
-	public void resolveTo(VarResolverSession session, Writer w, String key) {
-		try {
-			int i = key.indexOf(',');
-			if (i == -1)
-				throw new RuntimeException("Invalid format for $SP var.  Must be of the format $SP{contentType,key[,defaultValue]}");
-			String[] s2 = StringUtils.split(key, ',');
-			RestRequest req = session.getSessionObject(RestRequest.class, RequestVar.SESSION_req);
-			if (req != null) {
-				Object o = req.getParameter(key, Object.class);
-				if (o == null)
-					o = key;
-				Serializer s = req.getSerializerGroup().getSerializer(s2[0]);
-				if (s != null)
-					s.serialize(w, o);
-			}
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-}


[43/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.releng/build.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build.xml b/com.ibm.team.juno.releng/build.xml
deleted file mode 100755
index d6aa9ff..0000000
--- a/com.ibm.team.juno.releng/build.xml
+++ /dev/null
@@ -1,520 +0,0 @@
-<?xml version='1.0'?>
-<!--
- ***************************************************************************************************************************
- * 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.                                              *
- *                                                                                                                         *
- ***************************************************************************************************************************
--->
-<project name='Juneau' xmlns:jacoco='antlib:org.jacoco.ant' default='Juneau.Build'>
-	
-	<taskdef 
-		uri='antlib:org.jacoco.ant' 
-		resource='org/jacoco/ant/antlib.xml'
-		classpath='lib/jacoco/jacocoant.jar'/>
-	
-	<!-- ================================================================================ -->
-	<!-- Common initialization -->
-	<!-- ================================================================================ -->
-	<target name='Juneau.Init'>
-		<tstamp/>
-		<loadproperties srcFile='build.properties'/>
-	
-		<!-- Additional classpath -->
-		<path id='classpath'>
-			<pathelement path='../org.apache.juneau.releng/lib/jena/jena-core-2.7.1.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/mail.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/httpclient/httpclient-4.5.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/httpclient/httpcore-4.4.1.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/httpclient/httpmime-4.5.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/javax.servlet_2.5.0.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/jaxrs/jsr311-api-1.1.1.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/equinox/org.eclipse.osgi_3.6.50.R36x_v20120315-1500.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/equinox/org.eclipse.osgi.services_3.2.100.v20100503.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/junit/junit-4.12.jar'/>
-			<pathelement path='../org.apache.juneau.releng/lib/commons-fileupload/org.apache.commons.fileupload_1.3.1.jar'/>
-
-			<!-- Microservice jar -->
-			<pathelement path='../org.apache.juneau.microservice/lib/jetty-all-8.1.0.jar'/>
-		</path>
-	</target>
-
-	<!-- ================================================================================ -->
-	<!-- Build -->
-	<!-- ================================================================================ -->
-	<target name='Juneau.Build' depends='Juneau.Init' description='Creates a new release of the product.'>
-		<delete dir='build' quiet='true'/>
-		<mkdir dir='build'/>
-		<antcall target='Juneau.BuildJars'/>
-		<antcall target='Juneau.ComponentTest'/>
-		<antcall target='Juneau.BuildDoc'/>
-		<antcall target='Juneau.BuildDocZip'/>
-	</target>
-
-	<!-- ================================================================================ -->
-	<!-- Build the jar files -->
-	<!-- ================================================================================ -->
-	<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-	<target name='Juneau.BuildJars' depends='Juneau.Init' description='Build jar files.'>
-		
-		<delete dir='bin' quiet='true'/>
-		<delete dir='build' quiet='true'/>
-		
-		<mkdir dir='bin/core'/>
-		<mkdir dir='bin/server'/>
-		<mkdir dir='bin/client'/>
-		<mkdir dir='bin/microservice'/>
-		<mkdir dir='bin/source'/>
-		<mkdir dir='bin/all/META-INF'/>
-
-		<mkdir dir='bin/samples'/>
-		<mkdir dir='bin/core.test'/>
-		<mkdir dir='bin/server.test'/>
-
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-core.jar -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Compiling org.apache.juneau_${version}.jar ***'/>
-		
-		<copy todir='bin/core'>
-			<fileset dir='../org.apache.juneau/src/main/java' includes='**/*.properties'/>
-			<fileset dir='../org.apache.juneau' includes='META-INF/*'/>
-		</copy>
-		<javac destdir='bin/core' fork='true' source='1.6' target='1.6' debug='true' includeantruntime='false'>
-			<classpath refid='classpath'/>
-			<src path='../org.apache.juneau/src/main/java'/>
-		</javac>
-		<manifest file='bin/core/META-INF/MANIFEST.MF' mode='update'>
-				<attribute name='Built-By' value='${user.name}'/>
-				<attribute name='Build-Date' value='${TODAY}'/>
-			<attribute name='Bundle-Version' value='${version}'/>
-		</manifest>
-		
-		<jar jarfile='${dir.build}/org.apache.juneau_${version}.jar' basedir='bin/core' duplicate='fail' level='9' excludes='**/proto/**' manifest='bin/core/META-INF/MANIFEST.MF'/>
-
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-server.jar -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Compiling org.apache.juneau.server_${version}.jar ***'/>
-		
-		<copy todir='bin/server'>
-			<fileset dir='../org.apache.juneau.server/src/main/java' includes='**/*.properties,**/*.css,**/*.ico,com/ibm/team/juneau/server/htdocs/*'/>
-			<fileset dir='../org.apache.juneau.server' includes='META-INF/*'/>
-		</copy>
-		<javac destdir='bin/server' fork='true' source='1.6' target='1.6' debug='true' includeantruntime='false'>
-			<classpath refid='classpath'/>
-			<classpath path='bin/core'/>
-			<src path='../org.apache.juneau.server/src/main/java'/>
-		</javac>
-		<manifest file='bin/server/META-INF/MANIFEST.MF' mode='update'>
-			<attribute name='Built-By' value='${user.name}'/>
-			<attribute name='Build-Date' value='${TODAY}'/>
-			<attribute name='Bundle-Version' value='${version}'/>
-		</manifest>
-		
-		<jar jarfile='${dir.build}/org.apache.juneau.server_${version}.jar' basedir='bin/server' duplicate='fail' level='9' excludes='**/proto/**' manifest='bin/server/META-INF/MANIFEST.MF'/>
-
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-client.jar -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** org.apache.juneau.client_${version}.jar ***'/>
-		
-		<copy todir='bin/client'>
-			<fileset dir='../org.apache.juneau.client/src/main/java' includes='**/*.properties'/>
-			<fileset dir='../org.apache.juneau.client' includes='META-INF/*'/>
-		</copy>
-		<javac destdir='bin/client' fork='true' source='1.6' target='1.6' debug='true' includeantruntime='false'>
-			<classpath refid='classpath'/>
-			<classpath path='bin/core'/>
-			<src path='../org.apache.juneau.client/src/main/java'/>
-		</javac>
-		<manifest file='bin/client/META-INF/MANIFEST.MF' mode='update'>
-				<attribute name='Built-By' value='${user.name}'/>
-				<attribute name='Build-Date' value='${TODAY}'/>
-			<attribute name='Bundle-Version' value='${version}'/>
-		</manifest>
-		
-		<jar jarfile='${dir.build}/org.apache.juneau.client_${version}.jar' basedir='bin/client' duplicate='fail' level='9' excludes='**/proto/**' manifest='bin/client/META-INF/MANIFEST.MF'/>
-		
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-microservice.jar -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Compiling org.apache.juneau.microservice_${version}.jar ***'/>
-		
-		<copy todir='bin/microservice'>
-			<fileset dir='../org.apache.juneau.microservice/src/main/java' includes='**/*.properties,org/apache/juneau/microservice/resources/*.html'/>
-			<fileset dir='../org.apache.juneau.microservice' includes='META-INF/*'/>
-		</copy>
-		<javac destdir='bin/microservice' fork='true' source='1.6' target='1.6' debug='true' includeantruntime='false'>
-			<classpath refid='classpath'/>
-			<classpath path='bin/core'/>
-			<classpath path='bin/server'/>
-			<classpath path='bin/client'/>
-			<src path='../org.apache.juneau.microservice/src/main/java'/>
-		</javac>
-		<manifest file='bin/microservice/META-INF/MANIFEST.MF' mode='update'>
-				<attribute name='Built-By' value='${user.name}'/>
-				<attribute name='Build-Date' value='${TODAY}'/>
-			<attribute name='Bundle-Version' value='${version}'/>
-		</manifest>
-		
-		<jar jarfile='${dir.build}/org.apache.juneau.microservice_${version}.jar' basedir='bin/microservice' duplicate='fail' level='9' excludes='**/proto/**' manifest='bin/microservice/META-INF/MANIFEST.MF'/>
-
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-all.jar -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Building juneau-all-${version}.jar ***'/>
-		
-		<manifest file='bin/all/META-INF/MANIFEST.MF'>
-			<attribute name='Built-By' value='${user.name}'/>
-			<attribute name='Build-Date' value='${TODAY}'/>
-			<attribute name='Bundle-Name' value='Juneau Cloud Tools'/>
-			<attribute name='Bundle-Vendor' value='IBM'/>
-			<attribute name='Bundle-SymbolicName' value='org.apache.juneau.all'/>
-			<attribute name='Bundle-Version' value='${version}'/>
-		</manifest>
-
-		<jar destfile='${dir.build}/juneau-all-${version}.jar' excludes='META-INF/*' manifest='bin/all/META-INF/MANIFEST.MF'>
-			<zipgroupfileset dir='${dir.build}' includes="org.apache.juneau_${version}.jar,org.apache.juneau.server_${version}.jar,org.apache.juneau.client_${version}.jar,org.apache.juneau.microservice_${version}.jar"/>
-		</jar>
-		
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-all_src.zip -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Building juneau-all-${version}_src.zip ***'/>
-		
-		<zip destfile='${dir.build}/juneau-all-${version}_src.zip'>
-			<fileset dir="../org.apache.juneau/src/main/java"/>
-			<fileset dir="../org.apache.juneau.server/src/main/java"/>
-			<fileset dir="../org.apache.juneau.client/src/main/java"/>
-			<fileset dir="../org.apache.juneau.microservice/src/main/java"/>
-		</zip>
-
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-samples.jar -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Building juneau-samples-${version}.jar ***'/>
-
-		<copy todir='bin/samples'>
-			<fileset dir='../org.apache.juneau.samples/src/main/java' includes='**/*'/>
-			<fileset dir='../org.apache.juneau.samples' includes='META-INF/*'/>
-		</copy>
-		<javac destdir='bin/samples' fork='true' source='1.6' target='1.6' debug='true' includeantruntime='false'>
-			<classpath refid='classpath'/>
-			<classpath path='bin/core'/>
-			<classpath path='bin/server'/>
-			<classpath path='bin/client'/>
-			<classpath path='bin/microservice'/>
-			<src path='../org.apache.juneau.samples/src/main/java'/>
-		</javac>
-		<manifest file='bin/samples/META-INF/MANIFEST.MF' mode='update'>
-			<attribute name='Built-By' value='${user.name}'/>
-			<attribute name='Build-Date' value='${TODAY}'/>
-			<attribute name='Bundle-Version' value='${version}'/>
-		</manifest>
-		
-		<jar jarfile='${dir.build}/juneau-samples-${version}.jar' basedir='bin/samples' duplicate='fail' level='9' excludes='**/proto/**' manifest='bin/samples/META-INF/MANIFEST.MF'/>
-		
-		<jar jarfile='${dir.build}/juneau-samples-fat-${version}.jar' manifest="bin/samples/META-INF/MANIFEST.MF">
-			<zipgroupfileset dir='${dir.build}' includes='juneau-all-${version}.jar,juneau-samples-${version}.jar'/>
-			<zipgroupfileset dir='../org.apache.juneau.microservice/lib' includes='*.jar'/>
-			<zipgroupfileset dir='lib/jena' includes='*.jar'/>
-			<zipgroupfileset dir='lib/derby' includes='*.jar'/>
-		</jar>
-		
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-core-test.jar -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Building juneau-core-test-${version}.jar ***'/>
-		<copy todir='bin/core.test'>
-			<fileset dir='../org.apache.juneau/src/test/java' excludes='**/*.java'/>
-			<fileset dir='../org.apache.juneau' includes='META-INF/*'/>
-		</copy>
-		<javac destdir='bin/core.test' fork='true' source='1.6' target='1.6' debug='true' includeantruntime='false' encoding='UTF-8'>
-			<classpath refid='classpath'/>
-			<classpath>
-				<fileset dir='${dir.build}' includes='**/*.jar'/>
-			</classpath>
-			<src path='../org.apache.juneau/src/test/java'/>
-		</javac>
-		<manifest file='bin/core.test/META-INF/MANIFEST.MF' mode='update'>
-			<attribute name='Built-By' value='${user.name}'/>
-			<attribute name='Build-Date' value='${TODAY}'/>
-			<attribute name='Bundle-Version' value='${version}'/>
-		</manifest>
-		
-		<jar jarfile='${dir.build}/juneau-core-test-${version}.jar' basedir='bin/core.test' duplicate='fail' level='9' excludes='**/proto/**' manifest='bin/core.test/META-INF/MANIFEST.MF'/>
-
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau-server-test.jar -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Building juneau-server-test-${version}.jar ***'/>
-		
-		<copy todir='bin/server.test'>
-			<fileset dir='../org.apache.juneau.server.test/src/main/java' excludes='**/*.java'/>
-			<fileset dir='../org.apache.juneau.server.test/src/test/java' excludes='**/*.java'/>
-			<fileset dir='../org.apache.juneau.server.test' includes='META-INF/*'/>
-		</copy>
-		<javac destdir='bin/server.test' fork='true' source='1.6' target='1.6' debug='true' includeantruntime='false' encoding='UTF-8'>
-			<classpath refid='classpath'/>
-			<classpath>
-				<fileset dir='../org.apache.juneau.microservice/lib' includes='**/*.jar'/>
-				<fileset dir='${dir.build}' includes='**/*.jar'/>
-			</classpath>
-			<src path='../org.apache.juneau.server.test/src/main/java'/>
-			<src path='../org.apache.juneau.server.test/src/test/java'/>
-		</javac>
-		<manifest file='bin/server.test/META-INF/MANIFEST.MF' mode='update'>
-			<attribute name='Built-By' value='${user.name}'/>
-			<attribute name='Build-Date' value='${TODAY}'/>
-			<attribute name='Bundle-Version' value='${version}'/>
-		</manifest>
-		
-		<jar destfile='${dir.build}/juneau-server-test-${version}.jar' basedir='bin/server.test' excludes='META-INF/*' manifest='bin/server.test/META-INF/MANIFEST.MF'>
-			<zipgroupfileset dir='${dir.build}' includes='juneau-samples-fat-${version}.jar'/>
-		</jar>
-
-		<copy file='../org.apache.juneau.server.test/juneau-server-test.cfg' todir='${dir.build}/test'/>
-		
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- juneau.war -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Building juneau-samples-${version}.war ***'/>
-		<war destfile='${dir.build}/juneau-samples-${version}.war' webxml='../org.apache.juneau.samples/war/web.xml'>
-			<lib dir='lib/commons-codec-1.9'/>
-			<lib dir='lib/derby'/>
-			<lib dir='lib/httpclient' includes='*.jar'/>
-			<lib dir='lib/jaxrs'/>
-			<lib dir='lib/jena'/>
-			<lib dir='${dir.build}' includes='juneau-samples-${version}.jar,juneau-all-${version}.jar'/>
-		</war>
-
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- org.apache.juneau.microservice.template.zip -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Building org.apache.juneau.microservice.template-${version}.zip ***'/>
-		<mkdir dir="${dir.build}/org.apache.juneau.microservice.template"/>
-		<copy todir='${dir.build}/org.apache.juneau.microservice.template'>
-			<fileset dir='../org.apache.juneau.microservice.template' excludes='target/**'/>
-		</copy>
-		<copy todir='${dir.build}/org.apache.juneau.microservice.template/lib'>
-			<fileset dir='${dir.build}' includes='juneau-all-${version}.jar'/>
-			<fileset dir='../org.apache.juneau.microservice/lib' includes='*.jar'/>
-		</copy>
-		<zip basedir='${dir.build}' includes='org.apache.juneau.microservice.template/**' destfile='${dir.build}/org.apache.juneau.microservice.template-${version}.zip'/>
-		<delete dir="${dir.build}/org.apache.juneau.microservice.template"/>
-		
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<!-- org.apache.juneau.samples.zip -->
-		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-		<echo message='*** Building org.apache.juneau.samples-${version}.zip ***'/>
-		<mkdir dir="${dir.build}/org.apache.juneau.samples"/>
-		<copy todir='${dir.build}/org.apache.juneau.samples'>
-			<fileset dir='../org.apache.juneau.samples' excludes='target/**'/>
-		</copy>
-		<copy todir='${dir.build}/org.apache.juneau.samples/lib'>
-			<fileset dir='${dir.build}' includes='juneau-all-${version}.jar'/>
-			<fileset dir='../org.apache.juneau.microservice/lib' includes='*.jar'/>
-		</copy>
-		<zip basedir='${dir.build}' includes='org.apache.juneau.samples/**' destfile='${dir.build}/org.apache.juneau.samples-${version}.zip'/>
-		<delete dir="${dir.build}/org.apache.juneau.samples"/>
-	</target>
-	
-	<!-- ================================================================================ -->
-	<!-- Component tests -->
-	<!-- ================================================================================ -->
-	<target name='Juneau.ComponentTest' depends='Juneau.Init' description='Run JUnit component tests.'>
-
-		<delete dir='${dir.build}/test/junit' failonerror='false'/>
-		<delete dir='${dir.build}/test/jacoco' failonerror='false'/>
-		
-		<mkdir dir='${dir.build}/test/junit/results'/>
-		<mkdir dir='${dir.build}/test/junit/html'/>
-		
-		<echo message='*** Starting juneau-samples microservice ***'/>
-		<jacoco:coverage destfile='${dir.build}/test/jacoco/jacoco2.exec' includes='org.apache.juneau.*'>
-			<java jar='${dir.build}/juneau-samples-fat-${version}.jar' dir='${dir.build}' fork='true' spawn='true'/>
-		</jacoco:coverage>
-			
-		<echo message='*** Starting juneau-server-test microservice ***'/>
-		<jacoco:coverage destfile='${dir.build}/test/jacoco/jacoco3.exec' includes='org.apache.juneau.*'>
-			<java jar='${dir.build}/juneau-server-test-${version}.jar' dir='${dir.build}/test' fork='true' spawn='true'/>
-		</jacoco:coverage>
-
-		<echo message='*** Running component tests ***'/>
-		<jacoco:coverage destfile='${dir.build}/test/jacoco/jacoco.exec' includes='org.apache.juneau.*'>
-	
-		<!-- Run from project dir.  Fork=true required for dir attr. -->
-		<junit printsummary='true' showoutput='true' fork='true' includeAntRuntime='true' failureproperty='TestFailed' forkmode='once'>
-			<sysproperty key='JUNO_SAMPLE_URL' value='http://localhost:10000'/>
-			<sysproperty key='JUNO_SERVER_TEST_URL' value='http://localhost:10001'/>
-			<classpath>
-				<fileset dir='lib'>
-					<include name='**/*.jar' />
-				</fileset>
-				<fileset dir='build'>
-					<include name='**/*.jar' />
-				</fileset>
-			</classpath>
-			<batchtest todir='${dir.build}/test/junit/results' filtertrace='false'>
-				<fileset dir='../org.apache.juneau/src/test/java'>
-					<include name='**/CT_*.java' />
-				</fileset>
-				<fileset dir='../org.apache.juneau.server.test/src/test/java'>
-					<include name='**/CT_*.java' />
-				</fileset>
-				<formatter type='xml'/>
-			</batchtest>
-		</junit>
-
-		</jacoco:coverage>
-
-		<!-- Create the JUnit report file -->
-		<delete dir='${dir.build}/test/junit/html' failonerror='false' />
-		<mkdir dir='${dir.build}/test/junit/html' />
-		<!-- Commented out for now due to bug https://issues.apache.org/bugzilla/show_bug.cgi?id=51668 -->
-		<junitreport>
-			<fileset dir='${dir.build}/test/junit/results'>
-				<include name='**/TEST-*.xml' />
-			</fileset>
-			<report format='noframes' todir='${dir.build}/test/junit/html'/>
-		</junitreport>
-
-		<echo message='*** Stopping juneau-samples microservice ***'/>
-		<get src='http://127.0.0.1:10000/shutdown' dest='out.html' ignoreerrors='true'/>
-		
-		<echo message='*** Stopping juneau-server-test microservice ***'/>
-		<get src='http://127.0.0.1:10001/shutdown' dest='out.html' ignoreerrors='true'/>
-
-		<jacoco:report>
-			<executiondata>
-				<!--file file='${dir.build}/test/jacoco/jacoco.exec' /-->
-				<file file='${dir.build}/test/jacoco/jacoco2.exec' />
-				<file file='${dir.build}/test/jacoco/jacoco3.exec' />
-			</executiondata>
-			<structure name='Juneau'>
-			    <group name='Core'>
-					<classfiles>
-						<fileset dir='${dir.build}' includes='juneau-core.jar'/>
-					</classfiles>
-					<sourcefiles encoding='UTF-8'>
-						<fileset dir='../org.apache.juneau/src/main/java' />
-					</sourcefiles>
-			    </group>
-			    <group name='Server'>
-					<classfiles>
-						<fileset dir='${dir.build}' includes='juneau-server.jar'/>
-					</classfiles>
-					<sourcefiles encoding='UTF-8'>
-						<fileset dir='../org.apache.juneau.server/src/main/java' />
-					</sourcefiles>
-			    </group>
-			    <group name='Client'>
-					<classfiles>
-						<fileset dir='${dir.build}' includes='juneau-client.jar'/>
-					</classfiles>
-					<sourcefiles encoding='UTF-8'>
-						<fileset dir='../org.apache.juneau.client/src/main/java' />
-					</sourcefiles>
-			    </group>
-			</structure>
-			<!--  to produce reports in different formats.  -->
-			<html destdir='${dir.build}/test/jacoco/results' />
-			<csv destfile='${dir.build}/test/jacoco/results/report.csv' />
-			<xml destfile='${dir.build}/test/jacoco/results/report.xml' />
-		</jacoco:report>
-
-		<ant target='Juneau.CtFailed'/>
-		<ant target='Juneau.CtSucceeded'/>
-	</target>
-
-	<target name='Juneau.CtFailed' if='TestFailed'>
-		<echo message='Juneau component testsuite run had at least one failure.'/>
-	</target>
-
-	<target name='Juneau.CtSucceeded' unless='TestFailed'>
-		<echo message='Juneau component testsuite run succeeded.'/>
-	</target>
-	
-	
-	<!-- ================================================================================ -->
-	<!-- Build Javadocs -->
-	<!-- ================================================================================ -->
-	<target name='Juneau.BuildDoc' depends='Juneau.Init' unless='Juneau.BuildDoc.Executed'>
-		<!--delete dir='doc'/-->
-		<echo message="Building Javadocs at ${dir.build}/javadoc"/>
-		<javadoc 
-				access='protected' 
-				windowtitle='Juneau' 
-				author='true' 
-				destdir='${dir.build}/javadoc' 
-				linksource='on' 
-				source='1.6' 
-				overview='../org.apache.juneau/src/main/java/overview.html' 
-				stylesheetfile='javadoc.css'
-				use='true'
-				additionalparam='-sourcetab 3 -notimestamp -Xdoclint:none'
-				verbose='false'
-				excludepackagenames='*proto*'>
-			<link href='http://docs.oracle.com/javase/7/docs/api/' />
-			<link href='http://docs.oracle.com/javaee/5/api/' />
-			<packageset dir='../org.apache.juneau/src/main/java'>
-				<include name='org/apache/juneau/**'/>
-				<exclude name='**/proto/**'/>
-				<exclude name='**/internal/**'/>
-			</packageset>
-			<packageset dir='../org.apache.juneau.client/src/main/java'>
-				<include name='org/apache/juneau/**'/>
-				<exclude name='**/proto/**'/>
-			</packageset>
-			<packageset dir='../org.apache.juneau.server/src/main/java'>
-				<include name='org/apache/juneau/**'/>
-				<exclude name='**/proto/**'/>
-			</packageset>
-			<packageset dir='../org.apache.juneau.microservice/src/main/java'>
-				<include name='org/apache/juneau/**'/>
-				<exclude name='**/proto/**'/>
-			</packageset>
-			<classpath refid='classpath'/>
-			<group title='org.apache.juneau - Core API (serializers, parsers, bean context)'>
-				<package name='org.apache.juneau*'/>
-			</group>
-			<group title='org.apache.juneau.server - REST Server API'>
-				<package name='org.apache.juneau.server*'/>
-			</group>
-			<group title='org.apache.juneau.client - REST Client API'>
-				<package name='org.apache.juneau.client*'/>
-			</group>
-			<group title='org.apache.juneau.microservice - Microservice API'>
-				<package name='org.apache.juneau.microservice*'/>
-			</group>
-		</javadoc>
-		<!--java classname='org.apache.juneau.utils.LinkValidator' classpath='../org.apache.juneau.utils/bin;bin' dir='.' fork='true'>
-			<arg value='doc'/>
-		</java-->
-		
-		<property name='Juneau.BuildDoc.Executed' value='true'/>
-	</target>
-	
-
-	<!-- ================================================================================ -->
-	<!-- Build Javadoc zip file -->
-	<!-- ================================================================================ -->
-	<target name='Juneau.BuildDocZip' description='Create Javadoc archive file' depends='Juneau.BuildDoc'>
-
-		<!-- juneau_javadocs.war -->
-		<echo message='*** Building juneau-javadocs-${version}.war ***'/>
-		<war destfile='${dir.build}/juneau-javadocs-${version}.war' webxml='misc/web.xml'>
-			<fileset dir='${dir.build}/javadoc'/>
-		</war>		
-		
-	</target>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/jacoco.exec
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/jacoco.exec b/com.ibm.team.juno.releng/build/test/jacoco/jacoco.exec
deleted file mode 100644
index e315db5..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/jacoco.exec and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/jacoco2.exec
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/jacoco2.exec b/com.ibm.team.juno.releng/build/test/jacoco/jacoco2.exec
deleted file mode 100644
index 0f1a582..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/jacoco2.exec and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/jacoco3.exec
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/jacoco3.exec b/com.ibm.team.juno.releng/build/test/jacoco/jacoco3.exec
deleted file mode 100644
index 8a44185..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/jacoco3.exec and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchfc.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchfc.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchfc.gif
deleted file mode 100644
index 989b46d..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchfc.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchnc.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchnc.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchnc.gif
deleted file mode 100644
index 1933e07..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchnc.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchpc.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchpc.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchpc.gif
deleted file mode 100644
index cbf711b..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/branchpc.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/bundle.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/bundle.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/bundle.gif
deleted file mode 100644
index fca9c53..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/bundle.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/class.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/class.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/class.gif
deleted file mode 100644
index eb348fb..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/class.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/down.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/down.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/down.gif
deleted file mode 100644
index 440a14d..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/down.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/greenbar.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/greenbar.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/greenbar.gif
deleted file mode 100644
index 0ba6567..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/greenbar.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/group.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/group.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/group.gif
deleted file mode 100644
index a4ea580..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/group.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/method.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/method.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/method.gif
deleted file mode 100644
index 7d24707..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/method.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/package.gif
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/package.gif b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/package.gif
deleted file mode 100644
index 131c28d..0000000
Binary files a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/package.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/prettify.css
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/prettify.css b/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/prettify.css
deleted file mode 100644
index be5166e..0000000
--- a/com.ibm.team.juno.releng/build/test/jacoco/results/.resources/prettify.css
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Pretty printing styles. Used with prettify.js. */
-
-.str { color: #2A00FF; }
-.kwd { color: #7F0055; font-weight:bold; }
-.com { color: #3F5FBF; }
-.typ { color: #606; }
-.lit { color: #066; }
-.pun { color: #660; }
-.pln { color: #000; }
-.tag { color: #008; }
-.atn { color: #606; }
-.atv { color: #080; }
-.dec { color: #606; }


[09/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/package.html
deleted file mode 100644
index 3fbcf3b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/atom/package.html
+++ /dev/null
@@ -1,585 +0,0 @@
-<!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>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>
-		Juneau 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>org.apache.juneau.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 Juneau 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>"Juneau 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:juneau.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>"Juneau"</js>).setUri(<jk>new</jk> URI(<js>"http://juneau.ibm..com/"</js>)).setVersion(<js>"1.0"</js>))
-		.addEntries(
-			<jk>new</jk> Entry()
-				.setTitle(<jk>new</jk> Text(<js>"Juneau ATOM specification snapshot"</js>))
-				.addLinks(
-					<jk>new</jk> Link(<js>"alternate"</js>, <js>"text/html"</js>, <js>"http://www.sample.com/2012/05/08/juneau.atom"</js>),
-					<jk>new</jk> Link(<js>"enclosure"</js>, <js>"audio/mpeg"</js>, <js>""http://www.sample.com/audio/juneau_podcast.mp3"</js>).setLength(12345)
-				)
-				.setId(<jk>new</jk> Id(<js>"tag:juneau.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>"james.bognar@salesforce.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: Juneau supports ATOM.]&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;"</js>)
-				)
-		)
-	;
-		</p>
-		<p>
-			To serialize this to ATOM, use the {@link org.apache.juneau.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(XmlSerializerContext.<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:juneau.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>
-			Juneau 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://juneau.ibm.com/'</xs> <xa>version</xa>=<xs>'1.0'</xs><xt>&gt;</xt>
-			Juneau
-		<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>james.bognar@salesforce.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:juneau.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/juneau.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/juneau_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>
-				Juneau 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: Juneau 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/Juneau'</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:juneau.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>
-			Juneau 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://juneau.ibm.com/'</xs> <xa>version</xa>=<xs>'1.0'</xs><xt>&gt;</xt>
-			Juneau
-		<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>james.bognar@salesforce.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:juneau.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/juneau.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/juneau_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>
-				Juneau 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: Juneau 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(XmlSerializerContext.<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:juneau.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>
-			Juneau 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://juneau.ibm.com/'</xs> <xa>version</xa>=<xs>'1.0'</xs><xt>&gt;</xt>
-			Juneau
-		<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>james.bognar@salesforce.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:juneau.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/juneau.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/juneau_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>
-				Juneau 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: Juneau 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 org.apache.juneau.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:juneau.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>'Juneau ATOM specification'</js>
-		}, 
-		updated: <js>'2013-05-08T12:29:29Z'</js>, 
-		generator: {
-			uri: <js>'http://juneau.ibm.com/'</js>, 
-			version: <js>'1.0'</js>, 
-			text: <js>'Juneau'</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>'james.bognar@salesforce.com'</js>
-					}
-				], 
-				contributors: [
-					{
-						name: <js>'Barry M. Caceres'</js>
-					}
-				], 
-				id: {
-					text: <js>'tag:juneau.sample.com,2013:1.2345'</js>
-				}, 
-				links: [
-					{
-						href: <js>'http://www.sample.com/2012/05/08/juneau.atom'</js>, 
-						rel: <js>'alternate'</js>, 
-						type: <js>'text/html'</js>
-					}, 
-					{
-						href: <js>'http://www.sample.com/audio/juneau_podcast.mp3'</js>, 
-						rel: <js>'enclosure'</js>, 
-						type: <js>'audio/mpeg'</js>, 
-						length: <jk>12345</jk>
-					}
-				], 
-				title: {
-					text: <js>'Juneau 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: Juneau 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 org.apache.juneau.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(SerializerContext.<jsf>SERIALIZER_useIndentation</jsf>, <jk>true</jk>)
-		.setProperty(SerializerContext.<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/juneau/'</xs>
-	    <xa>xmlns:jp</xa>=<xs>'http://www.ibm.com/juneaubp/'</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:juneau.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>Juneau 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://juneau.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>Juneau<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>james.bognar@salesforce.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:juneau.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/juneau.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/juneau_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>Juneau 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: Juneau 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 org.apache.juneau.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>org.apache.juneau.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 org.apache.juneau.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/Column.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/Column.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/Column.java
deleted file mode 100644
index 020a71b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/Column.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.cognos;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.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 (james.bognar@salesforce.com)
- */
-@Xml(name="item")
-@SuppressWarnings({"rawtypes","hiding"})
-@Bean(properties={"name","type","length"})
-public class Column {
-
-	private String name, type;
-	private Integer length;
-	PojoTransform transform;
-
-	/** 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 transform 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 transform
-	 * 		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>)
-	 * 		.addTransform(
-	 * 			<jk>new</jk> PojoTransform<Person,Integer>() {
-	 * 				<ja>@Override</ja>
-	 * 				<jk>public</jk> Integer transform(Person p) {
-	 * 					<jk>return</jk> p.<jf>addresses</jf>.size();
-	 * 				}
-	 * 			}
-	 * 		);
-	 * </p>
-	 *
-	 * @param transform The transform to associate with the column.
-	 * @return This object (for method chaining).
-	 */
-	public Column addTransform(PojoTransform transform) {
-		this.transform = transform;
-		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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/DataSet.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
deleted file mode 100644
index d4a70f2..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.cognos;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.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>)
- * 			.addTransform(
- * 				<jk>new</jk> PojoTransform&ltPerson,Integer&gt;() {
- * 					<ja>@Override</ja>
- * 					<jk>public</jk> Integer transform(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 (james.bognar@salesforce.com)
- */
-@Xml(name="dataset")
-@SuppressWarnings("unchecked")
-@Bean(properties={"metadata","data"})
-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.transform != null)
-							v = col.transform.transform(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 (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png
deleted file mode 100644
index fd63c23..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png
deleted file mode 100644
index 44785ad..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png
deleted file mode 100644
index 081e949..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/package-info.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/package-info.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/package-info.java
deleted file mode 100644
index f6d1b4d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/package-info.java
+++ /dev/null
@@ -1,17 +0,0 @@
-//***************************************************************************************************************************
-//* 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.
-//***************************************************************************************************************************
-// XML namespaces used in this package
-@XmlSchema(prefix="cognos", namespace="http://developer.cognos.com/schemas/xmldata/1/")
-package org.apache.juneau.dto.cognos;
-import org.apache.juneau.xml.annotation.*;
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/package.html
deleted file mode 100644
index b0c9e83..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/cognos/package.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!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>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 org.apache.juneau.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>)
-			.addTransform(
-				<jk>new</jk> PojoTransform&ltPerson,Integer&gt;() {
-					<ja>@Override</ja>
-					<jk>public</jk> Integer transform(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 org.apache.juneau.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/JsonType.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/JsonType.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/JsonType.java
deleted file mode 100644
index f189a15..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/JsonType.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 org.apache.juneau.dto.jsonschema} for usage information.
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/JsonTypeArray.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/JsonTypeArray.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/JsonTypeArray.java
deleted file mode 100644
index 9ec00c0..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/JsonTypeArray.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.jsonschema;
-
-import java.util.*;
-
-/**
- * Represents a list of {@link JsonType} objects.
- * <p>
- * 	Refer to {@link org.apache.juneau.dto.jsonschema} for usage information.
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java
deleted file mode 100644
index 43d99fc..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/dto/jsonschema/Sample.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/***************************************************************************************************************************
- * 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.dto.jsonschema;
-
-import java.io.*;
-import java.net.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-
-@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, 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"
-	}
-}


[36/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server.test/juneau-server-test.launch
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/juneau-server-test.launch b/com.ibm.team.juno.server.test/juneau-server-test.launch
deleted file mode 100755
index 0d9fb35..0000000
--- a/com.ibm.team.juno.server.test/juneau-server-test.launch
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.apache.juneau.microservice/src/main/java/org/apache/juneau/microservice/RestMicroservice.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6&quot; javaProject=&quot;org.apache.juneau.server&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;org.apache.juneau.server.test&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;org.apache.juneau.microservice&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/commons-codec-1.9.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/commons-io-1.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/commons-logging-1.1.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/httpclient-4.5.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/httpcore-4.4.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/httpmime-4.5.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/jetty-all-8.1.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/javax.servlet-api-3.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.microservice/lib/org.apache.commons.fileupload_1.3.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;org.apache.juneau.server&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;org.apache.juneau.releng&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;org.apache.juneau.client&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;org.apache.juneau&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/derby/derby.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jaxrs/jsr311-api-1.1.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/javax.servlet_2.5.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/commons-codec-1.9/commons-codec-1.9.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/commons-fileupload/org.apache.commons.fileupload_1.3.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/httpclient/commons-logging-1.1.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/httpclient/httpclient-4.5.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/httpclient/httpcomponents-client-4.5-src.zip&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/httpclient/httpcore-4.4.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/httpclient/httpmime-4.5.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jaxrs/wink-common-1.2.1-incubating.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jaxrs/wink-server-1.2.1-incubating.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jena/jena-core-2.7.1-sources.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jena/jena-core-2.7.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jena/jena-iri-0.9.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jena/log4j-1.2.16.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jena/slf4j-api-1.6.4.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jena/slf4j-log4j12-1.6.4.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/junit/hamcrest-core-1.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/junit/junit-4.12.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.apache.juneau.releng/lib/jena/xercesImpl-2.9.1.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;org.apache.juneau.samples&quot; type=&quot;1&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;org.apache.juneau.server&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.juneau.microservice.RestMicroservice"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.apache.juneau.server.test"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-</launchConfiguration>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/pom.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/pom.xml b/com.ibm.team.juno.server.test/pom.xml
deleted file mode 100644
index 8c6d675..0000000
--- a/com.ibm.team.juno.server.test/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.juneau</groupId>
-  <artifactId>org.apache.juneau.server.test</artifactId>
-  <version>6.0.0-SNAPSHOT</version>
-  <name>org.apache.juneau.server.test</name>
-  <description>org.apache.juneau.server.test</description>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/java</directory>
-        <excludes>
-          <exclude>**/*.java</exclude>
-        </excludes>
-      </resource>
-    </resources>
-    <testResources>
-      <testResource>
-        <directory>src/test/java</directory>
-        <excludes>
-          <exclude>**/*.java</exclude>
-        </excludes>
-      </testResource>
-    </testResources>
-    <plugins>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.3</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/DTO2s.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/DTO2s.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/DTO2s.java
deleted file mode 100755
index 4b9d40d..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/DTO2s.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.util.*;
-
-import org.apache.juneau.urlencoding.annotation.*;
-
-public class DTO2s {
-
-	public static class A {
-		public String a;
-		public int b;
-		public boolean c;
-
-		public static A create() {
-			A t = new A();
-			t.a = "a";
-			t.b = 1;
-			t.c = true;
-			return t;
-		}
-
-	}
-
-	@SuppressWarnings("serial")
-	public static class B {
-		public String[] f1;
-		public List<String> f2;
-		public int[] f3;
-		public List<Integer> f4;
-		public String[][] f5;
-		public List<String[]> f6;
-		public A[] f7;
-		public List<A> f8;
-		public A[][] f9;
-		public List<List<A>> f10;
-
-		private String[] f11;
-		private List<String> f12;
-		private int[] f13;
-		private List<Integer> f14;
-		private String[][] f15;
-		private List<String[]> f16;
-		private A[] f17;
-		private List<A> f18;
-		private A[][] f19;
-		private List<List<A>> f20;
-
-		public String[] getF11() { return f11; }
-		public List<String> getF12() { return f12; }
-		public int[] getF13() { return f13; }
-		public List<Integer> getF14() { return f14; }
-		public String[][] getF15() { return f15; }
-		public List<String[]> getF16() { return f16; }
-		public A[] getF17() { return f17; }
-		public List<A> getF18() { return f18; }
-		public A[][] getF19() { return f19; }
-		public List<List<A>> getF20() { return f20; }
-
-		public void setF11(String[] f11) { this.f11 = f11; }
-		public void setF12(List<String> f12) { this.f12 = f12; }
-		public void setF13(int[] f13) { this.f13 = f13; }
-		public void setF14(List<Integer> f14) { this.f14 = f14; }
-		public void setF15(String[][] f15) { this.f15 = f15; }
-		public void setF16(List<String[]> f16) { this.f16 = f16; }
-		public void setF17(A[] f17) { this.f17 = f17; }
-		public void setF18(List<A> f18) { this.f18 = f18; }
-		public void setF19(A[][] f19) { this.f19 = f19; }
-		public void setF20(List<List<A>> f20) { this.f20 = f20; }
-
-		static B create() {
-			B t = new B();
-			t.f1 = new String[]{"a","b"};
-			t.f2 = new ArrayList<String>(){{add("c");add("d");}};
-			t.f3 = new int[]{1,2};
-			t.f4 = new ArrayList<Integer>(){{add(3);add(4);}};
-			t.f5 = new String[][]{{"e","f"},{"g","h"}};
-			t.f6 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}};
-			t.f7 = new A[]{A.create(),A.create()};
-			t.f8 = new ArrayList<A>(){{add(A.create());add(A.create());}};
-			t.f9 = new A[][]{{A.create()},{A.create()}};
-			t.f10 = new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}};
-			t.setF11(new String[]{"a","b"});
-			t.setF12(new ArrayList<String>(){{add("c");add("d");}});
-			t.setF13(new int[]{1,2});
-			t.setF14(new ArrayList<Integer>(){{add(3);add(4);}});
-			t.setF15(new String[][]{{"e","f"},{"g","h"}});
-			t.setF16(new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}});
-			t.setF17(new A[]{A.create(),A.create()});
-			t.setF18(new ArrayList<A>(){{add(A.create());add(A.create());}});
-			t.setF19(new A[][]{{A.create()},{A.create()}});
-			t.setF20(new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}});
-			return t;
-		}
-	}
-
-	@UrlEncoding(expandedParams=true)
-	public static class C extends B {
-		@SuppressWarnings("serial")
-		static C create() {
-			C t = new C();
-			t.f1 = new String[]{"a","b"};
-			t.f2 = new ArrayList<String>(){{add("c");add("d");}};
-			t.f3 = new int[]{1,2};
-			t.f4 = new ArrayList<Integer>(){{add(3);add(4);}};
-			t.f5 = new String[][]{{"e","f"},{"g","h"}};
-			t.f6 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}};
-			t.f7 = new A[]{A.create(),A.create()};
-			t.f8 = new ArrayList<A>(){{add(A.create());add(A.create());}};
-			t.f9 = new A[][]{{A.create()},{A.create()}};
-			t.f10 = new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}};
-			t.setF11(new String[]{"a","b"});
-			t.setF12(new ArrayList<String>(){{add("c");add("d");}});
-			t.setF13(new int[]{1,2});
-			t.setF14(new ArrayList<Integer>(){{add(3);add(4);}});
-			t.setF15(new String[][]{{"e","f"},{"g","h"}});
-			t.setF16(new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}});
-			t.setF17(new A[]{A.create(),A.create()});
-			t.setF18(new ArrayList<A>(){{add(A.create());add(A.create());}});
-			t.setF19(new A[][]{{A.create()},{A.create()}});
-			t.setF20(new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}});
-			return t;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/LargePojo.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/LargePojo.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/LargePojo.java
deleted file mode 100755
index d610d70..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/LargePojo.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.util.*;
-
-/**
- * A large POJO object.
- */
-@SuppressWarnings("serial")
-public class LargePojo {
-	public A1Map a1Map;
-	public A1List a1List;
-	public A1[] a1Array;
-
-	public static LargePojo create() {
-		LargePojo a = new LargePojo();
-		a.a1Map = new A1Map();
-		a.a1List = new A1List();
-		for (int i = 0; i < 20000; i++) {
-			a.a1Map.put(String.valueOf(i), new A1());
-			a.a1List.add(new A1());
-		}
-		a.a1Array = a.a1List.toArray(new A1[0]);
-		return a;
-	}
-
-	public static class A1 {
-		public String f1 = "a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789";
-	}
-
-	public static class A1Map extends LinkedHashMap<String,A1> {}
-
-	public static class A1List extends LinkedList<A1> {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/Root.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/Root.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/Root.java
deleted file mode 100755
index 29d1fc2..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/Root.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.microservice.resources.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.labels.*;
-
-@RestResource(
-	path="/",
-	children={
-		TestAcceptCharset.class,
-		TestBeanContextProperties.class,
-		TestCallbackStrings.class,
-		TestCharsetEncodings.class,
-		TestClientVersion.class,
-		TestConfig.class,
-		TestContent.class,
-		TestDefaultContentTypes.class,
-		TestErrorConditions.class,
-		TestTransforms.class,
-		TestGroups.class,
-		TestGzip.TestGzipOff.class,
-		TestGzip.TestGzipOn.class,
-		TestInheritance.TestEncoders.class,
-		TestInheritance.TestTransforms.class,
-		TestInheritance.TestParsers.class,
-		TestInheritance.TestProperties.class,
-		TestInheritance.TestSerializers.class,
-		TestLargePojos.class,
-		TestMessages.TestMessages2.class,
-		TestMessages.class,
-		TestNls.class,
-		TestNlsProperty.class,
-		TestNoParserInput.class,
-		TestOnPostCall.class,
-		TestOnPreCall.class,
-		TestOptionsWithoutNls.class,
-		TestOverlappingMethods.class,
-		TestParams.class,
-		TestParsers.class,
-		TestPath.class,
-		TestPaths.class,
-		TestProperties.class,
-		TestRestClient2.class,
-		TestSerializers.class,
-		TestStaticFiles.class,
-		TestUris.class,
-		TestUrlContent.class,
-		ShutdownResource.class
-	}
-)
-public class Root extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	@RestMethod(name="GET", path="/")
-	public ChildResourceDescriptions doGet(RestRequest req) {
-		return new ChildResourceDescriptions(this, req);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestAcceptCharset.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestAcceptCharset.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestAcceptCharset.java
deleted file mode 100755
index 9efa109..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestAcceptCharset.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.RestServletContext.*;
-
-import java.io.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testAcceptCharset",
-	serializers={PlainTextSerializer.class},
-	properties={
-		// Some versions of Jetty default to ISO8601, so specify UTF-8 for test consistency.
-		@Property(name=REST_defaultCharset,value="utf-8")
-	}
-)
-public class TestAcceptCharset extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Test that Q-values are being resolved correctly.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testQValues")
-	public String testQValues() {
-		return "foo";
-	}
-
-	//====================================================================================================
-	// Validate various Accept-Charset variations.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testCharsetOnResponse", parsers=TestParser.class, serializers=TestSerializer.class)
-	public String testCharsetOnResponse(@Content String in) {
-		return in;
-	}
-
-	@Consumes("text/plain")
-	public static class TestParser extends InputStreamParser {
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)session.getProperties().getString("characterEncoding");
-		}
-	}
-
-	@Produces("text/plain")
-	public static class TestSerializer extends OutputStreamSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			Writer w = new OutputStreamWriter(session.getOutputStream());
-			w.append(o.toString()).append('/').append(session.getProperties().getString("characterEncoding"));
-			w.flush();
-			w.close();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestBeanContextProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestBeanContextProperties.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestBeanContextProperties.java
deleted file mode 100755
index f4a1ba8..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestBeanContextProperties.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.transforms.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testBeanContext",
-	transforms=DateTransform.ISO8601DTZ.class
-)
-public class TestBeanContextProperties extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Validate that transforms defined on class transform to underlying bean context.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testClassTransforms/{d1}")
-	public Reader testClassTransforms(@Attr("d1") Date d1, @Param("d2") Date d2, @Header("X-D3") Date d3) throws Exception {
-		DateTransform df = DateTransform.ISO8601DTZ.class.newInstance();
-		return new StringReader(
-			"d1="+df.transform(d1)+",d2="+df.transform(d2)+",d3="+df.transform(d3)+""
-		);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestCallbackStrings.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestCallbackStrings.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestCallbackStrings.java
deleted file mode 100755
index 4527f26..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestCallbackStrings.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testCallback"
-)
-public class TestCallbackStrings extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Test GET
-	//====================================================================================================
-	@RestMethod(name="GET", path="/")
-	public ObjectMap test1(RestRequest req) throws Exception {
-		return new ObjectMap().append("method","GET").append("headers", getFooHeaders(req)).append("content", req.getInputAsString());
-	}
-
-	//====================================================================================================
-	// Test PUT
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/")
-	public ObjectMap testCharsetOnResponse(RestRequest req) throws Exception {
-		return new ObjectMap().append("method","PUT").append("headers", getFooHeaders(req)).append("content", req.getInputAsString());
-	}
-
-	private Map<String,Object> getFooHeaders(RestRequest req) {
-		Map<String,Object> m = new TreeMap<String,Object>();
-		for (Map.Entry<String,Object> e : req.getHeaders().entrySet())
-			if (e.getKey().startsWith("Foo-"))
-				m.put(e.getKey(), e.getValue());
-		return m;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestCharsetEncodings.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestCharsetEncodings.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestCharsetEncodings.java
deleted file mode 100755
index f95b368..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestCharsetEncodings.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testCharsetEncodings",
-	defaultRequestHeaders={"Accept: text/s", "Content-Type: text/p"},
-	parsers={TestCharsetEncodings.CtParser.class}, serializers={TestCharsetEncodings.ASerializer.class}
-)
-public class TestCharsetEncodings extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	@Consumes("text/p")
-	public static class CtParser extends ReaderParser {
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)IOUtils.read(session.getReader());
-		}
-	}
-
-	@Produces("text/s")
-	public static class ASerializer extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			session.getWriter().write(o.toString());
-		}
-	}
-
-	@RestMethod(name="PUT", path="/")
-	public String test1(RestRequest req, @Content String in) {
-		return req.getCharacterEncoding() + "/" + in + "/" + req.getCharacterEncoding();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestClientVersion.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestClientVersion.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestClientVersion.java
deleted file mode 100644
index 65fec38..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestClientVersion.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testClientVersion",
-	children={
-		TestClientVersion.DefaultHeader.class,
-		TestClientVersion.CustomHeader.class
-	}
-)
-@SuppressWarnings("serial")
-public class TestClientVersion extends Resource {
-
-	@RestResource(
-		path="/defaultHeader"
-	)
-	public static class DefaultHeader extends Resource {
-
-		@RestMethod(name="GET", path="/")
-		public String test0() {
-			return "no-version";
-		}
-
-		@RestMethod(name="GET", path="/", clientVersion="[0.0,1.0)")
-		public String test1() {
-			return "[0.0,1.0)";
-		}
-
-		@RestMethod(name="GET", path="/", clientVersion="[1.0,1.0]")
-		public String test2() {
-			return "[1.0,1.0]";
-		}
-
-		@RestMethod(name="GET", path="/", clientVersion="[1.1,2)")
-		public String test3() {
-			return "[1.1,2)";
-		}
-
-		@RestMethod(name="GET", path="/", clientVersion="2")
-		public String test4() {
-			return "2";
-		}
-	}
-
-	@RestResource(
-		path="/customHeader",
-		clientVersionHeader="Custom-Client-Version"
-	)
-	public static class CustomHeader extends Resource {
-
-		@RestMethod(name="GET", path="/")
-		public String test0() {
-			return "no-version";
-		}
-
-		@RestMethod(name="GET", path="/", clientVersion="[0.0,1.0)")
-		public String test1() {
-			return "[0.0,1.0)";
-		}
-
-		@RestMethod(name="GET", path="/", clientVersion="[1.0,1.0]")
-		public String test2() {
-			return "[1.0,1.0]";
-		}
-
-		@RestMethod(name="GET", path="/", clientVersion="[1.1,2)")
-		public String test3() {
-			return "[1.1,2)";
-		}
-
-		@RestMethod(name="GET", path="/", clientVersion="2")
-		public String test4() {
-			return "2";
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestConfig.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestConfig.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestConfig.java
deleted file mode 100755
index ceafea0..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestConfig.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.ini.*;
-import org.apache.juneau.microservice.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testConfig"
-)
-@SuppressWarnings("serial")
-public class TestConfig extends Resource {
-
-	@RestMethod(name="GET", path="/")
-	public ConfigFile test1(RestRequest req) {
-		return req.getConfig();
-	}
-
-	@RestMethod(name="GET", path="/{key}/{class}")
-	public Object test2(RestRequest req, @Attr("key") String key, @Attr("class") Class<?> c) throws Exception {
-		return req.getConfig().getObject(c, key);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestContent.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestContent.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestContent.java
deleted file mode 100755
index 036fb5b..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestContent.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.RestServletContext.*;
-
-import java.util.*;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testContent",
-	properties={
-		@Property(name=REST_allowMethodParam, value="*")
-	}
-)
-public class TestContent extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Basic tests
-	//====================================================================================================
-	@RestMethod(name="POST", path="/boolean")
-	public boolean testBool(@Content boolean b) {
-		return b;
-	}
-
-	@RestMethod(name="POST", path="/Boolean")
-	public Boolean testBoolean(@Content Boolean b) {
-		return b;
-	}
-
-	@RestMethod(name="POST", path="/int")
-	public int testInt(@Content int i) {
-		return i;
-	}
-
-	@RestMethod(name="POST", path="/Integer")
-	public Integer testInteger(@Content Integer i) {
-		return i;
-	}
-
-	@RestMethod(name="POST", path="/float")
-	public float testFloat(@Content float f) {
-		return f;
-	}
-
-	@RestMethod(name="POST", path="/Float")
-	public Float testFloat2(@Content Float f) {
-		return f;
-	}
-
-	@RestMethod(name="POST", path="/Map")
-	public TreeMap<String,String> testMap(@Content TreeMap<String,String> m) {
-		return m;
-	}
-
-	@RestMethod(name="POST", path="/B")
-	public DTO2s.B testPojo1(@Content DTO2s.B b) {
-		return b;
-	}
-
-	@RestMethod(name="POST", path="/C")
-	public DTO2s.C testPojo2(@Content DTO2s.C c) {
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestDefaultContentTypes.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestDefaultContentTypes.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestDefaultContentTypes.java
deleted file mode 100755
index b17c974..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestDefaultContentTypes.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.annotation.Inherit.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testDefaultContentTypes",
-	defaultRequestHeaders={" Accept : text/s2 "," Content-Type : text/p2 "},
-	parsers={TestDefaultContentTypes.P1.class,TestDefaultContentTypes.P2.class}, serializers={TestDefaultContentTypes.S1.class,TestDefaultContentTypes.S2.class}
-)
-@SuppressWarnings("synthetic-access")
-public class TestDefaultContentTypes extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	@Consumes("text/p1")
-	public static class P1 extends DummyParser { public P1() {super("p1");}}
-
-	@Consumes("text/p2")
-	public static class P2 extends DummyParser { public P2() {super("p2");}}
-
-	@Consumes("text/p3")
-	public static class P3 extends DummyParser { public P3() {super("p3");}}
-
-	@Produces("text/s1")
-	public static class S1 extends DummySerializer { public S1() {super("s1");}}
-
-	@Produces("text/s2")
-	public static class S2 extends DummySerializer { public S2() {super("s2");}}
-
-	@Produces("text/s3")
-	public static class S3 extends DummySerializer { public S3() {super("s3");}}
-
-	/**
-	 * Test that default Accept and Content-Type headers on servlet annotation are picked up.
-	 */
-	@RestMethod(name="PUT", path="/testDefaultHeadersOnServletAnnotation")
-	public String testDefaultHeadersOnServletAnnotation(@Content String in) {
-		return in;
-	}
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on servlet annotation are picked up
-	// when @RestMethod.parsers/serializers annotations are used.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testRestMethodParsersSerializers", parsers=P3.class, serializers=S3.class)
-	public String testRestMethodParsersSerializers(@Content String in) {
-		return in;
-	}
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on servlet annotation are picked up
-	// when @RestMethod.addParsers/addSerializers annotations are used.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testRestMethodAddParsersSerializers", parsers=P3.class, parsersInherit=PARSERS, serializers=S3.class, serializersInherit=SERIALIZERS)
-	public String testRestMethodAddParsersSerializers(@Content String in) {
-		return in;
-	}
-
-	//====================================================================================================
-	// Various Accept incantations.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testAccept")
-	public String testAccept(@Content String in) {
-		return in;
-	}
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on method annotation are picked up
-	// when @RestMethod.parsers/serializers annotations are used.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testRestMethodParserSerializerAnnotations", defaultRequestHeaders={"Accept: text/s3","Content-Type: text/p3"}, parsers=P3.class, serializers=S3.class)
-	public String testRestMethodParserSerializerAnnotations(@Content String in) {
-		return in;
-	}
-
-	//====================================================================================================
-	// Test that default Accept and Content-Type headers on method annotation are picked up
-	// 	when @RestMethod.addParsers/addSerializers annotations are used.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testRestMethodAddParsersSerializersAnnotations", defaultRequestHeaders={"Accept: text/s3","Content-Type: text/p3"}, parsers=P3.class, parsersInherit=PARSERS, serializers=S3.class, serializersInherit=SERIALIZERS)
-	public String testRestMethodAddParsersSerializersAnnotations(@Content String in) {
-		return in;
-	}
-
-	public static class DummyParser extends ReaderParser {
-		private String name;
-		private DummyParser(String name) {
-			this.name = name;
-		}
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)name;
-		}
-	}
-
-	public static class DummySerializer extends WriterSerializer {
-		private String name;
-		private DummySerializer(String name) {
-			this.name = name;
-		}
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object output) throws Exception {
-			session.getWriter().write(name + "/" + output);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestErrorConditions.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestErrorConditions.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestErrorConditions.java
deleted file mode 100755
index 90311a1..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestErrorConditions.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- * Validates correct parser is used.
- */
-@RestResource(
-	path="/testErrorConditions"
-)
-@SuppressWarnings("unused")
-public class TestErrorConditions extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Test non-existent properties
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testNonExistentBeanProperties")
-	public String testNonExistentBeanProperties(@Content Test1 in) {
-		return "OK";
-	}
-
-	public static class Test1 {
-		public String f1;
-	}
-
-	//====================================================================================================
-	// Test trying to set properties to wrong data type
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testWrongDataType")
-	public String testWrongDataType(@Content Test2 in) {
-		return "OK";
-	}
-
-	public static class Test2 {
-		public int f1;
-	}
-
-	//====================================================================================================
-	// Test trying to parse into class with non-public no-arg constructor.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testParseIntoNonConstructableBean")
-	public String testParseIntoNonConstructableBean(@Content Test3a in) {
-		return "OK";
-	}
-
-	public static class Test3a {
-		public int f1;
-		private Test3a(){}
-	}
-
-	//====================================================================================================
-	// Test trying to parse into non-static inner class
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testParseIntoNonStaticInnerClass")
-	public String testParseIntoNonStaticInnerClass(@Content Test3b in) {
-		return "OK";
-	}
-
-	public class Test3b {
-		public Test3b(){}
-	}
-
-	//====================================================================================================
-	// Test trying to parse into non-public inner class
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testParseIntoNonPublicInnerClass")
-	public String testParseIntoNonPublicInnerClass(@Content Test3b1 in) {
-		return "OK";
-	}
-
-	static class Test3b1 {
-		public Test3b1(){}
-	}
-
-	//====================================================================================================
-	// Test exception thrown during bean construction.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testThrownConstructorException")
-	public String testThrownConstructorException(@Content Test3c in) {
-		return "OK";
-	}
-
-	public static class Test3c {
-		public int f1;
-		private Test3c(){}
-		public static Test3c valueOf(String s) {
-			throw new RuntimeException("Test error");
-		}
-	}
-
-	//====================================================================================================
-	// Test trying to set parameters to invalid types.
-	//====================================================================================================
-	@RestMethod(name="PUT", path="/testSetParameterToInvalidTypes/{a1}")
-	public String testSetParameterToInvalidTypes(@Param("p1") int t1, @Attr int a1, @Header("h1") int h1) {
-		return "OK";
-	}
-
-	//====================================================================================================
-	// Test SC_NOT_FOUND & SC_METHOD_NOT_ALLOWED
-	//====================================================================================================
-	@RestMethod(name="GET", path="/test404and405")
-	public String test404and405() {
-		return "OK";
-	}
-
-	//====================================================================================================
-	// Test SC_PRECONDITION_FAILED
-	//====================================================================================================
-	@RestMethod(name="GET", path="/test412", matchers=NeverMatcher.class)
-	public String test412() {
-		return "OK";
-	}
-
-	public static class NeverMatcher extends RestMatcher {
-		@Override /* RestMatcher */
-		public boolean matches(RestRequest req) {
-			return false;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestGroups.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestGroups.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestGroups.java
deleted file mode 100755
index d105918..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestGroups.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testGroups"
-)
-public class TestGroups extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	@Produces({"text/s1","text/s2"})
-	public static class SSerializer extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object output) throws Exception {
-			session.getWriter().write("text/s," + output);
-		}
-	}
-
-	@Consumes({"text/p1","text/p2"})
-	public static class PParser extends ReaderParser {
-		@SuppressWarnings("unchecked")
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return (T)IOUtils.read(session.getReader());
-		}
-	}
-
-
-	@Override /* RestServlet */
-	public SerializerGroup createSerializers(ObjectMap properties, Class<?>[] filters) throws Exception {
-		return new SerializerGroup().append(SSerializer.class).setProperties(properties).addTransforms(filters);
-	}
-
-	@Override /* RestServlet */
-	public ParserGroup createParsers(ObjectMap properties, Class<?>[] filters) throws Exception {
-		return new ParserGroup().append(PParser.class).setProperties(properties).addTransforms(filters);
-	}
-
-	//====================================================================================================
-	// Serializer defined on class.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/testSerializerDefinedOnClass")
-	public String testSerializerDefinedOnClass_get() {
-		return "GET";
-	}
-
-	@RestMethod(name="PUT", path="/testSerializerDefinedOnClass")
-	public String testSerializerDefinedOnClass_put(@Content String in) {
-		return in;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestGzip.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestGzip.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestGzip.java
deleted file mode 100755
index 787488b..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestGzip.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.plaintext.*;
-import org.apache.juneau.server.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-public class TestGzip {
-
-	//================================================================================
-	// Encoder for "myencoding" encoding
-	//================================================================================
-	public static class MyEncoder extends GzipEncoder {
-		@Override /* Encoder */
-		public String[] getCodings() {
-			return new String[]{"mycoding"};
-		}
-	}
-
-	//====================================================================================================
-	// Test with no compression enabled.
-	//====================================================================================================
-	@RestResource(
-		path="/testGzipOff",
-		serializers=PlainTextSerializer.class,
-		parsers=PlainTextParser.class
-	)
-	public static class TestGzipOff extends RestServlet {
-		private static final long serialVersionUID = 1L;
-		@RestMethod(name="GET", path="/")
-		public String test1get() {
-			return "foo";
-		}
-		@RestMethod(name="PUT", path="/")
-		public String test1put(@Content String in) {
-			return in;
-		}
-	}
-
-	//====================================================================================================
-	// Test with compression enabled.
-	//====================================================================================================
-	@RestResource(
-		path="/testGzipOn",
-		serializers=PlainTextSerializer.class,
-		parsers=PlainTextParser.class,
-		encoders=MyEncoder.class
-	)
-	public static class TestGzipOn extends RestServlet {
-		private static final long serialVersionUID = 1L;
-		@RestMethod(name="GET", path="/")
-		public String test1() {
-			return "foo";
-		}
-		@RestMethod(name="PUT", path="/")
-		public String test1put(@Content String in) {
-			return in;
-		}
-		// This method bypasses the content type and encoding from
-		// the serializers and encoders when calling getOutputStream() directly.
-		@RestMethod(name="GET", path="/direct")
-		public void direct(RestResponse res) throws Exception {
-			res.setContentType("text/direct");
-			OutputStream os = res.getOutputStream();
-			os.write("test".getBytes());
-			os.flush();
-		}
-
-		// This method bypasses the content type and encoding from
-		// the serializers and encoders when calling getWriter() directly.
-		@RestMethod(name="GET", path="/direct2")
-		public void direct2(RestResponse res) throws Exception {
-			Writer w = res.getWriter();
-			w.append("test");
-			w.flush();
-		}
-
-		// This method uses getNegotiatedWriter() which should use GZip encoding.
-		@RestMethod(name="GET", path="/direct3")
-		public void direct3(RestResponse res) throws Exception {
-			Writer w = res.getNegotiatedWriter();
-			w.append("test");
-			w.flush();
-		}
-
-		// This method overrides the set of encoders at the method level and so shouldn't use GZip encoding.
-		@RestMethod(name="GET", path="/direct4", inheritEncoders=false)
-		public void direct4(RestResponse res) throws Exception {
-			Writer w = res.getNegotiatedWriter();
-			w.append("test");
-			w.flush();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestInheritance.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestInheritance.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestInheritance.java
deleted file mode 100755
index 6bbee72..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestInheritance.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static org.apache.juneau.server.annotation.Inherit.*;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.annotation.Properties;
-import org.apache.juneau.transform.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testInheritance",
-	serializers={TestInheritance.S1.class,TestInheritance.S2.class},
-	parsers={TestInheritance.P1.class,TestInheritance.P2.class},
-	encoders={TestInheritance.E1.class,TestInheritance.E2.class},
-	transforms={TestInheritance.F1.class},
-	properties={@Property(name="p1",value="v1"), @Property(name="p2",value="v2")}
-)
-public class TestInheritance extends RestServlet {
-	private static final long serialVersionUID = 1L;
-
-	@RestResource(
-		serializers={S3.class,S4.class},
-		parsers={P3.class,P4.class},
-		encoders={E3.class,E4.class},
-		transforms={F2.class},
-		properties={@Property(name="p2",value="v2a"), @Property(name="p3",value="v3"), @Property(name="p4",value="v4")}
-	)
-	public static class Sub extends TestInheritance {
-		private static final long serialVersionUID = 1L;
-	}
-
-	//====================================================================================================
-	// Test serializer inheritance.
-	//====================================================================================================
-	@RestResource(path="/testInheritanceSerializers")
-	public static class TestSerializers extends Sub {
-		private static final long serialVersionUID = 1L;
-
-		// Should show ['text/s3','text/s4','text/s1','text/s2']
-		@RestMethod(
-			name="GET",
-			path="/test1"
-		)
-		public Reader test1(RestResponse res) {
-			return new StringReader(new ObjectList(res.getSupportedMediaTypes()).toString());
-		}
-
-		// Should show ['text/s5']
-		@RestMethod(
-			name="GET",
-			path="/test2",
-			serializers=S5.class
-		)
-		public Reader test2(RestResponse res) {
-			return new StringReader(new ObjectList(res.getSupportedMediaTypes()).toString());
-		}
-
-		// Should show ['text/s5','text/s3','text/s4','text/s1','text/s2']
-		@RestMethod(
-			name="GET",
-			path="/test3",
-			serializers=S5.class,
-			serializersInherit=SERIALIZERS
-		)
-		public Reader test3(RestResponse res) {
-			return new StringReader(new ObjectList(res.getSupportedMediaTypes()).toString());
-		}
-	}
-
-	//====================================================================================================
-	// Test parser inheritance.
-	//====================================================================================================
-	@RestResource(path="/testInheritanceParsers")
-	public static class TestParsers extends Sub {
-		private static final long serialVersionUID = 1L;
-
-		// Should show ['text/p3','text/p4','text/p1','text/p2']
-		@RestMethod(
-			name="GET",
-			path="/test1"
-		)
-		public Reader test1(RestRequest req) {
-			return new StringReader(new ObjectList(req.getSupportedMediaTypes()).toString());
-		}
-
-		// Should show ['text/p5']
-		@RestMethod(
-			name="GET",
-			path="/test2",
-			parsers=P5.class
-		)
-		public Reader test2(RestRequest req) {
-			return new StringReader(new ObjectList(req.getSupportedMediaTypes()).toString());
-		}
-
-		// Should show ['text/p5','text/p3','text/p4','text/p1','text/p2']
-		@RestMethod(
-			name="GET",
-			path="/test3",
-			parsers=P5.class,
-			parsersInherit=PARSERS
-		)
-		public Reader test3(RestRequest req) {
-			return new StringReader(new ObjectList(req.getSupportedMediaTypes()).toString());
-		}
-	}
-
-	//====================================================================================================
-	// Test encoder inheritance.
-	//====================================================================================================
-	@RestResource(path="/testInheritanceEncoders")
-	public static class TestEncoders extends Sub {
-		private static final long serialVersionUID = 1L;
-
-		// Should show ['e3','e4','e1','e2','identity']
-		@RestMethod(name="GET", path="/test")
-		public Reader test(RestResponse res) throws RestServletException {
-			return new StringReader(new ObjectList(res.getSupportedEncodings()).toString());
-		}
-	}
-
-	//====================================================================================================
-	// Test filter inheritance.
-	//====================================================================================================
-	@RestResource(path="/testInheritanceTransforms", serializers=JsonSerializer.Simple.class)
-	public static class TestTransforms extends Sub {
-		private static final long serialVersionUID = 1L;
-
-		// Should show ['F1','F2','Foo3']
-		@RestMethod(name="GET", path="/test1")
-		public Object[] test1() {
-			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
-		}
-
-		// Should show ['F1','F2','F3']
-		// Inherited serializer already has parent filters applied.
-		@RestMethod(name="GET", path="/test2", transforms=F3.class)
-		public Object[] test2() {
-			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
-		}
-
-		// Should show ['F1','F2','F3']
-		@RestMethod(name="GET", path="/test3", transforms=F3.class, serializersInherit=TRANSFORMS)
-		public Object[] test3() {
-			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
-		}
-
-		// Should show ['Foo1','Foo2','F3']
-		// Overriding serializer does not have parent filters applied.
-		@RestMethod(name="GET", path="/test4", serializers=JsonSerializer.Simple.class, transforms=F3.class)
-		public Object[] test4() {
-			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
-		}
-
-		// Should show ['F1','F2','F3']
-		// Overriding serializer does have parent filters applied.
-		@RestMethod(name="GET", path="/test5", serializers=JsonSerializer.Simple.class, transforms=F3.class, serializersInherit=TRANSFORMS)
-		public Object[] test5() {
-			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
-		}
-	}
-
-	//====================================================================================================
-	// Test properties inheritance.
-	//====================================================================================================
-	@RestResource(path="/testInheritanceProperties", serializers=JsonSerializer.Simple.class)
-	public static class TestProperties extends Sub {
-		private static final long serialVersionUID = 1L;
-
-		// Should show {p1:'v1',p2:'v2a',p3:'v3',p4:'v4'}
-		@RestMethod(name="GET", path="/test1")
-		public ObjectMap test1(@Properties ObjectMap properties) {
-			return transform(properties);
-		}
-
-		// Should show {p1:'v1',p2:'v2a',p3:'v3',p4:'v4a',p5:'v5'} when override is false.
-		// Should show {p1:'x',p2:'x',p3:'x',p4:'x',p5:'x'} when override is true.
-		@RestMethod(name="GET", path="/test2",
-			properties={@Property(name="p4",value="v4a"), @Property(name="p5", value="v5")})
-		public ObjectMap test2(@Properties ObjectMap properties, @HasParam("override") boolean override) {
-			if (override) {
-				properties.put("p1", "x");
-				properties.put("p2", "x");
-				properties.put("p3", "x");
-				properties.put("p4", "x");
-				properties.put("p5", "x");
-			}
-			return transform(properties);
-		}
-
-		private ObjectMap transform(ObjectMap properties) {
-			ObjectMap m = new ObjectMap();
-			for (Map.Entry<String,Object> e : properties.entrySet()) {
-				if (e.getKey().startsWith("p"))
-					m.put(e.getKey(), e.getValue());
-			}
-			return m;
-		}
-	}
-
-	public static class DummyParser extends ReaderParser {
-		@Override /* Parser */
-		protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-			return null;
-		}
-	}
-
-	public static class DummySerializer extends WriterSerializer {
-		@Override /* Serializer */
-		protected void doSerialize(SerializerSession session, Object o) throws Exception {
-			session.getWriter().write(o.toString());
-		}
-	}
-
-	@Consumes("text/p1")
-	public static class P1 extends DummyParser{}
-
-	@Consumes("text/p2")
-	public static class P2 extends DummyParser{}
-
-	@Consumes("text/p3")
-	public static class P3 extends DummyParser{}
-
-	@Consumes("text/p4")
-	public static class P4 extends DummyParser{}
-
-	@Consumes("text/p5")
-	public static class P5 extends DummyParser{}
-
-	@Produces("text/s1")
-	public static class S1 extends DummySerializer{}
-
-	@Produces("text/s2")
-	public static class S2 extends DummySerializer{}
-
-	@Produces("text/s3")
-	public static class S3 extends DummySerializer{}
-
-	@Produces("text/s4")
-	public static class S4 extends DummySerializer{}
-
-	@Produces("text/s5")
-	public static class S5 extends DummySerializer{}
-
-	public static class E1 extends IdentityEncoder {
-		@Override public String[] getCodings() {
-			return new String[]{"e1"};
-		}
-	}
-
-	public static class E2 extends IdentityEncoder {
-		@Override public String[] getCodings() {
-			return new String[]{"e2"};
-		}
-	}
-
-	public static class E3 extends IdentityEncoder {
-		@Override public String[] getCodings() {
-			return new String[]{"e3"};
-		}
-	}
-
-	public static class E4 extends IdentityEncoder {
-		@Override public String[] getCodings() {
-			return new String[]{"e4"};
-		}
-	}
-
-	public static class Foo1 {@Override public String toString(){return "Foo1";}}
-	public static class Foo2 {@Override public String toString(){return "Foo2";}}
-	public static class Foo3 {@Override public String toString(){return "Foo3";}}
-
-	public static class F1 extends PojoTransform<Foo1,String> {
-		@Override /* PojoTransform */
-		public String transform(Foo1 o) throws SerializeException {
-			return "F1";
-		}
-	}
-
-	public static class F2 extends PojoTransform<Foo2,String> {
-		@Override /* PojoTransform */
-		public String transform(Foo2 o) throws SerializeException {
-			return "F2";
-		}
-	}
-
-	public static class F3 extends PojoTransform<Foo3,String> {
-		@Override /* PojoTransform */
-		public String transform(Foo3 o) throws SerializeException {
-			return "F3";
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestLargePojos.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestLargePojos.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestLargePojos.java
deleted file mode 100755
index 671bf6b..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestLargePojos.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.jena.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
-	path="/testLargePojos"
-)
-public class TestLargePojos extends RestServletJenaDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Test how long it takes to serialize/parse various content types.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/")
-	public LargePojo testGet() {
-		return LargePojo.create();
-	}
-
-	@RestMethod(name="PUT", path="/")
-	@SuppressWarnings("unused")
-	public String testPut(@Content LargePojo in) {
-		return "ok";
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages.java b/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages.java
deleted file mode 100755
index 43f0e7f..0000000
--- a/com.ibm.team.juno.server.test/src/main/java/org/apache/juneau/server/TestMessages.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.transform.*;
-
-/**
- * JUnit automated testcase resource.
- * Validates that resource bundles can be defined on both parent and child classes.
- */
-@RestResource(
-	path="/testMessages",
-	messages="TestMessages",
-	transforms={
-		TestMessages.ResourceBundleTransform.class
-	}
-)
-public class TestMessages extends RestServletDefault {
-	private static final long serialVersionUID = 1L;
-
-	//====================================================================================================
-	// Return contents of resource bundle.
-	//====================================================================================================
-	@RestMethod(name="GET", path="/test")
-	public Object test(@Messages ResourceBundle nls) {
-		return nls;
-	}
-
-
-	@SuppressWarnings("serial")
-	@RestResource(
-		path="/testMessages2",
-		messages="TestMessages2"
-	)
-	public static class TestMessages2 extends TestMessages {}
-
-	public static class ResourceBundleTransform extends PojoTransform<ResourceBundle,ObjectMap> {
-		@Override /* Transform */
-		public ObjectMap transform(ResourceBundle o) throws SerializeException {
-			ObjectMap m = new ObjectMap();
-			for (String k : o.keySet())
-				m.put(k, o.getString(k));
-			return m;
-		}
-	}
-}


[15/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMap.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMap.java
deleted file mode 100644
index adef3ab..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMap.java
+++ /dev/null
@@ -1,489 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.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 class='spaced-list'>
- * 		<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 BeanTransform}.
- *
- *
- * <h6 class='topic'>POJO transforms</h6>
- * <p>
- * 	If {@link PojoTransform PojoTransforms} are defined on the class types of the properties of this bean or the bean properties themselves, the
- * 	{@link #get(Object)} and {@link #put(String, Object)} methods will automatically
- * 	transform the property value to and from the serialized form.
- *
- * @author Barry M. Caceres
- * @author James Bognar (james.bognar@salesforce.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 PojoTransform} associated with this bean property or bean property type class, then
-	 * 	you must pass in a transformed value.
-	 * For example, if the bean property type class is a {@link Date} and the bean property has the
-	 * 	{@link org.apache.juneau.transforms.DateTransform.ISO8601DT} transform associated with it through the
-	 * 	{@link BeanProperty#transform() @BeanProperty.transform()} 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 transform</jc>
-	 * 	BeanContext beanContext = <jk>new</jk> BeanContext().addTransform(DateTransform.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 class='spaced-list'>
-	 * 		<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.transform != null)
-			if (meta.transform.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 PojoTransform} associated with this bean property or bean property type class, then
-	 * 	this method will return the transformed value.
-	 * For example, if the bean property type class is a {@link Date} and the bean property has the
-	 * 	{@link org.apache.juneau.transforms.DateTransform.ISO8601DT} transform associated with it through the
-	 * 	{@link BeanProperty#transform() @BeanProperty.transform()} 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 transform</jc>
-	 * 	BeanContext beanContext = <jk>new</jk> BeanContext().addTransform(DateTransform.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.transform != null && property != null)
-			return meta.transform.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 BeanContext#BEAN_defaultParser} property
-	 * 	value on the config that created the 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() {
-		return entrySet(false);
-	}
-
-	/**
-	 * Returns all the properties associated with the bean.
-	 * @param ignoreNulls - Iterator should not return properties with null values.
-	 * @return A new set.
-	 */
-	public Set<Entry<String,Object>> entrySet(final boolean ignoreNulls) {
-		int todo = 1;  // Create a more efficient method.
-
-		// 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();
-					BeanMapEntry<T> nextEntry;
-
-					@Override /* Iterator */
-					public boolean hasNext() {
-						return nextEntry() != null;
-					}
-
-					@Override /* Iterator */
-					public Map.Entry<String, Object> next() {
-						BeanMapEntry<T> e = nextEntry();
-						nextEntry = null;
-						return e;
-					}
-
-					private BeanMapEntry<T> nextEntry() {
-						if (nextEntry == null) {
-							while (pIterator.hasNext() && nextEntry == null) {
-								BeanPropertyMeta<T> bpm = pIterator.next();
-								if ((! ignoreNulls) || bpm.get(BeanMap.this) != null)
-									nextEntry = new BeanMapEntry<T>(BeanMap.this, bpm);
-							}
-						}
-						return nextEntry;
-					}
-
-					@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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMapEntry.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMapEntry.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMapEntry.java
deleted file mode 100644
index 34aad38..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMapEntry.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.transform.*;
-
-/**
- * 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 DateTransform.DEFAULT_ISO8601DT is registered with the bean context, set a transformed value</jc>
- * 	birthDate.setValue(<js>"'1901-03-03T04:05:06-5000'"</js>);
- * </p>
- *
- * @author James Bognar (james.bognar@salesforce.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 PojoTransform} associated with this bean property or bean property type class, then
-	 * 	this method will return the transformed value.
-	 * For example, if the bean property type class is a {@link Date} and the bean property has the
-	 * 	{@link org.apache.juneau.transforms.DateTransform.ISO8601DT} transform associated with it through the
-	 * 	{@link BeanProperty#transform() @BeanProperty.transform()} 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 PojoTransform} associated with this bean property or bean property type class, then
-	 * 	you must pass in a transformed value.
-	 * For example, if the bean property type class is a {@link Date} and the bean property has the
-	 * 	{@link org.apache.juneau.transforms.DateTransform.ISO8601DT} transform associated with it through the
-	 * 	{@link BeanProperty#transform() @BeanProperty.transform()} 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMeta.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMeta.java
deleted file mode 100644
index b5f4092..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMeta.java
+++ /dev/null
@@ -1,755 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import static org.apache.juneau.Visibility.*;
-import static org.apache.juneau.internal.ClassUtils.*;
-
-import java.beans.*;
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-import java.util.Map.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.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 BeanTransform} 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 class='spaced-list'>
- * 		<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 BeanTransform}.
- *
- *
- * @param <T> The class type that this metadata applies to.
- * @author Barry M. Caceres
- * @author James Bognar (james.bognar@salesforce.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 transform associated with the target class. */
-	protected BeanTransform<? extends T> transform;
-
-	/** 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 transform Optional bean transform associated with the target class.  Can be <jk>null</jk>.
-	 */
-	protected BeanMeta(ClassMeta<T> classMeta, BeanContext ctx, org.apache.juneau.transform.BeanTransform<? extends T> transform) {
-		this.classMeta = classMeta;
-		this.ctx = ctx;
-		this.transform = transform;
-		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 = (transform != null && transform.getInterfaceClass() != null ? transform.getInterfaceClass() : c);
-
-			Class<?> stopClass = (transform != null ? transform.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 (transform == 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 && transform == 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 (transform != null) {
-
-				// Get the 'properties' attribute if specified.
-				if (transform.getProperties() != null)
-					for (String p : transform.getProperties())
-						fixedBeanProps.add(p);
-
-				if (transform.getPropertyNamer() != null)
-					propertyNamer = transform.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 (transform == null && ctx.beansRequireSomeProperties && normalProps.size() == 0)
-				return "No properties detected on bean class";
-
-			boolean sortProperties = (ctx.sortProperties || (transform != null && transform.isSortProperties())) && fixedBeanProps.isEmpty();
-
-			properties = sortProperties ? new TreeMap<String,BeanPropertyMeta<T>>() : new LinkedHashMap<String,BeanPropertyMeta<T>>();
-
-			if (transform != null && transform.getSubTypeProperty() != null) {
-				String subTypeProperty = transform.getSubTypeProperty();
-				this.subTypeIdProperty = new SubTypePropertyMeta(subTypeProperty, transform.getSubTypes(), normalProps.remove(subTypeProperty));
-				properties.put(subTypeProperty, this.subTypeIdProperty);
-			}
-
-			properties.putAll(normalProps);
-
-			// If a transform is defined, look for inclusion and exclusion lists.
-			if (transform != null) {
-
-				// Eliminated excluded properties if BeanTransform.excludeKeys is specified.
-				String[] includeKeys = transform.getProperties();
-				String[] excludeKeys = transform.getExcludeProperties();
-				if (excludeKeys != null) {
-					for (String k : excludeKeys)
-						properties.remove(k);
-
-				// Only include specified properties if BeanTransform.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 transformed 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 = transform.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMetaFiltered.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMetaFiltered.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMetaFiltered.java
deleted file mode 100644
index 09b0d0d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanMetaFiltered.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.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 (james.bognar@salesforce.com)
- */
-public final class BeanMetaFiltered<T> extends BeanMeta<T> {
-
-	private final BeanMeta<T> innerMeta;
-
-	/**
-	 * Wrapper constructor.
-	 *
-	 * @param innerMeta The untransformed bean meta of the bean property.
-	 * @param pNames The list of transformed 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 untransformed bean meta of the bean property.
-	 * @param pNames The list of transformed 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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanPropertyMeta.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanPropertyMeta.java
deleted file mode 100644
index e72ff21..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ /dev/null
@@ -1,807 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import static org.apache.juneau.Visibility.*;
-import static org.apache.juneau.internal.ClassUtils.*;
-import static org.apache.juneau.internal.CollectionUtils.*;
-import static org.apache.juneau.internal.ReflectionUtils.*;
-
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.net.URI;
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.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 transforms 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 (james.bognar@salesforce.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 transformed class type of the bean property.
-	private String[] properties;
-	private PojoTransform transform;      // PojoTransform 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 PojoTransform} associated with it, this
-	 * 	method returns the transformed 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 = (transform != null ? transform.getTransformedClassMeta() : rawTypeMeta.getTransformedClassMeta());
-		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 class='spaced-list'>
-	 * 	<li>Property class type is {@link URL} or {@link URI}.
-	 * 	<li>Property class type is annotated with {@link org.apache.juneau.annotation.URI}.
-	 * 	<li>Property getter, setter, or field is annotated with {@link org.apache.juneau.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(org.apache.juneau.annotation.URI.class));
-			if (p != null) {
-				transform = getPropertyPojoTransform(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(org.apache.juneau.annotation.URI.class));
-			if (p != null) {
-				if (transform == null)
-					transform = getPropertyPojoTransform(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(org.apache.juneau.annotation.URI.class));
-			if (p != null) {
-			if (transform == null)
-				transform = getPropertyPojoTransform(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 PojoTransform getPropertyPojoTransform(BeanProperty p) throws Exception {
-		Class<? extends PojoTransform> c = p.transform();
-		if (c == PojoTransform.NULL.class)
-			return null;
-		try {
-			PojoTransform f = c.newInstance();
-			f.setBeanContext(this.beanMeta.ctx);
-			return f;
-		} catch (Exception e) {
-			throw new BeanRuntimeException(this.beanMeta.c, "Could not instantiate PojoTransform ''{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 transformed 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 = transform(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(String, 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 = normalize(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 (transform != null && value != null && isParentClass(transform.getTransformedClass(), value.getClass())) {
-						value = transform.normalize(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 transform(Object o) throws SerializeException {
-		// First use transform defined via @BeanProperty.
-		if (transform != null)
-			return transform.transform(o);
-		if (o == null)
-			return null;
-		// Otherwise, look it up via bean context.
-		if (rawTypeMeta.hasChildPojoTransforms()) {
-			Class c = o.getClass();
-			ClassMeta<?> cm = rawTypeMeta.innerClass == c ? rawTypeMeta : beanMeta.ctx.getClassMeta(c);
-			PojoTransform f = cm.getPojoTransform();
-			if (f != null)
-				return f.transform(o);
-		}
-		return o;
-	}
-
-	private Object normalize(Object o) throws ParseException {
-		if (transform != null)
-			return transform.normalize(o, rawTypeMeta);
-		if (o == null)
-			return null;
-		if (rawTypeMeta.hasChildPojoTransforms()) {
-			Class c = o.getClass();
-			ClassMeta<?> cm = rawTypeMeta.innerClass == c ? rawTypeMeta : beanMeta.ctx.getClassMeta(c);
-			PojoTransform f = cm.getPojoTransform();
-			if (f != null)
-				return f.normalize(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+"]";
-	}
-}


[16/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanContext.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanContext.java
deleted file mode 100644
index 3b2f51c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/BeanContext.java
+++ /dev/null
@@ -1,2069 +0,0 @@
-/***************************************************************************************************************************
- * 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;
-
-import static org.apache.juneau.Visibility.*;
-import static org.apache.juneau.internal.ClassUtils.*;
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
-import java.beans.*;
-import java.io.*;
-import java.lang.reflect.*;
-import java.text.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.transform.Transform;
-
-/**
- * Core class of the Juneau architecture.
- * <p>
- * 	This class servers multiple purposes:
- * 	<ul class='spaced-list'>
- * 		<li>Provides the ability to wrap beans inside {@link Map} interfaces.
- * 		<li>Serves as a repository for metadata on POJOs, such as associated {@link Transform transforms}, {@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 contexts are created by {@link ContextFactory context factories}.
- * 	The settings on a bean context are fixed at the point they are created by the factory.
- *
- *
- * <h5 class='topic'>BeanContext settings</h5>
- * 	<code>BeanContexts</code> have several settings that can be used to tweak behavior on how beans are handled.
- * 	These are denoted as the static <jsf>BEAN_*</jsf> fields on this class.
- * <p>
- * 	Some settings (e.g. {@link BeanContext#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 BeanContext#BEAN_beanFieldVisibility}) are used to determine what kinds of properties are detected on beans.
- * <p>
- * 	Some settings (e.g. {@link BeanContext#BEAN_beanMapPutReturnsOldValue}) change the runtime behavior of bean maps.
- * <p>
- * 	Settings are specified using the {@link ContextFactory#setProperty(String, Object)} method and related convenience methods.
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<jc>// Construct a context from scratch.</jc>
- * 	BeanContext beanContext = ContextFactory.<jsm>create</jsm>()
- * 		.setProperty(BeanContext.<jsf>BEAN_beansRequireDefaultConstructor</jsf>, <jk>true</jk>)
- * 		.addNotBeanClasses(Foo.<jk>class</jk>)
- * 		.getBeanContext();
- *
- * 	<jc>// Clone an existing context factory.</jc>
- * 	BeanContext beanContext = ContextFactory.<jsm>create</jsm>(otherConfig)
- * 		.setProperty(BeanContext.<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'>Transforms</h5>
- * <p>
- * 	{@link Transform Transforms} are used to tailor how beans and non-beans are handled.<br>
- * 	There are two subclasses of transforms:
- * 	<ol class='spaced-list'>
- * 		<li>{@link BeanTransform} - 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 PojoTransform} - Allows you to convert objects to serializable forms.
- * 	</ol>
- * <p>
- * 	See {@link org.apache.juneau.transform} 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 (james.bognar@salesforce.com)
- */
-@SuppressWarnings({"unchecked","rawtypes"})
-public class BeanContext extends Context {
-
-
-	/**
-	 * 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";
-
-	/**
-	 * Sort bean properties in alphabetical order ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * When <jk>true</jk>, all bean properties will be serialized and access in alphabetical order.
-	 * Otherwise, the natural order of the bean properties is used which is dependent on the
-	 * 	JVM vendor.
-	 * On IBM JVMs, the bean properties are ordered based on their ordering in the Java file.
-	 * On Oracle JVMs, the bean properties are not ordered (which follows the offical JVM specs).
-	 * <p>
-	 * This property is disabled by default so that IBM JVM users don't have to use {@link Bean @Bean} annotations
-	 * to force bean properties to be in a particular order and can just alter the order of the fields/methods
-	 * in the Java file.
-	 */
-	public static final String BEAN_sortProperties = "BeanContext.sortProperties";
-
-	/**
-	 * List of packages whose classes should not be considered beans (<code>Set&lt;String&gt;</code>).
-	 * <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>
-	 * <p>
-	 * 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_notBeanPackages = "BeanContext.notBeanPackages.set";
-
-	/**
-	 * Add to the list of packages whose classes should not be considered beans.
-	 */
-	public static final String BEAN_notBeanPackages_add = "BeanContext.notBeanPackages.set.add";
-
-	/**
-	 * Remove from the list of packages whose classes should not be considered beans.
-	 */
-	public static final String BEAN_notBeanPackages_remove = "BeanContext.notBeanPackages.set.remove";
-
-	/**
-	 * An explicit list of Java classes to be excluded from consideration as being beans (<code>Set&lt;Class&gt;</code>).
-	 * <p>
-	 * Not-bean classes are typically converted to <code>Strings</code> during serialization even if they
-	 * appear to be bean-like.
-	 */
-	public static final String BEAN_notBeanClasses = "BeanContext.notBeanClasses.set";
-
-	/**
-	 * Add to the list of packages whose classes should not be considered beans.
-	 */
-	public static final String BEAN_notBeanClasses_add = "BeanContext.notBeanClasses.set.add";
-
-	/**
-	 * Remove from the list of packages whose classes should not be considered beans.
-	 */
-	public static final String BEAN_notBeanClasses_remove = "BeanContext.notBeanClasses.set.remove";
-
-	/**
-	 * List of transform classes on the bean context (<code>List&lt;Class&gt;</code>).
-	 * <p>
-	 * There are two category of classes that can be passed in through this method:
-	 * <ul class='spaced-list'>
-	 * 	<li>Subclasses of {@link PojoTransform} and {@link BeanTransform}.
-	 * 	<li>Any other class.
-	 * </ul>
-	 * <p>
-	 * When <code>Transform</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>Transform</code> classes are specified, they are wrapped inside {@link BeanTransform BeanTransforms}.
-	 * 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>
-	 */
-	public static final String BEAN_transforms = "BeanContext.transforms.list";
-
-	/**
-	 * Add to the list of transform classes.
-	 */
-	public static final String BEAN_transforms_add = "BeanContext.transforms.list.add";
-
-	/**
-	 * Remove from the list of transform classes.
-	 */
-	public static final String BEAN_transforms_remove = "BeanContext.transforms.list.remove";
-
-	/**
-	 * Specifies implementation classes for an interface or abstract class (<code>Map&lt;Class,Class&gt;</code>).
-	 * <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).
-	 */
-	public static final String BEAN_implClasses = "BeanContext.implClasses.map";
-
-	/**
-	 * Adds a new map entry to the {@link #BEAN_implClasses} property.
-	 */
-	public static final String BEAN_implClasses_put = "BeanContext.implClasses.map.put";
-
-	/**
-	 * Specifies the default parser to use when converting <code>Strings</code> to POJOs in the {@link BeanContext#convertToType(Object, Class)} method (<code>Class</code>).
-	 */
-	public static final String BEAN_defaultParser = "BeanContext.defaultParser";
-
-	/*
-	 * 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
-	};
-
-
-	static final void loadDefaults(ContextFactory config) {
-		config.setProperty(BEAN_notBeanPackages, DEFAULT_NOTBEAN_PACKAGES);
-		config.setProperty(BEAN_notBeanClasses, DEFAULT_NOTBEAN_CLASSES);
-	}
-
-
-	// This map is important!
-	// We may have many ConfigFactory objects that have identical BeanContext properties.
-	// This map ensures that if the BeanContext properties in the ConfigFactory are the same,
-	// then we reuse the same Class->ClassMeta cache map.
-	// This significantly reduces the number of times we need to construct ClassMeta objects which can be expensive.
-	private static final ConcurrentHashMap<ContextFactory.PropertyMap,Map<Class,ClassMeta>> cmCacheCache = new ConcurrentHashMap<ContextFactory.PropertyMap,Map<Class,ClassMeta>>();
-
-	/** Default config.  All default settings. */
-	public static final BeanContext DEFAULT = ContextFactory.create().getContext(BeanContext.class);
-
-	/** Default config.  All default settings except sort bean properties. */
-	public static final BeanContext DEFAULT_SORTED = ContextFactory.create().setProperty(BEAN_sortProperties, true).getContext(BeanContext.class);
-
-	final boolean
-		beansRequireDefaultConstructor,
-		beansRequireSerializable,
-		beansRequireSettersForGetters,
-		beansRequireSomeProperties,
-		beanMapPutReturnsOldValue,
-		useInterfaceProxies,
-		ignoreUnknownBeanProperties,
-		ignoreUnknownNullBeanProperties,
-		ignorePropertiesWithoutSetters,
-		ignoreInvocationExceptionsOnGetters,
-		ignoreInvocationExceptionsOnSetters,
-		useJavaBeanIntrospector,
-		sortProperties;
-
-	final Visibility
-		beanConstructorVisibility,
-		beanClassVisibility,
-		beanMethodVisibility,
-		beanFieldVisibility;
-
-	final Class<?>[] notBeanClasses;
-	final String[] notBeanPackageNames, notBeanPackagePrefixes;
-	final BeanTransform<?>[] beanTransforms;
-	final PojoTransform<?,?>[] pojoTransforms;
-	final Map<Class<?>,Class<?>> implClasses;
-	final Class<?>[] implKeyClasses, implValueClasses;
-	final ClassLoader classLoader;
-
-	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 ClassMeta<Class> cmClass;  // Reusable ClassMeta that represents general Classes.
-
-	// Optional default parser set by setDefaultParser().
-	final ReaderParser defaultParser;
-
-	// Holds pending ClassMetas (created, but not yet initialized).
-	final Deque<ClassMeta> pendingClassMetas = new LinkedList<ClassMeta>();
-
-	final int hashCode;
-
-	/**
-	 * Constructor.
-	 * <p>
-	 * Typically only called from {@link ContextFactory#getContext(Class)} or {@link ContextFactory#getBeanContext()}.
-	 *
-	 * @param cf The factory that created this context.
-	 */
-	public BeanContext(ContextFactory cf) {
-		super(cf);
-
-		ContextFactory.PropertyMap pm = cf.getPropertyMap("BeanContext");
-		classLoader = cf.classLoader;
-		defaultParser = cf.defaultParser;
-		hashCode = pm.hashCode;
-
-		beansRequireDefaultConstructor = pm.get(BEAN_beansRequireDefaultConstructor, boolean.class, false);
-		beansRequireSerializable = pm.get(BEAN_beansRequireSerializable, boolean.class, false);
-		beansRequireSettersForGetters = pm.get(BEAN_beansRequireSettersForGetters, boolean.class, false);
-		beansRequireSomeProperties = pm.get(BEAN_beansRequireSomeProperties, boolean.class, true);
-		beanMapPutReturnsOldValue = pm.get(BEAN_beanMapPutReturnsOldValue, boolean.class, false);
-		useInterfaceProxies = pm.get(BEAN_useInterfaceProxies, boolean.class, true);
-		ignoreUnknownBeanProperties = pm.get(BEAN_ignoreUnknownBeanProperties, boolean.class, false);
-		ignoreUnknownNullBeanProperties = pm.get(BEAN_ignoreUnknownNullBeanProperties, boolean.class, true);
-		ignorePropertiesWithoutSetters = pm.get(BEAN_ignorePropertiesWithoutSetters, boolean.class, true);
-		ignoreInvocationExceptionsOnGetters = pm.get(BEAN_ignoreInvocationExceptionsOnGetters, boolean.class, false);
-		ignoreInvocationExceptionsOnSetters = pm.get(BEAN_ignoreInvocationExceptionsOnSetters, boolean.class, false);
-		useJavaBeanIntrospector = pm.get(BEAN_useJavaBeanIntrospector, boolean.class, false);
-		sortProperties = pm.get(BEAN_sortProperties, boolean.class, false);
-
-		beanConstructorVisibility = pm.get(BEAN_beanConstructorVisibility, Visibility.class, PUBLIC);
-		beanClassVisibility = pm.get(BEAN_beanClassVisibility, Visibility.class, PUBLIC);
-		beanMethodVisibility = pm.get(BEAN_methodVisibility, Visibility.class, PUBLIC);
-		beanFieldVisibility = pm.get(BEAN_beanFieldVisibility, Visibility.class, PUBLIC);
-
-		notBeanClasses = pm.get(BEAN_notBeanClasses, Class[].class, new Class[0]);
-
-		List<String> l1 = new LinkedList<String>();
-		List<String> l2 = new LinkedList<String>();
-		for (String s : pm.get(BEAN_notBeanPackages, String[].class, new String[0])) {
-			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()]);
-
-		LinkedList<BeanTransform<?>> lbf = new LinkedList<BeanTransform<?>>();
-		LinkedList<PojoTransform<?,?>> lpf = new LinkedList<PojoTransform<?,?>>();
- 		for (Class<?> c : pm.get(BEAN_transforms, Class[].class, new Class[0])) {
-			if (isParentClass(Transform.class, c)) {
-				try {
-					if (isParentClass(BeanTransform.class, c)) {
-						BeanTransform<?> f = (BeanTransform<?>)c.newInstance();
-						//f.setBeanContext(this);
-						lbf.add(f);
-					} else if (isParentClass(PojoTransform.class, c)) {
-						PojoTransform<?,?> f = (PojoTransform<?,?>)c.newInstance();
-						f.setBeanContext(this);
-						lpf.add(f);
-					}
-				} catch (Exception e) {
-					throw new RuntimeException(e);
-				}
-			} else {
- 				if (! c.getClass().isInterface()) {
-					List<SurrogateTransform<?,?>> l = SurrogateTransform.findTransforms(c);
-					if (! l.isEmpty()) {
-						for (SurrogateTransform<?,?> f : l) {
-							f.setBeanContext(this);
-							lpf.add(f);
-						}
-						continue;
-					}
-				}
-				BeanTransform<?> f = new InterfaceBeanTransform(c);
-				f.setBeanContext(this);
-				lbf.add(f);
-			}
-		}
- 		beanTransforms = lbf.toArray(new BeanTransform[0]);
- 		pojoTransforms = lpf.toArray(new PojoTransform[0]);
-
- 		implClasses = new TreeMap<Class<?>,Class<?>>(new ClassComparator());
- 		Map<Class,Class> m = pm.getMap(BEAN_implClasses, Class.class, Class.class, null);
- 		if (m != null)
-	 		for (Map.Entry<Class,Class> e : m.entrySet())
-	 			implClasses.put(e.getKey(), e.getValue());
-		implKeyClasses = implClasses.keySet().toArray(new Class[0]);
-		implValueClasses = implClasses.values().toArray(new Class[0]);
-
-		if (! cmCacheCache.containsKey(pm)) {
-			ConcurrentHashMap<Class,ClassMeta> cm = new ConcurrentHashMap<Class,ClassMeta>();
-			cm.put(String.class, new ClassMeta(String.class, this));
-			cm.put(Object.class, new ClassMeta(Object.class, this));
-			cmCacheCache.putIfAbsent(pm, cm);
-		}
-		this.cmCache = cmCacheCache.get(pm);
-		this.cmString = cmCache.get(String.class);
-		this.cmObject = cmCache.get(Object.class);
-		this.cmClass = cmCache.get(Class.class);
-	}
-
-	/**
-	 * 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 BeanContext#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.beanTransform != null && cm.beanTransform.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 transforms 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().getInnerClass(), cm2.getValueType().getInnerClass());
-			return (ClassMeta<T>)cm2;
-		}
-		if (cm.isCollection()) {
-			ClassMeta<Collection> cm2 = (ClassMeta<Collection>)cm;
-			cm2 = getCollectionClassMeta(cm2.getInnerClass(), cm2.getElementType().getInnerClass());
-			return (ClassMeta<T>)cm2;
-		}
-		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 transform, we still want to cache it so that
-		// we can cache something like byte[] with ByteArrayBase64Transform.
-		if (c.isArray() && findPojoTransform(c) == null)
-			return new ClassMeta(c, this);
-
-		// This can happen if we have transforms defined against String or Object.
-		if (cmCache == null)
-			return null;
-
-		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 class='spaced-list'>
-	 * 		<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><js>"java.lang.String"</js>
-	 * 	<li><js>"com.ibm.sample.MyBean[]"</js>
-	 * 	<li><js>"java.util.HashMap<java.lang.String,java.lang.Integer>"</js>
-	 * 	<li><js>"[Ljava.lang.String;"</js> (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 PojoTransform} associated with the specified class, or <jk>null</jk> if there is no
-	 * pojo transform associated with the class.
-	 *
-	 * @param <T> The class associated with the transform.
-	 * @param c The class associated with the transform.
-	 * @return The transform associated with the class, or null if there is no association.
-	 */
-	protected <T> PojoTransform findPojoTransform(Class<T> c) {
-		// Note:  On first
-		if (c != null)
-			for (PojoTransform f : pojoTransforms)
-				if (isParentClass(f.forClass(), c))
-					return f;
-		return null;
-	}
-
-	/**
-	 * Checks whether a class has a {@link PojoTransform} 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 PojoTransform} associated with it.
-	 */
-	protected boolean hasChildPojoTransforms(Class<?> c) {
-		if (c != null)
-			for (PojoTransform f : pojoTransforms)
-				if (isParentClass(c, f.forClass()))
-					return true;
-		return false;
-	}
-
-	/**
-	 * Returns the {@link BeanTransform} associated with the specified class, or <jk>null</jk> if there is no
-	 * bean transform associated with the class.
-	 *
-	 * @param <T> The class associated with the transform.
-	 * @param c The class associated with the transform.
-	 * @return The transform associated with the class, or null if there is no association.
-	 */
-	protected <T> BeanTransform findBeanTransform(Class<T> c) {
-		if (c != null)
-			for (BeanTransform f : beanTransforms)
-				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;
-	}
-
-	/**
-	 * Returns a reusable {@link ClassMeta} representation for the class <code>Class</code>.
-	 * <p>
-	 * This <code>ClassMeta</code> is often used to represent key types in maps.
-	 * <p>
-	 * This method is identical to calling <code>getClassMeta(Class.<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<Class> _class() {
-		return cmClass;
-	}
-
-	/**
-	 * 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 PojoTransform}.
-	 * 			</td>
-	 * 			<td>
-	 * 				A value whose class matches the transformed type of that registered {@link PojoTransform}.
-	 * 			</td>
-	 * 			<td>&nbsp;</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>
-	 * 				A class that is the transformed type of a registered {@link PojoTransform}.
-	 * 			</td>
-	 * 			<td>
-	 * 				A value whose class matches the normal type of that registered {@link PojoTransform}.
-	 * 			</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 (tc == Class.class)
-				return (T)(classLoader.loadClass(value.toString()));
-
-			if (type.getPojoTransform() != null) {
-				PojoTransform f = type.getPojoTransform();
-				Class<?> nc = f.getNormalClass(), fc = f.getTransformedClass();
-				if (isParentClass(nc, tc) && isParentClass(fc, value.getClass()))
-					return (T)f.normalize(value, type);
-			}
-
-			ClassMeta<?> vt = getClassMetaForObject(value);
-			if (vt.getPojoTransform() != null) {
-				PojoTransform f = vt.getPojoTransform();
-				Class<?> nc = f.getNormalClass(), fc = f.getTransformedClass();
-				if (isParentClass(nc, vt.getInnerClass()) && isParentClass(fc, tc))
-					return (T)f.transform(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());
-					if (tc == Byte.class)
-						return (T)Byte.valueOf(n.byteValue());
-					if (tc == AtomicInteger.class)
-						return (T)new AtomicInteger(n.intValue());
-					if (tc == AtomicLong.class)
-						return (T)new AtomicLong(n.intValue());
-				} 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 (tc == AtomicInteger.class)
-						return (T)new AtomicInteger(Integer.valueOf(n));
-					if (tc == AtomicLong.class)
-						return (T)new AtomicLong(Long.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 (vt.isCollection())
-					return (T)toArray(type, (Collection)value);
-				else if (vt.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.getClass() != Class.class)
-									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(), type, 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(), type, null);
-					return (T)l;
-				} catch (InvalidDataConversionException e) {
-					throw e;
-				} catch (Exception e) {
-					throw new InvalidDataConversionException(value.getClass(), type, e);
-				}
-			}
-
-			if (type.isEnum()) {
-				if (type.canCreateNewInstanceFromString(outer))
-					return type.newInstanceFromString(outer, value.toString());
-				return (T)Enum.valueOf((Class<? extends Enum>)tc, value.toString());
-			}
-
-			if (type.isString()) {
-				if (vt.isArray() || vt.isMap() || vt.isCollection() || vt.isBean()) {
-					if (JsonSerializer.DEFAULT_LAX != null)
-						return (T)JsonSerializer.DEFAULT_LAX.serialize(value);
-				} else if (vt.isClass()) {
-					return (T)ClassUtils.getReadableClassName((Class<?>)value);
-				}
-				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.canCreateNewInstanceFromNumber(outer) && value instanceof Number)
-				return type.newInstanceFromNumber(outer, (Number)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, e);
-		}
-
-		throw new InvalidDataConversionException(value, type, 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;
-	}
-
-
-	/**
-	 * Returns the classloader associated with this bean context.
-	 * @return The classloader associated with this bean context.
-	 */
-	public ClassLoader getClassLoader() {
-		return classLoader;
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		return hashCode;
-	}
-
-	@Override /* Object */
-	public boolean equals(Object o) {
-		if (o instanceof BeanContext)
-			return ((BeanContext)o).cmCache == cmCache;
-		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("beanConstructorVisibility", beanConstructorVisibility)
-			.append("beanClassVisibility", beanClassVisibility)
-			.append("beanMethodVisibility", beanMethodVisibility)
-			.append("beanFieldVisibility", beanFieldVisibility)
-			.append("useInterfaceProxies", useInterfaceProxies)
-			.append("ignoreUnknownBeanProperties", ignoreUnknownBeanProperties)
-			.append("ignoreUnknownNullBeanProperties", ignoreUnknownNullBeanProperties)
-			.append("ignorePropertiesWithoutSetters", ignorePropertiesWithoutSetters)
-			.append("ignoreInvocationExceptionsOnGetters", ignoreInvocationExceptionsOnGetters)
-			.append("ignoreInvocationExceptionsOnSetters", ignoreInvocationExceptionsOnSetters)
-			.append("useJavaBeanIntrospector", useJavaBeanIntrospector)
-			.append("beanTransforms", beanTransforms)
-			.append("pojoTransforms", pojoTransforms)
-			.append("notBeanClasses", notBeanClasses)
-			.append("implClasses", implClasses)
-			.append("sortProperties", sortProperties);
-		try {
-			return m.toString(JsonSerializer.DEFAULT_LAX_READABLE);
-		} catch (SerializeException e) {
-			return e.getLocalizedMessage();
-		}
-	}
-}


[04/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H2.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H2.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H2.java
deleted file mode 100644
index 12e37fd..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H2.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class H2 extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H3.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H3.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H3.java
deleted file mode 100644
index 469c858..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H3.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class H3 extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H4.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H4.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H4.java
deleted file mode 100644
index 8ec3bdd..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H4.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class H4 extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H5.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H5.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H5.java
deleted file mode 100644
index 6198c6d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H5.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class H5 extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H6.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H6.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H6.java
deleted file mode 100644
index 91de70b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H6.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class H6 extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Head.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Head.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Head.java
deleted file mode 100644
index 235dd01..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Head.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Head extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Header.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Header.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Header.java
deleted file mode 100644
index 04eec97..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Header.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Header extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Hgroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Hgroup.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Hgroup.java
deleted file mode 100644
index 84529fb..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Hgroup.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Hgroup extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Hr.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Hr.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Hr.java
deleted file mode 100644
index 0e5ff18..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Hr.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Hr extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Html.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Html.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Html.java
deleted file mode 100644
index a7b4c96..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Html.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Html extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/HtmlElement.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/HtmlElement.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/HtmlElement.java
deleted file mode 100644
index 6dfb5ae..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/HtmlElement.java
+++ /dev/null
@@ -1,1300 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * Superclass for all HTML elements.
- * <p>
- * These are beans that when serialized using {@link HtmlSerializer} generate
- * valid HTML5 elements.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@org.apache.juneau.html.annotation.Html(asXml=true)
-@SuppressWarnings("hiding")
-public abstract class HtmlElement {
-
-	/**
-	 * The children of this element.
-	 */
-	@Xml(format=MIXED)
-	public List<Object> children;
-
-	/**
-	 * Adds a child element to this element;
- 	 *
-	 * @param child
-	 * @return This object (for method chaining).
-	 */
-	public HtmlElement child(Object child) {
-		if (children == null)
-			children = new LinkedList<Object>();
-		children.add(child);
-		return this;
-	}
-
-	/**
-	 * <code>accesskey</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.keylabellist'>List of key labels</a>.
-	 * A key label or list of key labels with which to associate the element; each key label represents a keyboard shortcut which UAs can use to activate the element or give focus to the element.
-	 * An <a href='https://www.w3.org/TR/html-markup/datatypes.html#data-ordered-tokens'>ordered set of unique space-separated tokens</a>, each of which must be exactly one Unicode code point in length.
-	 */
-	@Xml(format=ATTR)
-	public String accesskey;
-
-	/**
-	 * <code>accesskey</code> setter.
-	 * @param accesskey - The new value.
-	 * @return This object (for method chaining).
-	 * @see #accesskey
-	 */
-	public HtmlElement accesskey(String accesskey) {
-		this.accesskey = accesskey;
-		return this;
-	}
-
-	/**
-	 * <code>class</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.tokens'>Set of space-separated tokens</a>.
-	 * A name of a classification, or list of names of classifications, to which the element belongs.
-	 */
-	@Xml(format=ATTR)
-	@BeanProperty(name="class")
-	public String _class;
-
-	/**
-	 * <code>class</code> setter.
-	 * @param _class - The new value.
-	 * @return This object (for method chaining).
-	 * @see #_class
-	 */
-	public HtmlElement _class(String _class) {
-		this._class = _class;
-		return this;
-	}
-
-	/**
-	 * <code>contenteditable</code> - <js>"true"</js> or <js>"false"</js> or <js>""</js> (empty string) or <a href='https://www.w3.org/TR/html-markup/syntax.html#syntax-attr-empty'>empty</a>.
-	 * Specifies whether the contents of the element are editable.
-	 */
-	@Xml(format=ATTR)
-	public String contenteditable;
-
-	/**
-	 * <code>contenteditable</code> setter.
-	 * @param contenteditable - The new value.
-	 * @return This object (for method chaining).
-	 * @see #contenteditable
-	 */
-	public HtmlElement contenteditable(String contenteditable) {
-		this.contenteditable = contenteditable;
-		return this;
-	}
-
-	/**
-	 * <code>contextmenu</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.idref'>ID reference</a>.
-	 * The value of the id attribute on the menu with which to associate the element as a context menu.
-	 */
-	@Xml(format=ATTR)
-	public String contextmenu;
-
-	/**
-	 * <code>contextmenu</code> setter.
-	 * @param contextmenu - The new value.
-	 * @return This object (for method chaining).
-	 * @see #contextmenu
-	 */
-	public HtmlElement contextmenu(String contextmenu) {
-		this.contextmenu = contextmenu;
-		return this;
-	}
-
-	/**
-	 * <code>dir</code> - <js>ltr"</js> or <js>"rtl"</js> or <js>"auto"</js>.
-	 * Specifies the element\u2019s text directionality.
-	 */
-	@Xml(format=ATTR)
-	public String dir;
-
-	/**
-	 * <code>dir</code> setter.
-	 * @param dir - The new value.
-	 * @return This object (for method chaining).
-	 * @see #dir
-	 */
-	public HtmlElement dir(String dir) {
-		this.dir = dir;
-		return this;
-	}
-
-	/**
-	 * <code>draggable</code> - <js>"true"</js> or <js>"false"</js>.
-	 * Specifies whether the element is draggable.
-	 */
-	@Xml(format=ATTR)
-	public String draggable;
-
-	/**
-	 * <code>draggable</code> setter.
-	 * @param draggable - The new value.
-	 * @return This object (for method chaining).
-	 * @see #draggable
-	 */
-	public HtmlElement draggable(String draggable) {
-		this.draggable = draggable;
-		return this;
-	}
-
-	/**
-	 * <code>dropzone</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.dropzonevalue'>Dropzone value</a>.
-	 * Specifies what types of content can be dropped on the element, and instructs the UA about which actions to take with content when it is dropped on the element.
-	 *
-	 * An <a href='https://www.w3.org/TR/html-markup/datatypes.html#data-unordered-tokens'>unordered set of unique space-separated tokens</a>, each of which is a <a href='https://www.w3.org/TR/html-markup/terminology.html#case-insensitive'>case-insensitive match</a> for one of the following:
-	 * <ul>
-	 * 	<li><js>"copy"</js> - Indicates that dropping an accepted item on the element will result in a copy of the dragged data.
-	 * 	<li><js>"move"</js> - Indicates that dropping an accepted item on the element will result in the dragged data being moved to the new location.
-	 * 	<li><js>"link"</js> - Indicates that dropping an accepted item on the element will result in a link to the original data.
-	 * 	<li>Any <a href='https://www.w3.org/TR/html-markup/datatypes.html#data-string'>string</a> with three characters or more, beginning with the literal string <js>"string:"</js>.
-	 * 		Indicates that Plain Unicode string items, of the type indicated by the part of of the keyword after the <js>"string:"</js> string, can be dropped on this element.
-	 * 	<li>Any <a href='https://www.w3.org/TR/html-markup/datatypes.html#data-string'>string</a> with three characters or more, beginning with the literal string <js>"file:"</js>.
-	 * 		Indicates that File items, of the type indicated by the part of of the keyword after the <js>"file:"</js> string, can be dropped on this element.
-	 * </ul>
-	 *
-	 * The value must not have more than one of the three tokens <js>"copy"</js>, <js>"move"</js>, or <js>"link"</js>. If none are specified, the element represents a copy dropzone.
-	 */
-	@Xml(format=ATTR)
-	public String dropzone;
-
-	/**
-	 * <code>dropzone</code> setter.
-	 * @param dropzone - The new value.
-	 * @return This object (for method chaining).
-	 * @see #dropzone
-	 */
-	public HtmlElement dropzone(String dropzone) {
-		this.dropzone = dropzone;
-		return this;
-	}
-
-	/**
-	 * <code>hidden</code> - <js>"hidden"</js> or <js>""</js> (empty string) or <a href='https://www.w3.org/TR/html-markup/syntax.html#syntax-attr-empty'>empty</a>.
-	 * Specifies that the element represents an element that is not yet, or is no longer, relevant.
-	 */
-	@Xml(format=ATTR)
-	public String hidden;
-
-	/**
-	 * <code>hidden</code> setter.
-	 * @param hidden - The new value.
-	 * @return This object (for method chaining).
-	 * @see #hidden
-	 */
-	public HtmlElement hidden(String hidden) {
-		this.hidden = hidden;
-		return this;
-	}
-
-	/**
-	 * <code>id</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.id'>ID</a>.
-	 * A unique identifier for the element.
-	 * There must not be multiple elements in a document that have the same id value.
-	 *
-	 * Value:  Any <a href='https://www.w3.org/TR/html-markup/datatypes.html#data-string'>string</a>, with the following restrictions:
-	 * <ul>
-	 * 	<li>Must be at least one character long.
-	 * 	<li>Must not contain any <a href='https://www.w3.org/TR/html-markup/terminology.html#space'>space characters</a>.
-	 * </ul>
-	 */
-	@Xml(format=ATTR)
-	public String id;
-
-	/**
-	 * <code>id</code> setter.
-	 * @param id - The new value.
-	 * @return This object (for method chaining).
-	 * @see #id
-	 */
-	public HtmlElement id(String id) {
-		this.id = id;
-		return this;
-	}
-
-	/**
-	 * <code>lang</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.langcode'>Language tag</a>.
-	 * Specifies the primary language for the <a href='https://www.w3.org/TR/html-markup/syntax.html#contents'>contents</a> of the element and for any of the element\u2019s attributes that contain text.
-	 * Value:  A valid language tag as defined in <a href='https://www.w3.org/TR/html-markup/references.html#refsBCP47'>[BCP 47]</a>.
-	 */
-	@Xml(format=ATTR)
-	public String lang;
-
-	/**
-	 * <code>lang</code> setter.
-	 * @param lang - The new value.
-	 * @return This object (for method chaining).
-	 * @see #lang
-	 */
-	public HtmlElement lang(String lang) {
-		this.lang = lang;
-		return this;
-	}
-
-	/**
-	 * <code>spellcheck</code> - <js>"true"</js> or <js>"false"</js> or <js>""</js> (empty string) or <a href='https://www.w3.org/TR/html-markup/syntax.html#syntax-attr-empty'>empty</a>.
-	 * pecifies whether the element represents an element whose <a href='https://www.w3.org/TR/html-markup/syntax.html#contents'>contents</a> are subject to spell checking and grammar checking.
-	 */
-	@Xml(format=ATTR)
-	public String spellcheck;
-
-	/**
-	 * <code>spellcheck</code> setter.
-	 * @param spellcheck - The new value.
-	 * @return This object (for method chaining).
-	 * @see #spellcheck
-	 */
-	public HtmlElement spellcheck(String spellcheck) {
-		this.spellcheck = spellcheck;
-		return this;
-	}
-
-	/**
-	 * <code>style</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#data-string'>String</a>.
-	 * Specifies zero or more CSS declarations that apply to the element <a href='https://www.w3.org/TR/html-markup/references.html#refsCSS'>[CSS]</a>.
-	 */
-	@Xml(format=ATTR)
-	public String style;
-
-	/**
-	 * <code>style</code> setter.
-	 * @param style - The new value.
-	 * @return This object (for method chaining).
-	 * @see #style
-	 */
-	public HtmlElement style(String style) {
-		this.style = style;
-		return this;
-	}
-
-	/**
-	 * <code>tabindex</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.integer'>Integer</a>.
-	 * Specifies whether the element represents an element that is is focusable (that is, an element which is part of the sequence of focusable elements in the document), and the relative order of the element in the sequence of focusable elements in the document.
-	 */
-	@Xml(format=ATTR)
-	public String tabindex;
-
-	/**
-	 * <code>tabindex</code> setter.
-	 * @param tabindex - The new value.
-	 * @return This object (for method chaining).
-	 * @see #tabindex
-	 */
-	public HtmlElement tabindex(String tabindex) {
-		this.tabindex = tabindex;
-		return this;
-	}
-
-	/**
-	 * <code>title</code> - <a href='https://www.w3.org/TR/html-markup/syntax.html#syntax-attribute-value'>Any value</a>.
-	 * Advisory information associated with the element.
-	 */
-	@Xml(format=ATTR)
-	public String title;
-
-	/**
-	 * <code>title</code> setter.
-	 * @param title - The new value.
-	 * @return This object (for method chaining).
-	 * @see #title
-	 */
-	public HtmlElement title(String title) {
-		this.title = title;
-		return this;
-	}
-
-	/**
-	 * <code>translate</code> - <js>"yes"</js> or <js>"no"</js>.
-	 * Specifies whether an element\u2019s attribute values and contents of its children are to be translated when the page is localized, or whether to leave them unchanged.
-	 */
-	@Xml(format=ATTR)
-	public String translate;
-
-	/**
-	 * <code>translate</code> setter.
-	 * @param translate - The new value.
-	 * @return This object (for method chaining).
-	 * @see #translate
-	 */
-	public HtmlElement translate(String translate) {
-		this.translate = translate;
-		return this;
-	}
-
-	/**
-	 * <code>onabort</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Load of element was aborted by the user.
-	 */
-	@Xml(format=ATTR)
-	public String onabort;
-
-	/**
-	 * <code>onabort</code> setter.
-	 * @param onabort - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onabort
-	 */
-	public HtmlElement onabort(String onabort) {
-		this.onabort = onabort;
-		return this;
-	}
-
-	/**
-	 * <code>onblur</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Element lost focus.
-	 */
-	@Xml(format=ATTR)
-	public String onblur;
-
-	/**
-	 * <code>onblur</code> setter.
-	 * @param onblur - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onblur
-	 */
-	public HtmlElement onblur(String onblur) {
-		this.onblur = onblur;
-		return this;
-	}
-
-	/**
-	 * <code>oncanplay</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The UA can resume playback of media data for this video or audio element, but estimates that if playback were to be started now, the video or audio could not be rendered at the current playback rate up to its end without having to stop for further buffering of content.
-	 */
-	@Xml(format=ATTR)
-	public String oncanplay;
-
-	/**
-	 * <code>oncanplay</code> setter.
-	 * @param oncanplay - The new value.
-	 * @return This object (for method chaining).
-	 * @see #oncanplay
-	 */
-	public HtmlElement oncanplay(String oncanplay) {
-		this.oncanplay = oncanplay;
-		return this;
-	}
-
-	/**
-	 * <code>oncanplaythrough</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The UA estimates that if playback were to be started now, the video or audio element could be rendered at the current playback rate all the way to its end without having to stop for further buffering.
-	 */
-	@Xml(format=ATTR)
-	public String oncanplaythrough;
-
-	/**
-	 * <code>oncanplaythrough</code> setter.
-	 * @param oncanplaythrough - The new value.
-	 * @return This object (for method chaining).
-	 * @see #oncanplaythrough
-	 */
-	public HtmlElement oncanplaythrough(String oncanplaythrough) {
-		this.oncanplaythrough = oncanplaythrough;
-		return this;
-	}
-
-	/**
-	 * <code>onchange</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User committed a change to the value of element (form control).
-	 */
-	@Xml(format=ATTR)
-	public String onchange;
-
-	/**
-	 * <code>onchange</code> setter.
-	 * @param onchange - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onchange
-	 */
-	public HtmlElement onchange(String onchange) {
-		this.onchange = onchange;
-		return this;
-	}
-
-	/**
-	 * <code>onclick</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User pressed pointer button down and released pointer button over element, or otherwise activated the pointer in a manner that emulates such an action.
-	 */
-	@Xml(format=ATTR)
-	public String onclick;
-
-	/**
-	 * <code>onclick</code> setter.
-	 * @param onclick - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onclick
-	 */
-	public HtmlElement onclick(String onclick) {
-		this.onclick = onclick;
-		return this;
-	}
-
-	/**
-	 * <code>oncontextmenu</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User requested the context menu for element.
-	 */
-	@Xml(format=ATTR)
-	public String oncontextmenu;
-
-	/**
-	 * <code>oncontextmenu</code> setter.
-	 * @param oncontextmenu - The new value.
-	 * @return This object (for method chaining).
-	 * @see #oncontextmenu
-	 */
-	public HtmlElement oncontextmenu(String oncontextmenu) {
-		this.oncontextmenu = oncontextmenu;
-		return this;
-	}
-
-	/**
-	 * <code>ondblclick</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User clicked pointer button twice over element, or otherwise activated the pointer in a manner that simulates such an action.
-	 */
-	@Xml(format=ATTR)
-	public String ondblclick;
-
-	/**
-	 * <code>ondblclick</code> setter.
-	 * @param ondblclick - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondblclick
-	 */
-	public HtmlElement ondblclick(String ondblclick) {
-		this.ondblclick = ondblclick;
-		return this;
-	}
-
-	/**
-	 * <code>ondrag</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User is continuing to drag element.
-	 */
-	@Xml(format=ATTR)
-	public String ondrag;
-
-	/**
-	 * <code>ondrag</code> setter.
-	 * @param ondrag - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondrag
-	 */
-	public HtmlElement ondrag(String ondrag) {
-		this.ondrag = ondrag;
-		return this;
-	}
-
-	/**
-	 * <code>ondragend</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User ended dragging element.
-	 */
-	@Xml(format=ATTR)
-	public String ondragend;
-
-	/**
-	 * <code>ondragend</code> setter.
-	 * @param ondragend - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondragend
-	 */
-	public HtmlElement ondragend(String ondragend) {
-		this.ondragend = ondragend;
-		return this;
-	}
-
-	/**
-	 * <code>ondragenter</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User\u2019s drag operation entered element.
-	 */
-	@Xml(format=ATTR)
-	public String ondragenter;
-
-	/**
-	 * <code>ondragenter</code> setter.
-	 * @param ondragenter - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondragenter
-	 */
-	public HtmlElement ondragenter(String ondragenter) {
-		this.ondragenter = ondragenter;
-		return this;
-	}
-
-	/**
-	 * <code>ondragleave</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User\u2019s drag operation left element.
-	 */
-	@Xml(format=ATTR)
-	public String ondragleave;
-
-	/**
-	 * <code>ondragleave</code> setter.
-	 * @param ondragleave - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondragleave
-	 */
-	public HtmlElement ondragleave(String ondragleave) {
-		this.ondragleave = ondragleave;
-		return this;
-	}
-
-	/**
-	 * <code>ondragover</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User is continuing drag operation over element.
-	 */
-	@Xml(format=ATTR)
-	public String ondragover;
-
-	/**
-	 * <code>ondragover</code> setter.
-	 * @param ondragover - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondragover
-	 */
-	public HtmlElement ondragover(String ondragover) {
-		this.ondragover = ondragover;
-		return this;
-	}
-
-	/**
-	 * <code>ondragstart</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User started dragging element.
-	 */
-	@Xml(format=ATTR)
-	public String ondragstart;
-
-	/**
-	 * <code>ondragstart</code> setter.
-	 * @param ondragstart - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondragstart
-	 */
-	public HtmlElement ondragstart(String ondragstart) {
-		this.ondragstart = ondragstart;
-		return this;
-	}
-
-	/**
-	 * <code>ondrop</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User completed drop operation over element.
-	 */
-	@Xml(format=ATTR)
-	public String ondrop;
-
-	/**
-	 * <code>ondrop</code> setter.
-	 * @param ondrop - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondrop
-	 */
-	public HtmlElement ondrop(String ondrop) {
-		this.ondrop = ondrop;
-		return this;
-	}
-
-	/**
-	 * <code>ondurationchange</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The DOM attribute duration on the video or audio element has been updated.
-	 */
-	@Xml(format=ATTR)
-	public String ondurationchange;
-
-	/**
-	 * <code>ondurationchange</code> setter.
-	 * @param ondurationchange - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ondurationchange
-	 */
-	public HtmlElement ondurationchange(String ondurationchange) {
-		this.ondurationchange = ondurationchange;
-		return this;
-	}
-
-	/**
-	 * <code>onemptied</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The video or audio element has returned to the uninitialized state.
-	 */
-	@Xml(format=ATTR)
-	public String onemptied;
-
-	/**
-	 * <code>onemptied</code> setter.
-	 * @param onemptied - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onemptied
-	 */
-	public HtmlElement onemptied(String onemptied) {
-		this.onemptied = onemptied;
-		return this;
-	}
-
-	/**
-	 * <code>onended</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The end of the video or audio element has been reached.
-	 */
-	@Xml(format=ATTR)
-	public String onended;
-
-	/**
-	 * <code>onended</code> setter.
-	 * @param onended - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onended
-	 */
-	public HtmlElement onended(String onended) {
-		this.onended = onended;
-		return this;
-	}
-
-	/**
-	 * <code>onerror</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Element failed to load properly.
-	 */
-	@Xml(format=ATTR)
-	public String onerror;
-
-	/**
-	 * <code>onerror</code> setter.
-	 * @param onerror - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onerror
-	 */
-	public HtmlElement onerror(String onerror) {
-		this.onerror = onerror;
-		return this;
-	}
-
-	/**
-	 * <code>onfocus</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Element received focus.
-	 */
-	@Xml(format=ATTR)
-	public String onfocus;
-
-	/**
-	 * <code>onfocus</code> setter.
-	 * @param onfocus - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onfocus
-	 */
-	public HtmlElement onfocus(String onfocus) {
-		this.onfocus = onfocus;
-		return this;
-	}
-
-	/**
-	 * <code>oninput</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User changed the value of element (form control).
-	 */
-	@Xml(format=ATTR)
-	public String oninput;
-
-	/**
-	 * <code>oninput</code> setter.
-	 * @param oninput - The new value.
-	 * @return This object (for method chaining).
-	 * @see #oninput
-	 */
-	public HtmlElement oninput(String oninput) {
-		this.oninput = oninput;
-		return this;
-	}
-
-	/**
-	 * <code>oninvalid</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Element (form control) did not meet validity constraints.
-	 */
-	@Xml(format=ATTR)
-	public String oninvalid;
-
-	/**
-	 * <code>oninvalid</code> setter.
-	 * @param oninvalid - The new value.
-	 * @return This object (for method chaining).
-	 * @see #oninvalid
-	 */
-	public HtmlElement oninvalid(String oninvalid) {
-		this.oninvalid = oninvalid;
-		return this;
-	}
-
-	/**
-	 * <code>onkeydown</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User pressed down a key.
-	 */
-	@Xml(format=ATTR)
-	public String onkeydown;
-
-	/**
-	 * <code>onkeydown</code> setter.
-	 * @param onkeydown - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onkeydown
-	 */
-	public HtmlElement onkeydown(String onkeydown) {
-		this.onkeydown = onkeydown;
-		return this;
-	}
-
-	/**
-	 * <code>onkeypress</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User pressed down a key that is associated with a character value.
-	 */
-	@Xml(format=ATTR)
-	public String onkeypress;
-
-	/**
-	 * <code>onkeypress</code> setter.
-	 * @param onkeypress - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onkeypress
-	 */
-	public HtmlElement onkeypress(String onkeypress) {
-		this.onkeypress = onkeypress;
-		return this;
-	}
-
-	/**
-	 * <code>onkeyup</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User released a key.
-	 */
-	@Xml(format=ATTR)
-	public String onkeyup;
-
-	/**
-	 * <code>onkeyup</code> setter.
-	 * @param onkeyup - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onkeyup
-	 */
-	public HtmlElement onkeyup(String onkeyup) {
-		this.onkeyup = onkeyup;
-		return this;
-	}
-
-	/**
-	 * <code>onload</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Element finished loading.
-	 */
-	@Xml(format=ATTR)
-	public String onload;
-
-	/**
-	 * <code>onload</code> setter.
-	 * @param onload - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onload
-	 */
-	public HtmlElement onload(String onload) {
-		this.onload = onload;
-		return this;
-	}
-
-	/**
-	 * <code>onloadeddata</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * UA can render the video or audio element at the current playback position for the first time.
-	 */
-	@Xml(format=ATTR)
-	public String onloadeddata;
-
-	/**
-	 * <code>onloadeddata</code> setter.
-	 * @param onloadeddata - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onloadeddata
-	 */
-	public HtmlElement onloadeddata(String onloadeddata) {
-		this.onloadeddata = onloadeddata;
-		return this;
-	}
-
-	/**
-	 * <code>onloadedmetadata</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * UA has just determined the duration and dimensions of the video or audio element.
-	 */
-	@Xml(format=ATTR)
-	public String onloadedmetadata;
-
-	/**
-	 * <code>onloadedmetadata</code> setter.
-	 * @param onloadedmetadata - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onloadedmetadata
-	 */
-	public HtmlElement onloadedmetadata(String onloadedmetadata) {
-		this.onloadedmetadata = onloadedmetadata;
-		return this;
-	}
-
-	/**
-	 * <code>onloadstart</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * UA has begun looking for media data in the video or audio element.
-	 */
-	@Xml(format=ATTR)
-	public String onloadstart;
-
-	/**
-	 * <code>onloadstart</code> setter.
-	 * @param onloadstart - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onloadstart
-	 */
-	public HtmlElement onloadstart(String onloadstart) {
-		this.onloadstart = onloadstart;
-		return this;
-	}
-
-	/**
-	 * <code>onmousedown</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User pressed down pointer button over element.
-	 */
-	@Xml(format=ATTR)
-	public String onmousedown;
-
-	/**
-	 * <code>onmousedown</code> setter.
-	 * @param onmousedown - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onmousedown
-	 */
-	public HtmlElement onmousedown(String onmousedown) {
-		this.onmousedown = onmousedown;
-		return this;
-	}
-
-	/**
-	 * <code>onmousemove</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User moved mouse.
-	 */
-	@Xml(format=ATTR)
-	public String onmousemove;
-
-	/**
-	 * <code>onmousemove</code> setter.
-	 * @param onmousemove - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onmousemove
-	 */
-	public HtmlElement onmousemove(String onmousemove) {
-		this.onmousemove = onmousemove;
-		return this;
-	}
-
-	/**
-	 * <code>onmouseout</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User moved pointer off boundaries of element.
-	 */
-	@Xml(format=ATTR)
-	public String onmouseout;
-
-	/**
-	 * <code>onmouseout</code> setter.
-	 * @param onmouseout - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onmouseout
-	 */
-	public HtmlElement onmouseout(String onmouseout) {
-		this.onmouseout = onmouseout;
-		return this;
-	}
-
-	/**
-	 * <code>onmouseover</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User moved pointer into boundaries of element or one of its descendant elements.
-	 */
-	@Xml(format=ATTR)
-	public String onmouseover;
-
-	/**
-	 * <code>onmouseover</code> setter.
-	 * @param onmouseover - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onmouseover
-	 */
-	public HtmlElement onmouseover(String onmouseover) {
-		this.onmouseover = onmouseover;
-		return this;
-	}
-
-	/**
-	 * <code>onmouseup</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User released pointer button over element.
-	 */
-	@Xml(format=ATTR)
-	public String onmouseup;
-
-	/**
-	 * <code>onmouseup</code> setter.
-	 * @param onmouseup - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onmouseup
-	 */
-	public HtmlElement onmouseup(String onmouseup) {
-		this.onmouseup = onmouseup;
-		return this;
-	}
-
-	/**
-	 * <code>onmousewheel</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User rotated wheel of mouse or other device in a manner that emulates such an action.
-	 */
-	@Xml(format=ATTR)
-	public String onmousewheel;
-
-	/**
-	 * <code>onmousewheel</code> setter.
-	 * @param onmousewheel - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onmousewheel
-	 */
-	public HtmlElement onmousewheel(String onmousewheel) {
-		this.onmousewheel = onmousewheel;
-		return this;
-	}
-
-	/**
-	 * <code>onpause</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User has paused playback of the video or audio element.
-	 */
-	@Xml(format=ATTR)
-	public String onpause;
-
-	/**
-	 * <code>onpause</code> setter.
-	 * @param onpause - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onpause
-	 */
-	public HtmlElement onpause(String onpause) {
-		this.onpause = onpause;
-		return this;
-	}
-
-	/**
-	 * <code>onplay</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * UA has initiated playback of the video or audio element.
-	 */
-	@Xml(format=ATTR)
-	public String onplay;
-
-	/**
-	 * <code>onplay</code> setter.
-	 * @param onplay - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onplay
-	 */
-	public HtmlElement onplay(String onplay) {
-		this.onplay = onplay;
-		return this;
-	}
-
-	/**
-	 * <code>onplaying</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Playback of the video or audio element has started.
-	 */
-	@Xml(format=ATTR)
-	public String onplaying;
-
-	/**
-	 * <code>onplaying</code> setter.
-	 * @param onplaying - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onplaying
-	 */
-	public HtmlElement onplaying(String onplaying) {
-		this.onplaying = onplaying;
-		return this;
-	}
-
-	/**
-	 * <code>onprogress</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * UA is fetching media data for the video or audio element.
-	 */
-	@Xml(format=ATTR)
-	public String onprogress;
-
-	/**
-	 * <code>onprogress</code> setter.
-	 * @param onprogress - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onprogress
-	 */
-	public HtmlElement onprogress(String onprogress) {
-		this.onprogress = onprogress;
-		return this;
-	}
-
-	/**
-	 * <code>onratechange</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Either the DOM attribute defaultPlaybackRate or the DOM attribute playbackRate on the video or audio element has been updated.
-	 */
-	@Xml(format=ATTR)
-	public String onratechange;
-
-	/**
-	 * <code>onratechange</code> setter.
-	 * @param onratechange - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onratechange
-	 */
-	public HtmlElement onratechange(String onratechange) {
-		this.onratechange = onratechange;
-		return this;
-	}
-
-	/**
-	 * <code>onreadystatechange</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Element and all its subresources have finished loading.
-	 */
-	@Xml(format=ATTR)
-	public String onreadystatechange;
-
-	/**
-	 * <code>onreadystatechange</code> setter.
-	 * @param onreadystatechange - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onreadystatechange
-	 */
-	public HtmlElement onreadystatechange(String onreadystatechange) {
-		this.onreadystatechange = onreadystatechange;
-		return this;
-	}
-
-	/**
-	 * <code>onreset</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The form element was reset.
-	 */
-	@Xml(format=ATTR)
-	public String onreset;
-
-	/**
-	 * <code>onreset</code> setter.
-	 * @param onreset - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onreset
-	 */
-	public HtmlElement onreset(String onreset) {
-		this.onreset = onreset;
-		return this;
-	}
-
-	/**
-	 * <code>onscroll</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Element or document view was scrolled.
-	 */
-	@Xml(format=ATTR)
-	public String onscroll;
-
-	/**
-	 * <code>onscroll</code> setter.
-	 * @param onscroll - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onscroll
-	 */
-	public HtmlElement onscroll(String onscroll) {
-		this.onscroll = onscroll;
-		return this;
-	}
-
-	/**
-	 * <code>onseeked</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The value of the IDL attribute seeking changed to false (a seek operation on the video or audio element ended).
-	 */
-	@Xml(format=ATTR)
-	public String onseeked;
-
-	/**
-	 * <code>onseeked</code> setter.
-	 * @param onseeked - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onseeked
-	 */
-	public HtmlElement onseeked(String onseeked) {
-		this.onseeked = onseeked;
-		return this;
-	}
-
-	/**
-	 * <code>onseeking</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The value of the IDL attribute seeking changed to true, and the seek operation on the video or audio elements is taking long enough that the UA has time to fire the seeking event.
-	 */
-	@Xml(format=ATTR)
-	public String onseeking;
-
-	/**
-	 * <code>onseeking</code> setter.
-	 * @param onseeking - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onseeking
-	 */
-	public HtmlElement onseeking(String onseeking) {
-		this.onseeking = onseeking;
-		return this;
-	}
-
-	/**
-	 * <code>onselect</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User selected some text.
-	 */
-	@Xml(format=ATTR)
-	public String onselect;
-
-	/**
-	 * <code>onselect</code> setter.
-	 * @param onselect - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onselect
-	 */
-	public HtmlElement onselect(String onselect) {
-		this.onselect = onselect;
-		return this;
-	}
-
-	/**
-	 * <code>onshow</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * User requested the element be shown as a context menu.
-	 */
-	@Xml(format=ATTR)
-	public String onshow;
-
-	/**
-	 * <code>onshow</code> setter.
-	 * @param onshow - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onshow
-	 */
-	public HtmlElement onshow(String onshow) {
-		this.onshow = onshow;
-		return this;
-	}
-
-	/**
-	 * <code>onstalled</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * UA is attempting to fetch media data for the video or audio element, but that data is not forthcoming.
-	 */
-	@Xml(format=ATTR)
-	public String onstalled;
-
-	/**
-	 * <code>onstalled</code> setter.
-	 * @param onstalled - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onstalled
-	 */
-	public HtmlElement onstalled(String onstalled) {
-		this.onstalled = onstalled;
-		return this;
-	}
-
-	/**
-	 * <code>onsubmit</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The form element was submitted.
-	 */
-	@Xml(format=ATTR)
-	public String onsubmit;
-
-	/**
-	 * <code>onsubmit</code> setter.
-	 * @param onsubmit - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onsubmit
-	 */
-	public HtmlElement onsubmit(String onsubmit) {
-		this.onsubmit = onsubmit;
-		return this;
-	}
-
-	/**
-	 * <code>onsuspend</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * UA is intentionally not currently fetching media data for the video or audio element, but does not yet have the entire contents downloaded.
-	 */
-	@Xml(format=ATTR)
-	public String onsuspend;
-
-	/**
-	 * <code>onsuspend</code> setter.
-	 * @param onsuspend - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onsuspend
-	 */
-	public HtmlElement onsuspend(String onsuspend) {
-		this.onsuspend = onsuspend;
-		return this;
-	}
-
-	/**
-	 * <code>ontimeupdate</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * The current playback position of the video or audio element changed either as part of normal playback, or in an especially interesting way (for example, discontinuously).
-	 */
-	@Xml(format=ATTR)
-	public String ontimeupdate;
-
-	/**
-	 * <code>ontimeupdate</code> setter.
-	 * @param ontimeupdate - The new value.
-	 * @return This object (for method chaining).
-	 * @see #ontimeupdate
-	 */
-	public HtmlElement ontimeupdate(String ontimeupdate) {
-		this.ontimeupdate = ontimeupdate;
-		return this;
-	}
-
-	/**
-	 * <code>onvolumechange</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Either the DOM attribute volume or the DOM attribute muted on the video or audio element has been changed.
-	 */
-	@Xml(format=ATTR)
-	public String onvolumechange;
-
-	/**
-	 * <code>onvolumechange</code> setter.
-	 * @param onvolumechange - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onvolumechange
-	 */
-	public HtmlElement onvolumechange(String onvolumechange) {
-		this.onvolumechange = onvolumechange;
-		return this;
-	}
-
-	/**
-	 * <code>onwaiting</code> - <a href='https://www.w3.org/TR/html-markup/datatypes.html#common.data.functionbody'>functionbody</a>.
-	 * Playback of the video or audio element has stopped because the next frame is not yet available (but UA agent expects that frame to become available in due course).
-	 */
-	@Xml(format=ATTR)
-	public String onwaiting;
-
-	/**
-	 * <code>onwaiting</code> setter.
-	 * @param onwaiting - The new value.
-	 * @return This object (for method chaining).
-	 * @see #onwaiting
-	 */
-	public HtmlElement onwaiting(String onwaiting) {
-		this.onwaiting = onwaiting;
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/HtmlSchema.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/HtmlSchema.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/HtmlSchema.java
deleted file mode 100644
index 3e8de1f..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/HtmlSchema.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class HtmlSchema {
-
-	// List of all classes that make up this schema.
-	public static final Class<?>[] schema = {
-
-	};
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/I.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/I.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/I.java
deleted file mode 100644
index d74f521..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/I.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class I extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/IFrame.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/IFrame.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/IFrame.java
deleted file mode 100644
index 365071a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/IFrame.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class IFrame extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Img.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Img.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Img.java
deleted file mode 100644
index 3ea6ed8..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Img.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * Represents an HTML IMG element.
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Input.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Input.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Input.java
deleted file mode 100644
index 957b487..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Input.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Input extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ins.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ins.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ins.java
deleted file mode 100644
index 4865026..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Ins.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Ins extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Kbd.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Kbd.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Kbd.java
deleted file mode 100644
index 458b9a2..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Kbd.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Kbd extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Keygen.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Keygen.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Keygen.java
deleted file mode 100644
index e855db3..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Keygen.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Keygen extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Label.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Label.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Label.java
deleted file mode 100644
index 342439d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Label.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Label extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Legend.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Legend.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Legend.java
deleted file mode 100644
index 7e0fd12..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Legend.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Legend extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Li.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Li.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Li.java
deleted file mode 100644
index 9ff5e41..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Li.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Li extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Link.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Link.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Link.java
deleted file mode 100644
index 49c0b97..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Link.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Link extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Map.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Map.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Map.java
deleted file mode 100644
index 83354cc..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Map.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Map extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Mark.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Mark.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Mark.java
deleted file mode 100644
index 43c0ac6..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Mark.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Mark extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Menu.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Menu.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Menu.java
deleted file mode 100644
index b70b97f..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Menu.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Menu extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Meta.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Meta.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Meta.java
deleted file mode 100644
index d9567cd..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Meta.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Meta extends HtmlElement {
-}



[05/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlWriter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlWriter.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlWriter.java
deleted file mode 100644
index ba115b0..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlWriter.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import java.io.*;
-
-import org.apache.juneau.xml.*;
-
-/**
- * Specialized writer for serializing HTML.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class HtmlWriter extends XmlWriter {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param out The writer being wrapped.
-	 * @param useIndentation If <jk>true</jk>, tabs will be used in output.
-	 * @param trimStrings If <jk>true</jk>, strings should be trimmed before they're serialized.
-	 * @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 HtmlWriter(Writer out, boolean useIndentation, boolean trimStrings, char quoteChar, String uriContext, String uriAuthority) {
-		super(out, useIndentation, trimStrings, 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 HtmlWriter attrUri(String name, Object value) throws IOException {
-		super.attrUri((String)null, name, value);
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter 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 HtmlWriter oTag(String ns, String name, boolean needsEncoding) throws IOException {
-		super.oTag(ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter oTag(String ns, String name) throws IOException {
-		super.oTag(ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter oTag(String name) throws IOException {
-		super.oTag(name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter oTag(int indent, String ns, String name, boolean needsEncoding) throws IOException {
-		super.oTag(indent, ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter oTag(int indent, String ns, String name) throws IOException {
-		super.oTag(indent, ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter oTag(int indent, String name) throws IOException {
-		super.oTag(indent, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter tag(String ns, String name, boolean needsEncoding) throws IOException {
-		super.tag(ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter tag(String ns, String name) throws IOException {
-		super.tag(ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter tag(String name) throws IOException {
-		super.tag(name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter tag(int indent, String name) throws IOException {
-		super.tag(indent, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter tag(int indent, String ns, String name, boolean needsEncoding) throws IOException {
-		super.tag(indent, ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter tag(int indent, String ns, String name) throws IOException {
-		super.tag(indent, ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter sTag(String ns, String name) throws IOException {
-		super.sTag(ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter sTag(String ns, String name, boolean needsEncoding) throws IOException {
-		super.sTag(ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter sTag(int indent, String ns, String name) throws IOException {
-		super.sTag(indent, ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter sTag(int indent, String name) throws IOException {
-		super.sTag(indent, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter sTag(String name) throws IOException {
-		super.sTag(name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter sTag(int indent, String ns, String name, boolean needsEncoding) throws IOException {
-		super.sTag(indent, ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter eTag(String ns, String name) throws IOException {
-		super.eTag(ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter eTag(String ns, String name, boolean needsEncoding) throws IOException {
-		super.eTag(ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter eTag(int indent, String ns, String name) throws IOException {
-		super.eTag(indent, ns, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter eTag(int indent, String name) throws IOException {
-		super.eTag(indent, name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter eTag(String name) throws IOException {
-		super.eTag(name);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter eTag(int indent, String ns, String name, boolean needsEncoding) throws IOException {
-		super.eTag(indent, ns, name, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter attr(String name, Object value) throws IOException {
-		super.attr(name, value);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter attr(String ns, String name, Object value) throws IOException {
-		super.attr(ns, name, value);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter attr(String ns, String name, Object value, boolean needsEncoding) throws IOException {
-		super.attr(ns, name, value, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter attr(String name, Object value, boolean needsEncoding) throws IOException {
-		super.attr(null, name, value, needsEncoding);
-		return this;
-	}
-
-	@Override /* XmlSerializerWriter */
-	public HtmlWriter oAttr(String ns, String name) throws IOException {
-		super.oAttr(ns, name);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter cr(int depth) throws IOException {
-		super.cr(depth);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter appendln(int indent, String text) throws IOException {
-		super.appendln(indent, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter appendln(String text) throws IOException {
-		super.appendln(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter append(int indent, String text) throws IOException {
-		super.append(indent, text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter append(int indent, char c) throws IOException {
-		super.append(indent, c);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter s() throws IOException {
-		super.s();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter q() throws IOException {
-		super.q();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter i(int indent) throws IOException {
-		super.i(indent);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter nl() throws IOException {
-		super.nl();
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter append(Object text) throws IOException {
-		super.append(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter append(String text) throws IOException {
-		super.append(text);
-		return this;
-	}
-
-	@Override /* SerializerWriter */
-	public HtmlWriter append(char c) throws IOException {
-		super.append(c);
-		return this;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/SimpleHtmlWriter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/SimpleHtmlWriter.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/SimpleHtmlWriter.java
deleted file mode 100644
index d563195..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/SimpleHtmlWriter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************************************************************
- * 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.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 (james.bognar@salesforce.com)
- */
-public class SimpleHtmlWriter extends HtmlWriter {
-
-	/**
-	 * Constructor.
-	 */
-	public SimpleHtmlWriter() {
-		super(new StringWriter(), true, false, '\'', null, null);
-	}
-
-	@Override /* Object */
-	public String toString() {
-		return out.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/annotation/Html.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/annotation/Html.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/annotation/Html.java
deleted file mode 100644
index f0ed40b..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/annotation/Html.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.html.*;
-
-/**
- * Annotation that can be applied to classes, fields, and methods to tweak how
- * they are handled by {@link HtmlSerializer}.
- *
- * @author James Bognar (james.bognar@salesforce.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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/annotation/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/annotation/package.html b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/annotation/package.html
deleted file mode 100644
index a71e2b3..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/annotation/package.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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>HTML annotations</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_DESCRIPTION.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_DESCRIPTION.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_DESCRIPTION.png
deleted file mode 100644
index 621721b..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_DESCRIPTION.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_LINKS.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_LINKS.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_LINKS.png
deleted file mode 100644
index 3c07fe6..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_LINKS.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_TITLE.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_TITLE.png b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_TITLE.png
deleted file mode 100644
index 5365735..0000000
Binary files a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/doc-files/HTML_TITLE.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/A.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/A.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/A.java
deleted file mode 100644
index b203c90..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/A.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import static org.apache.juneau.xml.annotation.XmlFormat.*;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="a")
-public class A extends HtmlElement {
-
-	/** <code>name</code> attribute */
-	@Xml(format=ATTR)
-	public String name;
-
-	/** <code>href</code> attribute */
-	@Xml(format=ATTR)
-	public String href;
-
-	/** Content */
-	@Xml(format=CONTENT)
-	public String text;
-
-	public A setName(String name) {
-		this.name = name;
-		return this;
-	}
-
-	public A setHref(String href) {
-		this.href = href;
-		return this;
-	}
-
-	public A setText(String text) {
-		this.text = text;
-		return this;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Abbr.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Abbr.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Abbr.java
deleted file mode 100644
index e6c76e7..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Abbr.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Abbr extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Address.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Address.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Address.java
deleted file mode 100644
index fa6b4f7..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Address.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Address extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Area.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Area.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Area.java
deleted file mode 100644
index a4ae0be..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Area.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Area extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Article.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Article.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Article.java
deleted file mode 100644
index 6df98a0..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Article.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Article extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Aside.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Aside.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Aside.java
deleted file mode 100644
index 669a4a5..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Aside.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Aside extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Audio.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Audio.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Audio.java
deleted file mode 100644
index a509197..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Audio.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Audio extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/B.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/B.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/B.java
deleted file mode 100644
index 662b60e..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/B.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class B extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Base.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Base.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Base.java
deleted file mode 100644
index 581ffc4..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Base.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Base extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Bdi.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Bdi.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Bdi.java
deleted file mode 100644
index ad57b70..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Bdi.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Bdi extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Bdo.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Bdo.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Bdo.java
deleted file mode 100644
index 1e7f93a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Bdo.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Bdo extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Blockquote.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Blockquote.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Blockquote.java
deleted file mode 100644
index 7080afa..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Blockquote.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Blockquote extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Body.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Body.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Body.java
deleted file mode 100644
index 07b9ba2..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Body.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Body extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Br.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Br.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Br.java
deleted file mode 100644
index 166a733..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Br.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Br extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Button.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Button.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Button.java
deleted file mode 100644
index 7797b76..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Button.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Button extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Canvas.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Canvas.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Canvas.java
deleted file mode 100644
index e9dafe8..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Canvas.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Canvas extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Caption.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Caption.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Caption.java
deleted file mode 100644
index e8e03e6..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Caption.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Caption extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Cite.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Cite.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Cite.java
deleted file mode 100644
index 663eb32..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Cite.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Cite extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Code.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Code.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Code.java
deleted file mode 100644
index 9a17050..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Code.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Code extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Col.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Col.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Col.java
deleted file mode 100644
index 75a2e18..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Col.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Col extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Colgroup.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Colgroup.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Colgroup.java
deleted file mode 100644
index b058b52..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Colgroup.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Colgroup extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Command.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Command.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Command.java
deleted file mode 100644
index 75bc3fa..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Command.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Command extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Datalist.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Datalist.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Datalist.java
deleted file mode 100644
index ac00d46..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Datalist.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Datalist extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dd.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dd.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dd.java
deleted file mode 100644
index 1ebe03c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dd.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Dd extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Del.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Del.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Del.java
deleted file mode 100644
index 142711c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Del.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Del extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Details.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Details.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Details.java
deleted file mode 100644
index e44f73c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Details.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Details extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dfn.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dfn.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dfn.java
deleted file mode 100644
index af4804e..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dfn.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Dfn extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Div.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Div.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Div.java
deleted file mode 100644
index 270d48e..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Div.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Div extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dl.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dl.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dl.java
deleted file mode 100644
index bc586c3..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Dl extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dt.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dt.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dt.java
deleted file mode 100644
index f81b4c9..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Dt.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Dt extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Em.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Em.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Em.java
deleted file mode 100644
index e66eb5d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Em.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Em extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Embed.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Embed.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Embed.java
deleted file mode 100644
index 7768351..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Embed.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Embed extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Fieldset.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Fieldset.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Fieldset.java
deleted file mode 100644
index 50d434c..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Fieldset.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Fieldset extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Figcaption.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Figcaption.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Figcaption.java
deleted file mode 100644
index 4adecb6..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Figcaption.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Figcaption extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Figure.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Figure.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Figure.java
deleted file mode 100644
index f365fc6..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Figure.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Figure extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Footer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Footer.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Footer.java
deleted file mode 100644
index 8795cba..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Footer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Footer extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Form.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Form.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Form.java
deleted file mode 100644
index 7ab8e57..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/Form.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class Form extends HtmlElement {
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H1.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H1.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H1.java
deleted file mode 100644
index 58b9070..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/dto/H1.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************************************************************
- * 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.html.dto;
-
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * TODO
- * <p>
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-@Xml(name="x")
-public class H1 extends HtmlElement {
-}



[47/51] [abbrv] [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/2c3a7cb5/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
deleted file mode 100755
index 7f1ef7f..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/package.html
+++ /dev/null
@@ -1,857 +0,0 @@
-<!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/2c3a7cb5/com.ibm.team.juno.microservice.template/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/.DS_Store b/com.ibm.team.juno.microservice.template/.DS_Store
deleted file mode 100644
index 95de083..0000000
Binary files a/com.ibm.team.juno.microservice.template/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 9308111..0000000
--- a/com.ibm.team.juno.microservice.template/.classpath
+++ /dev/null
@@ -1,30 +0,0 @@
-<?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/2c3a7cb5/com.ibm.team.juno.microservice.template/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/.gitignore b/com.ibm.team.juno.microservice.template/.gitignore
deleted file mode 100644
index 09e3bc9..0000000
--- a/com.ibm.team.juno.microservice.template/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/bin/
-/target/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index ece1e77..0000000
--- a/com.ibm.team.juno.microservice.template/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau.microservice.template</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<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/2c3a7cb5/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
deleted file mode 100755
index 6428c68..0000000
--- a/com.ibm.team.juno.microservice.template/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-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
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-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/2c3a7cb5/com.ibm.team.juno.microservice.template/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/.settings/org.eclipse.m2e.core.prefs b/com.ibm.team.juno.microservice.template/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/com.ibm.team.juno.microservice.template/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 30add53..0000000
--- a/com.ibm.team.juno.microservice.template/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Main-Class: org.apache.juneau.microservice.RestMicroservice
-Rest-Resources: 
- org.apache.juneau.microservice.sample.RootResources
-Main-ConfigFile: microservice.cfg
-Class-Path: 
- 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
-
- 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 57ce45a..0000000
--- a/com.ibm.team.juno.microservice.template/microservice.cfg
+++ /dev/null
@@ -1,196 +0,0 @@
-#================================================================================
-# Basic configuration file for SaaS microservices
-# Subprojects can use this as a starting point.
-#================================================================================
-
-#================================================================================
-# Services
-#================================================================================
-[Services]
-REST = org.apache.juneau.microservice.rest.RestApplication
-
-#================================================================================
-# REST settings
-#================================================================================
-[REST]
-
-# The HTTP port number to use.
-# Default is Rest-Port setting in manifest file, or 8000.
-port = 10000
-
-# 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.
-resourceMap = 
-
-# 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.
-resources = 
-
-# The context root of the Jetty server.
-# Default is Rest-ContextPath in manifest file, or "/".
-contextPath = 
-
-# Authentication:  NONE, BASIC.
-# Default is Rest-AuthType in manifest file, or NONE.
-authType = NONE
-
-# The BASIC auth username.
-# Default is Rest-LoginUser in manifest file.
-loginUser = 
-
-# The BASIC auth password.
-# Default is Rest-LoginPassword in manifest file.
-loginPassword = 
-
-# The BASIC auth realm.
-# Default is Rest-AuthRealm in manifest file.
-authRealm = 
-
-# 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.
-stylesheet = styles/devops.css
-
-# 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'.
-saveConfigAction = RESTART_SERVER
-
-# Enable SSL support.
-# Default is false.
-useSsl = false
-
-#================================================================================
-# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
-#--------------------------------------------------------------------------------
-# Ignored if REST/useSsl is false.
-# Specify any of the following fields:
-# 	allowRenegotiate (boolean)
-# 	certAlias (String)
-# 	crlPath (String)
-# 	enableCRLDP (boolean)
-# 	enableOCSP (boolean)
-# 	excludeCipherSuites (String[]) 
-# 	excludeProtocols (String[])
-# 	includeCipherSuites (String[])
-# 	includeProtocols (String...)
-# 	keyManagerPassword (String)
-# 	keyStore (String)
-# 	keyStorePassword (String)
-# 	keyStorePath (String)
-# 	keyStoreProvider (String)
-# 	keyStoreType (String)
-# 	maxCertPathLength (int)
-# 	needClientAuth (boolean)
-# 	ocspResponderURL (String)
-# 	protocol (String)
-# 	provider (String)
-# 	secureRandomAlgorithm (String)
-# 	sessionCachingEnabled (boolean) 
-# 	sslKeyManagerFactoryAlgorithm (String)
-# 	sslSessionCacheSize (int)
-# 	sslSessionTimeout (int)
-# 	trustAll (boolean)
-# 	trustManagerFactoryAlgorithm (String)
-# 	trustStore (String)
-# 	trustStorePassword (String)
-# 	trustStoreProvider (String)
-# 	trustStoreType (String)
-# 	validateCerts (boolean)
-# 	validatePeerCerts (boolean)
-# 	wantClientAuth (boolean)			
-#================================================================================
-[REST-SslContextFactory]
-keyStorePath = client_keystore.jks
-keyStorePassword* = {HRAaRQoT}
-excludeCipherSuites = TLS_DHE.*, TLS_EDH.*
-excludeProtocols = SSLv3
-allowRenegotiate = false
-
-#================================================================================
-# Logger settings
-# See FileHandler Java class for details.
-#================================================================================
-[Logging]
-
-# The directory where to create the log file.
-# Default is "."
-logDir = logs
-
-# 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.
-logFile = microservice.%g.log
-
-# Whether to append to the existing log file or create a new one.
-# Default is false.
-append = 
-
-# The SimpleDateFormat format to use for dates.
-# Default is "yyyy.MM.dd hh:mm:ss".
-dateFormat = 
-
-# 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".
-format =
-
-# The maximum log file size.
-# Suffixes available for numbers.
-# See ConfigFile.getInt(String,int) for details.
-# Default is 1M.
-limit = 10M
-
-# Max number of log files.
-# Default is 1.
-count = 5
-
-# Default log levels.
-# Keys are logger names.
-# Values are serialized Level POJOs.
-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.
-# Default is false.
-useStackTraceHashes = true
-
-# The default level for the console logger.
-# Default is WARNING.
-consoleLevel = 
-
-#================================================================================
-# System properties
-#--------------------------------------------------------------------------------
-# These are arbitrary system properties that are set during startup.
-#================================================================================
-[SystemProperties]
-
-# Configure Jetty for StdErrLog Logging
-org.eclipse.jetty.util.log.class = org.eclipse.jetty.util.log.StrErrLog
-
-# Jetty logging level
-org.eclipse.jetty.LEVEL = WARN

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice.template/pom.xml
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/pom.xml b/com.ibm.team.juno.microservice.template/pom.xml
deleted file mode 100644
index 02bb060..0000000
--- a/com.ibm.team.juno.microservice.template/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.juneau</groupId>
-  <artifactId>org.apache.juneau.microservice.template</artifactId>
-  <version>6.0.0-SNAPSHOT</version>
-  <name>org.apache.juneau.microservice.template</name>
-  <description>org.apache.juneau.microservice.template</description>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/java</directory>
-        <excludes>
-          <exclude>**/*.java</exclude>
-        </excludes>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.3</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice.template/src/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice.template/src/.DS_Store b/com.ibm.team.juno.microservice.template/src/.DS_Store
deleted file mode 100644
index e752c40..0000000
Binary files a/com.ibm.team.juno.microservice.template/src/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/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
deleted file mode 100755
index 4615816..0000000
--- a/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/HelloWorldResource.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index baafae3..0000000
--- a/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/RootResources.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 8b3634d..0000000
--- a/com.ibm.team.juno.microservice.template/src/main/java/org/apache/juneau/microservice/sample/nls/Messages.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ***************************************************************************************************************************
-# * 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/2c3a7cb5/com.ibm.team.juno.microservice/.DS_Store
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.DS_Store b/com.ibm.team.juno.microservice/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/com.ibm.team.juno.microservice/.DS_Store and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/.classpath
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.classpath b/com.ibm.team.juno.microservice/.classpath
deleted file mode 100755
index 8522470..0000000
--- a/com.ibm.team.juno.microservice/.classpath
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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/2c3a7cb5/com.ibm.team.juno.microservice/.gitignore
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.gitignore b/com.ibm.team.juno.microservice/.gitignore
deleted file mode 100644
index 30e1a65..0000000
--- a/com.ibm.team.juno.microservice/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin/
-/target/

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.microservice/.project
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.microservice/.project b/com.ibm.team.juno.microservice/.project
deleted file mode 100755
index 8965b6a..0000000
--- a/com.ibm.team.juno.microservice/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.juneau.microservice</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<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>


[28/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestConverter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestConverter.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestConverter.java
deleted file mode 100755
index 0c1c9ec..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestConverter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.converters.*;
-
-/**
- * REST method response converter.
- * <p>
- * 	Implements a filter mechanism for REST method calls that allows response objects to be
- * 	converted to some other POJO after invocation of the REST method.
- * <p>
- * 	Converters are associated with REST methods through the {@link RestMethod#converters()} annotation.
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<jk>public class</jk> RequestEchoResource <jk>extends</jk> RestServlet {
- *
- * 		<jc>// GET request handler</jc>
- * 		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>, converters={Queryable.<jk>class</jk>,Traversable.<jk>class</jk>})
- * 		<jk>public</jk> HttpServletRequest doGet(RestRequest req) {
- * 			res.setTitle(<js>"Contents of HttpServletRequest object"</js>);
- * 			<jk>return</jk> req;
- * 		}
- * 	}
- * </p>
- * <p>
- * 	Converters can also be associated at the servlet level using the {@link RestResource#converters()} annotation.
- * 	Applying converters at the resource level is equivalent to applying converters to each resource method individually.
- *
- * <h6 class='topic'>How to implement</h6>
- * <p>
- * 	Implementers should simply implement the {@link #convert(RestRequest, Object, ClassMeta)} and
- * 		return back a 'converted' object.
- * 	It's up to the implementer to decide what this means.
- * <p>
- * 	Converters must implement a no-args constructor.
- *
- * <h6 class='topic'>Predefined converters</h6>
- * <p>
- * 	The following converters are available by default.
- * <ul class='spaced-list'>
- * 	<li>{@link Traversable} - Allows URL additional path info to address individual elements in a POJO tree.
- * 	<li>{@link Queryable} - Allows query/view/sort functions to be performed on POJOs.
- * 	<li>{@link Introspectable} - Allows Java public methods to be invoked on the returned POJOs.
- * </ul>
- */
-public interface RestConverter {
-
-	/**
-	 * Performs post-call conversion on the specified response object.
-	 *
-	 * @param req The servlet request.
-	 * @param res The response object set by the REST method through the {@link RestResponse#setOutput(Object)} method.
-	 * @param cm The {@link ClassMeta} on the object from the bean context of the servlet.
-	 * 	Can be used to check if the object has any filters.
-	 * @return The converted object.
-	 * @throws RestException Thrown if any errors occur during conversion.
-	 * @throws SerializeException
-	 */
-	public Object convert(RestRequest req, Object res, ClassMeta<?> cm) throws RestException, SerializeException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestException.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestException.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestException.java
deleted file mode 100755
index 62ea6ae..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestException.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.text.*;
-
-/**
- * Exception thrown to trigger an error HTTP status.
- * <p>
- * 	REST methods on subclasses of {@link RestServlet} can throw
- * 	this exception to trigger an HTTP status other than the automatically-generated
- * 	<code>404</code>, <code>405</code>, and <code>500</code> statuses.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class RestException extends RuntimeException {
-
-	private static final long serialVersionUID = 1L;
-
-	private int status;
-	private int occurrence;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param status The HTTP status code.
-	 * @param msg The status message.
-	 * @param args Optional string format arguments.
-	 */
-	public RestException(int status, String msg, Object...args) {
-		super(args.length == 0 ? msg : MessageFormat.format(msg, args));
-		this.status = status;
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param status The HTTP status code.
-	 * @param cause The root exception.
-	 */
-	public RestException(int status, Throwable cause) {
-		this(status, 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 RestException initCause(Throwable cause) {
-		super.initCause(cause);
-		return this;
-	}
-
-
-	/**
-	 * Returns all error messages from all errors in this stack.
-	 * <p>
-	 * Typically useful if you want to render all the error messages in the stack, but don't
-	 * want to render all the stack traces too.
-	 *
-	 * @param scrubForXssVulnerabilities If <jk>true</jk>, replaces <js>'&lt;'</js>, <js>'&gt;'</js>, and <js>'&amp;'</js> characters with spaces.
-	 * @return All error messages from all errors in this stack.
-	 */
-	public String getFullStackMessage(boolean scrubForXssVulnerabilities) {
-		String msg = getMessage();
-		StringBuilder sb = new StringBuilder();
-		if (msg != null) {
-			if (scrubForXssVulnerabilities)
-				msg = msg.replace('<', ' ').replace('>', ' ').replace('&', ' ');
-			sb.append(msg);
-		}
-		Throwable e = getCause();
-		while (e != null) {
-			msg = e.getMessage();
-			if (msg != null && scrubForXssVulnerabilities)
-				msg = msg.replace('<', ' ').replace('>', ' ').replace('&', ' ');
-			String cls = e.getClass().getSimpleName();
-			if (msg == null)
-				sb.append(MessageFormat.format("\nCaused by ({0})", cls));
-			else
-				sb.append(MessageFormat.format("\nCaused by ({0}): {1}", cls, msg));
-			e = e.getCause();
-		}
-		return sb.toString();
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		int i = 0;
-		Throwable t = this;
-		while (t != null) {
-			for (StackTraceElement e : t.getStackTrace())
-			i ^= e.hashCode();
-			t = t.getCause();
-		}
-		return i;
-	}
-
-	void setOccurrence(int occurrence) {
-		this.occurrence = occurrence;
-	}
-
-	/**
-	 * Returns the number of times this exception occurred on this servlet.
-	 * <p>
-	 * This only gets set if {@link RestServletContext#REST_useStackTraceHashes} is enabled on the servlet.
-	 *
-	 * @return The occurrence number if {@link RestServletContext#REST_useStackTraceHashes} is enabled, or <code>0</code> otherwise.
-	 */
-	public int getOccurrence() {
-		return occurrence;
-	}
-
-	/**
-	 * Returns the HTTP status code.
-	 *
-	 * @return The HTTP status code.
-	 */
-	public int getStatus() {
-		return status;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestGuard.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestGuard.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestGuard.java
deleted file mode 100755
index 46475ce..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestGuard.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * REST method guard.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Implements a guard mechanism for REST method calls that allows requests to be
- * 		rejected before invocation of the REST method.
- * 	For example, guards can be used to ensure that only administrators can call certain methods.
- * <p>
- * 	Guards are applied to REST methods declaratively through the {@link RestResource#guards()} or {@link RestMethod#guards()} annotations.
- * <p>
- * 	If multiple guards are specified, ALL guards must pass in order for the request to proceed.
- *
- *
- * <h6 class='topic'>How to implement</h6>
- * <p>
- * 	Typically, guards will be used for permissions checking on the user making the request,
- * 		but it can also be used for other purposes like pre-call validation of a request.
- * <p>
- * 	Implementers should simply throw a {@link RestException} from the {@link #guard(RestRequest, RestResponse)}
- * 		method to abort processing on the current request.
- * <p>
- * 	Guards must implement a no-args constructor.
- *
- *
- * <h6 class='topic'>Example usage</h6>
- * <p class='bcode'>
- * 	<jk>public</jk> MyResource <jk>extends</jk> RestServlet {
- *
- * 		<jc>// Delete method with guard that only allows Billy to call it.</jc>
- * 		<ja>@RestMethod</ja>(name=<js>"DELETE"</js>, guards=BillyGuard.<jk>class</jk>)
- * 		<jk>public</jk> doDelete(RestRequest req, RestResponse res) <jk>throws</jk> Exception {...}
- * 	}
- * </p>
- *
- *
- * <h6 class='topic'>Example implementation</h6>
- * <p class='bcode'>
- * 	<jc>// Define a guard that only lets Billy make a request</jc>
- * 	<jk>public</jk> BillyGuard <jk>extends</jk> RestGuard {
- *
- * 		<ja>@Override</ja>
- * 		<jk>public boolean</jk> isRequestAllowed(RestRequest req) {
- * 			return req.getUserPrincipal().getName().contains(<js>"Billy"</js>);
- * 		}
- * 	}
- * </p>
- */
-public abstract class RestGuard {
-
-	/**
-	 * Checks the current HTTP request and throws a {@link RestException} if the guard
-	 * 	does not permit the request.
-	 * <p>
-	 * 	By default, throws an <jsf>SC_FORBIDDEN</jsf> exception if {@link #isRequestAllowed(RestRequest)}
-	 * 	returns <jk>false</jk>.
-	 * <p>
-	 * 	Subclasses are free to override this method to tailor the behavior of how to handle unauthorized
-	 * 	requests.
-	 *
-	 * @param req The servlet request.
-	 * @param res The servlet response.
-	 * @throws RestException Thrown to abort processing on current request.
-	 * @return <jk>true</jk> if request can proceed.
-	 * 	Specify <jk>false</jk> if you're doing something like a redirection to a login page.
-	 */
-	public boolean guard(RestRequest req, RestResponse res) throws RestException {
-		if (! isRequestAllowed(req))
-			throw new RestException(SC_FORBIDDEN, "Access denied by guard");
-		return true;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified request can pass through this guard.
-	 *
-	 * @param req The servlet request.
-	 * @return <jk>true</jk> if the specified request can pass through this guard.
-	 */
-	public abstract boolean isRequestAllowed(RestRequest req);
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestMatcher.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestMatcher.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestMatcher.java
deleted file mode 100755
index c2513f7..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestMatcher.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Class used for defining method-level matchers using the {@link RestMethod#matchers()} annotation.
- * <p>
- * Matchers are used to allow multiple Java methods to handle requests assigned to the same
- * 	URL path pattern, but differing based on some request attribute, such as a specific header value.
- * For example, matchers can be used to provide two different methods for handling requests
- * 	from two different client versions.
- * <p>
- * Java methods with matchers associated with them are always attempted before Java methods
- * 	without matchers.
- * This allows a 'default' method to be defined to handle requests where no matchers match.
- * <p>
- * When multiple matchers are specified on a method, only one matcher is required to match.
- * This is opposite from the {@link RestMethod#guards()} annotation, where all guards
- * 	are required to match in order to execute the method.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<jk>public class</jk> MyResource <jk>extends</jk> RestServlet {
- *
- * 		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo"</js>, matchers=IsDNT.<jk>class</jk>)
- * 		<jk>public</jk> Object doGetWithDNT() {
- * 			<jc>// Handle request with Do-Not-Track specified</jc>
- * 		}
- *
- * 		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo"</js>)
- * 		<jk>public</jk> Object doGetWithoutDNT() {
- * 			<jc>// Handle request without Do-Not-Track specified</jc>
- * 		}
- * 	}
- *
- * 	<jk>public class</jk> IsDNT <jk>extends</jk> RestMatcher {
- * 		<ja>@Override</ja>
- * 		<jk>public boolean</jk> matches(RestRequest req) {
- * 			<jk>return</jk> req.getHeader(<jk>int</jk>.<jk>class</jk>, <js>"DNT"</js>, 0) == 1;
- * 		}
- * 	}
- * </p>
- */
-public abstract class RestMatcher {
-
-	/**
-	 * Returns <jk>true</jk> if the specified request matches this matcher.
-	 *
-	 * @param req The servlet request.
-	 * @return <jk>true</jk> if the specified request matches this matcher.
-	 */
-	public abstract boolean matches(RestRequest req);
-
-	/**
-	 * Returns <jk>true</jk> if this matcher is required to match in order for the method to be invoked.
-	 * <p>
-	 * If <jk>false</jk>, then only one of the matchers must match.
-	 *
-	 * @return <jk>true</jk> if this matcher is required to match in order for the method to be invoked.
-	 */
-	public boolean mustMatch() {
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestMatcherReflecting.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestMatcherReflecting.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestMatcherReflecting.java
deleted file mode 100644
index 3140559..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestMatcherReflecting.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.lang.reflect.*;
-
-/**
- * Subclass of {@link RestMatcher} that gives access to the servlet and Java method it's applied to.
- * <p>
- * 	Essentially the same as {@link RestMatcher} except has a constructor where the
- * 	Java method is passed in so that you can access annotations defined on it to tailor
- * 	the behavior of the matcher.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public abstract class RestMatcherReflecting extends RestMatcher {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param servlet The REST servlet.
-	 * @param javaMethod The Java method that this rest matcher is defined on.
-	 */
-	protected RestMatcherReflecting(RestServlet servlet, Method javaMethod) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestRequest.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestRequest.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestRequest.java
deleted file mode 100755
index 29ce04d..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestRequest.java
+++ /dev/null
@@ -1,1764 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import static java.util.Collections.*;
-import static java.util.logging.Level.*;
-import static javax.servlet.http.HttpServletResponse.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.text.*;
-import java.util.*;
-import java.util.logging.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.encoders.Encoder;
-import org.apache.juneau.ini.*;
-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.server.labels.*;
-import org.apache.juneau.server.labels.Var;
-import org.apache.juneau.svl.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.utils.*;
-
-/**
- * Represents an HTTP request for a REST resource.
- * <p>
- * 	Equivalent to {@link HttpServletRequest} except with some additional convenience methods.
- * </p>
- * <p>
- * 	For reference, given the URL <js>"http://localhost:9080/contextRoot/servletPath/foo?bar=baz#qux"</js>, the
- * 	following methods return the following values....
- * </p>
- * <table class='styled'>
- * 	<tr><th>Method</th><th>Value</th></tr>
- * 	<tr><td>{@code getContextPath()}</td><td>{@code /contextRoot}</td></tr>
- * 	<tr><td>{@code getPathInfo()}</td><td>{@code /foo}</td></tr>
- * 	<tr><td>{@code getPathTranslated()}</td><td>{@code path-to-deployed-war-on-filesystem/foo}</td></tr>
- * 	<tr><td>{@code getQueryString()}</td><td>{@code bar=baz}</td></tr>
- * 	<tr><td>{@code getRequestURI()}</td><td>{@code /contextRoot/servletPath/foo}</td></tr>
- * 	<tr><td>{@code getRequestURL()}</td><td>{@code http://localhost:9080/contextRoot/servletPath/foo}</td></tr>
- * 	<tr><td>{@code getServletPath()}</td><td>{@code /servletPath}</td></tr>
- * </table>
- * <p>
- * 	Refer to <a class='doclink' href='package-summary.html#TOC'>REST Servlet API</a> for information about using this class.
- * </p>
- *
- * @author jbognar
- */
-@SuppressWarnings("unchecked")
-public final class RestRequest extends HttpServletRequestWrapper {
-
-	private final RestServlet servlet;
-	private String method, pathRemainder, content;
-	Method javaMethod;
-	private ObjectMap properties;
-	private SerializerGroup serializerGroup;
-	private ParserGroup parserGroup;
-	private Encoder encoder;
-	private int contentLength;
-	private final boolean debug;
-	private UrlEncodingParser urlEncodingParser;   // The parser used to parse URL attributes and parameters (beanContext also used to parse headers)
-	private BeanContext beanContext;
-	private VarResolverSession varSession;
-	private Map<String,String[]> queryParams;
-	private Map<String,String> defaultServletHeaders, defaultMethodHeaders, overriddenHeaders, overriddenParams;
-	private boolean isPost;
-	private String servletURI, relativeServletURI;
-	private String charset, defaultCharset;
-	private ObjectMap headers;
-	private ConfigFile cf;
-
-	/**
-	 * Constructor.
-	 */
-	RestRequest(RestServlet servlet, HttpServletRequest req) throws ServletException {
-		super(req);
-
-		try {
-			this.servlet = servlet;
-			isPost = req.getMethod().equalsIgnoreCase("POST");
-
-			// If this is a POST, we want to parse the query parameters ourselves to prevent
-			// the servlet code from processing the HTTP body as URL-Encoded parameters.
-			if (isPost)
-				queryParams = servlet.getUrlEncodingParser().parseIntoSimpleMap(getQueryString());
-			else {
-				queryParams = req.getParameterMap();
-			}
-
-			// Get the HTTP method.
-			// Can be overridden through a "method" GET attribute.
-			method = super.getMethod();
-
-			String m = getQueryParameter("method");
-			if (! StringUtils.isEmpty(m) && (servlet.context.allowMethodParams.contains(m) || servlet.context.allowMethodParams.contains("*")))
-				method = m;
-
-			if (servlet.context.allowContentParam)
-				content = getQueryParameter("content");
-
-			defaultServletHeaders = servlet.getDefaultRequestHeaders();
-
-			debug = "true".equals(getQueryParameter("debug", "false"));
-
-			if (debug) {
-				servlet.log(Level.INFO, toString());
-			}
-
-		} catch (RestException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new ServletException(e);
-		}
-	}
-
-	/*
-	 * Called from RestServlet after a match has been made but before the guard or method invocation.
-	 */
-	@SuppressWarnings("hiding")
-	final void init(Method javaMethod, String pathRemainder, ObjectMap properties, Map<String,String> mDefaultRequestHeaders, String defaultCharset, SerializerGroup mSerializers, ParserGroup mParsers, UrlEncodingParser mUrlEncodingParser) {
-		this.javaMethod = javaMethod;
-		this.pathRemainder = pathRemainder;
-		this.properties = properties;
-		this.defaultMethodHeaders = mDefaultRequestHeaders;
-		this.serializerGroup = mSerializers;
-		this.parserGroup = mParsers;
-		this.urlEncodingParser = mUrlEncodingParser;
-		this.beanContext = urlEncodingParser.getBeanContext();
-		this.defaultCharset = defaultCharset;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the request contains any of the specified parameters.
-	 *
-	 * @param params The list of parameters to check for.
-	 * @return <jk>true</jk> if the request contains any of the specified parameters.
-	 */
-	public boolean hasAnyQueryParameters(String...params) {
-		for (String p : params)
-			if (hasQueryParameter(p))
-				return true;
-		return false;
-	}
-
-	/**
-	 * Returns a string of the form <js>"HTTP method-name full-url"</js>
-	 *
-	 * @return A description of the request.
-	 */
-	public String getDescription() {
-		String qs = getQueryString();
-		return "HTTP " + getMethod() + " " + getRequestURI() + (qs == null ? "" : "?" + qs);
-	}
-
-	/**
-	 * Servlet calls this method to initialize the properties.
-	 */
-	RestRequest setProperties(ObjectMap properties) {
-		this.properties = properties;
-		return this;
-	}
-
-	/**
-	 * Retrieve the properties active for this request.
-	 * These properties can be modified by the request.
-	 *
-	 * @return The properties active for this request.
-	 */
-	public ObjectMap getProperties() {
-		return this.properties;
-	}
-
-	/**
-	 * Returns the <code>Content-Type</code> header value on the request, stripped
-	 * 	of any parameters such as <js>";charset=X"</js>.
-	 * <p>
-	 * Example: <js>"text/json"</js>.
-	 * <p>
-	 * If the content type is not specified, and the content is specified via a
-	 * 	<code>&content</code> query parameter, the content type is assumed to be
-	 * 	<js>"text/uon"</js>.  Otherwise, the
-	 * 	content type is assumed to be <js>"text/json"</js>.
-	 *
-	 * @return The <code>Accept</code> media-type header values on the request.
-	 */
-	public String getMediaType() {
-		String cm = getHeader("Content-Type");
-		if (cm == null) {
-			if (content != null)
-				return "text/uon";
-			return "text/json";
-		}
-		int j = cm.indexOf(';');
-		if (j != -1)
-			cm = cm.substring(0, j);
-		return cm;
-	}
-
-	/**
-	 * Returns the media types that are valid for <code>Content-Type</code> headers on the request.
-	 *
-	 * @return The set of media types registered in the parser group of this request.
-	 */
-	public List<String> getSupportedMediaTypes() {
-		return parserGroup.getSupportedMediaTypes();
-	}
-
-	/**
-	 * Returns the charset specified on the <code>Content-Type</code> header, or
-	 * <js>"UTF-8"</js> if not specified.
-	 */
-	@Override /* ServletRequest */
-	public String getCharacterEncoding() {
-		if (charset == null) {
-			// Determine charset
-			// NOTE:  Don't use super.getCharacterEncoding() because the spec is implemented inconsistently.
-			// Jetty returns the default charset instead of null if the character is not specified on the request.
-			String h = getHeader("Content-Type");
-			if (h != null) {
-				int i = h.indexOf(";charset=");
-				if (i > 0)
-					charset = h.substring(i+9).trim();
-			}
-			if (charset == null)
-				charset = defaultCharset;
-			if (! RestServlet.availableCharsets.containsKey(charset))
-				throw new RestException(SC_UNSUPPORTED_MEDIA_TYPE, "Unsupported charset in header ''Content-Type'': ''{0}''", h);
-		}
-		return charset;
-	}
-
-	/**
-	 * Sets the charset to expect on the request body.
-	 */
-	@Override /* ServletRequest */
-	public void setCharacterEncoding(String charset) {
-		this.charset = charset;
-	}
-
-	/**
-	 * Returns the specified header value, or <jk>null</jk> if the header value isn't present.
-	 * <p>
-	 * 	If {@code allowHeaderParams} init parameter is <jk>true</jk>, then first looks
-	 * 	for {@code &HeaderName=x} in the URL query string.
-	 */
-	@Override /* ServletRequest */
-	public String getHeader(String name) {
-		return getHeader(name, (String)null);
-	}
-
-	/**
-	 * Returns all the request headers as an {@link ObjectMap}.
-	 * <p>
-	 * Altering entries in this map does not alter headers in the underlying request.
-	 *
-	 * @return The request headers.  Never <jk>null</jk>.
-	 */
-	public ObjectMap getHeaders() {
-		if (headers == null) {
-			headers = new ObjectMap();
-			for (Enumeration<String> e = getHeaderNames(); e.hasMoreElements();) {
-				String key = e.nextElement();
-				headers.put(key, getHeader(key));
-			}
-		}
-		return headers;
-	}
-
-	/**
-	 * Set the request header to the specified value.
-	 *
-	 * @param name The header name.
-	 * @param value The header value.
-	 */
-	public void setHeader(String name, String value) {
-		if (overriddenHeaders == null)
-			overriddenHeaders = new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER);
-		overriddenHeaders.put(name, value);
-	}
-
-	/**
-	 * Set the request parameter to the specified value.
-	 *
-	 * @param name The parameter name.
-	 * @param value The parameter value.
-	 */
-	public void setParameter(String name, Object value) {
-		if (overriddenParams == null)
-			overriddenParams = new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER);
-		overriddenParams.put(name, value == null ? null : value.toString());
-	}
-
-	/**
-	 * Returns the specified header value, or the specified default value if the
-	 * 	header value isn't present.
-	 * <p>
-	 * 	If {@code allowHeaderParams} init parameter is <jk>true</jk>, then first looks
-	 * 	for {@code &HeaderName=x} in the URL query string.
-	 *
-	 * @param name The HTTP header name.
-	 * @param def The default value to return if the header value isn't found.
-	 * @return The header value, or the default value if the header isn't present.
-	 */
-	public String getHeader(String name, String def) {
-		String h = getOverriddenHeader(name);
-		if (h != null)
-			return h;
-		h = super.getHeader(name);
-		if (h != null && ! h.isEmpty())
-			return h;
-		if (defaultMethodHeaders != null) {
-			h = defaultMethodHeaders.get(name);
-			if (h != null)
-				return h;
-		}
-		h = defaultServletHeaders.get(name);
-		if (h != null)
-			return h;
-		return def;
-	}
-
-	@Override /* ServletRequest */
-	public Enumeration<String> getHeaders(String name) {
-		String h = getOverriddenHeader(name);
-		if (h != null)
-			return enumeration(singleton(h));
-		return super.getHeaders(name);
-	}
-
-	/*
-	 * Returns header value from URL-parameters or set via setHeader() meant
-	 * to override actual header values on the request.
-	 */
-	private String getOverriddenHeader(String name) {
-		String h = null;
-		if (servlet.context.allowHeaderParams)
-			h = getQueryParameter(name);
-		if (h != null)
-			return h;
-		if (overriddenHeaders != null) {
-			h = overriddenHeaders.get(name);
-			if (h != null)
-				return h;
-		}
-		return h;
-	}
-
-	@Override /* ServletRequest */
-	public Locale getLocale() {
-		String h = getOverriddenHeader("Accept-Language");
-		if (h != null) {
-			MediaRange[] mr = MediaRange.parse(h);
-			if (mr.length > 0)
-				return toLocale(mr[0].getType());
-		}
-		return super.getLocale();
-	}
-
-	@Override /* ServletRequest */
-	public Enumeration<Locale> getLocales() {
-		String h = getOverriddenHeader("Accept-Language");
-		if (h != null) {
-			MediaRange[] mr = MediaRange.parse(h);
-			if (mr.length > 0) {
-				List<Locale> l = new ArrayList<Locale>(mr.length);
-				for (MediaRange r : mr)
-					l.add(toLocale(r.getType()));
-				return enumeration(l);
-			}
-		}
-		return super.getLocales();
-	}
-
-	/**
-	 * Converts an Accept-Header value entry to a Locale.
-	 */
-	private Locale toLocale(String lang) {
-      String country = "";
-      int i = lang.indexOf('-');
-      if (i > -1) {
-          country = lang.substring(i+1).trim();
-          lang = lang.substring(0,i).trim();
-      }
-      return new Locale(lang, country);
-	}
-
-	/**
-	 * Returns the serializers associated with this request.
-	 *
-	 * @return The serializers associated with this request.
-	 */
-	public SerializerGroup getSerializerGroup() {
-		return serializerGroup;
-	}
-
-	/**
-	 * Returns the parsers associated with this request.
-	 *
-	 * @return The parsers associated with this request.
-	 */
-	public ParserGroup getParserGroup() {
-		return parserGroup;
-	}
-
-	/**
-	 * Returns the method of this request.
-	 * <p>
-	 * 	If <code>allowHeaderParams</code> init parameter is <jk>true</jk>, then first looks
-	 * 	for <code>&method=xxx</code> in the URL query string.
-	 */
-	@Override /* ServletRequest */
-	public String getMethod() {
-		return method;
-	}
-
-	/**
-	 * Returns the parameter with the specified name.
-	 * <p>
-	 * Returns <jk>null</jk> for parameters with no value (e.g. <js>"&foo"</js>).
-	 * This is consistent with WAS, but differs from Tomcat behavior.
-	 * The presence of parameter <js>"&foo"</js> in this case can be determined using {@link #hasParameter(String)}.
-	 * <p>
-	 * Parameter lookup is case-insensitive (consistent with WAS, but differs from Tomcat).
-	 * <p>
-	 * <i>Note:</i> Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by
-	 * 	the underlying servlet API.
-	 * <p>
-	 * <i>Note:</i> This method returns the raw unparsed value, and differs from calling <code>getParameter(name, String.<jk>class</js>)</code>
-	 * 	which will convert the value from UON notation:
-	 * <ul>
-	 * 	<li><js>"\u0000"</js> =&gt; <jk>null</jk>
-	 * 	<li><js>"$s(foo)"</js> =&gt; <js>"foo"</js>
-	 * 	<li><js>"(foo)"</js> =&gt; <js>"foo"</js>
-	 * </ul>
-	 */
-	@Override /* ServletRequest */
-	public String getParameter(String name) {
-		String s = null;
-		if (overriddenParams != null)
-			s = overriddenParams.get(name);
-		if (s != null)
-			return s;
-
-		String val = super.getParameter(name);
-
-		// Fix for behavior difference between Tomcat and WAS.
-		// getParameter("foo") on "&foo" in Tomcat returns "".
-		// getParameter("foo") on "&foo" in WAS returns null.
-		if (val != null && val.isEmpty())
-			if (queryParams.containsKey(name))
-				val = null;
-
-		return val;
-	}
-
-	/**
-	 * Same as {@link #getParameter(String)} except returns the default value
-	 * 	if <jk>null</jk> or empty.
-	 *
-	 * @param name The query parameter name.
-	 * @param def The default value.
-	 * @return The parameter value, or the default value if <jk>null</jk> or empty.
-	 */
-	public String getParameter(String name, String def) {
-		String val = getParameter(name);
-		if (val == null || val.isEmpty())
-			return def;
-		return val;
-	}
-
-	/**
-	 * Returns the specified URL parameter value parsed to the specified class type using the
-	 * 	{@link UrlEncodingParser} registered with this servlet.
-	 * <p>
-	 * <i>Note:</i> Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by
-	 * 	the underlying servlet API.
-	 *
-	 * @param name The parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @param def The default value if the parameter was not specified or is <jk>null</jk>.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getParameter(String name, Class<T> c, T def) throws ParseException {
-		return getParameter(name, beanContext.getClassMeta(c), def);
-	}
-
-	/**
-	 * Returns the specified URL parameter value parsed to the specified class type using the
-	 * 	{@link UrlEncodingParser} registered with this servlet.
-	 * <p>
-	 * <i>Note:</i> Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by
-	 * 	the underlying servlet API.
-	 * <p>
-	 * Unlike {@link #getParameter(String, Class, Object)}, this method can be used to parse parameters
-	 * 	of complex types involving JCF classes.
-	 * <p class='bcode'>
-	 * 	ClassMeta&ltMap&lt;String,Integer&gt;&gt; cm = request.getBeanContext().getMapClassMeta(TreeMap.<jk>class</jk>, String.<jk>class</jk>, Integer.<jk>class</jk>);
-	 * 	Map&lt;String,Integer&gt; m = request.getParameter(<js>"myParameter"</js>, cm, <jk>new</jk> TreeMap&lt;String,Integer&gt;());
-	 * </p>
-	 *
-	 * @param name The parameter name.
-	 * @param cm The class type to convert the parameter value to.
-	 * @param def The default value if the parameter was not specified or is <jk>null</jk>.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getParameter(String name, ClassMeta<T> cm, T def) throws ParseException {
-		String val = getParameter(name);
-		if (val == null)
-			return def;
-		return parseParameter(val, cm);
-	}
-
-	/**
-	 * Returns the specified URL parameter value parsed to the specified class type using the
-	 * 	{@link UrlEncodingParser} registered with this servlet.
-	 * <p>
-	 * <i>Note:</i> Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by
-	 * 	the underlying servlet API.
-	 *
-	 * @param name The parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getParameter(String name, Class<T> c) throws ParseException {
-		return getParameter(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Same as {@link #getParameter(String, Class)} except for use on multi-part parameters
-	 * 	(e.g. <js>"&key=1&key=2&key=3"</js> instead of <js>"&key=(1,2,3)"</js>)
-	 * <p>
-	 * 	This method must only be called when parsing into classes of type Collection or array.
-	 *
-	 * @param name The parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getParameters(String name, Class<T> c) throws ParseException {
-		return getParameters(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Same as {@link #getParameter(String, Class)} except works on parameterized
-	 * types such as those returned by {@link Method#getGenericParameterTypes()}
-	 *
-	 * @param name The parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getParameter(String name, Type c) throws ParseException {
-		return (T)getParameter(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Same as {@link #getParameter(String, Class)} except for use on multi-part parameters
-	 * 	(e.g. <js>"&key=1&key=2&key=3"</js> instead of <js>"&key=(1,2,3)"</js>)
-	 * <p>
-	 * 	This method must only be called when parsing into classes of type Collection or array.
-	 *
-	 * @param name The parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getParameters(String name, Type c) throws ParseException {
-		return (T)getParameters(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Returns the specified URL parameter value parsed to the specified class type using the
-	 * 	{@link UrlEncodingParser} registered with this servlet.
-	 * <p>
-	 * <i>Note:</i> Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by
-	 * 	the underlying servlet API.
-	 * <p>
-	 * Unlike {@link #getParameter(String, Class)}, this method can be used to parse parameters
-	 * 	of complex types involving JCF classes.
-	 * <p class='bcode'>
-	 * 	ClassMeta&lt;Map&lt;String,Integer&gt;&gt; cm = request.getBeanContext().getMapClassMeta(TreeMap.<jk>class</jk>, String.<jk>class</jk>, Integer.<jk>class</jk>);
-	 * 	Map&lt;String,Integer&gt; m = request.getParameter(<js>"myParameter"</js>, cm);
-	 * </p>
-	 *
-	 * @param name The parameter name.
-	 * @param cm The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getParameter(String name, ClassMeta<T> cm) throws ParseException {
-
-		String val = getParameter(name);
-
-		if (cm.isPrimitive() && (val == null || val.isEmpty()))
-			return cm.getPrimitiveDefault();
-
-		return parseParameter(val, cm);
-	}
-
-	/**
-	 * Same as {@link #getParameter(String, ClassMeta)} except for use on multi-part parameters
-	 * 	(e.g. <js>"&key=1&key=2&key=3"</js> instead of <js>"&key=(1,2,3)"</js>)
-	 * <p>
-	 * 	This method must only be called when parsing into classes of type Collection or array.
-	 *
-	 * @param name The parameter name.
-	 * @param cm The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	@SuppressWarnings("rawtypes")
-	public <T> T getParameters(String name, ClassMeta<T> cm) throws ParseException {
-		String[] p = getParameterValues(name);
-		if (p == null)
-			return null;
-		if (cm.isArray()) {
-			List c = new ArrayList();
-			for (int i = 0; i < p.length; i++)
-				c.add(parseParameter(p[i], cm.getElementType()));
-			return (T)ArrayUtils.toArray(c, cm.getElementType().getInnerClass());
-		} else if (cm.isCollection()) {
-			try {
-				Collection c = (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new ObjectList());
-				for (int i = 0; i < p.length; i++)
-					c.add(parseParameter(p[i], cm.getElementType()));
-				return (T)c;
-			} catch (ParseException e) {
-				throw e;
-			} catch (Exception e) {
-				// Typically an instantiation exception.
-				throw new ParseException(e);
-			}
-		}
-		throw new ParseException("Invalid call to getParameters(String, ClassMeta).  Class type must be a Collection or array.");
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the URL parameters on this request contains the specified entry.
-	 * <p>
-	 * Note that this returns <jk>true</jk> even if the value is set to null (e.g. <js>"?key"</js>).
-	 *
-	 * @param name The URL parameter name.
-	 * @return <jk>true</jk> if the URL parameters on this request contains the specified entry.
-	 */
-	public boolean hasParameter(String name) {
-		return getParameterMap().containsKey(name);
-	}
-
-	/**
-	 * Same as {@link #getParameter(String)} except only looks in the URL string,
-	 * 	not parameters from URL-Encoded FORM posts.
-	 * <p>
-	 * This method can be used to retrieve a parameter without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 *
-	 * @param name The URL parameter name.
-	 * @return The parameter value, or <jk>null</jk> if parameter not specified or has no value (e.g. <js>"&foo"</js>.
-	 */
-	public String getQueryParameter(String name) {
-		String s = null;
-		if (overriddenParams != null)
-			s = overriddenParams.get(name);
-		if (s != null)
-			return s;
-		String[] v = queryParams.get(name);
-		if (v == null || v.length == 0)
-			return null;
-		if (v.length == 1 && v[0] != null && v[0].isEmpty()) {
-			// Fix for behavior difference between Tomcat and WAS.
-			// getParameter("foo") on "&foo" in Tomcat returns "".
-			// getParameter("foo") on "&foo" in WAS returns null.
-			if (queryParams.containsKey(name))
-				return null;
-		}
-
-		return v[0];
-	}
-
-	/**
-	 * Same as {@link #getQueryParameter(String)} but returns the specified default
-	 * 	value if the query parameter was not specified.
-	 *
-	 * @param name The URL parameter name.
-	 * @param def The default value.
-	 * @return The parameter value, or the default value if parameter not specified or has no value (e.g. <js>"&foo"</js>.
-	 */
-	public String getQueryParameter(String name, String def) {
-		String s = getQueryParameter(name);
-		return s == null ? def : s;
-	}
-
-	/**
-	 * Same as {@link #getParameter(String, Class, Object)} except only looks in the URL string,
-	 * 	not parameters from URL-Encoded FORM posts.
-	 * <p>
-	 * This method can be used to retrieve a parameter without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 *
-	 * @param name The parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @param def The default value if the parameter was not specified or is <jk>null</jk>.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getQueryParameter(String name, Class<T> c, T def) throws ParseException {
-		return getQueryParameter(name, beanContext.getClassMeta(c), def);
-	}
-
-	/**
-	 * Same as {@link #getParameter(String, ClassMeta, Object)} except only looks in the URL string,
-	 * 	not parameters from URL-Encoded FORM posts.
-	 * <p>
-	 * This method can be used to retrieve a parameter without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 *
-	 * @param name The parameter name.
-	 * @param cm The class type to convert the parameter value to.
-	 * @param def The default value if the parameter was not specified or is <jk>null</jk>.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getQueryParameter(String name, ClassMeta<T> cm, T def) throws ParseException {
-		String val = getQueryParameter(name);
-		if (val == null)
-			return def;
-		return parseParameter(val, cm);
-	}
-
-	/**
-	 * Same as {@link #getParameter(String, ClassMeta, Object)} except only looks in the URL string,
-	 * 	not parameters from URL-Encoded FORM posts.
-	 * <p>
-	 * This method can be used to retrieve a parameter without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 *
-	 * @param name The parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getQueryParameter(String name, Class<T> c) throws ParseException {
-		return getQueryParameter(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Same as {@link #getQueryParameter(String, Class)} except for use on multi-part parameters
-	 * 	(e.g. <js>"&key=1&key=2&key=3"</js> instead of <js>"&key=(1,2,3)"</js>).
-	 * <p>
-	 * 	This method must only be called when parsing into classes of type Collection or array.
-	 *
-	 * @param name The query parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The query parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getQueryParameters(String name, Class<T> c) throws ParseException {
-		return getQueryParameters(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Same as {@link #getQueryParameter(String, Class)} except works on parameterized
-	 * types such as those returned by {@link Method#getGenericParameterTypes()}
-	 *
-	 * @param name The query parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The query parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getQueryParameter(String name, Type c) throws ParseException {
-		return (T)getQueryParameter(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Same as {@link #getQueryParameter(String, Type)} except for use on multi-part parameters
-	 * 	(e.g. <js>"&key=1&key=2&key=3"</js> instead of <js>"&key=(1,2,3)"</js>).
-	 * <p>
-	 * 	This method must only be called when parsing into classes of type Collection or array.
-	 *
-	 * @param name The query parameter name.
-	 * @param c The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The query parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getQueryParameters(String name, Type c) throws ParseException {
-		return (T)getQueryParameters(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Same as {@link #getParameter(String, ClassMeta)} except only looks in the URL string,
-	 * 	not parameters from URL-Encoded FORM posts.
-	 * <p>
-	 * This method can be used to retrieve a parameter without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 *
-	 * @param name The parameter name.
-	 * @param cm The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getQueryParameter(String name, ClassMeta<T> cm) throws ParseException {
-
-		String val = getQueryParameter(name);
-
-		if (cm.isPrimitive() && (val == null || val.isEmpty()))
-			return cm.getPrimitiveDefault();
-		return parseParameter(val, cm);
-	}
-
-	/**
-	 * Same as {@link #getQueryParameter(String, ClassMeta)} except for use on multi-part parameters
-	 * 	(e.g. <js>"&key=1&key=2&key=3"</js> instead of <js>"&key=(1,2,3)"</js>).
-	 * <p>
-	 * 	This method must only be called when parsing into classes of type Collection or array.
-	 *
-	 * @param name The parameter name.
-	 * @param cm The class type to convert the parameter value to.
-	 * @param <T> The class type to convert the parameter value to.
-	 * @return The parameter value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	@SuppressWarnings("rawtypes")
-	public <T> T getQueryParameters(String name, ClassMeta<T> cm) throws ParseException {
-		String[] p = getQueryParameters(name);
-		if (p == null)
-			return null;
-		if (cm.isArray()) {
-			List c = new ArrayList();
-			for (int i = 0; i < p.length; i++)
-				c.add(parseParameter(p[i], cm.getElementType()));
-			return (T)ArrayUtils.toArray(c, cm.getElementType().getInnerClass());
-		} else if (cm.isCollection()) {
-			try {
-				Collection c = (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new ObjectList());
-				for (int i = 0; i < p.length; i++)
-					c.add(parseParameter(p[i], cm.getElementType()));
-				return (T)c;
-			} catch (ParseException e) {
-				throw e;
-			} catch (Exception e) {
-				// Typically an instantiation exception.
-				throw new ParseException(e);
-			}
-		}
-		throw new ParseException("Invalid call to getQueryParameters(String, ClassMeta).  Class type must be a Collection or array.");
-	}
-
-	/**
-	 * Returns the list of all query parameters with the specified name.
-	 * Same as {@link #getParameterValues(String)} except only looks in the URL string,
-	 * 	not parameters from URL-Encoded FORM posts.
-	 * <p>
-	 * This method can be used to retrieve parameters without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 *
-	 * @param name
-	 * @return the list of query parameters, or <jk>null</jk> if the parameter does not exist.
-	 */
-	public String[] getQueryParameters(String name) {
-		return queryParams.get(name);
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the URL parameters on this request contains the specified entry.
-	 * <p>
-	 * Note that this returns <jk>true</jk> even if the value is set to null (e.g. <js>"?key"</js>).
-	 * <p>
-	 * This method can be used to check the existence of a parameter without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 *
-	 * @param name The URL parameter name.
-	 * @return <jk>true</jk> if the URL parameters on this request contains the specified entry.
-	 */
-	public boolean hasQueryParameter(String name) {
-		return queryParams.containsKey(name);
-	}
-
-	/**
-	 * Equivalent to {@link #getParameterMap()}, but only looks for query parameters in the URL, not form posts.
-	 * <p>
-	 * This method can be used to retrieve query parameters without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 * <p>
-	 * This object is modifiable.
-	 *
-	 * @return The query parameters as a modifiable map.
-	 */
-	public Map<String,String[]> getQueryParameterMap() {
-		return queryParams;
-	}
-
-	/**
-	 * Equivalent to {@link #getParameterNames()}, but only looks for query parameters in the URL, not form posts.
-	 * <p>
-	 * This method can be used to retrieve query parameters without triggering the underlying
-	 * 	servlet API to load and parse the request body.
-	 * <p>
-	 * This object is modifiable.
-	 *
-	 * @return An iterator of query parameter names.
-	 */
-	public Iterator<String> getQueryParameterNames() {
-		return queryParams.keySet().iterator();
-	}
-
-	private <T> T parseParameter(String val, ClassMeta<T> c) throws ParseException {
-		if (val == null)
-			return null;
-		// Shortcut - If we're returning a string and the value doesn't start with '$' or '(', then
-		// just return the string since it's a plain value.
-		if (c.getInnerClass() == String.class && val.length() > 0) {
-			char x = val.charAt(0);
-			if (x != '(' && x != '$' && x != '\u0000' && val.indexOf('~') == -1)
-				return (T)val;
-		}
-		return urlEncodingParser.parseParameter(val, c);
-	}
-
-	/**
-	 * Shortcut for calling <code>getHeaders().get(c, name, def);</code>
-	 * <p>
-	 * 	The type can be any POJO type convertable from a <code>String</code> (See <a class='doclink' href='package-summary.html#PojosConvertableFromString'>POJOs Convertable From Strings</a>).
-	 *
-	 * @param name The HTTP header name.
-	 * @param c The class type to convert the header value to.
-	 * @param def The default value if the header was not specified or is <jk>null</jk>.
-	 * @param <T> The class type to convert the header value to.
-	 * @return The parameter value converted to the specified class type.
-	 */
-	public <T> T getHeader(String name, Class<T> c, T def) {
-		String h = getHeader(name);
-		if (h == null)
-			return def;
-		return beanContext.convertToType(h, c);
-	}
-
-	/**
-	 * Shortcut for calling <code>getHeaders().get(c, name);</code>
-	 * <p>
-	 * 	The type can be any POJO type convertable from a <code>String</code> (See <a class='doclink' href='package-summary.html#PojosConvertableFromString'>POJOs Convertable From Strings</a>).
-	 *
-	 * @param name The HTTP header name.
-	 * @param c The class type to convert the header value to.
-	 * @param <T> The class type to convert the header value to.
-	 * @return The parameter value converted to the specified class type.
-	 */
-	public <T> T getHeader(String name, Class<T> c) {
-		String h = getHeader(name);
-		return beanContext.convertToType(h, c);
-	}
-
-	/**
-	 * Same as {@link #getHeader(String, Class)} except works on parameterized
-	 * types such as those returned by {@link Method#getGenericParameterTypes()}
-	 *
-	 * @param name The HTTP header name.
-	 * @param c The class type to convert the header value to.
-	 * @param <T> The class type to convert the header value to.
-	 * @return The parameter value converted to the specified class type.
-	 */
-	public <T> T getHeader(String name, Type c) {
-		String h = getHeader(name);
-		return (T)beanContext.convertToType(null, h, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Returns the specified request attribute converted to the specified class type.
-	 * <p>
-	 * 	The type can be any POJO type convertable from a <code>String</code> (See <a class='doclink' href='package-summary.html#PojosConvertableFromString'>POJOs Convertable From Strings</a>).
-	 *
-	 * @param name The attribute name.
-	 * @param c The class type to convert the attribute value to.
-	 * @param <T> The class type to convert the attribute value to.
-	 * @return The attribute value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getAttribute(String name, Class<T> c) throws ParseException {
-		return getAttribute(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Same as {@link #getAttribute(String, Class)} except works on parameterized
-	 * types such as those returned by {@link Method#getGenericParameterTypes()}
-	 *
-	 * @param name The attribute name.
-	 * @param c The class type to convert the attribute value to.
-	 * @param <T> The class type to convert the attribute value to.
-	 * @return The attribute value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getAttribute(String name, Type c) throws ParseException {
-		return (T)getAttribute(name, beanContext.getClassMeta(c));
-	}
-
-	/**
-	 * Returns the specified request attribute converted to the specified class type.
-	 * <p>
-	 * 	The type can be any POJO type convertable from a <code>String</code> (See <a class='doclink' href='package-summary.html#PojosConvertableFromString'>POJOs Convertable From Strings</a>).
-	 *
-	 * @param name The attribute name.
-	 * @param cm The class type to convert the attribute value to.
-	 * @param <T> The class type to convert the attribute value to.
-	 * @return The attribute value converted to the specified class type.
-	 * @throws ParseException
-	 */
-	public <T> T getAttribute(String name, ClassMeta<T> cm) throws ParseException {
-		Object attr = getAttribute(name);
-		T t = null;
-		if (attr != null)
-			t = urlEncodingParser.parseParameter(attr.toString(), cm);
-		if (t == null && cm.isPrimitive())
-			return cm.getPrimitiveDefault();
-		return t;
-	}
-
-	/**
-	 * Same as {@link HttpServletRequest#getPathInfo()} except returns the path undecoded.
-	 *
-	 * @return The undecoded portion of the URL after the resource URL path pattern match.
-	 */
-	public String getPathInfoUndecoded() {
-		return RestUtils.getPathInfoUndecoded(this);
-	}
-
-	/**
-	 * Returns the value {@link #getPathInfo()} split on the <js>'/'</js> character.
-	 * <p>
-	 * If path info is <jk>null</jk>, returns an empty list.
-	 * <p>
-	 * URL-encoded characters in segments are automatically decoded by this method.
-	 *
-	 * @return The decoded segments, or an empty list if path info is <jk>null</jk>.
-	 */
-	public String[] getPathInfoParts() {
-		String s = getPathInfoUndecoded();
-		if (s == null || s.isEmpty() || s.equals("/"))
-			return new String[0];
-		s = s.substring(1);
-		if (s.endsWith("/"))
-			s = s.substring(0, s.length()-1);
-		boolean needsDecode = (s.indexOf('%') != -1 || s.indexOf('+') != -1);
-		String[] l = s.split("/", Integer.MAX_VALUE);
-		try {
-			if (needsDecode)
-				for (int i = 0; i < l.length; i++)
-					l[i] = URLDecoder.decode(l[i], "UTF-8");
-		} catch (UnsupportedEncodingException e) {
-			e.printStackTrace();  // Won't happen.
-		}
-		return l;
-	}
-
-	/**
-	 * Same as {@link #getInput(ClassMeta)}, except a shortcut for passing in regular {@link Class} objects
-	 * 	instead of having to look up {@link ClassMeta} objects.
-	 *
-	 * @param type The class type to instantiate.
-	 * @param <T> The class type to instantiate.
-	 * @return The input parsed to a POJO.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 * @throws ParseException If the input contains a syntax error or is malformed for the requested {@code Accept} header or is not valid for the specified type.
-	 */
-	public <T> T getInput(Class<T> type) throws IOException, ParseException {
-		return getInput(beanContext.getClassMeta(type));
-	}
-
-	/**
-	 * Same as {@link #getInput(Class)} except works on parameterized
-	 * types such as those returned by {@link Method#getGenericParameterTypes()}
-	 *
-	 * @param type The class type to instantiate.
-	 * @param <T> The class type to instantiate.
-	 * @return The input parsed to a POJO.
-	 */
-	public <T> T getInput(Type type) {
-		return (T)getInput(beanContext.getClassMeta(type));
-	}
-
-	/**
-	 * Reads the input from the HTTP request as JSON, XML, or HTML and converts the input to the specified class type.
-	 * <p>
-	 * 	If {@code allowHeaderParams} init parameter is <jk>true</jk>, then first looks
-	 * 	for {@code &content=xxx} in the URL query string.
-	 * <p>
-	 * 	If type is <jk>null</jk> or <code>Object.<jk>class</jk></code>, then the actual type will be determined automatically based on the
-	 * 	following input:
-	 * 	<table class='styled'>
-	 * 		<tr><th>Type</th><th>JSON input</th><th>XML input</th><th>Return type</th></tr>
-	 * 		<tr>
-	 * 			<td>object</td>
-	 * 			<td><js>"{...}"</js></td>
-	 * 			<td><code><xt>&lt;object&gt;</xt>...<xt>&lt;/object&gt;</xt></code><br><code><xt>&lt;x</xt> <xa>type</xa>=<xs>'object'</xs><xt>&gt;</xt>...<xt>&lt;/x&gt;</xt></code></td>
-	 * 			<td>{@link ObjectMap}</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>array</td>
-	 * 			<td><js>"[...]"</js></td>
-	 * 			<td><code><xt>&lt;array&gt;</xt>...<xt>&lt;/array&gt;</xt></code><br><code><xt>&lt;x</xt> <xa>type</xa>=<xs>'array'</xs><xt>&gt;</xt>...<xt>&lt;/x&gt;</xt></code></td>
-	 * 			<td>{@link ObjectList}</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>string</td>
-	 * 			<td><js>"'...'"</js></td>
-	 * 			<td><code><xt>&lt;string&gt;</xt>...<xt>&lt;/string&gt;</xt></code><br><code><xt>&lt;x</xt> <xa>type</xa>=<xs>'string'</xs><xt>&gt;</xt>...<xt>&lt;/x&gt;</xt></code></td>
-	 * 			<td>{@link String}</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>number</td>
-	 * 			<td><code>123</code></td>
-	 * 			<td><code><xt>&lt;number&gt;</xt>123<xt>&lt;/number&gt;</xt></code><br><code><xt>&lt;x</xt> <xa>type</xa>=<xs>'number'</xs><xt>&gt;</xt>...<xt>&lt;/x&gt;</xt></code></td>
-	 * 			<td>{@link Number}</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>boolean</td>
-	 * 			<td><jk>true</jk></td>
-	 * 			<td><code><xt>&lt;boolean&gt;</xt>true<xt>&lt;/boolean&gt;</xt></code><br><code><xt>&lt;x</xt> <xa>type</xa>=<xs>'boolean'</xs><xt>&gt;</xt>...<xt>&lt;/x&gt;</xt></code></td>
-	 * 			<td>{@link Boolean}</td>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<td>null</td>
-	 * 			<td><jk>null</jk> or blank</td>
-	 * 			<td><code><xt>&lt;null/&gt;</xt></code> or blank<br><code><xt>&lt;x</xt> <xa>type</xa>=<xs>'null'</xs><xt>/&gt;</xt></code></td>
-	 * 			<td><jk>null</jk></td>
-	 * 		</tr>
-	 * 	</table>
-	 * <p>
-	 * 	Refer to <a href='../core/package-summary.html#PojoCategories' class='doclink'>POJO Categories</a> for a complete definition of supported POJOs.
-	 *
-	 * @param type The class type to instantiate.
-	 * @param <T> The class type to instantiate.
-	 * @return The input parsed to a POJO.
-	 * @throws RestException If a problem occurred trying to read the input.
-	 */
-	public <T> T getInput(ClassMeta<T> type) throws RestException {
-
-		try {
-			if (type.isReader())
-				return (T)getReader();
-
-			if (type.isInputStream())
-				return (T)getInputStream();
-
-			String mediaType = getMediaType();
-			Parser p = getParser();
-
-			if (p != null) {
-				try {
-					properties.append("mediaType", mediaType).append("characterEncoding", getCharacterEncoding());
-					if (! p.isReaderParser()) {
-						InputStreamParser p2 = (InputStreamParser)p;
-						ParserSession session = p2.createSession(getInputStream(), properties, getJavaMethod(), getServlet());
-						return p2.parse(session, type);
-					}
-					ReaderParser p2 = (ReaderParser)p;
-					ParserSession session = p2.createSession(getUnbufferedReader(), properties, getJavaMethod(), getServlet());
-					return p2.parse(session, type);
-				} catch (ParseException e) {
-					throw new RestException(SC_BAD_REQUEST,
-						"Could not convert request body content to class type ''{0}'' using parser ''{1}''.",
-						type, p.getClass().getName()
-					).initCause(e);
-				}
-			}
-
-			throw new RestException(SC_UNSUPPORTED_MEDIA_TYPE,
-				"Unsupported media-type in request header ''Content-Type'': ''{0}''\n\tSupported media-types: {1}",
-				getHeader("Content-Type"), parserGroup.getSupportedMediaTypes()
-			);
-
-		} catch (IOException e) {
-			throw new RestException(SC_INTERNAL_SERVER_ERROR,
-				"I/O exception occurred while attempting to handle request ''{0}''.",
-				getDescription()
-			).initCause(e);
-		}
-	}
-
-	/**
-	 * Returns the parser matching the request <code>Accept</code> header.
-	 *
-	 * @return The parser matching the request <code>Accept</code> header, or <jk>null</jk>
-	 * 	if no matching parser was found.
-	 */
-	public Parser getParser() {
-		String mediaType = getMediaType();
-		Parser p = parserGroup.getParser(mediaType);
-
-		// If no patching parser for URL-encoding, use the one defined on the servlet.
-		if (p == null && mediaType.equals("application/x-www-form-urlencoded"))
-			p = urlEncodingParser;
-
-		return p;
-	}
-
-	/**
-	 * Returns the reader parser matching the request <code>Accept</code> header.
-	 *
-	 * @return The reader parser matching the request <code>Accept</code> header, or <jk>null</jk>
-	 * 	if no matching reader parser was found, or the matching parser was an input stream parser.
-	 */
-	public ReaderParser getReaderParser() {
-		Parser p = getParser();
-		if (p.isReaderParser())
-			return (ReaderParser)p;
-		return null;
-	}
-
-	/**
-	 * Returns the HTTP body content as a plain string.
-	 * <p>
-	 * 	If {@code allowHeaderParams} init parameter is true, then first looks
-	 * 	for {@code &content=xxx} in the URL query string.
-	 *
-	 * @return The incoming input from the connection as a plain string.
-	 * @throws IOException If a problem occurred trying to read from the reader.
-	 */
-	public String getInputAsString() throws IOException {
-		if (content != null)
-			return content;
-		content = IOUtils.read(getReader()).toString();
-		return content;
-	}
-
-	/**
-	 * Returns a resolved URL.
-	 * <p>
-	 * <ul class='spaced-list'>
-	 * 	<li>Fully-qualified absolute URLs (e.g. <js>"http://..."</js>, <js>"https://"</js>) are simply converted to a URL.
-	 * 	<li>Absolute URLs (e.g. <js>"/foo/..."</js>) are interpreted as relative to the server hostname.
-	 * 	<li>Relative URLs (e.g. <js>"foo/..."</js>) are interpreted as relative to this servlet path.
-	 * </ul>
-	 *
-	 * @param path The URL path to resolve.
-	 * @return The resolved URL.
-	 * @throws MalformedURLException If path is not a valid URL component.
-	 */
-	public URL getURL(String path) throws MalformedURLException {
-		if (path.startsWith("http://") || path.startsWith("https://"))
-			return new URL(path);
-		if (StringUtils.startsWith(path, '/'))
-			return new URL(getScheme(), getLocalName(), getLocalPort(), path);
-		return new URL(getScheme(), getLocalName(), getLocalPort(), getContextPath() + getServletPath() + (StringUtils.isEmpty(path) ? "" : ('/' + path)));
-	}
-
-	/**
-	 * Returns the HTTP body content as a {@link Reader}.
-	 * <p>
-	 * 	If {@code allowHeaderParams} init parameter is true, then first looks
-	 * 	for {@code &content=xxx} in the URL query string.
-	 * <p>
-	 * 	Automatically handles GZipped input streams.
-	 */
-	@Override /* ServletRequest */
-	public BufferedReader getReader() throws IOException {
-		Reader r = getUnbufferedReader();
-		if (r instanceof BufferedReader)
-			return (BufferedReader)r;
-		int len = getContentLength();
-		int buffSize = len <= 0 ? 8192 : Math.max(len, 8192);
-		return new BufferedReader(r, buffSize);
-	}
-
-	/**
-	 * Same as {@link #getReader()}, but doesn't encapsulate the result in a {@link BufferedReader};
-	 *
-	 * @return An unbuffered reader.
-	 * @throws IOException
-	 */
-	protected Reader getUnbufferedReader() throws IOException {
-		if (content != null)
-			return new CharSequenceReader(content);
-		return new InputStreamReader(getInputStream(), getCharacterEncoding());
-	}
-
-	/**
-	 * Returns the HTTP body content as an {@link InputStream}.
-	 * <p>
-	 * 	Automatically handles GZipped input streams.
-	 *
-	 * @return The negotiated input stream.
-	 * @throws IOException If any error occurred while trying to get the input stream or wrap it
-	 * 	in the GZIP wrapper.
-	 */
-	@Override /* ServletRequest */
-	public ServletInputStream getInputStream() throws IOException {
-
-		Encoder enc = getEncoder();
-
-		ServletInputStream is = super.getInputStream();
-		if (enc != null) {
-			final InputStream is2 = enc.getInputStream(is);
-			return new ServletInputStream() {
-				@Override /* InputStream */
-				public final int read() throws IOException {
-					return is2.read();
-				}
-				@Override /* InputStream */
-				public final void close() throws IOException {
-					is2.close();
-				}
-			};
-		}
-		return is;
-	}
-
-	private Encoder getEncoder() {
-		if (encoder == null) {
-			String ce = getHeader("content-encoding");
-			if (! (ce == null || ce.isEmpty())) {
-				ce = ce.trim();
-				encoder = servlet.getEncoders().getEncoder(ce);
-				if (encoder == null)
-					throw new RestException(SC_UNSUPPORTED_MEDIA_TYPE,
-						"Unsupported encoding in request header ''Content-Encoding'': ''{0}''\n\tSupported codings: {1}",
-						getHeader("content-encoding"), servlet.getEncoders().getSupportedEncodings()
-					);
-			}
-
-			if (encoder != null)
-				contentLength = -1;
-		}
-		// Note that if this is the identity encoder, we want to return null
-		// so that we don't needlessly wrap the input stream.
-		if (encoder == IdentityEncoder.INSTANCE)
-			return null;
-		return encoder;
-	}
-
-	@Override /* ServletRequest */
-	public int getContentLength() {
-		return contentLength == 0 ? super.getContentLength() : contentLength;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if <code>&plainText=true</code> was specified as a URL parameter.
-	 * <p>
-	 * 	This indicates that the <code>Content-Type</code> of the output should always be set to <js>"text/plain"</js>
-	 * 	to make it easy to render in a browser.
-	 * <p>
-	 * 	This feature is useful for debugging.
-	 *
-	 * @return <jk>true</jk> if {@code &plainText=true} was specified as a URL parameter
-	 */
-	public boolean isPlainText() {
-		return "true".equals(getQueryParameter("plainText", "false"));
-	}
-
-	/**
-	 * Returns the decoded remainder of the URL following any path pattern matches.
-	 * <p>
-	 * 	The behavior of path remainder is shown below given the path pattern "/foo/*":
-	 * <p>
-	 * 	<table class='styled'>
-	 * 		<tr>
-	 * 			<th>URL</th>
-	 * 			<th>Path Remainder</th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo</code></th>
-	 * 			<th><jk>null</jk></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo/</code></th>
-	 * 			<th><js>""</js></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo//</code></th>
-	 * 			<th><js>"/"</js></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo///</code></th>
-	 * 			<th><js>"//"</js></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo/a/b</code></th>
-	 * 			<th><js>"a/b"</js></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo//a/b/</code></th>
-	 * 			<th><js>"/a/b/"</js></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo/a%2Fb</code></th>
-	 * 			<th><js>"a/b"</js></th>
-	 * 		</tr>
-	 * 	</table>
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * 		<p class='bcode'>
-	 * 	<jc>// REST method</jc>
-	 * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>,path=<js>"/foo/{bar}/*"</js>)
-	 * 	<jk>public</jk> doGetById(RestServlet res, RestResponse res, <jk>int</jk> bar) {
-	 * 		System.<jsm>err</jsm>.println(res.getRemainder());
-	 * 	}
-	 *
-	 * 	<jc>// Prints "path/remainder"</jc>
-	 * 	<jk>new</jk> RestCall(servletPath + <js>"/foo/123/path/remainder"</js>).connect();
-	 * 		</p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @return The path remainder string.
-	 */
-	public String getPathRemainder() {
-		return RestUtils.decode(pathRemainder);
-	}
-
-	/**
-	 * Same as {@link #getPathRemainder()} but doesn't decode characters.
-	 *
-	 * @return The undecoded path remainder.
-	 */
-	public String getPathRemainderUndecoded() {
-		return pathRemainder;
-	}
-
-	/**
-	 * Shortcut method for calling {@link RestServlet#getMessage(Locale, String, Object...)} based
-	 * 	on the request locale.
-	 *
-	 * @param key The message key.
-	 * @param args Optional {@link MessageFormat} variable values in the value.
-	 * @return The localized message.
-	 */
-	public String getMessage(String key, Object...args) {
-		return servlet.getMessage(getLocale(), key, args);
-	}
-
-	/**
-	 * Shortcut method for calling {@link RestServlet#getMethodDescriptions(RestRequest)} based
-	 * 	on the request locale.
-	 *
-	 * @return The localized method descriptions.
-	 * @throws RestServletException
-	 */
-	public Collection<MethodDescription> getMethodDescriptions() throws RestServletException {
-		return servlet.getMethodDescriptions(this);
-	}
-
-	/**
-	 * Returns the resource bundle for the request locale.
-	 *
-	 * @return The resource bundle.  Never <jk>null</jk>.
-	 */
-	public MessageBundle getResourceBundle() {
-		return servlet.getMessages(getLocale());
-	}
-
-	/**
-	 * Returns the servlet handling the request.
-	 * <p>
-	 * Can be used to access servlet-init parameters or annotations during requests,
-	 * 	such as in calls to {@link RestGuard#guard(RestRequest, RestResponse)}..
-	 *
-	 * @return The servlet handling the request.
-	 */
-	public RestServlet getServlet() {
-		return servlet;
-	}
-
-	/**
-	 * Returns the java method handling the request.
-	 * <p>
-	 * Can be used to access the method name or method annotations during requests, such
-	 * 	as in calls to {@link RestGuard#guard(RestRequest, RestResponse)}.
-	 * <p>
-	 * Note:  This returns null when evaluating servlet-level guards since the method
-	 * 	has not been resolved at that point of execution.
-	 *
-	 * @return The Java method handling the request, or <code>null</code> if the method
-	 * 	has not yet been resolved.
-	 */
-	public Method getJavaMethod() {
-		return javaMethod;
-	}
-
-	/**
-	 * Returns the URI of the parent resource.
-	 * <p>
-	 * Trailing slashes in the path are ignored by this method.
-	 * <p>
-	 * The behavior is shown below:
-	 * 	<table class='styled'>
-	 * 		<tr>
-	 * 			<th>getRequestURI</th>
-	 * 			<th>getRequestParentURI</th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo/bar</code></th>
-	 * 			<th><code>/foo</code></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo/bar?baz=bing</code></th>
-	 * 			<th><code>/foo</code></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo/bar/</code></th>
-	 * 			<th><code>/foo</code></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo/bar//</code></th>
-	 * 			<th><code>/foo</code></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo//bar//</code></th>
-	 * 			<th><code>/foo/</code></th>
-	 * 		</tr>
-	 * 		<tr>
-	 * 			<th><code>/foo</code></th>
-	 * 			<th>/</th>
-	 * 		</tr>
-	 * 	</table>
-	 *
-	 * @return The request parent URI.
-	 */
-	public String getRequestParentURI() {
-		String uri = getRequestURI();
-		while (StringUtils.endsWith(uri, '/'))
-			uri = uri.substring(0, uri.length()-1);
-		int i = uri.lastIndexOf('/');
-		if (i <= 0)
-			return "/";
-		return uri.substring(0, i);
-	}
-
-	/**
-	 * Same as {@link #getRequestURI()} but trims trailing slashes from the result.
-	 *
-	 * @return The trimmed request URI.
-	 */
-	public String getTrimmedRequestURI() {
-		return RestUtils.trimTrailingSlashes(getRequestURI());
-	}
-
-	/**
-	 * Same as {@link #getRequestURL()} but trims trailing slashes from the result.
-	 *
-	 * @return The trimmed request URL.
-	 */
-	public StringBuffer getTrimmedRequestURL() {
-		return RestUtils.trimTrailingSlashes(getRequestURL());
-	}
-
-	/**
-	 * Gets the URI of the servlet (e.g. <js>"https://localhost:9080/contextPath/servletPath"</js>).
-	 *
-	 * @return The servlet URI.
-	 */
-	public String getServletURI() {
-		if (servletURI == null) {
-			// Note that we can't use getPathInfo() to calculate this since it replaces
-			// URL-encoded chars (e.g. %2F) which throws off the length calculation
-			// because getRequestURL() does not replace those chars.
-			servletURI = getServletURIBuilder().toString();
-		}
-		return servletURI;
-	}
-
-	/**
-	 * Gets the path-absolute relative URI of the servlet (e.g. <js>"/contextPath/servletPath"</js>).
-	 *
-	 * @return The relative servlet URI.
-	 */
-	public String getRelativeServletURI() {
-		if (relativeServletURI == null)
-			relativeServletURI = getContextPath() + getServletPath();
-		return relativeServletURI;
-	}
-
-	/**
-	 * Returns a <code>StringBuffer</code> prefilled with the string <code><js>"/[contextPath]/[servletPath]"</js></code>.
-	 *
-	 * @return The servlet URI string builder.
-	 */
-	public StringBuffer getServletURIBuilder() {
-		return RestUtils.trimPathInfo(getRequestURL(), getContextPath(), getServletPath());
-	}
-
-	/**
-	 * Returns the {@link BeanContext} associated with this request.
-	 *
-	 * @return The request bean context.
-	 */
-	public BeanContext getBeanContext() {
-		return beanContext;
-	}
-
-	/**
-	 * Returns the localized servlet label.
-	 * Equivalent to calling {@link RestServlet#getLabel(RestRequest)} with this object.
-	 *
-	 * @return The localized servlet label.
-	 */
-	public String getServletLabel() {
-		return servlet.getLabel(this);
-	}
-
-	/**
-	 * Returns the localized servlet description.
-	 * Equivalent to calling {@link RestServlet#getDescription(RestRequest)} with this object.
-	 *
-	 * @return The localized servlet description.
-	 */
-	public String getServletDescription() {
-		return servlet.getDescription(this);
-	}
-
-	/**
-	 * Returns the localized method description.
-	 * Equivalent to calling {@link RestServlet#getMethodDescription(String, RestRequest)} with this object.
-	 *
-	 * @return The localized method description.
-	 */
-	public String getMethodDescription() {
-		return servlet.getMethodDescription(javaMethod.getName(), this);
-	}
-
-	/**
-	 * Returns the variable resolver session for this request using session objects created by {@link RestServlet#getSessionObjects(RestRequest)}.
-	 *
-	 * @return The variable resolver for this request.
-	 */
-	public VarResolverSession getVarResolverSession() {
-		if (varSession == null)
-			varSession = servlet.getVarResolver().createSession(servlet.getSessionObjects(this));
-		return varSession;
-	}
-
-	/**
-	 * Shortcut for calling <code>getVarResolverSession().resolve(input)</code>.
-	 *
-	 * @param input The input string to resolve variables in.
-	 * @return The string with variables resolved, or <jk>null</jk> if input is null.
-	 */
-	public String resolveVars(String input) {
-		return getVarResolverSession().resolve(input);
-	}
-
-	/**
-	 * Returns an instance of a {@link ReaderResource} that represents the contents of a resource text file from the classpath.
-	 * <p>
-	 *
-	 * @param name The name of the resource (i.e. the value normally passed to {@link Class#getResourceAsStream(String)}.
-	 * @param resolveVars If <jk>true</jk>, any {@link Var} variables will be resolved by the variable resolver returned
-	 * 	by {@link #getVarResolverSession()}.
-	 * @param contentType The value to set as the <js>"Content-Type"</js> header for this object.
-	 * @return A new reader resource, or <jk>null</jk> if resource could not be found.
-	 * @throws IOException
-	 */
-	public ReaderResource getReaderResource(String name, boolean resolveVars, String contentType) throws IOException {
-		String s = servlet.getResourceAsString(name);
-		if (s == null)
-			return null;
-		ReaderResource rr = new ReaderResource(s, contentType);
-		if (resolveVars)
-			rr.setVarSession(getVarResolverSession());
-		return rr;
-	}
-
-	/**
-	 * Same as {@link #getReaderResource(String, boolean, String)} except uses {@link RestServlet#getMimetypesFileTypeMap()}
-	 * to determine the media type.
-	 *
-	 * @param name The name of the resource (i.e. the value normally passed to {@link Class#getResourceAsStream(String)}.
-	 * @param resolveVars If <jk>true</jk>, any {@link Var} variables will be resolved by the variable resolver returned
-	 * 	by {@link #getVarResolverSession()}.
-	 * @return A new reader resource, or <jk>null</jk> if resource could not be found.
-	 * @throws IOException
-	 */
-	public ReaderResource getReaderResource(String name, boolean resolveVars) throws IOException {
-		return getReaderResource(name, resolveVars, servlet.getMimetypesFileTypeMap().getContentType(name));
-	}
-
-	/**
-	 * Same as {@link #getReaderResource(String, boolean)} with <code>resolveVars == <jk>false</jk></code>
-	 *
-	 * @param name The name of the resource (i.e. the value normally passed to {@link Class#getResourceAsStream(String)}.
-	 * @return A new reader resource, or <jk>null</jk> if resource could not be found.
-	 * @throws IOException
-	 */
-	public ReaderResource getReaderResource(String name) throws IOException {
-		return getReaderResource(name, false, servlet.getMimetypesFileTypeMap().getContentType(name));
-	}
-
-	/**
-	 * Returns the config file associated with the servlet.
-	 *
-	 * @return The config file associated with the servlet, or <jk>null</jk> if servlet does not have a config file associated with it.
-	 */
-	public ConfigFile getConfig() {
-		if (cf == null)
-			cf = servlet.getConfig().getResolving(getVarResolverSession());
-		return cf;
-	}
-
-	@Override /* Object */
-	public String toString() {
-		StringBuilder sb = new StringBuilder("\n").append(getDescription()).append("\n");
-		sb.append("---Headers---\n");
-		for (Enumeration<String> e = getHeaderNames(); e.hasMoreElements();) {
-			String h = e.nextElement();
-			sb.append("\t").append(h).append(": ").append(getHeader(h)).append("\n");
-		}
-		sb.append("---Default Servlet Headers---\n");
-		for (Map.Entry<String,String> e : defaultServletHeaders.entrySet()) {
-			sb.append("\t").append(e.getKey()).append(": ").append(e.getValue()).append("\n");
-		}
-		if (method.equals("PUT") || method.equals("POST")) {
-			sb.append("---Content---\n");
-			try {
-				sb.append(getInputAsString()).append("\n");
-			} catch (Exception e1) {
-				sb.append(e1.getLocalizedMessage());
-				servlet.log(WARNING, e1, "Error occurred while trying to read debug input.");
-			}
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Returns the URI of the parent of this servlet.
-	 *
-	 * @return The URI of the parent of this servlet.
-	 */
-	public String getServletParentURI() {
-		String s = getServletURI();
-		return s.substring(0, s.lastIndexOf('/'));
-	}
-}
\ No newline at end of file


[06/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParser.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParser.java
deleted file mode 100644
index bb1951d..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParser.java
+++ /dev/null
@@ -1,732 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import static javax.xml.stream.XMLStreamConstants.*;
-import static org.apache.juneau.html.HtmlParser.Tag.*;
-import static org.apache.juneau.internal.StringUtils.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import javax.xml.namespace.*;
-import javax.xml.stream.*;
-import javax.xml.stream.events.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.transform.*;
-
-/**
- * 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 HtmlSerializerContext}
- * </ul>
- *
- *
- * @author James Bognar (james.bognar@salesforce.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();
-
-	/*
-	 * 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(HtmlParserSession session, ClassMeta<T> nt, XMLEventReader r, Object outer) throws Exception {
-
-		BeanContext bc = session.getBeanContext();
-		if (nt == null)
-			nt = (ClassMeta<T>)object();
-		PojoTransform<T,Object> transform = (PojoTransform<T,Object>)nt.getPojoTransform();
-		ClassMeta<?> ft = nt.getTransformedClassMeta();
-		session.setCurrentClass(ft);
-
-		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 if (ft.canCreateNewInstanceFromNumber(outer))
-				o = ft.newInstanceFromNumber(outer, parseNumber(text, ft.getNewInstanceFromNumberClass()));
-			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(session, 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(session, r, (Map)new ObjectMap(bc), ft.getKeyType(), ft.getValueType());
-					} else if (tableType.equals("array")) {
-						o = parseTableIntoCollection(session, r, (Collection)new ObjectList(bc), ft.getElementType());
-					} else
-						isValid = false;
-				}
-				else if (tag == UL)
-					o = parseIntoCollection(session, 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 == NUMBER && ft.canCreateNewInstanceFromNumber(outer))
-				o = ft.newInstanceFromNumber(outer, parseNumber(text, ft.getNewInstanceFromNumberClass()));
-			else if (tag == BOOLEAN && ft.isBoolean())
-				o = Boolean.parseBoolean(text);
-			else if (tag == TABLE) {
-				if (tableType.equals("object")) {
-					if (ft.isMap()) {
-						o = parseIntoMap(session, 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(session, r, m, string(), object());
-						o = ft.newInstanceFromObjectMap(outer, m);
-					} else if (ft.canCreateNewBean(outer)) {
-						BeanMap m = bc.newBeanMap(outer, ft.getInnerClass());
-						o = parseIntoBean(session, r, m).getBean();
-					}
-					else
-						isValid = false;
-				} else if (tableType.equals("array")) {
-					if (ft.isCollection())
-						o = parseTableIntoCollection(session, r, (Collection)(ft.canCreateNewInstance(outer) ? ft.newInstance(outer) : new ObjectList(bc)), ft.getElementType());
-					else if (ft.isArray())
-						o = bc.toArray(ft, parseTableIntoCollection(session, r, new ArrayList(), ft.getElementType()));
-					else
-						isValid = false;
-				} else
-					isValid = false;
-			} else if (tag == UL) {
-				if (ft.isCollection())
-					o = parseIntoCollection(session, r, (Collection)(ft.canCreateNewInstance(outer) ? ft.newInstance(outer) : new ObjectList(bc)), ft.getElementType());
-				else if (ft.isArray())
-					o = bc.toArray(ft, parseIntoCollection(session, 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 (transform != null && o != null)
-			o = transform.normalize(o, nt);
-
-		if (outer != null)
-			setParent(nt, o, outer);
-
-		return (T)o;
-	}
-
-	/*
-	 * Reads an anchor tag and converts it into a bean.
-	 */
-	private <T> T parseAnchor(HtmlParserSession session, XMLEvent e, XMLEventReader r, ClassMeta<T> beanType) throws XMLStreamException {
-		BeanContext bc = session.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(HtmlParserSession session, XMLEventReader r, Map<K,V> m, ClassMeta<K> keyType, ClassMeta<V> valueType) 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);
-			K key = parseAnything(session, keyType, r, m);
-			nextTag(r, xTD);
-			nextTag(r, TD);
-			V value = parseAnything(session, valueType, r, m);
-			setName(valueType, value, key);
-			m.put(key, value);
-			nextTag(r, xTD);
-			nextTag(r, xTR);
-		}
-
-		return m;
-	}
-
-	/*
-	 * 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(HtmlParserSession session, XMLEventReader r, Collection<E> l, ClassMeta<E> elementType) throws Exception {
-		while (true) {
-			Tag tag = nextTag(r, LI, xUL);
-			if (tag == xUL)
-				break;
-			l.add(parseAnything(session, elementType, r, l));
-			nextTag(r, xLI);
-		}
-		return l;
-	}
-
-	/*
-	 * 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(HtmlParserSession session, XMLEventReader r, ClassMeta<?>[] argTypes) throws Exception {
-		Object[] o = new Object[argTypes.length];
-		int i = 0;
-		while (true) {
-			Tag tag = nextTag(r, LI, xUL);
-			if (tag == xUL)
-				break;
-			o[i] = parseAnything(session, argTypes[i], r, session.getOuter());
-			i++;
-			nextTag(r, xLI);
-		}
-		return o;
-	}
-
-	/*
-	 * 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(HtmlParserSession session, XMLEventReader r, Collection<E> l, ClassMeta<E> elementType) throws Exception {
-
-		BeanContext bc = session.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(session, object(), r, l);
-					} else {
-						BeanPropertyMeta<?> bpm = e.getMeta();
-						ClassMeta<?> cm = bpm.getClassMeta();
-						Object value = parseAnything(session, cm, r, m.getBean(false));
-						setName(cm, value, key);
-						bpm.set(m, value);
-					}
-					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) {
-						ClassMeta<?> et = elementType.getElementType();
-						Object value = parseAnything(session, et, r, l);
-						setName(et, value, key);
-						m.put(key, value);
-					}
-					nextTag(r, xTD);
-				}
-				if (m != null && c != null) {
-					ObjectMap m2 = (m instanceof ObjectMap ? (ObjectMap)m : new ObjectMap(m).setBeanContext(session.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(HtmlParserSession session, 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()) {
-					Object value = parseAnything(session, object(), r, m.getBean(false));
-					m.put(key, value);
-				} else {
-					onUnknownProperty(session, key, m, -1, -1);
-					parseAnything(session, object(), r, null);
-				}
-			} else {
-				ClassMeta<?> cm = pMeta.getClassMeta();
-				Object value = parseAnything(session, cm, r, m.getBean(false));
-				setName(cm, value, key);
-				pMeta.set(m, value);
-			}
-			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 HtmlParserSession createSession(Object input, ObjectMap properties, Method javaMethod, Object outer) {
-		return new HtmlParserSession(getContext(HtmlParserContext.class), getBeanContext(), input, properties, javaMethod, outer);
-	}
-
-	@Override /* Parser */
-	protected <T> T doParse(ParserSession session, ClassMeta<T> type) throws Exception {
-		type = session.getBeanContext().normalizeClassMeta(type);
-		HtmlParserSession s = (HtmlParserSession)session;
-		return parseAnything(s, type, s.getXmlEventReader(), session.getOuter());
-	}
-
-	@Override /* ReaderParser */
-	protected <K,V> Map<K,V> doParseIntoMap(ParserSession session, Map<K,V> m, Type keyType, Type valueType) throws Exception {
-		HtmlParserSession s = (HtmlParserSession)session;
-		return parseIntoMap(s, s.getXmlEventReader(), m, s.getBeanContext().getClassMeta(keyType), s.getBeanContext().getClassMeta(valueType));
-	}
-
-	@Override /* ReaderParser */
-	protected <E> Collection<E> doParseIntoCollection(ParserSession session, Collection<E> c, Type elementType) throws Exception {
-		HtmlParserSession s = (HtmlParserSession)session;
-		return parseIntoCollection(s, s.getXmlEventReader(), c, s.getBeanContext().getClassMeta(elementType));
-	}
-
-	@Override /* ReaderParser */
-	protected Object[] doParseArgs(ParserSession session, ClassMeta<?>[] argTypes) throws Exception {
-		HtmlParserSession s = (HtmlParserSession)session;
-		return parseArgs(s, s.getXmlEventReader(), argTypes);
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser setProperties(ObjectMap properties) throws LockedException {
-		super.setProperties(properties);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlParser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParserContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParserContext.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParserContext.java
deleted file mode 100644
index 716cc0a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParserContext.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import java.lang.reflect.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.parser.*;
-
-/**
- * Configurable properties on the {@link HtmlParser} class.
- * <p>
- * Context properties are set by calling {@link ContextFactory#setProperty(String, Object)} on the context factory
- * returned {@link CoreApi#getContextFactory()}.
- * <p>
- * The following convenience methods are also provided for setting context properties:
- * <ul>
- * 	<li>{@link HtmlParser#setProperty(String,Object)}
- * 	<li>{@link HtmlParser#setProperties(ObjectMap)}
- * 	<li>{@link HtmlParser#addNotBeanClasses(Class[])}
- * 	<li>{@link HtmlParser#addTransforms(Class[])}
- * 	<li>{@link HtmlParser#addImplClass(Class,Class)}
- * </ul>
- * <p>
- * See {@link ContextFactory} for more information about context properties.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class HtmlParserContext extends ParserContext {
-
-	/**
-	 * Constructor.
-	 * <p>
-	 * Typically only called from {@link ContextFactory#getContext(Class)}.
-	 *
-	 * @param cf The factory that created this context.
-	 */
-	public HtmlParserContext(ContextFactory cf) {
-		super(cf);
-	}
-
-	/**
-	 * Constructor.
-	 * <p>
-	 * Typically only called from {@link ContextFactory#getContext(Class)}.
-	 *
-	 * @param cf The factory that created this context.
-	 */
-	HtmlParserSession createSession(BeanContext beanContext, Object input, ObjectMap op, Method javaMethod, Object outer) {
-		return new HtmlParserSession(this, beanContext, input, op, javaMethod, outer);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParserSession.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParserSession.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParserSession.java
deleted file mode 100644
index c2a24f5..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlParserSession.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import java.io.*;
-import java.lang.reflect.*;
-
-import javax.xml.stream.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.parser.*;
-
-/**
- * Session object that lives for the duration of a single use of {@link HtmlParser}.
- * <p>
- * This class is NOT thread safe.  It is meant to be discarded after one-time use.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public final class HtmlParserSession extends ParserSession {
-
-	private XMLEventReader xmlEventReader;
-
-	/**
-	 * Create a new session using properties specified in the context.
-	 *
-	 * @param ctx The context creating this session object.
-	 * 	The context contains all the configuration settings for this object.
-	 * @param beanContext The bean context being used.
-	 * @param input The input.  Can be any of the following types:
-	 * 	<ul>
-	 * 		<li><jk>null</jk>
-	 * 		<li>{@link Reader}
-	 * 		<li>{@link CharSequence}
-	 * 		<li>{@link InputStream} containing UTF-8 encoded text.
-	 * 		<li>{@link File} containing system encoded text.
-	 * 	</ul>
-	 * @param op The override properties.
-	 * 	These override any context properties defined in the context.
-	 * @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 HtmlParserSession(HtmlParserContext ctx, BeanContext beanContext, Object input, ObjectMap op, Method javaMethod, Object outer) {
-		super(ctx, beanContext, input, op, 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
-	 */
-	final XMLEventReader getXmlEventReader() throws Exception {
-		Reader r = IOUtils.getBufferedReader(super.getReader());
-		XMLInputFactory factory = XMLInputFactory.newInstance();
-		factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false);
-		this.xmlEventReader = factory.createXMLEventReader(r);
-		return xmlEventReader;
-	}
-
-	@Override /* ParserSession */
-	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/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
deleted file mode 100644
index 99957ff..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import static org.apache.juneau.internal.ClassUtils.*;
-import static org.apache.juneau.serializer.SerializerContext.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-
-/**
- * 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 (james.bognar@salesforce.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);
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param cf The context factory to use for creating the context for this serializer.
-	 */
-	public HtmlSchemaDocSerializer(ContextFactory cf) {
-		getContextFactory().copyFrom(cf);
-		setProperty(SERIALIZER_detectRecursions, true);
-		setProperty(SERIALIZER_ignoreRecursions, true);
-	}
-
-	@Override /* Serializer */
-	public HtmlDocSerializerSession createSession(Object output, ObjectMap properties, Method javaMethod) {
-		return new HtmlDocSerializerSession(getContext(HtmlDocSerializerContext.class), getBeanContext(), output, properties, javaMethod);
-	}
-
-	@Override /* ISchemaSerializer */
-	protected void doSerialize(SerializerSession session, Object o) throws Exception {
-		HtmlSerializerSession s = (HtmlSerializerSession)session;
-		ObjectMap schema = getSchema(s, s.getBeanContext().getClassMetaForObject(o), "root", null);
-		super.doSerialize(s, schema);
-	}
-
-	/*
-	 * 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(HtmlSerializerSession session, ClassMeta<?> eType, String attrName, String[] pNames) throws Exception {
-
-		ObjectMap out = new ObjectMap();
-
-		ClassMeta<?> aType;			// The actual type (will be null if recursion occurs)
-		ClassMeta<?> gType;			// The generic type
-
-		aType = session.push(attrName, eType, null);
-
-		gType = eType.getTransformedClassMeta();
-		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());
-		PojoTransform t = eType.getPojoTransform();
-		if (t != null)
-			out.put("transform", t);
-
-		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(session, componentType, "items", pNames));
-			} else if (gType.isBean()) {
-				ObjectMap properties = new ObjectMap();
-				BeanMeta bm = session.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(session, p.getClassMeta(), p.getName(), p.getProperties()));
-				}
-				out.put("properties", properties);
-			}
-		}
-		session.pop();
-		return out;
-	}
-
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	private List<String> getEnumStrings(Class<? extends Enum> c) {
-		List<String> l = new LinkedList<String>();
-		for (Object e : EnumSet.allOf(c))
-			l.add(e.toString());
-		return l;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializer.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializer.java
deleted file mode 100644
index 659e18e..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ /dev/null
@@ -1,645 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import static org.apache.juneau.serializer.SerializerContext.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.xml.*;
-import org.apache.juneau.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 class='spaced-list'>
- * 		<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 class='spaced-list'>
- * 	<li>{@link HtmlSerializerContext}
- * </ul>
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * 	The following direct subclasses are provided for convenience:
- * <ul class='spaced-list'>
- * 	<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(SerializerContext.<jsf>SERIALIZER_useIndentation</jsf>, <jk>false</jk>);
- *
- * 		<jc>// Same as above, except uses cloning</jc>
- * 		HtmlSerializer serializer = HtmlSerializer.<jsf>DEFAULT</jsf>.clone()
- * 			.setProperty(SerializerContext.<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 (james.bognar@salesforce.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);
-		}
-	}
-
-	/**
-	 * Main serialization routine.
-	 * @param session The serialization context object.
-	 * @param o The object being serialized.
-	 * @param w The writer to serialize to.
-	 *
-	 * @return The same writer passed in.
-	 * @throws IOException If a problem occurred trying to send output to the writer.
-	 */
-	private HtmlWriter doSerialize(HtmlSerializerSession session, Object o, HtmlWriter w) throws Exception {
-		serializeAnything(session, w, o, null, null, session.getInitialDepth()-1, null);
-		return w;
-	}
-
-	/**
-	 * Serialize the specified object to the specified writer.
-	 *
-	 * @param session The context object that lives for the duration of this serialization.
-	 * @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 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 Exception If a problem occurred trying to convert the output.
-	 */
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	protected void serializeAnything(HtmlSerializerSession session, HtmlWriter out, Object o, ClassMeta<?> eType, String name, int indent, BeanPropertyMeta pMeta) throws Exception {
-
-		BeanContext bc = session.getBeanContext();
-		ClassMeta<?> aType = null;       // The actual type
-		ClassMeta<?> gType = object();   // The generic type
-
-		if (eType == null)
-			eType = object();
-
-		aType = session.push(name, o, eType);
-
-		// Handle recursion
-		if (aType == null) {
-			o = null;
-			aType = object();
-		}
-
-		session.indent += indent;
-		int i = session.indent;
-
-		// Determine the type.
-		if (o == null || (aType.isChar() && ((Character)o).charValue() == 0))
-			out.tag(i, "null").nl();
-		else {
-
-			gType = aType.getTransformedClassMeta();
-			String classAttr = null;
-			if (session.isAddClassAttrs() && ! eType.equals(aType))
-				classAttr = aType.toString();
-
-			// Transform if necessary
-			PojoTransform transform = aType.getPojoTransform();
-			if (transform != null) {
-				o = transform.transform(o);
-
-				// If the transforms getTransformedClass() 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(session, out, o, null, 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(session, out, gType.toObjectMap(o), eType, classAttr, pMeta);
-			else if (gType.isBean())
-				serializeBeanMap(session, out, bc.forBean(o), 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(session, out, (BeanMap)o, classAttr, pMeta);
-				else
-					serializeMap(session, out, (Map)o, eType, classAttr, pMeta);
-			}
-			else if (gType.isCollection()) {
-				if (classAttr != null)
-					serializeCollection(session, out, (Collection)o, gType, name, classAttr, pMeta);
-				else
-					serializeCollection(session, out, (Collection)o, eType, name, null, pMeta);
-			}
-			else if (gType.isArray()) {
-				if (classAttr != null)
-					serializeCollection(session, out, toList(gType.getInnerClass(), o), gType, name, classAttr, pMeta);
-				else
-					serializeCollection(session, out, toList(gType.getInnerClass(), o), eType, name, null, pMeta);
-			}
-			else if (session.isUri(gType, pMeta, o)) {
-				String label = session.getAnchorText(pMeta, o);
-				out.oTag(i, "a").attrUri("href", o).append('>');
-				out.append(label);
-				out.eTag("a").nl();
-			}
-			else
-				out.sTag(i, "string").encodeText(session.toString(o)).eTag("string").nl();
-		}
-		session.pop();
-		session.indent -= indent;
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private void serializeMap(HtmlSerializerSession session, HtmlWriter out, Map m, ClassMeta<?> type, String classAttr, BeanPropertyMeta<?> ppMeta) throws Exception {
-		ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
-		ClassMeta<?> aType = session.getBeanContext().getClassMetaForObject(m);       // The actual type
-
-		int i = session.getIndent();
-		out.oTag(i, "table").attr("type", "object");
-		if (classAttr != null)
-			out.attr("class", classAttr);
-		out.appendln(">");
-		if (! (aType.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();
-		}
-		for (Map.Entry e : (Set<Map.Entry>)m.entrySet()) {
-
-			Object key = session.generalize(e.getKey(), keyType);
-			Object value = null;
-			try {
-				value = e.getValue();
-			} catch (StackOverflowError t) {
-				throw t;
-			} catch (Throwable t) {
-				session.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(session, out, key, keyType, null, 2, null);
-			out.eTag(i+2, "td").nl();
-			out.sTag(i+2, "td").nl();
-			serializeAnything(session, out, value, valueType, (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(HtmlSerializerSession session, HtmlWriter out, BeanMap m, String classAttr, BeanPropertyMeta<?> ppMeta) throws Exception {
-		int i = session.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(session.isTrimNulls()).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) {
-				session.addBeanGetterWarning(pMeta, t);
-			}
-
-			if (session.canIgnoreValue(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(session, out, value, p.getMeta().getClassMeta(), key, 2, pMeta);
-			} catch (SerializeException t) {
-				throw t;
-			} catch (StackOverflowError t) {
-				throw t;
-			} catch (Throwable t) {
-				session.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(HtmlSerializerSession session, HtmlWriter out, Collection c, ClassMeta<?> type, String name, String classAttr, BeanPropertyMeta<?> ppMeta) throws Exception {
-
-		BeanContext bc = session.getBeanContext();
-		ClassMeta<?> elementType = type.getElementType();
-
-		int i = session.getIndent();
-		if (c.isEmpty()) {
-			out.appendln(i, "<ul></ul>");
-			return;
-		}
-
-		c = session.sort(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(session, 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.getPojoTransform() != null) {
-					PojoTransform f = cm.getPojoTransform();
-					o = f.transform(o);
-					cm = cm.getTransformedClassMeta();
-				}
-
-				if (cm != null && session.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(session, out, o, null, null, 1, null);
-
-				} else if (cm.isMap() && ! (cm.isBeanMap())) {
-					Map m2 = session.sort((Map)o);
-
-					Iterator mapEntries = m2.entrySet().iterator();
-					while (mapEntries.hasNext()) {
-						Map.Entry e = (Map.Entry)mapEntries.next();
-						out.sTag(i+2, "td").nl();
-						serializeAnything(session, out, e.getValue(), elementType, 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(session.isTrimNulls()).iterator();
-					while (mapEntries.hasNext()) {
-						BeanMapEntry p = (BeanMapEntry)mapEntries.next();
-						BeanPropertyMeta pMeta = p.getMeta();
-						out.sTag(i+2, "td").nl();
-						serializeAnything(session, out, p.getValue(), pMeta.getClassMeta(), 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(session, out, o, elementType, 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(SerializerSession session, Collection c, BeanPropertyMeta<?> pMeta) throws Exception {
-		BeanContext bc = session.getBeanContext();
-		if (c.size() == 0)
-			return null;
-		c = session.sort(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.getPojoTransform() != null) {
-			PojoTransform f = cm.getPojoTransform();
-			o1 = f.transform(o1);
-			cm = cm.getTransformedClassMeta();
-		}
-		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 (session.canIgnoreValue(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.getPojoTransform() != null) {
-				PojoTransform f = cm.getPojoTransform();
-				o = f.transform(o);
-				cm = cm.getTransformedClassMeta();
-			}
-			if (prevC.contains(cm))
-				continue;
-			if (cm == null || ! (cm.isMap() || cm.isBean()))
-				return null;
-			if (cm.getInnerClass().isAnnotationPresent(HtmlLink.class))
-				return null;
-			if (session.canIgnoreValue(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() {
-		try {
-			return new HtmlSchemaDocSerializer(getContextFactory().clone());
-		} catch (CloneNotSupportedException e) {
-			// Should never happen.
-			throw new RuntimeException(e);
-		}
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	public HtmlSerializerSession createSession(Object output, ObjectMap properties, Method javaMethod) {
-		return new HtmlSerializerSession(getContext(HtmlSerializerContext.class), getBeanContext(), output, properties, javaMethod);
-	}
-
-	@Override /* Serializer */
-	protected void doSerialize(SerializerSession session, Object o) throws Exception {
-		HtmlSerializerSession s = (HtmlSerializerSession)session;
-		doSerialize(s, o, s.getWriter());
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer setProperties(ObjectMap properties) throws LockedException {
-		super.setProperties(properties);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public HtmlSerializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(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();
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java
deleted file mode 100644
index 740a16a..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import org.apache.juneau.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Configurable properties on the {@link HtmlSerializer} class.
- * <p>
- * Context properties are set by calling {@link ContextFactory#setProperty(String, Object)} on the context factory
- * returned {@link CoreApi#getContextFactory()}.
- * <p>
- * The following convenience methods are also provided for setting context properties:
- * <ul>
- * 	<li>{@link HtmlSerializer#setProperty(String,Object)}
- * 	<li>{@link HtmlSerializer#setProperties(ObjectMap)}
- * 	<li>{@link HtmlSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link HtmlSerializer#addTransforms(Class[])}
- * 	<li>{@link HtmlSerializer#addImplClass(Class,Class)}
- * </ul>
- * <p>
- * See {@link ContextFactory} for more information about context properties.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class HtmlSerializerContext extends XmlSerializerContext {
-
-	/**
-	 * 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 class='spaced-list'>
-	 * 	<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.
-	 * 	<li>{@link #URI_ANCHOR} / <js>"uriAnchor"</js> - Set to the anchor of the URL.  (e.g. <js>"http://localhost:9080/foobar#anchorTextHere"</js>)
-	 * </ul>
-	 */
-	public static final String HTML_uriAnchorText = "HtmlSerializer.uriAnchorText";
-
-	/** Constant for {@link HtmlSerializerContext#HTML_uriAnchorText} property. */
-	public static final String PROPERTY_NAME = "PROPERTY_NAME";
-	/** Constant for {@link HtmlSerializerContext#HTML_uriAnchorText} property. */
-	public static final String TO_STRING = "TO_STRING";
-	/** Constant for {@link HtmlSerializerContext#HTML_uriAnchorText} property. */
-	public static final String URI = "URI";
-	/** Constant for {@link HtmlSerializerContext#HTML_uriAnchorText} property. */
-	public static final String LAST_TOKEN = "LAST_TOKEN";
-	/** Constant for {@link HtmlSerializerContext#HTML_uriAnchorText} property. */
-	public static final String URI_ANCHOR = "URI_ANCHOR";
-
-
-	/**
-	 * Look for URLs in {@link String Strings} ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * If a string looks like a URL (e.g. starts with <js>"http://"</js> or <js>"https://"</js>, then treat it like a URL
-	 * 	and make it into a hyperlink based on the rules specified by {@link #HTML_uriAnchorText}.
-	 */
-	public static final String HTML_detectLinksInStrings = "HtmlSerializer.detectLinksInStrings";
-
-	/**
-	 * Look for link labels in the <js>"label"</js> parameter of the URL ({@link Boolean}, default=<jk>true</jk>).
-	 * <p>
-	 * If the URL has a label parameter (e.g. <js>"?label=foobar"</js>), then use that as the anchor text of the link.
-	 * <p>
-	 * The parameter name can be changed via the {@link #HTML_labelParameter} property.
-	 */
-	public static final String HTML_lookForLabelParameters = "HtmlSerializer.lookForLabelParameters";
-
-	/**
-	 * The parameter name to use when using {@link #HTML_lookForLabelParameters} ({@link String}, default=<js>"label"</js>).
-	 */
-	public static final String HTML_labelParameter = "HtmlSerializer.labelParameter";
-
-	final String uriAnchorText;
-	final boolean lookForLabelParameters, detectLinksInStrings;
-	final String labelParameter;
-
-	/**
-	 * Constructor.
-	 * <p>
-	 * Typically only called from {@link ContextFactory#getContext(Class)}.
-	 *
-	 * @param cf The factory that created this context.
-	 */
-	public HtmlSerializerContext(ContextFactory cf) {
-		super(cf);
-		uriAnchorText = cf.getProperty(HTML_uriAnchorText, String.class, TO_STRING);
-		lookForLabelParameters = cf.getProperty(HTML_lookForLabelParameters, Boolean.class, true);
-		detectLinksInStrings = cf.getProperty(HTML_detectLinksInStrings, Boolean.class, true);
-		labelParameter = cf.getProperty(HTML_labelParameter, String.class, "label");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
deleted file mode 100644
index 18f95c8..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import static org.apache.juneau.html.HtmlSerializerContext.*;
-
-import java.lang.reflect.*;
-import java.util.regex.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Session object that lives for the duration of a single use of {@link HtmlSerializer}.
- * <p>
- * This class is NOT thread safe.  It is meant to be discarded after one-time use.
- *
- * @author James Bognar (james.bognar@salesforce.com)
- */
-public class HtmlSerializerSession extends XmlSerializerSession {
-
-	private final AnchorText anchorText;
-	private final boolean detectLinksInStrings, lookForLabelParameters;
-	private final Pattern urlPattern = Pattern.compile("http[s]?\\:\\/\\/.*");
-	private final Pattern labelPattern;
-	private final String absolutePathUriBase, relativeUriBase;
-
-
-	@SuppressWarnings("hiding")
-	enum AnchorText {
-		PROPERTY_NAME, TO_STRING, URI, LAST_TOKEN, URI_ANCHOR
-	}
-
-	/**
-	 * Create a new session using properties specified in the context.
-	 *
-	 * @param ctx The context creating this session object.
-	 * 	The context contains all the configuration settings for this object.
-	 * @param beanContext The bean context being used.
-	 * @param output The output object.  See {@link JsonSerializerSession#getWriter()} for valid class types.
-	 * @param op The override properties.
-	 * 	These override any context properties defined in the context.
-	 * @param javaMethod The java method that called this parser, usually the method in a REST servlet.
-	 */
-	protected HtmlSerializerSession(HtmlSerializerContext ctx, BeanContext beanContext, Object output, ObjectMap op, Method javaMethod) {
-		super(ctx, beanContext, output, op, javaMethod);
-		String labelParameter;
-		if (op == null || op.isEmpty()) {
-			anchorText = Enum.valueOf(AnchorText.class, ctx.uriAnchorText);
-			detectLinksInStrings = ctx.detectLinksInStrings;
-			lookForLabelParameters = ctx.lookForLabelParameters;
-			labelParameter = ctx.labelParameter;
-		} else {
-			anchorText = Enum.valueOf(AnchorText.class, op.getString(HTML_uriAnchorText, ctx.uriAnchorText));
-			detectLinksInStrings = op.getBoolean(HTML_detectLinksInStrings, ctx.detectLinksInStrings);
-			lookForLabelParameters = op.getBoolean(HTML_lookForLabelParameters, ctx.lookForLabelParameters);
-			labelParameter = op.getString(HTML_labelParameter, ctx.labelParameter);
-		}
-		labelPattern = Pattern.compile("[\\?\\&]" + Pattern.quote(labelParameter) + "=([^\\&]*)");
-		this.absolutePathUriBase = getAbsolutePathUriBase();
-		this.relativeUriBase = getRelativeUriBase();
-	}
-
-	@Override /* XmlSerializerSession */
-	public HtmlWriter getWriter() throws Exception {
-		Object output = getOutput();
-		if (output instanceof HtmlWriter)
-			return (HtmlWriter)output;
-		return new HtmlWriter(super.getWriter(), isUseIndentation(), isTrimStrings(), getQuoteChar(), getRelativeUriBase(), getAbsolutePathUriBase());
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified object is a URL.
-	 *
-	 * @param cm The ClassMeta of the object being serialized.
-	 * @param pMeta The property metadata of the bean property of the object.  Can be <jk>null</jk> if the object isn't from a bean property.
-	 * @param o The object.
-	 * @return <jk>true</jk> if the specified object is a URL.
-	 */
-	public boolean isUri(ClassMeta<?> cm, BeanPropertyMeta<?> pMeta, Object o) {
-		if (cm.isUri())
-			return true;
-		if (pMeta != null && (pMeta.isUri() || pMeta.isBeanUri()))
-			return true;
-		if (detectLinksInStrings && o instanceof CharSequence && urlPattern.matcher(o.toString()).matches())
-			return true;
-		return false;
-	}
-
-	/**
-	 * Returns the anchor text to use for the specified URL object.
-	 *
-	 * @param pMeta The property metadata of the bean property of the object.  Can be <jk>null</jk> if the object isn't from a bean property.
-	 * @param o The URL object.
-	 * @return The anchor text to use for the specified URL object.
-	 */
-	public String getAnchorText(BeanPropertyMeta<?> pMeta, Object o) {
-		String s;
-		if (lookForLabelParameters) {
-			s = o.toString();
-			Matcher m = labelPattern.matcher(s);
-			if (m.find())
-				return m.group(1);
-		}
-		switch (anchorText) {
-			case LAST_TOKEN:
-				s = o.toString();
-				if (s.indexOf('/') != -1)
-					s = s.substring(s.lastIndexOf('/')+1);
-				if (s.indexOf('?') != -1)
-					s = s.substring(0, s.indexOf('?'));
-				if (s.indexOf('#') != -1)
-					s = s.substring(0, s.indexOf('#'));
-				return s;
-			case URI_ANCHOR:
-				s = o.toString();
-				if (s.indexOf('#') != -1)
-					s = s.substring(s.lastIndexOf('#')+1);
-				return s;
-			case PROPERTY_NAME:
-				return pMeta == null ? o.toString() : pMeta.getName();
-			case URI:
-				s = o.toString();
-				if (s.indexOf("://") == -1) {
-					if (StringUtils.startsWith(s, '/')) {
-						s = absolutePathUriBase + s;
-					} else {
-						if (relativeUriBase != null) {
-							if (! relativeUriBase.equals("/"))
-								s = relativeUriBase + "/" + s;
-							else
-								s = "/" + s;
-						}
-					}
-				}
-				return s;
-			default:
-				return o.toString();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/2c3a7cb5/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java b/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java
deleted file mode 100644
index f25d858..0000000
--- a/com.ibm.team.juno/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************************************************************
- * 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.html;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.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 (james.bognar@salesforce.com)
- */
-@Produces(value="text/html+stripped",contentType="text/html")
-public class HtmlStrippedDocSerializer extends HtmlSerializer {
-
-	//---------------------------------------------------------------------------
-	// Overridden methods
-	//---------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	protected void doSerialize(SerializerSession session, Object o) throws Exception {
-		HtmlSerializerSession s = (HtmlSerializerSession)session;
-		HtmlWriter w = s.getWriter();
-		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(s, o);
-	}
-}


[48/51] [abbrv] [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/2c3a7cb5/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
deleted file mode 100755
index ebd0b8a..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestClient.java
+++ /dev/null
@@ -1,1423 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 143027c..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RestRequestEntity.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 7317bf6..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/RetryOn.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 05909a4..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SSLOpts.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index b4977c8..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SerializedNameValuePair.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/***************************************************************************************************************************
- * 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/2c3a7cb5/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
deleted file mode 100755
index 1608da0..0000000
--- a/com.ibm.team.juno.client/src/main/java/org/apache/juneau/client/SimpleX509TrustManager.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/***************************************************************************************************************************
- * 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);
-	}
-}


[27/51] [abbrv] [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/2c3a7cb5/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestResponse.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestResponse.java b/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestResponse.java
deleted file mode 100755
index 8983868..0000000
--- a/com.ibm.team.juno.server/src/main/java/org/apache/juneau/server/RestResponse.java
+++ /dev/null
@@ -1,431 +0,0 @@
-/***************************************************************************************************************************
- * 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.server;
-
-import java.io.*;
-import java.util.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.encoders.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.xml.*;
-
-/**
- * Represents an HTTP response for a REST resource.
- * <p>
- * Essentially an extended {@link HttpServletResponse} with some special convenience methods
- * 	that allow you to easily output POJOs as responses.
- * </p>
- * <p>
- * Since this class extends {@link HttpServletResponse}, developers are free to use these
- * 	convenience methods, or revert to using lower level methods like any other servlet response.
- * </p>
- *
- * <h6 class='topic'>Examples</h6>
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>)
- * 	<jk>public void</jk> doGet(RestRequest req, RestResponse res) {
- * 		res.setProperty(HtmlSerializerContext.<jsf>HTMLDOC_title</jsf>, <js>"My title"</js>)
- * 			.setOutput(<js>"Simple string response"</js>);
- * 	}
- * </p>
- * <p>
- * 	Refer to <a class='doclink' href='package-summary.html#TOC'>REST Servlet API</a> for information about using this class.
- * </p>
- *
- * @author jbognar
- */
-public final class RestResponse extends HttpServletResponseWrapper {
-
-	private final RestRequest request;
-	private Object output;                               // The POJO being sent to the output.
-	private boolean isNullOutput;                        // The output is null (as opposed to not being set at all)
-	private ObjectMap properties;                        // Response properties
-	SerializerGroup serializerGroup;
-	UrlEncodingSerializer urlEncodingSerializer;         // The serializer used to convert arguments passed into Redirect objects.
-	private EncoderGroup encoders;
-	private RestServlet servlet;
-	private ServletOutputStream os;
-
-	/**
-	 * Constructor.
-	 */
-	RestResponse(RestServlet servlet, RestRequest req, HttpServletResponse res) {
-		super(res);
-		this.request = req;
-		this.servlet = servlet;
-
-		for (Map.Entry<String,Object> e : servlet.getDefaultResponseHeaders().entrySet())
-			setHeader(e.getKey(), e.getValue().toString());
-
-		try {
-			String passThroughHeaders = req.getHeader("x-response-headers");
-			if (passThroughHeaders != null) {
-				ObjectMap m = servlet.getUrlEncodingParser().parseParameter(passThroughHeaders, ObjectMap.class);
-				for (Map.Entry<String,Object> e : m.entrySet())
-					setHeader(e.getKey(), e.getValue().toString());
-			}
-		} catch (Exception e1) {
-			throw new RestException(SC_BAD_REQUEST, "Invalid format for header 'x-response-headers'.  Must be in URL-encoded format.").initCause(e1);
-		}
-	}
-
-	/*
-	 * Called from RestServlet after a match has been made but before the guard or method invocation.
-	 */
-	@SuppressWarnings("hiding")
-	final void init(ObjectMap properties, String defaultCharset, SerializerGroup mSerializers, UrlEncodingSerializer mUrlEncodingSerializer, EncoderGroup encoders) {
-		this.properties = properties;
-		this.serializerGroup = mSerializers;
-		this.urlEncodingSerializer = mUrlEncodingSerializer;
-		this.encoders = encoders;
-
-		// Find acceptable charset
-		String h = request.getHeader("accept-charset");
-		String charset = null;
-		if (h == null)
-			charset = defaultCharset;
-		else for (MediaRange r : MediaRange.parse(h)) {
-			if (r.getQValue() > 0) {
-				if (r.getType().equals("*"))
-					charset = defaultCharset;
-				else if (RestServlet.availableCharsets.containsKey(r.getType()))
-					charset = r.getType();
-				if (charset != null)
-					break;
-			}
-		}
-
-		if (charset == null)
-			throw new RestException(SC_NOT_ACCEPTABLE, "No supported charsets in header ''Accept-Charset'': ''{0}''", request.getHeader("Accept-Charset"));
-		super.setCharacterEncoding(charset);
-	}
-
-	/**
-	 * Gets the serializer group for the response.
-	 *
-	 * @return The serializer group for the response.
-	 */
-	public SerializerGroup getSerializerGroup() {
-		return serializerGroup;
-	}
-
-	/**
-	 * Returns the media types that are valid for <code>Accept</code> headers on the request.
-	 *
-	 * @return The set of media types registered in the parser group of this request.
-	 */
-	public List<String> getSupportedMediaTypes() {
-		return serializerGroup.getSupportedMediaTypes();
-	}
-
-	/**
-	 * Returns the codings that are valid for <code>Accept-Encoding</code> and <code>Content-Encoding</code> headers on the request.
-	 *
-	 * @return The set of media types registered in the parser group of this request.
-	 * @throws RestServletException
-	 */
-	public List<String> getSupportedEncodings() throws RestServletException {
-		return servlet.getEncoders().getSupportedEncodings();
-	}
-
-	/**
-	 * Sets the HTTP output on the response.
-	 * <p>
-	 * 	Calling this method is functionally equivalent to returning the object in the REST Java method.
-	 * <p>
-	 * 	Can be of any of the following types:
-	 * 	<ul>
-	 * 	  <li> {@link InputStream}
-	 * 	  <li> {@link Reader}
-	 * 	  <li> Any serializable type defined in <a href='../core/package-summary.html#PojoCategories'>POJO Categories</a>
-	 * 	</ul>
-	 * <p>
-	 * 	If it's an {@link InputStream} or {@link Reader}, you must also specify the <code>Content-Type</code> using the {@link #setContentType(String)} method.
-	 *
-	 * @param output The output to serialize to the connection.
-	 * @return This object (for method chaining).
-	 */
-	public RestResponse setOutput(Object output) {
-		this.output = output;
-		this.isNullOutput = output == null;
-		return this;
-	}
-
-	/**
-	 * Add a serializer property to send to the serializers to override a default value.
-	 * <p>
-	 * Can be any value specified in the following classes:
-	 * <ul>
-	 * 	<li>{@link SerializerContext}
-	 * 	<li>{@link JsonSerializerContext}
-	 * 	<li>{@link XmlSerializerContext}
-	 * 	<li>{@link RdfSerializerContext}
-	 * </ul>
-	 *
-	 * @param key The setting name.
-	 * @param value The setting value.
-	 * @return This object (for method chaining).
-	 */
-	public RestResponse setProperty(String key, Object value) {
-		properties.put(key, value);
-		return this;
-	}
-
-	/**
-	 * Returns the properties set via {@link #setProperty(String, Object)}.
-	 *
-	 * @return A map of all the property values set.
-	 */
-	public ObjectMap getProperties() {
-		return properties;
-	}
-
-	/**
-	 * Shortcut method that allows you to use varargs to simplify setting array output.
-	 *
-	 * <dl>
-	 * 	<dt>Example:</dt>
-	 * 	<dd>
-	 * <p class='bcode'>
-	 * 	<jc>// Instead of...</jc>
-	 * 	response.setOutput(<jk>new</jk> Object[]{x,y,z});
-	 *
-	 * 	<jc>// ...call this...</jc>
-	 * 	response.setOutput(x,y,z);
-	 * </p>
-	 * 	</dd>
-	 * </dl>
-	 *
-	 * @param output The output to serialize to the connection.
-	 * @return This object (for method chaining).
-	 */
-	public RestResponse setOutputs(Object...output) {
-		this.output = output;
-		return this;
-	}
-
-	/**
-	 * Returns the output that was set by calling {@link #setOutput(Object)}.
-	 *
-	 * @return The output object.
-	 */
-	public Object getOutput() {
-		return output;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if this response has any output associated with it.
-	 *
-	 * @return <jk>true</jk> if {@code setInput()} has been called.
-	 */
-	public boolean hasOutput() {
-		return output != null || isNullOutput;
-	}
-
-	/**
-	 * Sets the output to a plain-text message regardless of the content type.
-	 *
-	 * @param text The output text to send.
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 */
-	public RestResponse sendPlainText(String text) throws IOException {
-		setContentType("text/plain");
-		getNegotiatedWriter().write(text);
-		return this;
-	}
-
-	/**
-	 * Equivalent to {@link HttpServletResponse#getOutputStream()}, except
-	 * 	wraps the output stream if an {@link Encoder} was found that matched
-	 * 	the <code>Accept-Encoding</code> header.
-	 *
-	 * @return A negotiated output stream.
-	 * @throws IOException
-	 */
-	public ServletOutputStream getNegotiatedOutputStream() throws IOException {
-		if (os == null) {
-			Encoder encoder = null;
-
-			String ae = request.getHeader("Accept-Encoding");
-			if (! (ae == null || ae.isEmpty())) {
-				String match = encoders != null ? encoders.findMatch(ae) : null;
-				if (match == null) {
-					// Identity should always match unless "identity;q=0" or "*;q=0" is specified.
-					if (ae.matches(".*(identity|\\*)\\s*;\\s*q\\s*=\\s*(0(?!\\.)|0\\.0).*")) {
-						throw new RestException(SC_NOT_ACCEPTABLE,
-							"Unsupported encoding in request header ''Accept-Encoding'': ''{0}''\n\tSupported codings: {1}",
-							ae, encoders.getSupportedEncodings()
-						);
-					}
-				} else {
-					encoder = encoders.getEncoder(match);
-
-					// Some clients don't recognize identity as an encoding, so don't set it.
-					if (! match.equals("identity"))
-					setHeader("content-encoding", match);
-				}
-			}
-			os = getOutputStream();
-			if (encoder != null) {
-				final OutputStream os2 = encoder.getOutputStream(os);
-				os = new ServletOutputStream(){
-					@Override /* OutputStream */
-					public final void write(byte[] b, int off, int len) throws IOException {
-						os2.write(b, off, len);
-					}
-					@Override /* OutputStream */
-					public final void write(int b) throws IOException {
-						os2.write(b);
-					}
-					@Override /* OutputStream */
-					public final void flush() throws IOException {
-						os2.flush();
-					}
-					@Override /* OutputStream */
-					public final void close() throws IOException {
-						os2.close();
-					}
-				};
-			}
-		}
-		return os;
-	}
-
-	@Override /* ServletResponse */
-	public ServletOutputStream getOutputStream() throws IOException {
-		if (os == null)
-			os = super.getOutputStream();
-		return os;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if {@link #getOutputStream()} has been called.
-	 *
-	 * @return <jk>true</jk> if {@link #getOutputStream()} has been called.
-	 */
-	public boolean getOutputStreamCalled() {
-		return os != null;
-	}
-
-	/**
-	 * Returns the writer to the response body.
-	 * This methods bypasses any specified encoders and returns a regular unbuffered writer.
-	 * Use the {@link #getNegotiatedWriter()} method if you want to use the matched encoder (if any).
-	 */
-	@Override /* ServletResponse */
-	public PrintWriter getWriter() throws IOException {
-		return getWriter(true);
-	}
-
-	/**
-	 * Convenience method meant to be used when rendering directly to a browser with no buffering.
-	 * Sets the header <js>"x-content-type-options=nosniff"</js> so that output is rendered
-	 * immediately on IE and Chrome without any buffering for content-type sniffing.
-	 *
-	 * @param contentType The value to set as the <code>Content-Type</code> on the response.
-	 * @return The raw writer.
-	 * @throws IOException
-	 */
-	public PrintWriter getDirectWriter(String contentType) throws IOException {
-		setContentType(contentType);
-		setHeader("x-content-type-options", "nosniff");
-		return getWriter();
-	}
-
-	/**
-	 * Equivalent to {@link HttpServletResponse#getWriter()}, except
-	 * 	wraps the output stream if an {@link Encoder} was found that matched
-	 * 	the <code>Accept-Encoding</code> header and sets the <code>Content-Encoding</code>
-	 * 	header to the appropriate value.
-	 *
-	 * @return The negotiated writer.
-	 * @throws IOException
-	 */
-	public PrintWriter getNegotiatedWriter() throws IOException {
-		return getWriter(false);
-	}
-
-	private PrintWriter getWriter(boolean raw) throws IOException {
-		// If plain text requested, override it now.
-		if (request.isPlainText()) {
-			setHeader("Content-Type", "text/plain");
-		}
-
-		try {
-			OutputStream out = (raw ? getOutputStream() : getNegotiatedOutputStream());
-			return new PrintWriter(new OutputStreamWriter(out, getCharacterEncoding()));
-		} catch (UnsupportedEncodingException e) {
-			String ce = getCharacterEncoding();
-			setCharacterEncoding("UTF-8");
-			throw new RestException(SC_NOT_ACCEPTABLE, "Unsupported charset in request header ''Accept-Charset'': ''{0}''", ce);
-		}
-	}
-
-	/**
-	 * Returns the <code>Content-Type</code> header stripped of the charset attribute if present.
-	 *
-	 * @return The <code>media-type</code> portion of the <code>Content-Type</code> header.
-	 */
-	public String getMediaType() {
-		String contentType = getContentType();
-		if (contentType == null)
-			return null;
-		int i = contentType.indexOf(';');
-		if (i == -1)
-			return contentType;
-		return contentType.substring(0, i).trim();
-
-	}
-
-	/**
-	 * Redirects to the specified URI.
-	 * <p>
-	 * Relative URIs are always interpreted as relative to the context root.
-	 * This is similar to how WAS handles redirect requests, and is different from how Tomcat
-	 * 	handles redirect requests.
-	 */
-	@Override /* ServletResponse */
-	public void sendRedirect(String uri) throws IOException {
-		char c = (uri.length() > 0 ? uri.charAt(0) : 0);
-		if (c != '/' && uri.indexOf("://") == -1)
-			uri = request.getContextPath() + '/' + uri;
-		super.sendRedirect(uri);
-	}
-
-	/**
-	 * Returns the URL-encoding serializer associated with this response.
-	 *
-	 * @return The URL-encoding serializer associated with this response.
-	 */
-	public UrlEncodingSerializer getUrlEncodingSerializer() {
-		return urlEncodingSerializer;
-	}
-
-	@Override /* ServletResponse */
-	public void setHeader(String name, String value) {
-		// Jetty doesn't set the content type correctly if set through this method.
-		// Tomcat/WAS does.
-		if (name.equalsIgnoreCase("Content-Type"))
-			super.setContentType(value);
-		else
-			super.setHeader(name, value);
-	}
-}