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 2017/02/08 01:16:05 UTC

[7/7] incubator-juneau git commit: Eliminate ClassMeta dependencies from Parser. Clean up docs.

Eliminate ClassMeta dependencies from Parser.  Clean up docs.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/30dd3b93
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/30dd3b93
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/30dd3b93

Branch: refs/heads/master
Commit: 30dd3b93677907ccbbac7594985f0f8a6f2cba64
Parents: 642f5dd
Author: JamesBognar <ja...@apache.org>
Authored: Tue Feb 7 20:15:48 2017 -0500
Committer: JamesBognar <ja...@apache.org>
Committed: Tue Feb 7 20:15:48 2017 -0500

----------------------------------------------------------------------
 .../apache/juneau/jena/RdfCommonContext.java    |   34 +-
 .../java/org/apache/juneau/jena/RdfParser.java  |   10 +-
 .../apache/juneau/jena/RdfParserContext.java    |    6 +-
 .../org/apache/juneau/jena/RdfSerializer.java   |    8 +-
 .../juneau/jena/RdfSerializerContext.java       |    6 +-
 .../juneau/jena/annotation/RdfSchema.java       |    2 +-
 .../juneau/a/rttests/RoundTripBeanMapsTest.java |   67 +-
 .../juneau/a/rttests/RoundTripMapsTest.java     |   22 +-
 .../a/rttests/RoundTripPrimitivesBeansTest.java |    4 +-
 .../a/rttests/RoundTripSimpleObjectsTest.java   |    2 +-
 .../apache/juneau/a/rttests/RoundTripTest.java  |   28 +-
 .../a/rttests/RoundTripToObjectMapsTest.java    |    6 +-
 .../juneau/dto/html5/BasicHtmlSchemaTest.java   |    4 +-
 .../juneau/dto/html5/HtmlTemplatesTest.java     |    4 +-
 .../java/org/apache/juneau/jena/CommonTest.java |    3 +-
 .../java/org/apache/juneau/jena/RdfTest.java    |    3 +-
 .../java/org/apache/juneau/json/JsonTest.java   |    6 +-
 .../transforms/ByteArrayBase64SwapTest.java     |    9 +-
 .../CommonParser_UrlEncodingTest.java           |    3 +-
 .../juneau/urlencoding/UonParserTest.java       |   62 +-
 .../urlencoding/UrlEncodingParserTest.java      |   42 +-
 .../java/org/apache/juneau/BeanContext.java     |  215 ++--
 .../main/java/org/apache/juneau/BeanMap.java    |    8 +-
 .../java/org/apache/juneau/BeanMapEntry.java    |    2 +-
 .../main/java/org/apache/juneau/BeanMeta.java   |    2 +-
 .../org/apache/juneau/BeanPropertyMeta.java     |    6 +-
 .../java/org/apache/juneau/BeanRegistry.java    |   20 +-
 .../java/org/apache/juneau/BeanSession.java     |  120 +-
 .../main/java/org/apache/juneau/ClassMeta.java  |    2 +-
 .../main/java/org/apache/juneau/CoreApi.java    |    2 +-
 .../org/apache/juneau/FormattedException.java   |    4 +-
 .../juneau/FormattedRuntimeException.java       |    4 +-
 .../main/java/org/apache/juneau/MediaRange.java |    2 +-
 .../main/java/org/apache/juneau/MediaType.java  |   16 +-
 .../main/java/org/apache/juneau/ObjectList.java |    4 +-
 .../main/java/org/apache/juneau/ObjectMap.java  |    2 +-
 .../apache/juneau/PropertyNamerDashedLC.java    |    2 +-
 .../org/apache/juneau/PropertyNamerDefault.java |    2 +-
 .../main/java/org/apache/juneau/Session.java    |    2 +-
 .../main/java/org/apache/juneau/Visibility.java |    2 +-
 .../java/org/apache/juneau/annotation/Bean.java |    8 +-
 .../apache/juneau/annotation/BeanProperty.java  |    8 +-
 .../org/apache/juneau/annotation/Consumes.java  |    4 +-
 .../java/org/apache/juneau/annotation/Pojo.java |    2 +-
 .../org/apache/juneau/annotation/Produces.java  |    4 +-
 .../java/org/apache/juneau/annotation/URI.java  |    2 +-
 .../org/apache/juneau/dto/cognos/DataSet.java   |    2 +-
 .../apache/juneau/dto/jsonschema/JsonType.java  |    2 +-
 .../org/apache/juneau/dto/swagger/Contact.java  |    2 +-
 .../dto/swagger/ExternalDocumentation.java      |    2 +-
 .../apache/juneau/dto/swagger/HeaderInfo.java   |    2 +-
 .../org/apache/juneau/dto/swagger/Info.java     |    2 +-
 .../org/apache/juneau/dto/swagger/Items.java    |    2 +-
 .../org/apache/juneau/dto/swagger/License.java  |    2 +-
 .../apache/juneau/dto/swagger/Operation.java    |    2 +-
 .../apache/juneau/dto/swagger/ResponseInfo.java |    2 +-
 .../juneau/dto/swagger/SecurityScheme.java      |    2 +-
 .../java/org/apache/juneau/dto/swagger/Tag.java |    2 +-
 .../org/apache/juneau/encoders/Encoder.java     |    2 +-
 .../apache/juneau/encoders/EncoderGroup.java    |    4 +-
 .../apache/juneau/html/HtmlDocSerializer.java   |    6 +-
 .../juneau/html/HtmlDocSerializerContext.java   |   16 +-
 .../java/org/apache/juneau/html/HtmlParser.java |   11 +-
 .../apache/juneau/html/HtmlParserContext.java   |    6 +-
 .../juneau/html/HtmlSchemaDocSerializer.java    |    4 +-
 .../org/apache/juneau/html/HtmlSerializer.java  |    8 +-
 .../juneau/html/HtmlSerializerContext.java      |    6 +-
 .../juneau/html/HtmlStrippedDocSerializer.java  |    4 +-
 .../apache/juneau/html/SimpleHtmlWriter.java    |    2 +-
 .../java/org/apache/juneau/ini/ConfigFile.java  |    2 +-
 .../java/org/apache/juneau/ini/ConfigMgr.java   |    2 +-
 .../org/apache/juneau/internal/ClassUtils.java  |    2 +-
 .../apache/juneau/internal/IdentityList.java    |    6 +-
 .../apache/juneau/internal/JuneauLogger.java    |  100 +-
 .../org/apache/juneau/internal/StringUtils.java |    6 +-
 .../apache/juneau/internal/ThrowableUtils.java  |    6 +-
 .../juneau/jso/JavaSerializedObjectParser.java  |    2 +-
 .../jso/JavaSerializedObjectSerializer.java     |    2 +-
 .../java/org/apache/juneau/json/JsonParser.java |   13 +-
 .../apache/juneau/json/JsonParserContext.java   |   10 +-
 .../juneau/json/JsonSchemaSerializer.java       |    4 +-
 .../org/apache/juneau/json/JsonSerializer.java  |    8 +-
 .../juneau/json/JsonSerializerContext.java      |    6 +-
 .../java/org/apache/juneau/json/JsonWriter.java |    5 +-
 .../org/apache/juneau/json/annotation/Json.java |    2 +-
 .../juneau/msgpack/MsgPackInputStream.java      |    5 +-
 .../juneau/msgpack/MsgPackOutputStream.java     |    5 +-
 .../apache/juneau/msgpack/MsgPackParser.java    |    5 +-
 .../juneau/msgpack/MsgPackParserContext.java    |    6 +-
 .../juneau/msgpack/MsgPackSerializer.java       |    4 +-
 .../msgpack/MsgPackSerializerContext.java       |    6 +-
 .../apache/juneau/parser/InputStreamParser.java |    2 +-
 .../apache/juneau/parser/ParseException.java    |    4 +-
 .../java/org/apache/juneau/parser/Parser.java   |  174 ++-
 .../org/apache/juneau/parser/ParserGroup.java   |    4 +-
 .../org/apache/juneau/parser/ReaderParser.java  |    2 +-
 .../juneau/plaintext/PlainTextParser.java       |    8 +-
 .../juneau/plaintext/PlainTextSerializer.java   |    6 +-
 .../serializer/OutputStreamSerializer.java      |    2 +-
 .../juneau/serializer/SerializeException.java   |    4 +-
 .../apache/juneau/serializer/Serializer.java    |    4 +-
 .../juneau/serializer/SerializerContext.java    |    9 +-
 .../juneau/serializer/SerializerGroup.java      |    4 +-
 .../juneau/serializer/SerializerWriter.java     |    2 +-
 .../apache/juneau/serializer/StringObject.java  |    2 +-
 .../juneau/serializer/WriterSerializer.java     |    2 +-
 .../apache/juneau/soap/SoapXmlSerializer.java   |    6 +-
 .../juneau/soap/SoapXmlSerializerContext.java   |    6 +-
 .../java/org/apache/juneau/svl/VarResolver.java |    4 +-
 .../org/apache/juneau/svl/vars/ArgsVar.java     |    2 +-
 .../apache/juneau/svl/vars/ConfigFileVar.java   |    2 +-
 .../apache/juneau/svl/vars/EnvVariablesVar.java |    2 +-
 .../apache/juneau/svl/vars/ManifestFileVar.java |    2 +-
 .../juneau/svl/vars/SystemPropertiesVar.java    |    2 +-
 .../juneau/transform/BeanFilterBuilder.java     |    4 +-
 .../org/apache/juneau/transform/PojoSwap.java   |    4 +-
 .../juneau/transforms/BeanStringSwap.java       |    2 +-
 .../apache/juneau/transforms/CalendarSwap.java  |   46 +-
 .../org/apache/juneau/transforms/DateSwap.java  |   46 +-
 .../apache/juneau/transforms/ReaderSwap.java    |    4 +-
 .../apache/juneau/urlencoding/UonParser.java    |   11 +-
 .../juneau/urlencoding/UonParserContext.java    |    6 +-
 .../juneau/urlencoding/UonSerializer.java       |    8 +-
 .../urlencoding/UonSerializerContext.java       |    6 +-
 .../apache/juneau/urlencoding/UonWriter.java    |    5 +-
 .../juneau/urlencoding/UrlEncodingContext.java  |   11 +-
 .../juneau/urlencoding/UrlEncodingParser.java   |   45 +-
 .../urlencoding/UrlEncodingParserContext.java   |   13 +-
 .../urlencoding/UrlEncodingSerializer.java      |    8 +-
 .../UrlEncodingSerializerContext.java           |   13 +-
 .../main/java/org/apache/juneau/utils/Args.java |    6 +-
 .../org/apache/juneau/utils/MessageBundle.java  |    6 +-
 .../apache/juneau/utils/PojoIntrospector.java   |    2 +-
 .../java/org/apache/juneau/utils/PojoQuery.java |    8 +-
 .../java/org/apache/juneau/utils/PojoRest.java  |   27 +-
 .../apache/juneau/utils/PojoRestException.java  |    2 +-
 .../org/apache/juneau/utils/ProcBuilder.java    |    2 +-
 .../org/apache/juneau/xml/XmlDocSerializer.java |    4 +-
 .../java/org/apache/juneau/xml/XmlParser.java   |    7 +-
 .../org/apache/juneau/xml/XmlParserContext.java |   11 +-
 .../juneau/xml/XmlSchemaDocSerializer.java      |    4 +-
 .../apache/juneau/xml/XmlSchemaSerializer.java  |    6 +-
 .../org/apache/juneau/xml/XmlSerializer.java    |    6 +-
 .../apache/juneau/xml/XmlSerializerContext.java |   16 +-
 .../java/org/apache/juneau/xml/XmlWriter.java   |    5 +-
 .../org/apache/juneau/xml/annotation/Xml.java   |    4 +-
 .../apache/juneau/xml/annotation/XmlSchema.java |    2 +-
 juneau-core/src/main/javadoc/javadoc.css        |    5 +
 juneau-core/src/main/javadoc/overview.html      |   77 +-
 .../juneau-examples-rest.launch                 |   30 +
 .../examples/rest/MethodExampleResource.java    |    2 +-
 .../juneau/microservice/Microservice.java       |    6 +-
 .../juneau/microservice/RestMicroservice.java   |    2 +-
 .../juneau/rest/client/AllowAllRedirects.java   |    7 +-
 .../juneau/rest/client/NameValuePairs.java      |    2 +-
 .../juneau/rest/client/ResponsePattern.java     |    2 +-
 .../org/apache/juneau/rest/client/RestCall.java |   98 +-
 .../apache/juneau/rest/client/RestClient.java   |    4 +-
 .../rest/client/SerializedNameValuePair.java    |    2 +-
 .../apache/juneau/rest/jaxrs/BaseProvider.java  |    6 +-
 .../juneau/rest/jaxrs/JuneauProvider.java       |    2 +-
 .../java/org/apache/juneau/rest/Redirect.java   |    4 +-
 .../org/apache/juneau/rest/RestConverter.java   |    2 +-
 .../org/apache/juneau/rest/RestException.java   |    2 +-
 .../java/org/apache/juneau/rest/RestGuard.java  |    2 +-
 .../org/apache/juneau/rest/RestMatcher.java     |    2 +-
 .../org/apache/juneau/rest/RestRequest.java     | 1038 ++++++++++--------
 .../org/apache/juneau/rest/RestResponse.java    |    8 +-
 .../org/apache/juneau/rest/RestServlet.java     |   43 +-
 .../apache/juneau/rest/RestServletContext.java  |    2 +-
 .../juneau/rest/RestServletException.java       |    2 +-
 .../org/apache/juneau/rest/annotation/Body.java |    2 +-
 .../apache/juneau/rest/annotation/FormData.java |    2 +-
 .../juneau/rest/annotation/HasFormData.java     |    2 +-
 .../apache/juneau/rest/annotation/HasQuery.java |    2 +-
 .../apache/juneau/rest/annotation/Header.java   |    2 +-
 .../apache/juneau/rest/annotation/Messages.java |    2 +-
 .../apache/juneau/rest/annotation/Method.java   |    2 +-
 .../juneau/rest/annotation/Parameter.java       |   21 +-
 .../org/apache/juneau/rest/annotation/Path.java |    2 +-
 .../juneau/rest/annotation/PathRemainder.java   |    2 +-
 .../juneau/rest/annotation/Properties.java      |    2 +-
 .../apache/juneau/rest/annotation/Query.java    |    2 +-
 .../apache/juneau/rest/annotation/Response.java |    6 +-
 .../juneau/rest/annotation/RestMethod.java      |   12 +-
 .../juneau/rest/annotation/RestResource.java    |   20 +-
 .../juneau/rest/converters/Queryable.java       |   15 +-
 .../juneau/rest/labels/ResourceDescription.java |    2 +-
 .../apache/juneau/rest/labels/ResourceLink.java |    4 +-
 189 files changed, 1568 insertions(+), 1565 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java
