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/10/20 01:49:51 UTC

[6/7] incubator-juneau git commit: Move configuration properties to serializer and parser classes.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java
deleted file mode 100644
index ae65e23..0000000
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfCommonContext.java
+++ /dev/null
@@ -1,646 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                                                              *
-// *                                                                                                                         *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
-// *                                                                                                                         *
-// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the License.                                              *
-// ***************************************************************************************************************************
-package org.apache.juneau.jena;
-
-import java.util.*;
-
-import org.apache.juneau.jena.annotation.*;
-import org.apache.juneau.utils.*;
-import org.apache.juneau.xml.*;
-import org.apache.juneau.xml.annotation.*;
-
-/**
- * Configurable properties common to both the {@link RdfSerializer} and {@link RdfParser} classes.
- */
-public interface RdfCommonContext {
-
-	/**
-	 * Maps RDF writer names to property prefixes that apply to them.
-	 */
-	final static Map<String,String> LANG_PROP_MAP = new AMap<String,String>()
-		.append("RDF/XML","rdfXml.")
-		.append("RDF/XML-ABBREV","rdfXml.")
-		.append("N3","n3.")
-		.append("N3-PP","n3.")
-		.append("N3-PLAIN","n3.")
-		.append("N3-TRIPLES","n3.")
-		.append("TURTLE","n3.")
-		.append("N-TRIPLE","ntriple.");
-
-	/**
-	 * <b>Configuration property:</b>  RDF language.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.language"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * 	<li><b>Default:</b> <js>"RDF/XML-ABBREV"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Can be any of the following:
-	 * <ul class='spaced-list'>
-	 * 	<li>
-	 * 		<js>"RDF/XML"</js>
-	 * 	<li>
-	 * 		<js>"RDF/XML-ABBREV"</js>
-	 * 	<li>
-	 * 		<js>"N-TRIPLE"</js>
-	 * 	<li>
-	 * 		<js>"N3"</js> - General name for the N3 writer.
-	 * 		Will make a decision on exactly which writer to use (pretty writer, plain writer or simple writer) when 
-	 * 		created.
-	 * 		Default is the pretty writer but can be overridden with system property	
-	 * 		<code>com.hp.hpl.jena.n3.N3JenaWriter.writer</code>.
-	 * 	<li>
-	 * 		<js>"N3-PP"</js> - Name of the N3 pretty writer.
-	 * 		The pretty writer uses a frame-like layout, with prefixing, clustering like properties and embedding 
-	 * 		one-referenced bNodes.
-	 * 	<li>
-	 * 		<js>"N3-PLAIN"</js> - Name of the N3 plain writer.
-	 * 		The plain writer writes records by subject.
-	 * 	<li>
-	 * 		<js>"N3-TRIPLES"</js> - Name of the N3 triples writer.
-	 * 		This writer writes one line per statement, like N-Triples, but does N3-style prefixing.
-	 * 	<li>
-	 * 		<js>"TURTLE"</js> -  Turtle writer.
-	 * 		http://www.dajobe.org/2004/01/turtle/
-	 * </ul>
-	 */
-	public static final String RDF_language = "Rdf.language";
-
-	/**
-	 * <b>Configuration property:</b>  XML namespace for Juneau properties.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.juneauNs"</js>
-	 * 	<li><b>Data type:</b> {@link Namespace}
-	 * 	<li><b>Default:</b> <code>{j:<js>'http://www.apache.org/juneau/'</js>}</code>
-	 * </ul>
-	 */
-	public static final String RDF_juneauNs = "Rdf.juneauNs";
-
-	/**
-	 * <b>Configuration property:</b>  Default XML namespace for bean properties.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.juneauBpNs"</js>
-	 * 	<li><b>Data type:</b> {@link Namespace}
-	 * 	<li><b>Default:</b> <code>{j:<js>'http://www.apache.org/juneaubp/'</js>}</code>
-	 * </ul>
-	 */
-	public static final String RDF_juneauBpNs = "Rdf.juneauBpNs";
-
-	/**
-	 * <b>Configuration property:</b>  Reuse XML namespaces when RDF namespaces not specified.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.useXmlNamespaces"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * When specified, namespaces defined using {@link XmlNs} and {@link Xml} will be inherited by the RDF serializers.
-	 * Otherwise, namespaces will be defined using {@link RdfNs} and {@link Rdf}.
-	 */
-	public static final String RDF_useXmlNamespaces = "Rdf.useXmlNamespaces";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>iri_rules</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.iri-rules"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * 	<li><b>Default:</b> <js>"lax"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Set the engine for checking and resolving.
-	 * 
-	 * <p>
-	 * Possible values:
-	 * <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 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";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML ARP property: <code>error-mode</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.error-mode"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * 	<li><b>Default:</b> <js>"lax"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * This allows a coarse-grained approach to control of error handling.
-	 * 
-	 * <p>
-	 * Possible values:
-	 * <ul>
-	 * 	<li><js>"default"</js>
-	 * 	<li><js>"lax"</js>
-	 * 	<li><js>"strict"</js>
-	 * 	<li><js>"strict-ignore"</js>
-	 * 	<li><js>"strict-warning"</js>
-	 * 	<li><js>"strict-error"</js>
-	 * 	<li><js>"strict-fatal"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * See also:
-	 * <ul class='spaced-list'>
-	 * 	<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";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML ARP property: <code>embedding</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.embedding"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Sets ARP to look for RDF embedded within an enclosing XML document.
-	 * 
-	 * <p>
-	 * See also:
-	 * <ul class='spaced-list'>
-	 * 	<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";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML ARP property: <code>ERR_xxx</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.ERR_"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Provides fine-grained control over detected error conditions.
-	 * 
-	 * <p>
-	 * Possible values:
-	 * <ul>
-	 * 	<li><js>"EM_IGNORE"</js>
-	 * 	<li><js>"EM_WARNING"</js>
-	 * 	<li><js>"EM_ERROR"</js>
-	 * 	<li><js>"EM_FATAL"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * See also:
-	 * <ul class='spaced-list'>
-	 * 	<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_";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML ARP property: <code>WARN_xxx</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.WARN_"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * </ul>
-	 * 
-	 * <p>
-	 * See {@link #RDF_arp_err_} for details.
-	 */
-	public static final String RDF_arp_warn_ = "Rdf.jena.rdfXml.WARN_";
-
-	/**
-	 * RDF/XML ARP property: <code>IGN_xxx</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.IGN_"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * </ul>
-	 * 
-	 * <p>
-	 * See {@link #RDF_arp_err_} for details.
-	 */
-	public static final String RDF_arp_ign_ = "Rdf.jena.rdfXml.IGN_";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>xmlbase</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.xmlbase"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * 	<li><b>Default:</b> <jk>null</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * The value to be included for an <xa>xml:base</xa> attribute on the root element in the file.
-	 */
-	public static final String RDF_rdfxml_xmlBase = "Rdf.jena.rdfXml.xmlbase";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>longId</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.longId"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Whether to use long ID's for anon resources.
-	 * Short ID's are easier to read, but can run out of memory on very large models.
-	 */
-	public static final String RDF_rdfxml_longId = "Rdf.jena.rdfXml.longId";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>allowBadURIs</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.allowBadURIs"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * URIs in the graph are, by default, checked prior to serialization.
-	 */
-	public static final String RDF_rdfxml_allowBadUris = "Rdf.jena.rdfXml.allowBadURIs";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>relativeURIs</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.relativeURIs"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * 	<li><b>Default:</b> <js>"same-document, absolute, relative, parent"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * What sort of relative URIs should be used.
-	 * 
-	 * <p>
-	 * A comma separate list of options:
-	 * <ul class='spaced-list'>
-	 * 	<li>
-	 * 		<js>"same-document"</js> - Same-document references (e.g. <js>""</js> or <js>"#foo"</js>)
-	 * 	<li>
-	 * 		<js>"network"</js>  - Network paths (e.g. <js>"//example.org/foo"</js> omitting the URI scheme)
-	 * 	<li>
-	 * 		<js>"absolute"</js> - Absolute paths (e.g. <js>"/foo"</js> omitting the scheme and authority)
-	 * 	<li>
-	 * 		<js>"relative"</js> - Relative path not beginning in <js>"../"</js>
-	 * 	<li>
-	 * 		<js>"parent"</js> - Relative path beginning in <js>"../"</js>
-	 * 	<li>
-	 * 		<js>"grandparent"</js> - Relative path beginning in <js>"../../"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * The default value is <js>"same-document, absolute, relative, parent"</js>.
-	 * To switch off relative URIs use the value <js>""</js>.
-	 * Relative URIs of any of these types are output where possible if and only if the option has been specified.
-	 */
-	public static final String RDF_rdfxml_relativeUris = "Rdf.jena.rdfXml.relativeURIs";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>showXmlDeclaration</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.showXmlDeclaration"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * 	<li><b>Default:</b> <js>"default"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Possible values:
-	 * <ul class='spaced-list'>
-	 * 	<li>
-	 * 		<js>"true"</js> - Add XML Declaration to the output.
-	 * 	<li>
-	 * 		<js>"false"</js> - Don't add XML Declaration to the output.
-	 * 	<li>
-	 * 		<js>"default"</js> - Only add an XML Declaration when asked to write to an <code>OutputStreamWriter</code> 
-	 * 		that uses some encoding other than <code>UTF-8</code> or <code>UTF-16</code>.
-	 * 		In this case the encoding is shown in the XML declaration.
-	 * </ul>
-	 */
-	public static final String RDF_rdfxml_showXmlDeclaration = "Rdf.jena.rdfXml.showXmlDeclaration";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>showDoctypeDeclaration</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.showDoctypeDeclaration"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * If true, an XML doctype declaration is included in the output.
-	 * This declaration includes a <code>!ENTITY</code> declaration for each prefix mapping in the model, and any 
-	 * attribute value that starts with the URI of that mapping is written as starting with the corresponding entity 
-	 * invocation.
-	 */
-	public static final String RDF_rdfxml_showDoctypeDeclaration = "Rdf.jena.rdfXml.showDoctypeDeclaration";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>tab</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.tab"</js>
-	 * 	<li><b>Data type:</b> <code>Integer</code>
-	 * 	<li><b>Default:</b> <code>2</code>
-	 * </ul>
-	 * 
-	 * <p>
-	 * The number of spaces with which to indent XML child elements.
-	 */
-	public static final String RDF_rdfxml_tab = "Rdf.jena.rdfXml.tab";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>attributeQuoteChar</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.attributeQuoteChar"</js>
-	 * 	<li><b>Data type:</b> <code>Character</code>
-	 * 	<li><b>Default:</b> <js>'"'</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * The XML attribute quote character.
-	 */
-	public static final String RDF_rdfxml_attributeQuoteChar = "Rdf.jena.rdfXml.attributeQuoteChar";
-
-	/**
-	 * <b>Configuration property:</b>  RDF/XML property: <code>blockRules</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.rdfXml.blockRules"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * 	<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 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";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>minGap</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.minGap"</js>
-	 * 	<li><b>Data type:</b> <code>Integer</code>
-	 * 	<li><b>Default:</b> <code>1</code>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Minimum gap between items on a line.
-	 */
-	public static final String RDF_n3_minGap = "Rdf.jena.n3.minGap";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>objectLists</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.objectLists"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Print object lists as comma separated lists.
-	 */
-	public static final String RDF_n3_objectLists = "Rdf.jena.n3.objectLists";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>subjectColumn</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.subjectColumn"</js>
-	 * 	<li><b>Data type:</b> <code>Integer</code>
-	 * 	<li><b>Default:</b> indentProperty
-	 * </ul>
-	 * 
-	 * <p>
-	 * If the subject is shorter than this value, the first property may go on the same line.
-	 */
-	public static final String RDF_n3_subjectColumn = "Rdf.jena.n3.subjectColumn";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>propertyColumn</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.propertyColumn"</js>
-	 * 	<li><b>Data type:</b> <code>Integer</code>
-	 * 	<li><b>Default:</b> <code>8</code>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Width of the property column.
-	 */
-	public static final String RDF_n3_propertyColumn = "Rdf.jena.n3.propertyColumn";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>indentProperty</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.indentProperty"</js>
-	 * 	<li><b>Data type:</b> <code>Integer</code>
-	 * 	<li><b>Default:</b> <code>6</code>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Width to indent properties.
-	 */
-	public static final String RDF_n3_indentProperty = "Rdf.jena.n3.indentProperty";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>widePropertyLen</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.widePropertyLen"</js>
-	 * 	<li><b>Data type:</b> <code>Integer</code>
-	 * 	<li><b>Default:</b> <code>20</code>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Width of the property column.
-	 * Must be longer than <code>propertyColumn</code>.
-	 */
-	public static final String RDF_n3_widePropertyLen = "Rdf.jena.n3.widePropertyLen";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>abbrevBaseURI</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.abbrevBaseURI"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Control whether to use abbreviations <code>&lt;&gt;</code> or <code>&lt;#&gt;</code>.
-	 */
-	public static final String RDF_n3_abbrevBaseUri = "Rdf.jena.n3.abbrevBaseURI";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>usePropertySymbols</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.usePropertySymbols"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Control whether to use <code>a</code>, <code>=</code> and <code>=&gt;</code> in output
-	 */
-	public static final String RDF_n3_usePropertySymbols = "Rdf.jena.n3.usePropertySymbols";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>useTripleQuotedStrings</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.useTripleQuotedStrings"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Allow the use of <code>"""</code> to delimit long strings.
-	 */
-	public static final String RDF_n3_useTripleQuotedStrings = "Rdf.jena.n3.useTripleQuotedStrings";
-
-	/**
-	 * <b>Configuration property:</b>  N3/Turtle property: <code>useDoubles</code>.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.jena.n3.useDoubles"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Allow the use doubles as <code>123.456</code>.
-	 */
-	public static final String RDF_n3_useDoubles = "Rdf.jena.n3.useDoubles";
-
-	/**
-	 * <b>Configuration property:</b>  RDF format for representing collections and arrays.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.collectionFormat"</js>
-	 * 	<li><b>Data type:</b> <code>String</code>
-	 * 	<li><b>Default:</b> <js>"DEFAULT"</js>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Possible values:
-	 * <ul class='spaced-list'>
-	 * 	<li>
-	 * 		<js>"DEFAULT"</js> - Default format.  The default is an RDF Sequence container.
-	 * 	<li>
-	 * 		<js>"SEQ"</js> - RDF Sequence container.
-	 * 	<li>
-	 * 		<js>"BAG"</js> - RDF Bag container.
-	 * 	<li>
-	 * 		<js>"LIST"</js> - RDF List container.
-	 * 	<li>
-	 * 		<js>"MULTI_VALUED"</js> - Multi-valued properties.
-	 * </ul>
-	 * 
-	 * <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";
-
-	/**
-	 * <b>Configuration property:</b>  Collections should be serialized and parsed as loose collections.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"Rdf.looseCollections"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * When specified, collections of resources are handled as loose collections of resources in RDF instead of
-	 * resources that are children of an RDF collection (e.g. Sequence, Bag).
-	 * 
-	 * <p>
-	 * Note that this setting is specialized for RDF syntax, and is incompatible with the concept of
-	 * losslessly representing POJO models, since the tree structure of these POJO models are lost
-	 * when serialized as loose collections.
-	 * 
-	 * <p>
-	 * This setting is typically only useful if the beans being parsed into do not have a bean property
-	 * annotated with {@link Rdf#beanUri @Rdf(beanUri=true)}.
-	 *
-	 * <h5 class='section'>Example:</h5>
-	 * <p class='bcode'>
-	 * 	WriterSerializer s = <jk>new</jk> RdfSerializerBuilder().xmlabbrev().looseCollections(<jk>true</jk>).build();
-	 * 	ReaderParser p = <jk>new</jk> RdfParserBuilder().xml().looseCollections(<jk>true</jk>).build();
-	 *
-	 * 	List&lt;MyBean&gt; l = createListOfMyBeans();
-	 *
-	 * 	<jc>// Serialize to RDF/XML as loose resources</jc>
-	 * 	String rdfXml = s.serialize(l);
-	 *
-	 * 	<jc>// Parse back into a Java collection</jc>
-	 * 	l = p.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>
-	 * 	b = p.parse(rdfXml, MyBean[].<jk>class</jk>);
-	 * </p>
-	 */
-	public static final String RDF_looseCollections = "Rdf.looseCollections";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
index a94c123..f6e0c0b 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -13,7 +13,7 @@
 package org.apache.juneau.jena;
 
 import static org.apache.juneau.jena.Constants.*;
-import static org.apache.juneau.jena.RdfCommonContext.*;
+import static org.apache.juneau.jena.RdfCommon.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.parser.*;
@@ -21,11 +21,6 @@ import org.apache.juneau.parser.*;
 /**
  * Parses RDF into POJOs.
  *
- * <h5 class='section'>Configurable properties:</h5>
- * 
- * 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>
  * 
  * The following direct subclasses are provided for language-specific parsers:
@@ -46,6 +41,32 @@ import org.apache.juneau.parser.*;
  */
 public class RdfParser extends ReaderParser {
 
+	//-------------------------------------------------------------------------------------------------------------------
+	// Configurable properties
+	//-------------------------------------------------------------------------------------------------------------------
+
+	private static final String PREFIX = "RdfParser.";
+
+	/**
+	 * <b>Configuration property:</b>  Trim whitespace from text elements.
+	 * 
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"RdfParser.trimWhitespace"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * 
+	 * <p>
+	 * If <jk>true</jk>, whitespace in text elements will be automatically trimmed.
+	 */
+	public static final String RDF_trimWhitespace = PREFIX + "trimWhitespace";
+
+	
+	//-------------------------------------------------------------------------------------------------------------------
+	// Predefined instances
+	//-------------------------------------------------------------------------------------------------------------------
+	
 	/** Default XML parser, all default settings.*/
 	public static final RdfParser DEFAULT_XML = new Xml(PropertyStore.create());
 
@@ -59,6 +80,10 @@ public class RdfParser extends ReaderParser {
 	public static final RdfParser DEFAULT_N3 = new N3(PropertyStore.create());
 
 
+	//-------------------------------------------------------------------------------------------------------------------
+	// Predefined subclasses
+	//-------------------------------------------------------------------------------------------------------------------
+
 	/** Consumes RDF/XML input */
 	public static class Xml extends RdfParser {
 
@@ -112,6 +137,10 @@ public class RdfParser extends ReaderParser {
 	}
 
 
+	//-------------------------------------------------------------------------------------------------------------------
+	// Instance
+	//-------------------------------------------------------------------------------------------------------------------
+
 	private final RdfParserContext ctx;
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
index 095d45a..79b8d7a 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
@@ -12,8 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.jena;
 
-import static org.apache.juneau.jena.RdfCommonContext.*;
-import static org.apache.juneau.jena.RdfParserContext.*;
+import static org.apache.juneau.jena.RdfCommon.*;
+import static org.apache.juneau.jena.RdfParser.*;
 
 import java.util.*;
 
@@ -75,7 +75,7 @@ public class RdfParserBuilder extends ParserBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfParserContext#RDF_trimWhitespace
+	 * @see RdfParser#RDF_trimWhitespace
 	 */
 	public RdfParserBuilder trimWhitespace(boolean value) {
 		return property(RDF_trimWhitespace, value);
@@ -127,7 +127,7 @@ public class RdfParserBuilder extends ParserBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfParserContext#RDF_language
+	 * @see RdfCommon#RDF_language
 	 */
 	public RdfParserBuilder language(String value) {
 		return property(RDF_language, value);
@@ -194,7 +194,7 @@ public class RdfParserBuilder extends ParserBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfParserContext#RDF_juneauNs
+	 * @see RdfCommon#RDF_juneauNs
 	 */
 	public RdfParserBuilder juneauNs(Namespace value) {
 		return property(RDF_juneauNs, value);
@@ -216,7 +216,7 @@ public class RdfParserBuilder extends ParserBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfParserContext#RDF_juneauBpNs
+	 * @see RdfCommon#RDF_juneauBpNs
 	 */
 	public RdfParserBuilder juneauBpNs(Namespace value) {
 		return property(RDF_juneauBpNs, value);
@@ -232,7 +232,8 @@ public class RdfParserBuilder extends ParserBuilder {
 	 * </ul>
 	 * 
 	 * <p>
-	 * When specified, namespaces defined using {@link XmlNs} and {@link Xml} will be inherited by the RDF parsers.
+	 * When specified, namespaces defined using {@link XmlNs} and {@link org.apache.juneau.xml.annotation.Xml} will be 
+	 * inherited by the RDF parsers.
 	 * Otherwise, namespaces will be defined using {@link RdfNs} and {@link Rdf}.
 	 * 
 	 * <h5 class='section'>Notes:</h5>
@@ -242,7 +243,7 @@ public class RdfParserBuilder extends ParserBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfParserContext#RDF_useXmlNamespaces
+	 * @see RdfCommon#RDF_useXmlNamespaces
 	 */
 	public RdfParserBuilder useXmlNamespaces(boolean value) {
 		return property(RDF_useXmlNamespaces, value);
@@ -286,7 +287,7 @@ public class RdfParserBuilder extends ParserBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfCommonContext#RDF_collectionFormat
+	 * @see RdfCommon#RDF_collectionFormat
 	 */
 	public RdfParserBuilder collectionFormat(RdfCollectionFormat value) {
 		return property(RDF_collectionFormat, value);
@@ -343,7 +344,7 @@ public class RdfParserBuilder extends ParserBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfCommonContext#RDF_looseCollections
+	 * @see RdfCommon#RDF_looseCollections
 	 */
 	public RdfParserBuilder looseCollections(boolean value) {
 		return property(RDF_looseCollections, value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
index 53039f3..60e66d7 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.jena;
 
+import static org.apache.juneau.jena.RdfParser.*;
+
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -19,53 +21,10 @@ import org.apache.juneau.parser.*;
 import org.apache.juneau.xml.*;
 
 /**
- * Configurable properties on the {@link RdfParser} class.
- * 
- * <p>
- * Context properties are set by calling {@link PropertyStore#setProperty(String, Object)} on the property store
- * passed into the constructor.
- * 
- * <p>
- * See {@link PropertyStore} for more information about context properties.
- *
- * <h6 class='topic' id='ConfigProperties'>Configurable properties inherited by the RDF parsers</h6>
- * <ul class='doctree'>
- * 	<li class='jc'>
- * 		<a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a> 
- * 		- Properties associated with handling beans on serializers and parsers.
- * 		<ul>
- * 			<li class='jc'>
- * 				<a class="doclink" href="../parser/ParserContext.html#ConfigProperties">ParserContext</a> 
- * 				- Configurable properties common to all parsers.
- * 				<ul>
- * 					<li class='jic'>
- * 						<a class="doclink" href="RdfCommonContext.html#ConfigProperties">RdfCommonContext</a> 
- * 						- Configurable properties common to the RDF serializers and parsers.
- * 				</ul>
- * 			</li>
- * 		</ul>
- * 	</li>
- * </ul>
+ * Contains a snapshot-in-time read-only copy of the settings on the {@link RdfParser} class.
  */
-public final class RdfParserContext extends ParserContext implements RdfCommonContext {
+public final class RdfParserContext extends ParserContext implements RdfCommon {
 	
-	static final String PREFIX = "RdfParser.";
-
-	/**
-	 * <b>Configuration property:</b>  Trim whitespace from text elements.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"RdfParser.trimWhitespace"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
-	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * If <jk>true</jk>, whitespace in text elements will be automatically trimmed.
-	 */
-	public static final String RDF_trimWhitespace = PREFIX + "trimWhitespace";
-
 	final boolean trimWhitespace, looseCollections;
 	final String rdfLanguage;
 	final Namespace juneauNs, juneauBpNs;
@@ -102,5 +61,4 @@ public final class RdfParserContext extends ParserContext implements RdfCommonCo
 				.append("collectionFormat", collectionFormat)
 			);
 	}
-}
-
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
index 2365035..4bc2ad1 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
@@ -14,7 +14,8 @@ package org.apache.juneau.jena;
 
 import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.jena.Constants.*;
-import static org.apache.juneau.jena.RdfCommonContext.*;
+import static org.apache.juneau.jena.RdfCommon.*;
+import static org.apache.juneau.jena.RdfParser.*;
 
 import java.util.*;
 
@@ -62,7 +63,7 @@ public class RdfParserSession extends ReaderParserSession {
 		this.rdfLanguage = p.getString(RDF_language, ctx.rdfLanguage);
 		this.juneauNs = (p.containsKey(RDF_juneauNs) ? NamespaceFactory.parseNamespace(p.get(RDF_juneauNs)) : ctx.juneauNs);
 		this.juneauBpNs = (p.containsKey(RDF_juneauBpNs) ? NamespaceFactory.parseNamespace(p.get(RDF_juneauBpNs)) : ctx.juneauBpNs);
-		this.trimWhitespace = p.getBoolean(RdfParserContext.RDF_trimWhitespace, ctx.trimWhitespace);
+		this.trimWhitespace = p.getBoolean(RDF_trimWhitespace, ctx.trimWhitespace);
 		this.collectionFormat = p.getWithDefault(RDF_collectionFormat, ctx.collectionFormat, RdfCollectionFormat.class);
 		this.looseCollections = p.getBoolean(RDF_looseCollections, ctx.looseCollections);
 		this.model = ModelFactory.createDefaultModel();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index b574186..af3dbd3 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -13,19 +13,15 @@
 package org.apache.juneau.jena;
 
 import static org.apache.juneau.jena.Constants.*;
-import static org.apache.juneau.jena.RdfCommonContext.*;
+import static org.apache.juneau.jena.RdfCommon.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.serializer.*;
+import org.apache.juneau.xml.*;
 
 /**
  * Serializes POJOs to RDF.
  *
- * <h5 class='section'>Configurable properties:</h5>
- * 
- * 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>
  * 
  * The following direct subclasses are provided for language-specific serializers:
@@ -43,6 +39,107 @@ import org.apache.juneau.serializer.*;
  */
 public class RdfSerializer extends WriterSerializer {
 
+	//-------------------------------------------------------------------------------------------------------------------
+	// Configurable properties
+	//-------------------------------------------------------------------------------------------------------------------
+
+	private static final String PREFIX = "RdfSerializer.";
+
+	/**
+	 * <b>Configuration property:</b>  Add XSI data types to non-<code>String</code> literals.
+	 * 
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"RdfSerializer.addLiteralTypes"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 */
+	public static final String RDF_addLiteralTypes = PREFIX + "addLiteralTypes";
+
+	/**
+	 * <b>Configuration property:</b>  Add RDF root identifier property to root node.
+	 * 
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"RdfSerializer.addRootProperty"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * 
+	 * <p>
+	 * When enabled an RDF property <code>http://www.apache.org/juneau/root</code> is added with a value of <js>"true"</js>
+	 * to identify the root node in the graph.
+	 * This helps locate the root node during parsing.
+	 * 
+	 * <p>
+	 * If disabled, the parser has to search through the model to find any resources without incoming predicates to 
+	 * identify root notes, which can introduce a considerable performance degradation.
+	 */
+	public static final String RDF_addRootProperty = PREFIX + "addRootProperty";
+
+	/**
+	 * <b>Configuration property:</b>  Auto-detect namespace usage.
+	 * 
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"RdfSerializer.autoDetectNamespaces"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>true</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * 
+	 * <p>
+	 * Detect namespace usage before serialization.
+	 * 
+	 * <p>
+	 * If enabled, then the data structure will first be crawled looking for namespaces that will be encountered before 
+	 * the root element is serialized.
+	 */
+	public static final String RDF_autoDetectNamespaces = PREFIX + "autoDetectNamespaces";
+
+	/**
+	 * <b>Configuration property:</b>  Default namespaces.
+	 * 
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"RdfSerializer.namespaces.list"</js>
+	 * 	<li><b>Data type:</b> <code>List&lt;{@link Namespace}&gt;</code>
+	 * 	<li><b>Default:</b> empty list
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * 
+	 * <p>
+	 * The default list of namespaces associated with this serializer.
+	 */
+	public static final String RDF_namespaces = PREFIX + "namespaces.list";
+
+	/**
+	 * <b>Configuration property:</b>  Add <js>"_type"</js> properties when needed.
+	 * 
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"RdfSerializer.addBeanTypeProperties"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * 
+	 * <p>
+	 * If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred 
+	 * through reflection.
+	 * This is used to recreate the correct objects during parsing if the object types cannot be inferred.
+	 * For example, when serializing a {@code Map<String,Object>} field, where the bean class cannot be determined 
+	 * from the value type.
+	 * 
+	 * <p>
+	 * When present, this value overrides the {@link #SERIALIZER_addBeanTypeProperties} setting and is
+	 * provided to customize the behavior of specific serializers in a {@link SerializerGroup}.
+	 */
+	public static final String RDF_addBeanTypeProperties = PREFIX + "addBeanTypeProperties";
+
+
+	//-------------------------------------------------------------------------------------------------------------------
+	// Predefined instances
+	//-------------------------------------------------------------------------------------------------------------------
+
 	/** Default RDF/XML serializer, all default settings.*/
 	public static final RdfSerializer DEFAULT_XML = new Xml(PropertyStore.create());
 
@@ -59,6 +156,10 @@ public class RdfSerializer extends WriterSerializer {
 	public static final RdfSerializer DEFAULT_N3 = new N3(PropertyStore.create());
 
 
+	//-------------------------------------------------------------------------------------------------------------------
+	// Predefined subclasses
+	//-------------------------------------------------------------------------------------------------------------------
+
 	/** Produces RDF/XML output */
 	public static class Xml extends RdfSerializer {
 
@@ -125,6 +226,10 @@ public class RdfSerializer extends WriterSerializer {
 	}
 
 
+	//-------------------------------------------------------------------------------------------------------------------
+	// Instance
+	//-------------------------------------------------------------------------------------------------------------------
+
 	private final RdfSerializerContext ctx;
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
index 59b15c5..57bb5cc 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
@@ -12,8 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.jena;
 
-import static org.apache.juneau.jena.RdfCommonContext.*;
-import static org.apache.juneau.jena.RdfSerializerContext.*;
+import static org.apache.juneau.jena.RdfCommon.*;
+import static org.apache.juneau.jena.RdfSerializer.*;
 
 import java.util.*;
 
@@ -102,7 +102,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfCommonContext#RDF_language
+	 * @see RdfCommon#RDF_language
 	 */
 	public RdfSerializerBuilder language(String value) {
 		return property(RDF_language, value);
@@ -170,7 +170,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfSerializerContext#RDF_juneauNs
+	 * @see RdfCommon#RDF_juneauNs
 	 */
 	public RdfSerializerBuilder juneauNs(Namespace value) {
 		return property(RDF_juneauNs, value);
@@ -193,7 +193,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfSerializerContext#RDF_juneauBpNs
+	 * @see RdfCommon#RDF_juneauBpNs
 	 */
 	public RdfSerializerBuilder juneauBpNs(Namespace value) {
 		return property(RDF_juneauBpNs, value);
@@ -209,7 +209,8 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 * </ul>
 	 * 
 	 * <p>
-	 * When specified, namespaces defined using {@link XmlNs} and {@link Xml} will be inherited by the RDF serializers.
+	 * When specified, namespaces defined using {@link XmlNs} and {@link org.apache.juneau.xml.annotation.Xml} will be 
+	 * inherited by the RDF serializers.
 	 * Otherwise, namespaces will be defined using {@link RdfNs} and {@link Rdf}.
 	 * 
 	 * <h5 class='section'>Notes:</h5>
@@ -220,7 +221,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see SerializerContext#SERIALIZER_sortMaps
+	 * @see RdfCommon#RDF_useXmlNamespaces
 	 */
 	public RdfSerializerBuilder useXmlNamespaces(boolean value) {
 		return property(RDF_useXmlNamespaces, value);
@@ -244,7 +245,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfSerializerContext#RDF_addLiteralTypes
+	 * @see RdfSerializer#RDF_addLiteralTypes
 	 */
 	public RdfSerializerBuilder addLiteralTypes(boolean value) {
 		return property(RDF_addLiteralTypes, value);
@@ -277,7 +278,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfSerializerContext#RDF_addRootProperty
+	 * @see RdfSerializer#RDF_addRootProperty
 	 */
 	public RdfSerializerBuilder addRootProperty(boolean value) {
 		return property(RDF_addRootProperty, value);
@@ -308,7 +309,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfSerializerContext#RDF_autoDetectNamespaces
+	 * @see RdfSerializer#RDF_autoDetectNamespaces
 	 */
 	public RdfSerializerBuilder autoDetectNamespaces(boolean value) {
 		return property(RDF_autoDetectNamespaces, value);
@@ -335,7 +336,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param values The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfSerializerContext#RDF_namespaces
+	 * @see RdfSerializer#RDF_namespaces
 	 */
 	public RdfSerializerBuilder namespaces(Namespace...values) {
 		return property(RDF_namespaces, values);
@@ -379,7 +380,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfCommonContext#RDF_collectionFormat
+	 * @see RdfCommon#RDF_collectionFormat
 	 */
 	public RdfSerializerBuilder collectionFormat(RdfCollectionFormat value) {
 		return property(RDF_collectionFormat, value);
@@ -436,7 +437,7 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 	 *
 	 * @param value The new value for this property.
 	 * @return This object (for method chaining).
-	 * @see RdfCommonContext#RDF_looseCollections
+	 * @see RdfCommon#RDF_looseCollections
 	 */
 	public RdfSerializerBuilder looseCollections(boolean value) {
 		return property(RDF_looseCollections, value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
index 3b050b5..3360fe0 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.jena;
 
+import static org.apache.juneau.jena.RdfSerializer.*;
+
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -19,129 +21,10 @@ import org.apache.juneau.serializer.*;
 import org.apache.juneau.xml.*;
 
 /**
- * Configurable properties on the {@link RdfSerializer} class.
- * 
- * <p>
- * Context properties are set by calling {@link PropertyStore#setProperty(String, Object)} on the property store
- * passed into the constructor.
- * 
- * <p>
- * See {@link PropertyStore} for more information about context properties.
- *
- * <h6 class='topic' id='ConfigProperties'>Configurable properties inherited by the RDF serializers</h6>
- * <ul class='doctree'>
- * 	<li class='jc'>
- * 		<a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a> 
- * 		- Properties associated with handling beans on serializers and parsers.
- * 		<ul>
- * 			<li class='jc'>
- * 				<a class="doclink" href="../serializer/SerializerContext.html#ConfigProperties">SerializerContext</a> 
- * 				- Configurable properties common to all serializers.
- * 				<ul>
- * 					<li class='jc'>
- * 						<a class="doclink" href="RdfCommonContext.html#ConfigProperties">RdfCommonContext</a> 
- * 						- Configurable properties common to the RDF serializers and parsers.
- * 				</ul>
- * 			</li>
- * 		</ul>
- * 	</li>
- * </ul>
+ * Contains a snapshot-in-time read-only copy of the settings on the {@link RdfSerializer} class.
  */
-public final class RdfSerializerContext extends SerializerContext implements RdfCommonContext {
+public final class RdfSerializerContext extends SerializerContext implements RdfCommon {
 	
-	static final String PREFIX = "RdfSerializer.";
-
-	/**
-	 * <b>Configuration property:</b>  Add XSI data types to non-<code>String</code> literals.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"RdfSerializer.addLiteralTypes"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
-	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
-	 * </ul>
-	 */
-	public static final String RDF_addLiteralTypes = PREFIX + "addLiteralTypes";
-
-	/**
-	 * <b>Configuration property:</b>  Add RDF root identifier property to root node.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"RdfSerializer.addRootProperty"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
-	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * When enabled an RDF property <code>http://www.apache.org/juneau/root</code> is added with a value of <js>"true"</js>
-	 * to identify the root node in the graph.
-	 * This helps locate the root node during parsing.
-	 * 
-	 * <p>
-	 * If disabled, the parser has to search through the model to find any resources without incoming predicates to 
-	 * identify root notes, which can introduce a considerable performance degradation.
-	 */
-	public static final String RDF_addRootProperty = PREFIX + "addRootProperty";
-
-	/**
-	 * <b>Configuration property:</b>  Auto-detect namespace usage.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"RdfSerializer.autoDetectNamespaces"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>true</jk>
-	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * Detect namespace usage before serialization.
-	 * 
-	 * <p>
-	 * If enabled, then the data structure will first be crawled looking for namespaces that will be encountered before 
-	 * the root element is serialized.
-	 */
-	public static final String RDF_autoDetectNamespaces = PREFIX + "autoDetectNamespaces";
-
-	/**
-	 * <b>Configuration property:</b>  Default namespaces.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"RdfSerializer.namespaces.list"</js>
-	 * 	<li><b>Data type:</b> <code>List&lt;{@link Namespace}&gt;</code>
-	 * 	<li><b>Default:</b> empty list
-	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * The default list of namespaces associated with this serializer.
-	 */
-	public static final String RDF_namespaces = PREFIX + "namespaces.list";
-
-	/**
-	 * <b>Configuration property:</b>  Add <js>"_type"</js> properties when needed.
-	 * 
-	 * <ul>
-	 * 	<li><b>Name:</b> <js>"RdfSerializer.addBeanTypeProperties"</js>
-	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
-	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
-	 * </ul>
-	 * 
-	 * <p>
-	 * If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred 
-	 * through reflection.
-	 * This is used to recreate the correct objects during parsing if the object types cannot be inferred.
-	 * For example, when serializing a {@code Map<String,Object>} field, where the bean class cannot be determined 
-	 * from the value type.
-	 * 
-	 * <p>
-	 * When present, this value overrides the {@link SerializerContext#SERIALIZER_addBeanTypeProperties} setting and is
-	 * provided to customize the behavior of specific serializers in a {@link SerializerGroup}.
-	 */
-	public static final String RDF_addBeanTypeProperties = PREFIX + "addBeanTypeProperties";
-
-
 	final boolean
 		addLiteralTypes,
 		addRootProperty,

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
index 3a6fb25..1f42a0f 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
@@ -13,14 +13,13 @@
 package org.apache.juneau.jena;
 
 import static org.apache.juneau.jena.Constants.*;
-import static org.apache.juneau.jena.RdfCommonContext.*;
-import static org.apache.juneau.jena.RdfSerializerContext.*;
+import static org.apache.juneau.jena.RdfCommon.*;
+import static org.apache.juneau.jena.RdfSerializer.*;
 
 import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.internal.*;
-import org.apache.juneau.msgpack.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.xml.*;
@@ -97,7 +96,7 @@ public final class RdfSerializerSession extends WriterSerializerSession {
 		writer = model.getWriter(rdfLanguage);
 
 		// Only apply properties with this prefix!
-		String propPrefix = RdfCommonContext.LANG_PROP_MAP.get(rdfLanguage);
+		String propPrefix = RdfCommon.LANG_PROP_MAP.get(rdfLanguage);
 		if (propPrefix == null)
 			throw new FormattedRuntimeException("Unknown RDF language encountered: ''{0}''", rdfLanguage);
 
@@ -132,9 +131,9 @@ public final class RdfSerializerSession extends WriterSerializerSession {
 	}
 
 	/**
-	 * Returns the {@link MsgPackSerializerContext#MSGPACK_addBeanTypeProperties} setting value for this session.
+	 * Returns the {@link Serializer#SERIALIZER_addBeanTypeProperties} setting value for this session.
 	 *
-	 * @return The {@link MsgPackSerializerContext#MSGPACK_addBeanTypeProperties} setting value for this session.
+	 * @return The {@link Serializer#SERIALIZER_addBeanTypeProperties} setting value for this session.
 	 */
 	@Override /* SerializerSession */
 	public final boolean isAddBeanTypeProperties() {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
index 3d35186..f32362c 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
@@ -342,7 +342,7 @@
 	<xt>&lt;/rdf:RDF&gt;</xt>
 		</p>
 		<p>
-			Namespace auto-detection ({@link org.apache.juneau.xml.XmlSerializerContext#XML_autoDetectNamespaces}) is 
+			Namespace auto-detection ({@link org.apache.juneau.xml.XmlSerializer#XML_autoDetectNamespaces}) is 
 			enabled on serializers by default.
 			<br>This causes the serializer to make a first-pass over the data structure to look for namespaces.
 			<br>In high-performance environments, you may want to consider disabling auto-detection and providing an 
@@ -440,9 +440,9 @@
 		<ja>@URI</ja> <jk>public</jk> String <jf>addressBookUri</jf>;
 		</p>
 		<p>
-			Also take note of the {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_uriResolution},
-			{@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_uriRelativity}, and 
-			and {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_uriContext}
+			Also take note of the {@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution},
+			{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity}, and 
+			and {@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriContext}
 			settings that can be specified on the serializer to resolve relative and context-root-relative URIs to 
 			fully-qualified URIs.
 		</p>
@@ -657,7 +657,7 @@
 			locate the root at all.
 		</p>
 		<p>
-			To resolve this issue, the property {@link org.apache.juneau.jena.RdfSerializerContext#RDF_addRootProperty} 
+			To resolve this issue, the property {@link org.apache.juneau.jena.RdfSerializer#RDF_addRootProperty} 
 			was introduced.
 			<br>When enabled, this adds a special <code>root</code> attribute to the root node to make it easy to locate 
 			by the parser.
@@ -716,7 +716,7 @@
 	<div class='topic'>
 		<p>
 			XML-Schema data-types can be added to non-<code>String</code> literals through the 
-			{@link org.apache.juneau.jena.RdfSerializerContext#RDF_addLiteralTypes} setting.
+			{@link org.apache.juneau.jena.RdfSerializer#RDF_addLiteralTypes} setting.
 		</p>
 		<p>
 			To enable, set the <jsf>RDF_addLiteralTypes</jsf> property to <jk>true</jk> on the serializer:
@@ -773,12 +773,12 @@
 			The RDF serializer is designed to be used against tree structures.
 			<br>It expects that there not be loops in the POJO model (e.g. children with references to parents, etc...).
 			<br>If you try to serialize models with loops, you will usually cause a <code>StackOverflowError</code> to 
-			be thrown (if {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_maxDepth} is not reached 
+			be thrown (if {@link org.apache.juneau.serializer.Serializer#SERIALIZER_maxDepth} is not reached 
 			first).
 		</p>
 		<p>
 			If you still want to use the XML serializer on such models, Juneau provides the 
-			{@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_detectRecursions} setting.
+			{@link org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions} setting.
 			<br>It tells the serializer to look for instances of an object in the current branch of the tree and skip 
 			serialization when a duplicate is encountered.
 		</p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 762cb1b..8da93b2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -77,18 +77,18 @@ import org.apache.juneau.transform.*;
  * 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
+ * Some settings (e.g. {@link #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
+ * Some settings (e.g. {@link #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.
+ * Some settings (e.g. {@link #BEAN_beanMapPutReturnsOldValue}) change the runtime behavior of bean maps.
  *
  * <p>
  * Settings are specified using the {@link PropertyStore#setProperty(String, Object)} method and related convenience
@@ -871,7 +871,7 @@ public class BeanContext extends Context {
 	 * 		When bean getters throws exceptions, the exception includes the object stack information
 	 * 		in order to determine how that method was invoked.
 	 * 	<li>
-	 * 		Enables {@link SerializerContext#SERIALIZER_detectRecursions}.
+	 * 		Enables {@link Serializer#SERIALIZER_detectRecursions}.
 	 * </ul>
 	 *
 	 * <p>
@@ -1585,7 +1585,7 @@ public class BeanContext extends Context {
 	}
 
 	/**
-	 * Returns the type property name as defined by {@link BeanContext#BEAN_beanTypePropertyName}.
+	 * Returns the type property name as defined by {@link #BEAN_beanTypePropertyName}.
 	 *
 	 * @return The type property name.  Never <jk>null</jk>.
 	 */
@@ -1594,7 +1594,7 @@ public class BeanContext extends Context {
 	}
 
 	/**
-	 * Returns the bean registry defined in this bean context defined by {@link BeanContext#BEAN_beanDictionary}.
+	 * Returns the bean registry defined in this bean context defined by {@link #BEAN_beanDictionary}.
 	 *
 	 * @return The bean registry defined in this bean context.  Never <jk>null</jk>.
 	 */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 0a4d78d..4382b38 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -120,9 +120,9 @@ public class BeanSession extends Session {
 	}
 
 	/**
-	 * Returns the {@link SerializerContext#BEAN_debug} setting value for this session.
+	 * Returns the {@link BeanContext#BEAN_debug} setting value for this session.
 	 *
-	 * @return The {@link SerializerContext#BEAN_debug} setting value for this session.
+	 * @return The {@link BeanContext#BEAN_debug} setting value for this session.
 	 */
 	public final boolean isDebug() {
 		return debug;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/CoreObjectBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/CoreObjectBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/CoreObjectBuilder.java
index 2049e25..74bbdb8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/CoreObjectBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/CoreObjectBuilder.java
@@ -1595,7 +1595,7 @@ public abstract class CoreObjectBuilder {
 	 * 		When bean getters throws exceptions, the exception includes the object stack information
 	 * 		in order to determine how that method was invoked.
 	 * 	<li>
-	 * 		Enables {@link SerializerContext#SERIALIZER_detectRecursions}.
+	 * 		Enables {@link Serializer#SERIALIZER_detectRecursions}.
 	 * </ul>
 	 *
 	 * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java
index 192664b..8b73a65 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java
@@ -34,7 +34,7 @@ import org.apache.juneau.serializer.*;
  *
  * <p>
  * URIs are automatically resolved to absolute or root-relative form based on the serializer
- * {@link SerializerContext#SERIALIZER_uriResolution} and {@link SerializerContext#SERIALIZER_uriRelativity}
+ * {@link Serializer#SERIALIZER_uriResolution} and {@link Serializer#SERIALIZER_uriRelativity}
  * configuration settings, and the URI context defined by the {@link UriContext} that's part of the serializer
  * session.
  *

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java
index 450902a..4932b68 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java
@@ -20,9 +20,18 @@ import org.apache.juneau.parser.*;
  */
 public class CsvParser extends ReaderParser {
 
+	//-------------------------------------------------------------------------------------------------------------------
+	// Predefined instances
+	//-------------------------------------------------------------------------------------------------------------------
+
 	/** Default parser, all default settings.*/
 	public static final CsvParser DEFAULT = new CsvParser(PropertyStore.create());
 
+
+	//-------------------------------------------------------------------------------------------------------------------
+	// Instance
+	//-------------------------------------------------------------------------------------------------------------------
+
 	private final CsvParserContext ctx;
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserContext.java
index 93c5f57..d6f4298 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserContext.java
@@ -16,26 +16,7 @@ import org.apache.juneau.*;
 import org.apache.juneau.parser.*;
 
 /**
- * Configurable properties on the {@link CsvParser} class.
- *
- * <p>
- * Context properties are set by calling {@link PropertyStore#setProperty(String, Object)} on the property store
- * passed into the constructor.
- *
- * <p>
- * See {@link PropertyStore} for more information about context properties.
- *
- * <h6 class='topic'>Inherited configurable properties</h6>
- * <ul class='doctree'>
- * 	<li class='jc'>
- * 		<a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a> -
- * 		Properties associated with handling beans on serializers and parsers.
- * 	<ul>
- * 		<li class='jc'>
- * 			<a class="doclink" href="../parser/ParserContext.html#ConfigProperties">ParserContext</a> -
- * 			Configurable properties common to all parsers.
- * 	</ul>
- * </ul>
+ * Contains a snapshot-in-time read-only copy of the settings on the {@link CsvParser} class.
  */
 public final class CsvParserContext extends ParserContext {
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java
index 2593175..9f757d6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java
@@ -20,9 +20,18 @@ import org.apache.juneau.serializer.*;
  */
 public final class CsvSerializer extends WriterSerializer {
 
+	//-------------------------------------------------------------------------------------------------------------------
+	// Predefined instances
+	//-------------------------------------------------------------------------------------------------------------------
+
 	/** Default serializer, all default settings.*/
 	public static final CsvSerializer DEFAULT = new CsvSerializer(PropertyStore.create());
 
+
+	//-------------------------------------------------------------------------------------------------------------------
+	// Instance
+	//-------------------------------------------------------------------------------------------------------------------
+
 	private final CsvSerializerContext ctx;
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerContext.java
index 3c8c77b..db79a3b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerContext.java
@@ -16,26 +16,7 @@ import org.apache.juneau.*;
 import org.apache.juneau.serializer.*;
 
 /**
- * Configurable properties on the {@link CsvSerializer} class.
- *
- * <p>
- * Context properties are set by calling {@link PropertyStore#setProperty(String, Object)} on the property store
- * passed into the constructor.
- *
- * <p>
- * See {@link PropertyStore} for more information about context properties.
- *
- * <h6 class='topic'>Inherited configurable properties</h6>
- * <ul class='doctree'>
- * 	<li class='jc'>
- * 		<a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a>
- * 		- Properties associated with handling beans on serializers and parsers.
- * 	<ul>
- * 		<li class='jc'>
- * 		<a class="doclink" href="../serializer/SerializerContext.html#ConfigProperties">SerializerContext</a>
- * 		- Configurable properties common to all serializers.
- * 	</ul>
- * </ul>
+ * Contains a snapshot-in-time read-only copy of the settings on the {@link CsvSerializer} class.
  */
 public final class CsvSerializerContext extends SerializerContext {
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d22f1b26/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/AnchorText.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/AnchorText.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/AnchorText.java
index 8b2f7ce..3fa31b4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/AnchorText.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/AnchorText.java
@@ -13,7 +13,7 @@
 package org.apache.juneau.html;
 
 /**
- * Identifies possible values for the {@link HtmlSerializerContext#HTML_uriAnchorText} setting.
+ * Identifies possible values for the {@link HtmlSerializer#HTML_uriAnchorText} setting.
  */
 public enum AnchorText {