----------------------------------------------------------------------
diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java
index 61414c1..548dce5 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java
@@ -309,7 +309,7 @@ public interface RdfCommonContext {
 	 * <ul class='spaced-list'>
 	 * 	<li><js>"lax"</js> - The rules for RDF URI references only, which does permit spaces although the use of spaces is not good practice.
 	 * 	<li><js>"strict"</js> - Sets the IRI engine with rules for valid IRIs, XLink and RDF; it does not permit spaces in IRIs.
-	 * 	<li><js>"iri"</js> - Sets the IRI engine to IRI (<a href='http://www.ietf.org/rfc/rfc3986.txt'>RFC 3986</a>, <a href='http://www.ietf.org/rfc/rfc3987.txt'>RFC 3987</a>).
+	 * 	<li><js>"iri"</js> - Sets the IRI engine to IRI (<a class="doclink" href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>, <a class="doclink" href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>).
 	 * </ul>
 	 */
 	public static final String RDF_arp_iriRules = "Rdf.jena.rdfXml.iri-rules";
@@ -338,10 +338,10 @@ public interface RdfCommonContext {
 	 * <p>
 	 * 	See also:
 	 * <ul class='spaced-list'>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setDefaultErrorMode()'>ARPOptions.setDefaultErrorMode()</a>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setLaxErrorMode()'>ARPOptions.setLaxErrorMode()</a>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setStrictErrorMode()'>ARPOptions.setStrictErrorMode()</a>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setStrictErrorMode(int)'>ARPOptions.setStrictErrorMode(int)</a>
+	 * 	<li><a class="doclink" href="http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setDefaultErrorMode()">ARPOptions.setDefaultErrorMode()</a>
+	 * 	<li><a class="doclink" href="http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setLaxErrorMode()">ARPOptions.setLaxErrorMode()</a>
+	 * 	<li><a class="doclink" href="http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setStrictErrorMode()">ARPOptions.setStrictErrorMode()</a>
+	 * 	<li><a class="doclink" href="http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setStrictErrorMode(int)">ARPOptions.setStrictErrorMode(int)</a>
 	 * </ul>
 	 */
 	public static final String RDF_arp_errorMode = "Rdf.jena.rdfXml.error-mode";
@@ -359,7 +359,7 @@ public interface RdfCommonContext {
 	 * <p>
 	 * 	See also:
 	 * <ul class='spaced-list'>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setEmbedding(boolean)'>ARPOptions.setEmbedding(boolean)</a>
+	 * 	<li><a class="doclink" href="http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setEmbedding(boolean)">ARPOptions.setEmbedding(boolean)</a>
 	 * </ul>
 	 */
 	public static final String RDF_arp_embedding = "Rdf.jena.rdfXml.embedding";
@@ -384,8 +384,8 @@ public interface RdfCommonContext {
 	 * <p>
 	 * 	See also:
 	 * <ul class='spaced-list'>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPErrorNumbers.html'>ARPErrorNumbers</a>
-	 * 	<li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setErrorMode(int,%20int)'>ARPOptions.setErrorMode(int, int)</a>
+	 * 	<li><a class="doclink" href="http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPErrorNumbers.html">ARPErrorNumbers</a>
+	 * 	<li><a class="doclink" href="http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setErrorMode(int,%20int)">ARPOptions.setErrorMode(int, int)</a>
 	 * </ul>
 	 */
 	public static final String RDF_arp_err_ = "Rdf.jena.rdfXml.ERR_";
@@ -549,7 +549,7 @@ public interface RdfCommonContext {
 	 * 	<li><b>Default:</b> <js>""</js>
 	 * </ul>
 	 * <p>
-	 * 	A list of <code>Resource</code> or a <code>String</code> being a comma separated list of fragment IDs from <a href='http://www.w3.org/TR/rdf-syntax-grammar'>RDF Syntax Grammar</a> indicating grammar rules that will not be used.
+	 * 	A list of <code>Resource</code> or a <code>String</code> being a comma separated list of fragment IDs from <a class="doclink" href="http://www.w3.org/TR/rdf-syntax-grammar">RDF Syntax Grammar</a> indicating grammar rules that will not be used.
 	 */
 	public static final String RDF_rdfxml_blockRules = "Rdf.jena.rdfXml.blockRules";
 
@@ -701,9 +701,11 @@ public interface RdfCommonContext {
 	 * 	<li><js>"LIST"</js> - RDF List container.
 	 * 	<li><js>"MULTI_VALUED"</js> - Multi-valued properties.
 	 * </ul>
-	 *	<p>
-	 *		Important Note:  If you use <js>"BAG"</js> or <js>"MULTI_VALUED"</js>, the order of the elements
-	 *		in the collection will get lost.
+	 * <p>
+	 * <h5 class='section'>Notes:</h5>
+	 * <ul>
+	 * 	<li>If you use <js>"BAG"</js> or <js>"MULTI_VALUED"</js>, the order of the elements in the collection will get lost.
+	 * </ul>
 	 */
 	public static final String RDF_collectionFormat = "Rdf.collectionFormat";
 
@@ -726,7 +728,7 @@ public interface RdfCommonContext {
 	 *	This setting is typically only useful if the beans being parsed into do not have a bean property
 	 *	annotated with {@link Rdf#beanUri @Rdf(beanUri=true)}.
 	 *
-	 * <h6 class='topic'>Example:</h6>
+	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode'>
 	 * 	WriterSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev().setProperty(<jsf>RDF_looseCollection</jsf>, <jk>true</jk>);
 	 * 	ReaderParser p = <jk>new</jk> RdfParser.Xml().setProperty(<jsf>RDF_looseCollection</jsf>, <jk>true</jk>);
@@ -736,15 +738,15 @@ public interface RdfCommonContext {
 	 * 	<jc>// Serialize to RDF/XML as loose resources</jc>
 	 * 	String rdfXml = s.serialize(l);
 	 *
-	 *		<jc>// Parse back into a Java collection</jc>
-	 * 	l = p.parseCollection(rdfXml, LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
+	 *	<jc>// Parse back into a Java collection</jc>
+	 * 	l = p.parse(rdfXml, LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
 	 *
 	 * 	MyBean[] b = createArrayOfMyBeans();
 	 *
 	 * 	<jc>// Serialize to RDF/XML as loose resources</jc>
 	 * 	String rdfXml = s.serialize(b);
 	 *
-	 *		<jc>// Parse back into a bean array</jc>
+	 *	<jc>// Parse back into a bean array</jc>
 	 * 	b = p.parse(rdfXml, MyBean[].<jk>class</jk>);
 	 * </p>
 	 */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
----------------------------------------------------------------------
diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
index eec0ffc..9ac292f 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -30,9 +30,9 @@ import com.hp.hpl.jena.util.iterator.*;
 /**
  * Parses RDF into POJOs.
  *
- * <h6 class='topic'>Configurable properties</h6>
+ * <h5 class='section'>Configurable properties:</h5>
  * <p>
- * 	Refer to <a class='doclink' href='package-summary.html#ParserConfigurableProperties'>Configurable Properties</a>
+ * 	Refer to <a class="doclink" href="package-summary.html#ParserConfigurableProperties">Configurable Properties</a>
  * 		for the entire list of configurable properties.
  *
  * <h6 class='topic'>Behavior-specific subclasses</h6>
@@ -45,9 +45,9 @@ import com.hp.hpl.jena.util.iterator.*;
  * 	<li>{@link RdfParser.N3} - N3.
  * </ul>
  *
- * <h6 class='topic'>Additional Information</h6>
+ * <h5 class='section'>Additional information:</h5>
  * <p>
- * 	See <a class='doclink' href='package-summary.html#TOC'>RDF Overview</a> for an overview of RDF support in Juneau.
+ * 	See <a class="doclink" href="package-summary.html#TOC">RDF Overview</a> for an overview of RDF support in Juneau.
  */
 @Consumes(value="text/xml+rdf")
 public class RdfParser extends ReaderParser {
@@ -108,8 +108,6 @@ public class RdfParser extends ReaderParser {
 
 		RdfParserSession s = (RdfParserSession)session;
 
-		type = session.normalizeClassMeta(type);
-
 		Model model = s.getModel();
 		RDFReader r = s.getRdfReader();
 		r.read(model, session.getReader(), null);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
index eb0c1f9..224dc13 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
@@ -51,11 +51,11 @@ import org.apache.juneau.xml.*;
  *
  * <h6 class='topic' id='ConfigProperties'>Configurable properties inherited by the RDF parsers</h6>
  * <ul class='javahierarchy'>
- * 	<li class='c'><a class='doclink' href='../BeanContext.html#ConfigProperties'>BeanContext</a> - Properties associated with handling beans on serializers and parsers.
+ * 	<li class='c'><a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a> - Properties associated with handling beans on serializers and parsers.
  * 	<ul>
- * 		<li class='c'><a class='doclink' href='../parser/ParserContext.html#ConfigProperties'>ParserContext</a> - Configurable properties common to all parsers.
+ * 		<li class='c'><a class="doclink" href="../parser/ParserContext.html#ConfigProperties">ParserContext</a> - Configurable properties common to all parsers.
  * 		<ul>
- * 			<li class='i'><a class='doclink' href='RdfCommonContext.html#ConfigProperties'>RdfCommonContext</a> - Configurable properties common to the RDF serializers and parsers.
+ * 			<li class='i'><a class="doclink" href="RdfCommonContext.html#ConfigProperties">RdfCommonContext</a> - Configurable properties common to the RDF serializers and parsers.
  * 		</ul>
  * 	</ul>
  * </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index 461decb..f296666 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -30,9 +30,9 @@ import com.hp.hpl.jena.rdf.model.*;
 /**
  * Serializes POJOs to RDF.
  *
- * <h6 class='topic'>Configurable properties</h6>
+ * <h5 class='section'>Configurable properties:</h5>
  * <p>
- * 	Refer to <a class='doclink' href='package-summary.html#SerializerConfigurableProperties'>Configurable Properties</a>
+ * 	Refer to <a class="doclink" href="package-summary.html#SerializerConfigurableProperties">Configurable Properties</a>
  * 		for the entire list of configurable properties.
  *
  * <h6 class='topic'>Behavior-specific subclasses</h6>
@@ -46,9 +46,9 @@ import com.hp.hpl.jena.rdf.model.*;
  * 	<li>{@link RdfSerializer.N3} - N3.
  * </ul>
  *
- * <h6 class='topic'>Additional Information</h6>
+ * <h5 class='section'>Additional information:</h5>
  * <p>
- * 	See <a class='doclink' href='package-summary.html#TOC'>RDF Overview</a> for an overview of RDF support in Juneau.
+ * 	See <a class="doclink" href="package-summary.html#TOC">RDF Overview</a> for an overview of RDF support in Juneau.
  */
 @SuppressWarnings({ "rawtypes", "unchecked" })
 @Produces(value="text/xml+rdf+abbrev", contentType="text/xml+rdf")

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
index fec2789..2e3e5f0 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
@@ -72,11 +72,11 @@ import org.apache.juneau.xml.*;
  *
  * <h6 class='topic' id='ConfigProperties'>Configurable properties inherited by the RDF serializers</h6>
  * <ul class='javahierarchy'>
- * 	<li class='c'><a class='doclink' href='../BeanContext.html#ConfigProperties'>BeanContext</a> - Properties associated with handling beans on serializers and parsers.
+ * 	<li class='c'><a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a> - Properties associated with handling beans on serializers and parsers.
  * 	<ul>
- * 		<li class='c'><a class='doclink' href='../serializer/SerializerContext.html#ConfigProperties'>SerializerContext</a> - Configurable properties common to all serializers.
+ * 		<li class='c'><a class="doclink" href="../serializer/SerializerContext.html#ConfigProperties">SerializerContext</a> - Configurable properties common to all serializers.
  * 		<ul>
- * 			<li class='c'><a class='doclink' href='RdfCommonContext.html#ConfigProperties'>RdfCommonContext</a> - Configurable properties common to the RDF serializers and parsers.
+ * 			<li class='c'><a class="doclink" href="RdfCommonContext.html#ConfigProperties">RdfCommonContext</a> - Configurable properties common to the RDF serializers and parsers.
  * 		</ul>
  * 	</ul>
  * </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfSchema.java
----------------------------------------------------------------------
diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfSchema.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfSchema.java
index 5471bcf..3520f0e 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfSchema.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfSchema.java
@@ -52,7 +52,7 @@ public @interface RdfSchema {
 	 * <p>
 	 * 	Inherited by child packages.
 	 *
-	 * <h6 class='topic'>Example:</h6>
+	 * <h5 class='section'>Example:</h5>
 	 * <p>
 	 * 	Contents of <code>package-info.java</code>...
 	 * </p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
index c610ee5..7d30f9a 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
@@ -19,7 +19,6 @@ import java.util.*;
 
 import javax.xml.datatype.*;
 
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.json.annotation.*;
@@ -97,21 +96,21 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		}};
 
 		l.get(0).setF1("bar");
-		l = roundTripCollection(l, List.class, IBean.class);
+		l = roundTrip(l, List.class, IBean.class);
 		assertEquals("bar", l.get(0).getF1());
-		l = roundTripCollection(l, LinkedList.class, IBean.class);
+		l = roundTrip(l, LinkedList.class, IBean.class);
 		assertEquals("bar", l.get(0).getF1());
 
 		l.get(0).setF1("baz");
-		l = roundTripCollection(l, List.class, ABean.class);
+		l = roundTrip(l, List.class, ABean.class);
 		assertEquals("baz", l.get(0).getF1());
-		l = roundTripCollection(l, LinkedList.class, ABean.class);
+		l = roundTrip(l, LinkedList.class, ABean.class);
 		assertEquals("baz", l.get(0).getF1());
 
 		l.get(0).setF1("bing");
-		l = roundTripCollection(l, List.class, CBean.class);
+		l = roundTrip(l, List.class, CBean.class);
 		assertEquals("bing", l.get(0).getF1());
-		l = roundTripCollection(l, LinkedList.class, CBean.class);
+		l = roundTrip(l, LinkedList.class, CBean.class);
 		assertEquals("bing", l.get(0).getF1());
 	}
 
@@ -125,21 +124,21 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		}};
 
 		l.get("foo").setF1("bar");
-		l = roundTripMap(l, Map.class, String.class, IBean.class);
+		l = roundTrip(l, Map.class, String.class, IBean.class);
 		assertEquals("bar", l.get("foo").getF1());
-		l = roundTripMap(l, LinkedHashMap.class, String.class, IBean.class);
+		l = roundTrip(l, LinkedHashMap.class, String.class, IBean.class);
 		assertEquals("bar", l.get("foo").getF1());
 
 		l.get("foo").setF1("baz");
-		l = roundTripMap(l, Map.class, String.class, ABean.class);
+		l = roundTrip(l, Map.class, String.class, ABean.class);
 		assertEquals("baz", l.get("foo").getF1());
-		l = roundTripMap(l, LinkedHashMap.class, String.class, ABean.class);
+		l = roundTrip(l, LinkedHashMap.class, String.class, ABean.class);
 		assertEquals("baz", l.get("foo").getF1());
 
 		l.get("foo").setF1("bing");
-		l = roundTripMap(l, Map.class, String.class, CBean.class);
+		l = roundTrip(l, Map.class, String.class, CBean.class);
 		assertEquals("bing", l.get("foo").getF1());
-		l = roundTripMap(l, LinkedHashMap.class, String.class, CBean.class);
+		l = roundTrip(l, LinkedHashMap.class, String.class, CBean.class);
 		assertEquals("bing", l.get("foo").getF1());
 	}
 
@@ -925,7 +924,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 
 		Map<String,L> m = new LinkedHashMap<String,L>();
 		m.put("bar", L.create());
-		roundTripMap(m, LinkedHashMap.class, String.class, L.class);
+		roundTrip(m, LinkedHashMap.class, String.class, L.class);
 	}
 
 	@Json(wrapperAttr="foo")
@@ -949,7 +948,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 
 		Map<String,M> m = new LinkedHashMap<String,M>();
 		m.put("bar", M.create());
-		roundTripMap(m, LinkedHashMap.class, String.class, M.class);
+		roundTrip(m, LinkedHashMap.class, String.class, M.class);
 	}
 
 	@Json(wrapperAttr="foo")
@@ -973,42 +972,4 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 			return m;
 		}
 	}
-
-	//====================================================================================================
-	// Test parsing into top-level non-static inner classes with outer context.
-	//====================================================================================================
-	@Test
-	public void testParsingIntoTopLevelNonStaticInnerClasses() throws Exception {
-		N n = new N(1);
-
-		if (returnOriginalObject)
-			return;
-
-		Serializer s = getSerializer();
-		Parser p = getParser();
-
-		Object r = s.serialize(n.n2);
-		n = new N(2);
-		ParserSession session = p.createSession(r, null, null, n, null, null, null);
-
-		N.N2 n2 = p.parse(session, BeanContext.DEFAULT.getClassMeta(N.N2.class));
-
-		// The inner N2.f1 field should be the value of the outer object passed in through the context.
-		assertEquals(2, n2.f1);
-	}
-
-	public static class N {
-		public int f1;
-		public N2 n2;
-
-		public N(int f1) {
-			this.f1 = f1;
-			n2 = new N2();
-		}
-		public class N2 {
-			private int f1 = N.this.f1;
-			public int dummy = 1;
-		}
-	}
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
index abd4c72..41a3475 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
@@ -31,7 +31,7 @@ import org.junit.*;
  * Tests designed to serialize and parse objects to make sure we end up
  * with the same objects for all serializers and parsers.
  */
-@SuppressWarnings({"unchecked","deprecation","javadoc"})
+@SuppressWarnings({"deprecation","javadoc"})
 public class RoundTripMapsTest extends RoundTripTest {
 
 	public RoundTripMapsTest(String label, Serializer s, Parser p, int flags) throws Exception {
@@ -55,7 +55,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		Map<Integer,String> t = new TreeMap<Integer,String>();
 		t.put(1, "a");
 		t.put(2, null);
-		t = roundTripMap(t, TreeMap.class, Integer.class, String.class);
+		t = roundTrip(t, TreeMap.class, Integer.class, String.class);
 		assertEquals("a", t.get(1));
 		assertNull(null, t.get(2));
 
@@ -63,7 +63,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		t.put(1, "a");
 		t.put(2, null);
 		t.put(null, "b");
-		t = roundTripMap(t, HashMap.class, Integer.class, String.class);
+		t = roundTrip(t, HashMap.class, Integer.class, String.class);
 		assertEquals("a", t.get(1));
 		assertNull(t.get(2));
 		assertEquals("b", t.get(null));
@@ -77,7 +77,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		Map<Boolean,String> t = new TreeMap<Boolean,String>();
 		t.put(true, "a");
 		t.put(false, null);
-		t = roundTripMap(t, TreeMap.class, Boolean.class, String.class);
+		t = roundTrip(t, TreeMap.class, Boolean.class, String.class);
 		assertEquals("a", t.get(true));
 		assertNull(null, t.get(false));
 
@@ -85,7 +85,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		t.put(true, "a");
 		t.put(false, null);
 		t.put(null, "b");
-		t = roundTripMap(t, HashMap.class, Boolean.class, String.class);
+		t = roundTrip(t, HashMap.class, Boolean.class, String.class);
 		assertEquals("a", t.get(true));
 		assertNull(t.get(false));
 		assertEquals("b", t.get(null));
@@ -144,7 +144,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		Map<Date,String> t = new TreeMap<Date,String>();
 		t.put(td1, "a");
 		t.put(td2, null);
-		t = roundTripMap(t, TreeMap.class, Date.class, String.class);
+		t = roundTrip(t, TreeMap.class, Date.class, String.class);
 		assertEquals("a", t.get(td1));
 		assertNull(null, t.get(td2));
 
@@ -152,7 +152,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		t.put(td1, "a");
 		t.put(td2, null);
 		t.put(null, "b");
-		t = roundTripMap(t, HashMap.class, Date.class, String.class);
+		t = roundTrip(t, HashMap.class, Date.class, String.class);
 		assertEquals("a", t.get(td1));
 		assertNull(t.get(td2));
 		assertEquals("b", t.get(null));
@@ -171,7 +171,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		Map<Calendar,String> t = new TreeMap<Calendar,String>();
 		t.put(td1, "a");
 		t.put(td2, null);
-		t = roundTripMap(t, TreeMap.class, GregorianCalendar.class, String.class);
+		t = roundTrip(t, TreeMap.class, GregorianCalendar.class, String.class);
 		assertEquals("a", t.get(td1));
 		assertNull(null, t.get(td2));
 
@@ -179,7 +179,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		t.put(td1, "a");
 		t.put(td2, null);
 		t.put(null, "b");
-		t = roundTripMap(t, HashMap.class, GregorianCalendar.class, String.class);
+		t = roundTrip(t, HashMap.class, GregorianCalendar.class, String.class);
 		assertEquals("a", t.get(td1));
 		assertNull(t.get(td2));
 		assertEquals("b", t.get(null));
@@ -194,7 +194,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		Map<TestEnum,String> t = new TreeMap<TestEnum,String>();
 		t.put(TestEnum.FOO, "a");
 		t.put(TestEnum.BAR, null);
-		t = roundTripMap(t, TreeMap.class, TestEnum.class, String.class);
+		t = roundTrip(t, TreeMap.class, TestEnum.class, String.class);
 		assertEquals("a", t.get(TestEnum.FOO));
 		assertNull(null, t.get(TestEnum.BAR));
 
@@ -202,7 +202,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 		t.put(TestEnum.FOO, "a");
 		t.put(TestEnum.BAR, null);
 		t.put(null, "b");
-		t = roundTripMap(t, HashMap.class, TestEnum.class, String.class);
+		t = roundTrip(t, HashMap.class, TestEnum.class, String.class);
 		assertEquals("a", t.get(TestEnum.FOO));
 		assertNull(t.get(TestEnum.BAR));
 		assertEquals("b", t.get(null));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripPrimitivesBeansTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripPrimitivesBeansTest.java b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripPrimitivesBeansTest.java
index 8dd1407..49b18f8 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripPrimitivesBeansTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripPrimitivesBeansTest.java
@@ -24,7 +24,7 @@ import org.junit.*;
  * Tests designed to serialize and parse objects to make sure we end up
  * with the same objects for all serializers and parsers.
  */
-@SuppressWarnings({"unchecked","serial","javadoc"})
+@SuppressWarnings({"serial","javadoc"})
 public class RoundTripPrimitivesBeansTest extends RoundTripTest {
 
 	public RoundTripPrimitivesBeansTest(String label, Serializer s, Parser p, int flags) throws Exception {
@@ -274,7 +274,7 @@ public class RoundTripPrimitivesBeansTest extends RoundTripTest {
 		}};
 		if (p == null)
 			return;
-		t = roundTrip(t, p.getBeanContext().createSession().getCollectionClassMeta(List.class, PrimitivesBean.class));
+		t = roundTrip(t, List.class, PrimitivesBean.class);
 
 		PrimitivesBean t2 = t.get(2);
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripSimpleObjectsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripSimpleObjectsTest.java b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripSimpleObjectsTest.java
index 217209a..33cbe28 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripSimpleObjectsTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripSimpleObjectsTest.java
@@ -734,7 +734,7 @@ public class RoundTripSimpleObjectsTest extends RoundTripTest {
 		t.add(1);
 		t.add(2);
 		t.add(3);
-		t = roundTripCollection(t, Vector.class, Integer.class);
+		t = roundTrip(t, Vector.class, Integer.class);
 	}
 
 	//====================================================================================================

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
index 675084a..c0e8070 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
@@ -19,6 +19,7 @@ import static org.apache.juneau.urlencoding.UrlEncodingContext.*;
 import static org.apache.juneau.xml.XmlSerializerContext.*;
 import static org.apache.juneau.html.HtmlSerializerContext.*;
 
+import java.lang.reflect.Type;
 import java.util.*;
 import java.util.Map.*;
 
@@ -230,34 +231,11 @@ public abstract class RoundTripTest {
 		return null;
 	}
 
-	public <T> T roundTrip(T object, ClassMeta<? extends T> t) throws Exception {
+	public <T> T roundTrip(T object, Type c, Type...args) throws Exception {
 		Object out = serialize(object, this.s);
 		if (p == null)
 			return object;
-		T o = this.p.parse(out, t);
-		return (returnOriginalObject ? object : o);
-	}
-	public <T> T roundTrip(T object, Class<? extends T> c) throws Exception {
-		Object out = serialize(object, this.s);
-		if (p == null)
-			return object;
-		T o = this.p.parse(out, p.getBeanContext().getClassMeta(c));
-		return (returnOriginalObject ? object : o);
-	}
-	public <K,V,T extends Map<K,V>> T roundTripMap(T object, Class<? extends T> c, Class<K> k, Class<V> v) throws Exception {
-		Object out = serialize(object, this.s);
-		if (p == null)
-			return object;
-		ClassMeta<? extends T> cm = p.getBeanContext().getClassMeta(c, k, v);
-		T o = this.p.parse(out, cm);
-		return (returnOriginalObject ? object : o);
-	}
-	public <E,T extends Collection<E>> T roundTripCollection(T object, Class<? extends T> c, Class<E> e) throws Exception {
-		Object out = serialize(object, this.s);
-		if (p == null)
-			return object;
-		ClassMeta<? extends T> cm = p.getBeanContext().getClassMeta(c, e);
-		T o = this.p.parse(out, cm);
+		T o = (T)this.p.parse(out, c, args);
 		return (returnOriginalObject ? object : o);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripToObjectMapsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripToObjectMapsTest.java b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripToObjectMapsTest.java
index 3c7b33a..a3aa3b6 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripToObjectMapsTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripToObjectMapsTest.java
@@ -35,7 +35,7 @@ public class RoundTripToObjectMapsTest extends RoundTripTest {
 	//====================================================================================================
 	// Class with X(ObjectMap) constructor and toObjectMap() method.
 	//====================================================================================================
-	@SuppressWarnings({ "serial", "unchecked" })
+	@SuppressWarnings({"serial"})
 	@Test
 	public void test() throws Exception {
 		A a = new A(new ObjectMap("{f1:'a',f2:2}"));
@@ -50,13 +50,13 @@ public class RoundTripToObjectMapsTest extends RoundTripTest {
 		assertEquals(2, aa[0].f2);
 
 		List<A> a2 = new ArrayList<A>(){{add(new A(new ObjectMap("{f1:'a',f2:2}")));}};
-		a2 = roundTrip(a2, BeanContext.DEFAULT.createSession().getCollectionClassMeta(List.class, A.class));
+		a2 = roundTrip(a2, List.class, A.class);
 		assertEquals(1, a2.size());
 		assertEquals("a", a2.get(0).f1);
 		assertEquals(2, a2.get(0).f2);
 
 		Map<String,A> a3 = new LinkedHashMap<String,A>(){{put("a", new A(new ObjectMap("{f1:'a',f2:2}")));}};
-		a3 = roundTrip(a3, BeanContext.DEFAULT.createSession().getMapClassMeta(Map.class, String.class, A.class));
+		a3 = roundTrip(a3, Map.class, String.class, A.class);
 		assertEquals(1, a3.size());
 		assertEquals("a", a3.get("a").f1);
 		assertEquals(2, a3.get("a").f2);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java
index 9291052..ae3a028 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java
@@ -807,7 +807,7 @@ public class BasicHtmlSchemaTest {
 		} catch (AssertionError e) {
 			throw e;
 		} catch (Exception e) {
-			throw new AssertionError(label + " test failed", e);
+			throw new AssertionError(label + " test failed.  exception=" + e.getLocalizedMessage());
 		}
 	}
 
@@ -820,7 +820,7 @@ public class BasicHtmlSchemaTest {
 		} catch (AssertionError e) {
 			throw e;
 		} catch (Exception e) {
-			throw new AssertionError(label + " test failed", e);
+			throw new AssertionError(label + " test failed.  exception=" + e.getLocalizedMessage());
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/HtmlTemplatesTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/HtmlTemplatesTest.java b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/HtmlTemplatesTest.java
index 6606228..e4c442c 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/HtmlTemplatesTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/HtmlTemplatesTest.java
@@ -105,7 +105,7 @@ public class HtmlTemplatesTest {
 		} catch (AssertionError e) {
 			throw e;
 		} catch (Exception e) {
-			throw new AssertionError(label + " test failed", e);
+			throw new AssertionError(label + " test failed.  exception=" + e.getLocalizedMessage());
 		}
 	}
 
@@ -118,7 +118,7 @@ public class HtmlTemplatesTest {
 		} catch (AssertionError e) {
 			throw e;
 		} catch (Exception e) {
-			throw new AssertionError(label + " test failed", e);
+			throw new AssertionError(label + " test failed.  exception=" + e.getLocalizedMessage());
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java b/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java
index 45994ec..1e8daff 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java
@@ -236,8 +236,7 @@ public class CommonTest {
 
 		String r = s.serialize(l1);
 		assertEquals("<rdf:Seq><rdf:li rdf:parseType='Resource'><jp:x1><rdf:Seq><rdf:li rdf:parseType='Resource'><jp:x2>2</jp:x2></rdf:li></rdf:Seq></jp:x1><jp:x2>2</jp:x2></rdf:li></rdf:Seq>", strip(r));
-		ClassMeta<LinkedList<F>> cm = p.getBeanContext().getClassMeta(LinkedList.class, F.class);
-		l2 = p.parse(r, cm);
+		l2 = p.parse(r, LinkedList.class, F.class);
 		assertEqualObjects(l1, l2);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java b/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
index 6becb22..d84ca86 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
@@ -524,7 +524,6 @@ public class RdfTest {
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testLooseCollectionsOfBeans() throws Exception {
 		WriterSerializer s = new RdfSerializer.XmlAbbrev().setProperty(RDF_looseCollections, true);
 		ReaderParser p = new RdfParser.Xml().setProperty(RDF_looseCollections, true);
@@ -548,7 +547,7 @@ public class RdfTest {
 				+ "\n</rdf:RDF>";
 		assertXmlEquals(expected, rdfXml);
 
-		l = p.parseCollection(rdfXml, LinkedList.class, D.class);
+		l = p.parse(rdfXml, LinkedList.class, D.class);
 		D[] da = l.toArray(new D[l.size()]);
 		rdfXml = s.serialize(da);
 		expected =

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java b/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java
index 0963c4f..cfe4096 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java
@@ -194,7 +194,6 @@ public class JsonTest {
 	// testWrapperAttrAnnotationOnBean
 	//====================================================================================================
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testWrapperAttrAnnotationOnBean() throws Exception {
 		JsonSerializer s = JsonSerializer.DEFAULT_LAX;
 		JsonParser p = JsonParser.DEFAULT;
@@ -211,7 +210,7 @@ public class JsonTest {
 		r = s.serialize(m);
 		assertEquals("{bar:{foo:{f1:1}}}", r);
 
-		m = p.parseMap(r, LinkedHashMap.class, String.class, A.class);
+		m = p.parse(r, LinkedHashMap.class, String.class, A.class);
 		assertEquals(1, m.get("bar").f1);
 	}
 
@@ -230,7 +229,6 @@ public class JsonTest {
 	// testWrapperAttrAnnotationOnNonBean
 	//====================================================================================================
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testWrapperAttrAnnotationOnNonBean() throws Exception {
 		JsonSerializer s = JsonSerializer.DEFAULT_LAX;
 		JsonParser p = JsonParser.DEFAULT;
@@ -247,7 +245,7 @@ public class JsonTest {
 		r = s.serialize(m);
 		assertEquals("{bar:{foo:'1'}}", r);
 
-		m = p.parseMap(r, LinkedHashMap.class, String.class, B.class);
+		m = p.parse(r, LinkedHashMap.class, String.class, B.class);
 		assertEquals(1, m.get("bar").f1);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java b/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java
index ab8565f..a7d593e 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java
@@ -17,14 +17,13 @@ import static org.junit.Assert.*;
 
 import java.util.*;
 
-import org.apache.juneau.*;
 import org.apache.juneau.a.rttests.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
 import org.junit.*;
 
-@SuppressWarnings({"unchecked","serial","javadoc"})
+@SuppressWarnings({"serial","javadoc"})
 public class ByteArrayBase64SwapTest extends RoundTripTest {
 
 	public ByteArrayBase64SwapTest(String label, Serializer s, Parser p, int flags) throws Exception {
@@ -64,15 +63,13 @@ public class ByteArrayBase64SwapTest extends RoundTripTest {
 		if (p == null)
 			return;
 
-		BeanSession session = p.getBeanContext().createSession();
-
 		List<byte[]> fl = new ArrayList<byte[]>() {{
 			add(new byte[]{1,2,3});
 			add(new byte[]{4,5,6});
 			add(null);
 		}};
 		assertEquals("['AQID','BAUG',null]", s.serialize(fl));
-		fl = roundTrip(fl, session.getCollectionClassMeta(List.class, byte[].class));
+		fl = roundTrip(fl, List.class, byte[].class);
 		assertEquals(1, fl.get(0)[0]);
 		assertEquals(5, fl.get(1)[1]);
 		assertNull(fl.get(2));
@@ -83,7 +80,7 @@ public class ByteArrayBase64SwapTest extends RoundTripTest {
 			put(null, new byte[]{4,5,6});
 			put("null", new byte[]{7,8,9});
 		}};
-		fm = roundTrip(fm, session.getMapClassMeta(Map.class, String.class, byte[].class));
+		fm = roundTrip(fm, Map.class, String.class, byte[].class);
 		assertEquals(1, fm.get("foo")[0]);
 		assertNull(fm.get(1));
 		assertEquals(5, fm.get(null)[1]);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
index 6e3823a..5739068 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
@@ -179,8 +179,7 @@ public class CommonParser_UrlEncodingTest {
 		assertEquals("0=foo&1=bar", s.serialize(l));
 
 		String in =  "0=foo&1=bar";
-		ClassMeta<LinkedList<String>> cm = p.getBeanContext().createSession().getClassMeta(LinkedList.class, String.class);
-		l = p.parse(in, cm);
+		l = p.parse(in, LinkedList.class, String.class);
 		assertObjectEquals("['foo','bar']",l);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java
index b18f791..375de89 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java
@@ -19,7 +19,7 @@ import java.util.*;
 import org.apache.juneau.parser.*;
 import org.junit.*;
 
-@SuppressWarnings({"rawtypes","unchecked","javadoc"})
+@SuppressWarnings({"rawtypes","javadoc"})
 public class UonParserTest {
 
 	static UonParser p = UonParser.DEFAULT;
@@ -48,12 +48,12 @@ public class UonParserTest {
 
 		// 2nd level
 		t = "$o(a=a)";
-		assertEquals("a", p.parse(t, Map.class).get("a"));
-		assertEquals("a", pe.parse(t, Map.class).get("a"));
+		assertEquals("a", ((Map)p.parse(t, Map.class)).get("a"));
+		assertEquals("a", ((Map)pe.parse(t, Map.class)).get("a"));
 
 		t = "(a=a)";
-		assertEquals("a", p.parse(t, Map.class).get("a"));
-		assertEquals("a", pe.parse(t, Map.class).get("a"));
+		assertEquals("a", ((Map)p.parse(t, Map.class)).get("a"));
+		assertEquals("a", ((Map)pe.parse(t, Map.class)).get("a"));
 
 		// Simple map
 		// Top level
@@ -70,7 +70,7 @@ public class UonParserTest {
 		assertNull(m.get("f"));
 
 		t = "(a=true)";
-		m = p.parseMap(t, HashMap.class, String.class, Boolean.class);
+		m = p.parse(t, HashMap.class, String.class, Boolean.class);
 		assertTrue(m.get("a") instanceof Boolean);
 		assertEquals("true", m.get("a").toString());
 
@@ -122,14 +122,14 @@ public class UonParserTest {
 
 		// 2nd level in map
 		t = "$o(x=$a())";
-		m = p.parseMap(t, HashMap.class, String.class, List.class);
+		m = p.parse(t, HashMap.class, String.class, List.class);
 		assertTrue(m.containsKey("x"));
 		assertTrue(((List)m.get("x")).isEmpty());
 		m = (Map)p.parse(t, Object.class);
 		assertTrue(m.containsKey("x"));
 		assertTrue(((List)m.get("x")).isEmpty());
 		t = "(x=())";
-		m = p.parseMap(t, HashMap.class, String.class, List.class);
+		m = p.parse(t, HashMap.class, String.class, List.class);
 		assertTrue(m.containsKey("x"));
 		assertTrue(((List)m.get("x")).isEmpty());
 
@@ -140,7 +140,7 @@ public class UonParserTest {
 		l = (List)l.get(0);
 		assertTrue(l.isEmpty());
 		t = "(())";
-		l = p.parseCollection(t, LinkedList.class, List.class);
+		l = p.parse(t, LinkedList.class, List.class);
 		assertTrue(l.size() == 1);
 		l = (List)l.get(0);
 		assertTrue(l.isEmpty());
@@ -152,7 +152,7 @@ public class UonParserTest {
 		assertTrue(l.size() == 1);
 		assertEquals("", l.get(0));
 		t = "(())";
-		l = p.parseCollection(t, List.class, String.class);
+		l = p.parse(t, List.class, String.class);
 		assertTrue(l.size() == 1);
 		assertEquals("", l.get(0));
 
@@ -161,7 +161,7 @@ public class UonParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("", ((List)m.get("")).get(0));
 		t = "(=(()))";
-		m = p.parseMap(t, HashMap.class, String.class, List.class);
+		m = p.parse(t, HashMap.class, String.class, List.class);
 		assertEquals("", ((List)m.get("")).get(0));
 
 		// Array containing 3 empty strings
@@ -172,7 +172,7 @@ public class UonParserTest {
 		assertEquals("", l.get(1));
 		assertEquals("", l.get(2));
 		t = "(,,)";
-		l = p.parseCollection(t, List.class, Object.class);
+		l = p.parse(t, List.class, Object.class);
 		assertTrue(l.size() == 3);
 		assertEquals("", l.get(0));
 		assertEquals("", l.get(1));
@@ -192,10 +192,10 @@ public class UonParserTest {
 		assertTrue(m.size() == 1);
 		assertEquals("\u0000", m.get("\u0000"));
 		t = "((\u0000)=(\u0000))";
-		m = p.parseMap(t, HashMap.class, String.class, String.class);
+		m = p.parse(t, HashMap.class, String.class, String.class);
 		assertTrue(m.size() == 1);
 		assertEquals("\u0000", m.get("\u0000"));
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertTrue(m.size() == 1);
 		assertEquals("\u0000", m.get("\u0000"));
 
@@ -215,10 +215,10 @@ public class UonParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals(Boolean.FALSE, m.get("x"));
 		t = "(x=$b(false))";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals(Boolean.FALSE, m.get("x"));
 		t = "(x=false)";
-		m = p.parseMap(t, HashMap.class, String.class, Boolean.class);
+		m = p.parse(t, HashMap.class, String.class, Boolean.class);
 		assertEquals(Boolean.FALSE, m.get("x"));
 
 		// Number
@@ -241,9 +241,9 @@ public class UonParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals(123, ((Integer)m.get("x")).intValue());
 		t = "(x=123)";
-		m = p.parseMap(t, HashMap.class, String.class, Number.class);
+		m = p.parse(t, HashMap.class, String.class, Number.class);
 		assertEquals(123, ((Integer)m.get("x")).intValue());
-		m = p.parseMap(t, HashMap.class, String.class, Double.class);
+		m = p.parse(t, HashMap.class, String.class, Double.class);
 		assertEquals(123, ((Double)m.get("x")).intValue());
 
 		// Unencoded chars
@@ -256,9 +256,9 @@ public class UonParserTest {
 		t = "$o(x;/?:@-_.!*'=x;/?:@-_.!*')";
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("x;/?:@-_.!*'", m.get("x;/?:@-_.!*'"));
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("x;/?:@-_.!*'", m.get("x;/?:@-_.!*'"));
-		m = p.parseMap(t, HashMap.class, String.class, String.class);
+		m = p.parse(t, HashMap.class, String.class, String.class);
 		assertEquals("x;/?:@-_.!*'", m.get("x;/?:@-_.!*'"));
 
 		// Encoded chars
@@ -330,13 +330,13 @@ public class UonParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("x=", m.get("x="));
 		t = "(x~==x~=)";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("x=", m.get("x="));
 		t = "((x~=)=(x~=))";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("x=", m.get("x="));
 		t = "($s(x~=)=$s(x~=))";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("x=", m.get("x="));
 		t = "$o(x~%3D=x~%3D)";
 		m = (Map)pe.parse(t, Object.class);
@@ -348,13 +348,13 @@ public class UonParserTest {
 		m = (Map)pe.parse(t, Object.class);
 		assertEquals("x=", m.get("x="));
 		t = "(x~%3D=x~%3D)";
-		m = pe.parseMap(t, HashMap.class, String.class, Object.class);
+		m = pe.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("x=", m.get("x="));
 		t = "((x~%3D)=(x~%3D))";
-		m = pe.parseMap(t, HashMap.class, String.class, Object.class);
+		m = pe.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("x=", m.get("x="));
 		t = "($s(x~%3D)=$s(x~%3D))";
-		m = pe.parseMap(t, HashMap.class, String.class, Object.class);
+		m = pe.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("x=", m.get("x="));
 
 		// String starting with parenthesis
@@ -375,10 +375,10 @@ public class UonParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("()", m.get("()"));
 		t = "((~(~))=(~(~)))";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("()", m.get("()"));
 		t = "($s(~(~))=$s(~(~)))";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("()", m.get("()"));
 
 		// String starting with $
@@ -393,7 +393,7 @@ public class UonParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("$a", m.get("$a"));
 		t = "(($a)=($a))";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("$a", m.get("$a"));
 
 		// Blank string
@@ -407,7 +407,7 @@ public class UonParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("", m.get(""));
 		t = "(=)";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("", m.get(""));
 
 		// 3rd level
@@ -415,7 +415,7 @@ public class UonParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("", ((Map)m.get("")).get(""));
 		t = "(=(=))";
-		m = p.parseMap(t, HashMap.class, String.class, HashMap.class);
+		m = p.parse(t, HashMap.class, String.class, HashMap.class);
 		assertEquals("", ((Map)m.get("")).get(""));
 
 		// Newline character

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
index 18f12c9..911bf22 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
@@ -21,7 +21,7 @@ import org.apache.juneau.*;
 import org.apache.juneau.parser.*;
 import org.junit.*;
 
-@SuppressWarnings({"rawtypes","unchecked","javadoc"})
+@SuppressWarnings({"rawtypes","javadoc"})
 public class UrlEncodingParserTest {
 
 	static UrlEncodingParser p = UrlEncodingParser.DEFAULT;
@@ -58,7 +58,7 @@ public class UrlEncodingParserTest {
 
 		// 2nd level
 		t = "?a=a";
-		assertEquals("a", p.parse(t, Map.class).get("a"));
+		assertEquals("a", ((Map)p.parse(t, Map.class)).get("a"));
 
 		// Simple map
 		// Top level
@@ -90,7 +90,7 @@ public class UrlEncodingParserTest {
 		assertNull(m.get("f"));
 
 		t = "?a=true";
-		m = p.parseMap(t, HashMap.class, String.class, Boolean.class);
+		m = p.parse(t, HashMap.class, String.class, Boolean.class);
 		assertTrue(m.get("a") instanceof Boolean);
 		assertEquals("true", m.get("a").toString());
 
@@ -137,14 +137,14 @@ public class UrlEncodingParserTest {
 
 		// 2nd level in map
 		t = "?x=$a()";
-		m = p.parseMap(t, HashMap.class, String.class, List.class);
+		m = p.parse(t, HashMap.class, String.class, List.class);
 		assertTrue(m.containsKey("x"));
 		assertTrue(((List)m.get("x")).isEmpty());
 		m = (Map)p.parse(t, Object.class);
 		assertTrue(m.containsKey("x"));
 		assertTrue(((List)m.get("x")).isEmpty());
 		t = "?x=()";
-		m = p.parseMap(t, HashMap.class, String.class, List.class);
+		m = p.parse(t, HashMap.class, String.class, List.class);
 		assertTrue(m.containsKey("x"));
 		assertTrue(((List)m.get("x")).isEmpty());
 
@@ -155,7 +155,7 @@ public class UrlEncodingParserTest {
 		l = (List)l.get(0);
 		assertTrue(l.isEmpty());
 		t = "0=()";
-		l = p.parseCollection(t, LinkedList.class, List.class);
+		l = p.parse(t, LinkedList.class, List.class);
 		assertTrue(l.size() == 1);
 		l = (List)l.get(0);
 		assertTrue(l.isEmpty());
@@ -165,7 +165,7 @@ public class UrlEncodingParserTest {
 		l = (List)l.get(0);
 		assertTrue(l.isEmpty());
 		t = "(())";
-		l = (List)p.parseParameter(t, p.getBeanContext().getClassMeta(LinkedList.class, List.class));
+		l = (List)p.parseParameter(t, LinkedList.class, List.class);
 		assertTrue(l.size() == 1);
 		l = (List)l.get(0);
 		assertTrue(l.isEmpty());
@@ -177,7 +177,7 @@ public class UrlEncodingParserTest {
 		assertTrue(l.size() == 1);
 		assertEquals("", l.get(0));
 		t = "0=()";
-		l = p.parseCollection(t, List.class, String.class);
+		l = p.parse(t, List.class, String.class);
 		assertTrue(l.size() == 1);
 		assertEquals("", l.get(0));
 		t = "$a(())";
@@ -185,7 +185,7 @@ public class UrlEncodingParserTest {
 		assertTrue(l.size() == 1);
 		assertEquals("", l.get(0));
 		t = "(())";
-		l = (List)p.parseParameter(t, p.getBeanContext().getClassMeta(List.class, String.class));
+		l = (List)p.parseParameter(t, List.class, String.class);
 		assertTrue(l.size() == 1);
 		assertEquals("", l.get(0));
 
@@ -194,7 +194,7 @@ public class UrlEncodingParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("", ((List)m.get("")).get(0));
 		t = "?()=(())";
-		m = p.parseMap(t, HashMap.class, String.class, List.class);
+		m = p.parse(t, HashMap.class, String.class, List.class);
 		assertEquals("", ((List)m.get("")).get(0));
 
 		// Array containing 3 empty strings
@@ -205,7 +205,7 @@ public class UrlEncodingParserTest {
 		assertEquals("", l.get(1));
 		assertEquals("", l.get(2));
 		t = "0=&1=&2=";
-		l = p.parseCollection(t, List.class, Object.class);
+		l = p.parse(t, List.class, Object.class);
 		assertTrue(l.size() == 3);
 		assertEquals("", l.get(0));
 		assertEquals("", l.get(1));
@@ -217,7 +217,7 @@ public class UrlEncodingParserTest {
 		assertEquals("", l.get(1));
 		assertEquals("", l.get(2));
 		t = "(,,)";
-		l = (List)p.parseParameter(t, p.getBeanContext().getClassMeta(List.class, Object.class));
+		l = (List)p.parseParameter(t, List.class, Object.class);
 		assertTrue(l.size() == 3);
 		assertEquals("", l.get(0));
 		assertEquals("", l.get(1));
@@ -241,7 +241,7 @@ public class UrlEncodingParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertTrue(m.size() == 1);
 		assertEquals("\u0000", m.get("\u0000"));
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertTrue(m.size() == 1);
 		assertEquals("\u0000", m.get("\u0000"));
 
@@ -269,7 +269,7 @@ public class UrlEncodingParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals(Boolean.FALSE, m.get("x"));
 		t = "?x=false";
-		m = p.parseMap(t, HashMap.class, String.class, Boolean.class);
+		m = p.parse(t, HashMap.class, String.class, Boolean.class);
 		assertEquals(Boolean.FALSE, m.get("x"));
 
 		// Number
@@ -303,7 +303,7 @@ public class UrlEncodingParserTest {
 		t = "?x=$n(123)";
 		m = (Map)p.parse(t, Object.class);
 		assertEquals(123, ((Integer)m.get("x")).intValue());
-		m = p.parseMap(t, HashMap.class, String.class, Double.class);
+		m = p.parse(t, HashMap.class, String.class, Double.class);
 		assertEquals(123, ((Double)m.get("x")).intValue());
 
 		// Unencoded chars
@@ -317,9 +317,9 @@ public class UrlEncodingParserTest {
 		t = "?x;/?:@-_.!*'=x;/?:@-_.!*'";
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("x;/?:@-_.!*'", m.get("x;/?:@-_.!*'"));
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("x;/?:@-_.!*'", m.get("x;/?:@-_.!*'"));
-		m = p.parseMap(t, HashMap.class, String.class, String.class);
+		m = p.parse(t, HashMap.class, String.class, String.class);
 		assertEquals("x;/?:@-_.!*'", m.get("x;/?:@-_.!*'"));
 
 		// Encoded chars
@@ -419,7 +419,7 @@ public class UrlEncodingParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("()", m.get("()"));
 		t = "?(~(~))=(~(~))";
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("()", m.get("()"));
 
 		// String starting with $
@@ -437,7 +437,7 @@ public class UrlEncodingParserTest {
 		t = "?(~$a)=(~$a)";
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("$a", m.get("$a"));
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("$a", m.get("$a"));
 
 		// Blank string
@@ -451,7 +451,7 @@ public class UrlEncodingParserTest {
 		t = "?=";
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("", m.get(""));
-		m = p.parseMap(t, HashMap.class, String.class, Object.class);
+		m = p.parse(t, HashMap.class, String.class, Object.class);
 		assertEquals("", m.get(""));
 
 		// 3rd level
@@ -459,7 +459,7 @@ public class UrlEncodingParserTest {
 		m = (Map)p.parse(t, Object.class);
 		assertEquals("", ((Map)m.get("")).get(""));
 		t = "?=(=)";
-		m = p.parseMap(t, HashMap.class, String.class, HashMap.class);
+		m = p.parse(t, HashMap.class, String.class, HashMap.class);
 		assertEquals("", ((Map)m.get("")).get(""));
 
 		// Newline character

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
index d0a229d..dd88562 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
@@ -76,7 +76,7 @@ import org.apache.juneau.transform.*;
  * <p>
  * 	Settings are specified using the {@link ContextFactory#setProperty(String, Object)} method and related convenience methods.
  *
- * <h6 class='topic'>Example:</h6>
+ * <h5 class='section'>Example:</h5>
  * <p class='bcode'>
  * 	<jc>// Construct a context from scratch.</jc>
  * 	BeanContext beanContext = ContextFactory.<jsm>create</jsm>()
@@ -316,6 +316,15 @@ import org.apache.juneau.transform.*;
  * 	</tr>
  * 	<tr>
  * 		<td>
+ * 			{@link #BEAN_mediaType}
+ * 		</td>
+ * 		<td>Default media type value for serializer and parser sessions</td>
+ * 		<td>{@link MediaType}</td>
+ * 		<td><jk>null</jk></td>
+ * 		<td><jk>true</jk></td>
+ * 	</tr>
+ * 	<tr>
+ * 		<td>
  * 			{@link #BEAN_debug}
  * 		</td>
  * 		<td>Debug mode.</td>
@@ -337,7 +346,7 @@ import org.apache.juneau.transform.*;
  * 		<li> {@link BeanSession#newBeanMap(Class) BeanSession.newBeanMap()} - Create a new bean instance wrapped in a {@code Map} wrapper.
  * 	</ol>
  *
- * <h6 class='topic'>Example:</h6>
+ * <h5 class='section'>Example:</h5>
  * <p class='bcode'>
  * 	<jc>// A sample bean class</jc>
  * 	<jk>public class</jk> Person {
@@ -366,7 +375,7 @@ import org.apache.juneau.transform.*;
  * <p>
  * 	This package contains annotations that can be applied to
  * 	class definitions to override what properties are detected on a bean.
- * <h6 class='topic'>Example:</h6>
+ * <h5 class='section'>Example:</h5>
  * <p class='bcode'>
  * 	<jc>// Bean class definition where only property 'name' is detected.</jc>
  * 	<ja>&#64;Bean</ja>(properties=<js>"name"</js>)
@@ -1262,163 +1271,99 @@ public class BeanContext extends Context {
 	}
 
 	/**
-	 * 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.
-	 */
-	protected final <T> ClassMeta<T> normalizeClassMeta(ClassMeta<T> cm) {
-		if (cm == null)
-			return (ClassMeta<T>)object();
-		if (cm.getBeanContext().equals(this))
-			return cm;
-		if (cm.isMap()) {
-			ClassMeta<Map> cm2 = (ClassMeta<Map>)cm;
-			cm2 = getClassMeta(cm2.getInnerClass(), cm2.getKeyType().getInnerClass(), cm2.getValueType().getInnerClass());
-			return (ClassMeta<T>)cm2;
-		}
-		if (cm.isCollection()) {
-			ClassMeta<Collection> cm2 = (ClassMeta<Collection>)cm;
-			cm2 = getClassMeta(cm2.getInnerClass(), cm2.getElementType().getInnerClass());
-			return (ClassMeta<T>)cm2;
-		}
-		return getClassMeta(cm.getInnerClass());
-	}
-
-	/**
-	 * Resolves the following types of objects:
-	 * <ul>
-	 * 	<li>{@link Class}
-	 * 	<li><code>Object[2]</code> containing <code>{Class&lt;? extends Collection&gt;, Object}</code>
-	 * 		where the 2nd entry is the entry type which can be anything on this list.
-	 * 	<li><code>Object[3]</code> containing <code>{Class&lt;? extends Map&gt;, Object, Object}</code>
-	 * 		where the 2nd entry is the key type and 3rd entry is the value type which can be anything on this list.
-	 * </ul>
-	 *
-	 * @param o
-	 * @return The resolved class meta.
-	 */
-	public final <T> ClassMeta<T> getClassMeta(Object o) {
-		if (o == null)
-			return null;
-		if (o instanceof Class)
-			return getClassMeta((Class)o);
-		if (o instanceof Type)
-			return getClassMeta((Type)o);
-		if (List.class.isAssignableFrom(o.getClass())) {
-			List l = (List)o;
-			o = l.toArray(new Object[l.size()]);
-			return getClassMeta((Object[])o);
-		}
-		if (o.getClass().isArray())
-			return getClassMeta((Object[])o);
-		throw new BeanRuntimeException("Invalid object type passed to getClassMeta(): ''{0}''.  Only Class or arrays containing Class is supported.", o.getClass().getName());
-	}
-
-	/**
-	 * Resolves the following types of objects:
-	 * <ul>
-	 * 	<li><code>Object[2]</code> containing <code>{Class&lt;? extends Collection&gt;, Object}</code>
-	 * 		where the 2nd entry is the entry type which can be anything on this list.
-	 * 	<li><code>Object[3]</code> containing <code>{Class&lt;? extends Map&gt;, Object, Object}</code>
-	 * 		where the 2nd entry is the key type and 3rd entry is the value type which can be anything on this list.
-	 * </ul>
-	 *
-	 * @param o
-	 * @return The resolved class meta.
-	 */
-	public final <T> ClassMeta<T> getClassMeta(Object...o) {
-		if (o == null)
-			return null;
-		int len = o.length;
-		if (len == 2) {
-			Object oc = Array.get(o, 0);
-			if (oc instanceof Class) {
-				Class c = (Class)oc;
-				if (Collection.class.isAssignableFrom(c)) {
-					ClassMeta<?> rawType = getClassMeta(c);
-					ClassMeta<?> ce = getClassMeta(Array.get(o, 1));
-					if (ce.isObject())
-						return (ClassMeta<T>)rawType;
-					return new ClassMeta(rawType, null, null, ce);
-				}
-			}
-		} else if (len == 3) {
-			Object oc = Array.get(o, 0);
-			if (oc instanceof Class) {
-				Class c = (Class)oc;
-				if (Map.class.isAssignableFrom(c)) {
-					ClassMeta<?> rawType = getClassMeta(c);
-					ClassMeta<?> ck = getClassMeta(Array.get(o, 1));
-					ClassMeta<?> cv = getClassMeta(Array.get(o, 2));
-					if (ck.isObject() && cv.isObject())
-						return (ClassMeta<T>)rawType;
-					return new ClassMeta(rawType, ck, cv, null);
-				}
-			}
-		}
-		throw new BeanRuntimeException("Invalid object type passed to getClassMeta(): ''{0}''.  Only Class or arrays containing Class is supported.", o.getClass().getName());
-	}
-
-	/**
 	 * 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}.
+	 * @param type The class to resolve.
 	 * @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 final <T> ClassMeta<T> getClassMeta(Class<T> c) {
+	public final <T> ClassMeta<T> getClassMeta(Class<T> type) {
 
 		// If this is an array, then we want it wrapped in an uncached ClassMeta object.
 		// Note that if it has a pojo swap, we still want to cache it so that
 		// we can cache something like byte[] with ByteArrayBase64Swap.
-		if (c.isArray() && findPojoSwap(c) == null)
-			return new ClassMeta(c, this, findImplClass(c), findBeanFilter(c), findPojoSwap(c), findChildPojoSwaps(c));
+		if (type.isArray() && findPojoSwap(type) == null)
+			return new ClassMeta(type, this, findImplClass(type), findBeanFilter(type), findPojoSwap(type), findChildPojoSwaps(type));
 
 		// This can happen if we have transforms defined against String or Object.
 		if (cmCache == null)
 			return null;
 
-		ClassMeta<T> cm = cmCache.get(c);
+		ClassMeta<T> cm = cmCache.get(type);
 		if (cm == null) {
 
 			synchronized (this) {
 				// Make sure someone didn't already set it while this thread was blocked.
-				cm = cmCache.get(c);
+				cm = cmCache.get(type);
 				if (cm == null)
-					cm = new ClassMeta<T>(c, this, findImplClass(c), findBeanFilter(c), findPojoSwap(c), findChildPojoSwaps(c));
+					cm = new ClassMeta<T>(type, this, findImplClass(type), findBeanFilter(type), findPojoSwap(type), findChildPojoSwaps(type));
 			}
 		}
 		return cm;
 	}
 
 	/**
-	 * Constructs a ClassMeta object given the specified object and parameters.
+	 * Used to resolve <code>ClassMetas</code> of type <code>Collection</code> and <code>Map</code> that have
+	 * <code>ClassMeta</code> values that themselves could be collections or maps.
+	 * <p>
+	 * <code>Collection</code> meta objects are assumed to be followed by zero or one meta objects indicating the element type.
+	 * <p>
+	 * <code>Map</code> meta objects are assumed to be followed by zero or two meta objects indicating the key and value types.
+	 * <p>
+	 * The array can be arbitrarily long to indicate arbitrarily complex data structures.
 	 *
-	 * @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.
+	 * <h5 class='section'>Examples:</h5>
+	 * <ul>
+	 * 	<li><code>getClassMeta(String.<jk>class</jk>);</code> - A normal type.
+	 * 	<li><code>getClassMeta(List.<jk>class</jk>);</code> - A list containing objects.
+	 * 	<li><code>getClassMeta(List.<jk>class</jk>, String.<jk>class</jk>);</code> - A list containing strings.
+	 * 	<li><code>getClassMeta(LinkedList.<jk>class</jk>, String.<jk>class</jk>);</code> - A linked-list containing strings.
+	 * 	<li><code>getClassMeta(LinkedList.<jk>class</jk>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);</code> - A linked-list containing linked-lists of strings.
+	 * 	<li><code>getClassMeta(Map.<jk>class</jk>);</code> - A map containing object keys/values.
+	 * 	<li><code>getClassMeta(Map.<jk>class</jk>, String.<jk>class</jk>, String.<jk>class</jk>);</code> - A map containing string keys/values.
+	 * 	<li><code>getClassMeta(Map.<jk>class</jk>, String.<jk>class</jk>, List.<jk>class</jk>, MyBean.<jk>class</jk>);</code> - A map containing string keys and values of lists containing beans.
+	 * </ul>
+	 *
+	 * @param type The class to resolve.
+	 * 	<br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}
+	 * @param args The type arguments of the class if it's a collection or map.
+	 * 	<br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}
+	 * 	<br>Ignored if the main type is not a map or collection.
+	 * @return The resolved class meta.
 	 */
-	public final ClassMeta getClassMeta(Type o) {
-		return getClassMeta(o, null);
+	public final <T> ClassMeta<T> getClassMeta(Type type, Type...args) {
+		if (type == null)
+			return null;
+		ClassMeta<T> cm = type instanceof Class ? getClassMeta((Class)type) : resolveClassMeta(type, null);
+		if (args.length == 0)
+			return cm;
+		ClassMeta<?>[] cma = new ClassMeta[args.length+1];
+		cma[0] = cm;
+		for (int i = 0; i < Array.getLength(args); i++) {
+			Type arg = (Type)Array.get(args, i);
+			cma[i+1] = arg instanceof Class ? getClassMeta((Class)arg) : resolveClassMeta(arg, null);
+		}
+		return (ClassMeta<T>) getTypedClassMeta(cma, 0);
+	}
+
+	/*
+	 * Resolves the 'genericized' class meta at the specified position in the ClassMeta array.
+	 */
+	private ClassMeta<?> getTypedClassMeta(ClassMeta<?>[] c, int pos) {
+		ClassMeta<?> cm = c[pos++];
+		if (cm.isCollection()) {
+			ClassMeta<?> ce = c.length == pos ? object() : getTypedClassMeta(c, pos);
+			return (ce.isObject() ? cm : new ClassMeta(cm, null, null, ce));
+		} else if (cm.isMap()) {
+			 ClassMeta<?> ck = c.length == pos ? object() : c[pos++];
+			 ClassMeta<?> cv = c.length == pos ? object() : getTypedClassMeta(c, pos);
+			 return (ck.isObject() && cv.isObject() ? cm : new ClassMeta(cm, ck, cv, null));
+		}
+		return cm;
 	}
 
-	final ClassMeta getClassMeta(Type o, Map<Class<?>,Class<?>[]> typeVarImpls) {
+	final ClassMeta resolveClassMeta(Type o, Map<Class<?>,Class<?>[]> typeVarImpls) {
 		if (o == null)
 			return null;
 
@@ -1530,7 +1475,7 @@ public class BeanContext extends Context {
 				for (Type pt2 : pt.getActualTypeArguments()) {
 					if (pt2 instanceof WildcardType || pt2 instanceof TypeVariable)
 						return null;
-					l.add(getClassMeta(pt2, null));
+					l.add(resolveClassMeta(pt2, null));
 				}
 				if (l.isEmpty())
 					return null;
@@ -1567,13 +1512,13 @@ public class BeanContext extends Context {
 	 * 	Can be <jk>null</jk> if the information is not known.
 	 * @return The new {@code ClassMeta} object wrapped around the {@code Type} object.
 	 */
-	protected final <T> ClassMeta<T> getClassMeta(BeanProperty p, Type t, Map<Class<?>,Class<?>[]> typeVarImpls) {
-		ClassMeta<T> cm = getClassMeta(t, typeVarImpls);
+	protected final <T> ClassMeta<T> resolveClassMeta(BeanProperty p, Type t, Map<Class<?>,Class<?>[]> typeVarImpls) {
+		ClassMeta<T> cm = resolveClassMeta(t, typeVarImpls);
 		ClassMeta<T> cm2 = cm;
 		if (p != null) {
 
 			if (p.type() != Object.class)
-				cm2 = getClassMeta(p.type(), typeVarImpls);
+				cm2 = resolveClassMeta(p.type(), typeVarImpls);
 
 			if (cm2.isMap()) {
 				Class<?>[] pParams = (p.params().length == 0 ? new Class[]{Object.class, Object.class} : p.params());
@@ -1619,7 +1564,7 @@ public class BeanContext extends Context {
 //	/**
 //	 * Converts class name strings to ClassMeta objects.
 //	 *
-//	 * <h6 class='topic'>Example:</h6>
+//	 * <h5 class='section'>Example:</h5>
 //	 * <ul>
 //	 * 	<li><js>"java.lang.String"</js>
 //	 * 	<li><js>"com.foo.sample.MyBean[]"</js>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
index 8b7d563..4e1bad6 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
@@ -24,7 +24,7 @@ import org.apache.juneau.xml.annotation.*;
 /**
  * Java bean wrapper class.
  *
- * <h6 class='topic'>Description</h6>
+ * <h5 class='section'>Description:</h5>
  * <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.
@@ -170,7 +170,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 	 * 	{@link BeanProperty#swap() @BeanProperty.swap()} annotation, the value being passed in must be
 	 * 	a String containing an ISO8601 date-time string value.
 	 *
-	 * <h6 class='topic'>Example:</h6>
+	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode'>
 	 * 	<jc>// Construct a bean with a 'birthDate' Date field</jc>
 	 * 	Person p = <jk>new</jk> Person();
@@ -253,7 +253,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 	 * 	{@link BeanProperty#swap() @BeanProperty.swap()} annotation, this method will return a String
 	 * 	containing an ISO8601 date-time string value.
 	 *
-	 * <h6 class='topic'>Example:</h6>
+	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode'>
 	 * 	<jc>// Construct a bean with a 'birthDate' Date field</jc>
 	 * 	Person p = <jk>new</jk> Person();
@@ -294,7 +294,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 	 * 	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.
 	 *
-	 * <h6 class='topic'>Example:</h6>
+	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode'>
 	 * 	aPersonBean.load(<js>"{name:'John Smith',age:21}"</js>)
 	 * </p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java b/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
index 47da2b8..b7a2758 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
@@ -22,7 +22,7 @@ import org.apache.juneau.transform.*;
  * <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'>Example:</h6>
+ * <h5 class='section'>Example:</h5>
  * <p class='bcode'>
  * 	<jc>// Construct a new bean</jc>
  * 	Person p = <jk>new</jk> Person();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30dd3b93/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java b/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
index 4716371..42425ee 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
@@ -29,7 +29,7 @@ import org.apache.juneau.utils.*;
 /**
  * Encapsulates all access to the properties of a bean class (like a souped-up {@link java.beans.BeanInfo}).
  *
- * <h6 class='topic'>Description</h6>
+ * <h5 class='section'>Description:</h5>
  * <p>
  * 	Uses introspection to find all the properties associated with this class.  If the {@link Bean @Bean} annotation
  * 	is present on the class, or the class has a {@link BeanFilter} registered with it in the bean context,