juneau-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jamesbog...@apache.org
Subject [16/51] [partial] juneau-website git commit: New Security-Best-Practices section in javadocs.
Date Sun, 26 Nov 2017 19:46:25 GMT
http://git-wip-us.apache.org/repos/asf/juneau-website/blob/81ca4d4d/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html b/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html
index 6a62dd7..36bd4a1 100644
--- a/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html
+++ b/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html
@@ -127,10 +127,6 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <dl>
-<dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
-</dl>
-<dl>
 <dt>Direct Known Subclasses:</dt>
 <dd><a href="../../../../org/apache/juneau/html/HtmlSerializerSession.html" title="class in org.apache.juneau.html">HtmlSerializerSession</a>, <a href="../../../../org/apache/juneau/soap/SoapXmlSerializerSession.html" title="class in org.apache.juneau.soap">SoapXmlSerializerSession</a>, <a href="../../../../org/apache/juneau/xml/XmlDocSerializerSession.html" title="class in org.apache.juneau.xml">XmlDocSerializerSession</a>, <a href="../../../../org/apache/juneau/xml/XmlSchemaSerializerSession.html" title="class in org.apache.juneau.xml">XmlSchemaSerializerSession</a></dd>
 </dl>
@@ -270,21 +266,21 @@ extends <a href="../../../../org/apache/juneau/serializer/WriterSerializerSessio
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a></h3>
-<code><a href="../../../../org/apache/juneau/BeanSession.html#Z:Z_class--">_class</a>, <a href="../../../../org/apache/juneau/BeanSession.html#close--">close</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToMemberType-java.lang.Object-java.lang.Object-java.lang.Class-">convertToMemberType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToMemberType-java.lang.Object-java.lang.Object-org.apache.juneau.ClassMeta-">convertToMemberType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.reflect.Type-java.lang.reflect.Type...-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getArgsClassMeta-java.lang.reflect.Type:A-"
 >getArgsClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanMeta-java.lang.Class-">getBeanMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanRegistry--">getBeanRegistry</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanTypePropertyName-org.apache.juneau.ClassMeta-">getBeanTypePropertyName</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassLoader--">getClassLoader</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.Class-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.reflect.Type-java.lang.reflect.Type...-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetaForObject-T-">getClassMetaForObject</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getLocale--">getLocale</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getMediaType--">getMediaType</a>, <a href="../../.
 ./../org/apache/juneau/BeanSession.html#getStringBuilder--">getStringBuilder</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getTimeZone--">getTimeZone</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isBean-java.lang.Class-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isBean-java.lang.Object-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isDebug--">isDebug</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isIgnoreUnknownBeanProperties--">isIgnoreUnknownBeanProperties</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Object-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Object-java.lang.Class-">newBeanMap</a>, <a href=".
 ./../../../org/apache/juneau/BeanSession.html#object--">object</a>, <a href="../../../../org/apache/juneau/BeanSession.html#returnStringBuilder-java.lang.StringBuilder-">returnStringBuilder</a>, <a href="../../../../org/apache/juneau/BeanSession.html#string--">string</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toArray-org.apache.juneau.ClassMeta-java.util.Collection-">toArray</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-">toBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-java.lang.Class-">toBeanMap</a></code></li>
+<code><a href="../../../../org/apache/juneau/BeanSession.html#Z:Z_class--">_class</a>, <a href="../../../../org/apache/juneau/BeanSession.html#checkForWarnings--">checkForWarnings</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToMemberType-java.lang.Object-java.lang.Object-java.lang.Class-">convertToMemberType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToMemberType-java.lang.Object-java.lang.Object-org.apache.juneau.ClassMeta-">convertToMemberType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.reflect.Type-java.lang.reflect.Type...-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getArgsClassMeta-java
 .lang.reflect.Type:A-">getArgsClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanMeta-java.lang.Class-">getBeanMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanRegistry--">getBeanRegistry</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanTypePropertyName-org.apache.juneau.ClassMeta-">getBeanTypePropertyName</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassLoader--">getClassLoader</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.Class-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.reflect.Type-java.lang.reflect.Type...-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetaForObject-T-">getClassMetaForObject</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getLocale--">getLocale</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getMediaType--">getMediaType
 </a>, <a href="../../../../org/apache/juneau/BeanSession.html#getStringBuilder--">getStringBuilder</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getTimeZone--">getTimeZone</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isBean-java.lang.Class-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isBean-java.lang.Object-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isDebug--">isDebug</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isIgnoreUnknownBeanProperties--">isIgnoreUnknownBeanProperties</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Object-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Object-java.lang.Class-">newB
 eanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newInstance-java.lang.Class-java.lang.Object-java.lang.Object...-">newInstance</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newInstanceFromOuter-java.lang.Object-java.lang.Class-java.lang.Object-java.lang.Object...-">newInstanceFromOuter</a>, <a href="../../../../org/apache/juneau/BeanSession.html#object--">object</a>, <a href="../../../../org/apache/juneau/BeanSession.html#returnStringBuilder-java.lang.StringBuilder-">returnStringBuilder</a>, <a href="../../../../org/apache/juneau/BeanSession.html#string--">string</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toArray-org.apache.juneau.ClassMeta-java.util.Collection-">toArray</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-">toBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-java.lang.Class-">toBeanMap</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.juneau.Session">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.<a href="../../../../org/apache/juneau/Session.html" title="class in org.apache.juneau">Session</a></h3>
-<code><a href="../../../../org/apache/juneau/Session.html#addToCache-java.util.Map-">addToCache</a>, <a href="../../../../org/apache/juneau/Session.html#addToCache-java.lang.String-java.lang.Object-">addToCache</a>, <a href="../../../../org/apache/juneau/Session.html#addWarning-java.lang.String-java.lang.Object...-">addWarning</a>, <a href="../../../../org/apache/juneau/Session.html#finalize--">finalize</a>, <a href="../../../../org/apache/juneau/Session.html#getFromCache-java.lang.Class-java.lang.String-">getFromCache</a>, <a href="../../../../org/apache/juneau/Session.html#getLogger--">getLogger</a>, <a href="../../../../org/apache/juneau/Session.html#getProperties--">getProperties</a>, <a href="../../../../org/apache/juneau/Session.html#getProperty-java.lang.String-java.lang.Class-">getProperty</a>, <a href="../../../../org/apache/juneau/Session.html#getPropertyWithDefault-java.lang.String-T-java.lang.Class-">getPropertyWithDefault</a>, <a href="../../../../org/apache/juneau/Sess
 ion.html#getStringProperty-java.lang.String-">getStringProperty</a>, <a href="../../../../org/apache/juneau/Session.html#getStringProperty-java.lang.String-java.lang.String-">getStringProperty</a>, <a href="../../../../org/apache/juneau/Session.html#getWarnings--">getWarnings</a>, <a href="../../../../org/apache/juneau/Session.html#hasWarnings--">hasWarnings</a>, <a href="../../../../org/apache/juneau/Session.html#isClosed--">isClosed</a>, <a href="../../../../org/apache/juneau/Session.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/Session.html#addToCache-java.util.Map-">addToCache</a>, <a href="../../../../org/apache/juneau/Session.html#addToCache-java.lang.String-java.lang.Object-">addToCache</a>, <a href="../../../../org/apache/juneau/Session.html#addWarning-java.lang.String-java.lang.Object...-">addWarning</a>, <a href="../../../../org/apache/juneau/Session.html#getFromCache-java.lang.Class-java.lang.String-">getFromCache</a>, <a href="../../../../org/apache/juneau/Session.html#getLogger--">getLogger</a>, <a href="../../../../org/apache/juneau/Session.html#getProperties--">getProperties</a>, <a href="../../../../org/apache/juneau/Session.html#getProperty-java.lang.String-java.lang.Class-">getProperty</a>, <a href="../../../../org/apache/juneau/Session.html#getPropertyWithDefault-java.lang.String-T-java.lang.Class-">getPropertyWithDefault</a>, <a href="../../../../org/apache/juneau/Session.html#getStringProperty-java.lang.String-">getStringProperty</a>, <a href="
 ../../../../org/apache/juneau/Session.html#getStringProperty-java.lang.String-java.lang.String-">getStringProperty</a>, <a href="../../../../org/apache/juneau/Session.html#getWarnings--">getWarnings</a>, <a href="../../../../org/apache/juneau/Session.html#hasWarnings--">hasWarnings</a>, <a href="../../../../org/apache/juneau/Session.html#toString--">toString</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/la
 ng/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/juneau-website/blob/81ca4d4d/content/site/apidocs/org/apache/juneau/xml/package-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/xml/package-summary.html b/content/site/apidocs/org/apache/juneau/xml/package-summary.html
index 1b9aa9a..0fbe214 100644
--- a/content/site/apidocs/org/apache/juneau/xml/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/xml/package-summary.html
@@ -507,7 +507,7 @@
    </p>
    <p class='bcode'>
    <jc>// Create a new serializer with readable output, no namespaces yet.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
       .ws()  <jc>// or .useWhitespace(true)</jc>  
       .sq()  <jc>// or .quoteChar('\'')</jc>
       .ns()  <jc>// or .enableNamespaces(false)</jc>
@@ -2293,7 +2293,7 @@
       <p class='bcode'>
    <jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc>
    <jc>// Note that this is identical to XmlSerializer.DEFAULT_NS_SQ_READABLE.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ns().ws().sq().build();
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>().ns().ws().sq().build();
 
    <jc>// Create our bean.</jc>
    Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>);
@@ -2386,7 +2386,7 @@
          not need to be prefixed:
       <p class='bcode'>
    <jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
       .ws()
       .sq()
       .ns()
@@ -2425,7 +2425,7 @@
          </p>
          <p class='bcode'>
    <jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
       .ws()
       .sq()
       .autoDetectNamespaces(<jk>false</jk>)
@@ -2573,7 +2573,7 @@
       </p>
       <p class='bcode'>
    <jc>// Create a new serializer with readable output.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ws().sq().build();
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>().ws().sq().build();
 
    <jc>// Create our bean.</jc>
    Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, 
@@ -2686,7 +2686,7 @@
       </p>
       <p class='bcode'>
    <jc>// Create a new serializer with readable output.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
       .ws()
       .ns()
       .sq()
@@ -2995,7 +2995,7 @@
       </p>
       <p class='bcode'>
    <jc>// Create a new serializer with readable output.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
       .ws()
       .sq()
       .ns()
@@ -3080,7 +3080,7 @@
    </p>
    <p class='bcode'>
    <jc>// Create a new serializer with readable output.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ws().sq().ns().build();
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>().ws().sq().ns().build();
 
    <jc>// Create our bean.</jc>
    Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, 

http://git-wip-us.apache.org/repos/asf/juneau-website/blob/81ca4d4d/content/site/apidocs/org/apache/juneau/xml/package-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/xml/package-tree.html b/content/site/apidocs/org/apache/juneau/xml/package-tree.html
index dde6c26..2fdce9e 100644
--- a/content/site/apidocs/org/apache/juneau/xml/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/xml/package-tree.html
@@ -173,7 +173,7 @@
 </li>
 <li type="circle">org.apache.juneau.xml.<a href="../../../../org/apache/juneau/xml/Namespace.html" title="class in org.apache.juneau.xml"><span class="typeNameLink">Namespace</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.juneau.xml.<a href="../../../../org/apache/juneau/xml/NamespaceFactory.html" title="class in org.apache.juneau.xml"><span class="typeNameLink">NamespaceFactory</span></a></li>
-<li type="circle">org.apache.juneau.<a href="../../../../org/apache/juneau/Session.html" title="class in org.apache.juneau"><span class="typeNameLink">Session</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>)
+<li type="circle">org.apache.juneau.<a href="../../../../org/apache/juneau/Session.html" title="class in org.apache.juneau"><span class="typeNameLink">Session</span></a>
 <ul>
 <li type="circle">org.apache.juneau.<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau"><span class="typeNameLink">BeanSession</span></a>
 <ul>

http://git-wip-us.apache.org/repos/asf/juneau-website/blob/81ca4d4d/content/site/apidocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-summary.html b/content/site/apidocs/overview-summary.html
index 4078276..96530f4 100644
--- a/content/site/apidocs/overview-summary.html
+++ b/content/site/apidocs/overview-summary.html
@@ -421,7 +421,6 @@
       such as request/response multiplexing and server push.
 </ul>
 
-
 <a id='TOC'></a><h5 class='toc'>Table of Contents</h5>
 <ol class='toc'>
    <li><p><a class='doclink' href='#Intro'>Introduction</a></p>
@@ -518,6 +517,7 @@
          <li><p><a class='doclink' href='#juneau-examples-rest.LogsResource'>LogsResource</a></p>
       </ol>
    </ol>
+   <li><p><a class='doclink' href='#Security'>Security Best-Practices</a></p>
    <li><p><a class='doclink' href='#ReleaseNotes'>Release Notes</a></p>
 </ol>
 
@@ -897,7 +897,7 @@
    String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(someObject);
 
    <jc>// Create a custom serializer for lax syntax using single quote characters</jc>
-   JsonSerializer serializer = <jk>new</jk> JsonSerializerBuilder().simple().sq().build();
+   JsonSerializer serializer = JsonSerializer.<jsm>create</jsm>().simple().sq().build();
    
    <jc>// Clone an existing serializer and modify it to use single-quotes</jc>
    JsonSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>.builder().sq().build();
@@ -1018,7 +1018,7 @@
          </p>
          <p class='bcode'>
    <jc>// Construct a new serializer group with configuration parameters that get applied to all serializers.</jc>
-   SerializerGroup sg = <jk>new</jk> SerializerGroupBuilder()
+   SerializerGroup sg = SerializerGroup.<jsm>create</jsm>()
       .append(JsonSerializer.<jk>class</jk>, UrlEncodingSerializer.<jk>class</jk>);
       .ws   <jc>// or .useWhitespace(true)</jc>
       .pojoSwaps(CalendarSwap.ISO8601DT.<jk>class</jk>)
@@ -1029,7 +1029,7 @@
       .serialize(myPersonObject, myWriter);
       
    <jc>// Construct a new parser group with configuration parameters that get applied to all parsers.</jc>
-   ParserGroup pg = <jk>new</jk> ParserGroupBuilder()
+   ParserGroup pg = ParserGroup.<jsm>create</jsm>()
       .append(JsonSerializer.<jk>class</jk>, UrlEncodingSerializer.<jk>class</jk>);
       .pojoSwaps(CalendarSwap.ISO8601DT.<jk>class</jk>)
       .build();
@@ -1181,7 +1181,7 @@
             <br>For example, the following code shows how to configure a JSON serializer:
          </p>
          <p class='bcode'>
-   JsonSerializer s = <jk>new</jk> JsonSerializerBuilder().simple().ws().sq().build();
+   JsonSerializer s = JsonSerializer.<jsm>create</jsm>().simple().ws().sq().build();
          </p>
          <p>
             However, each of the serializers and parsers already contain reusable instances with common configurations.
@@ -1421,11 +1421,11 @@
    }
 
    <jc>// Create a new JSON serializer, associate our date swap with it, and serialize a sample bean.</jc>
-   Serializer serializer = <jk>new</jk> JsonSerializerBuilder().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
+   Serializer serializer = JsonSerializer.<jsm>create</jsm>().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
    String json = serializer.serialize(<jk>new</jk> MyBean());  <jc>// == "{date:'2012-03-03T04:05:06-0500'}"</jc>
    
    <jc>// Create a JSON parser, associate our date swap with it, and reconstruct our bean (including the date).</jc>
-   ReaderParser parser = <jk>new</jk> JsonParserBuilder().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
+   ReaderParser parser = JsonParser.<jsm>create</jsm>().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
    MyBean bean = parser.parse(json, MyBean.<jk>class</jk>);
    <jk>int</jk> day = bean.<jf>date</jf>.getDay();                   <jc>// == 3</jc>
             </p>
@@ -1512,7 +1512,7 @@
       <ja>@Test</ja>
       <jk>public void</jk> doTest() <jk>throws</jk> Exception {
 
-         SerializerGroup g = <jk>new</jk> SerializerGroupBuilder()
+         SerializerGroup g = SerializerGroup.<jsm>create</jsm>()
             .append(JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>, HtmlSerializer.<jk>class</jk>)
             .sq()
             .pojoSwaps(MyJsonSwap.<jk>class</jk>, MyXmlSwap.<jk>class</jk>, MyOtherSwap.<jk>class</jk>)
@@ -1788,7 +1788,7 @@
             </p>
             <p class='bcode'>       
    <jc>// Create a new JSON serializer and associate a bean filter with it.</jc>
-   Serializer serializer = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyAddressBeanFilter.<jk>class</jk>).build();
+   Serializer serializer = JsonSerializer.<jsm>create</jsm>().beanFilters(MyAddressBeanFilter.<jk>class</jk>).build();
             </p>
             <p>
                Note that if you use the annotation, you do NOT need to set anything on the serializers/parsers.
@@ -1815,7 +1815,7 @@
    }
    
    <jc>// Create a new JSON serializer that only exposes street,city,state on Address bean.</jc>
-   Serializer serializer = <jk>new</jk> JsonSerializerBuilder().beanFilters(AddressInterface.<jk>class</jk>).build();
+   Serializer serializer = JsonSerializer.<jsm>create</jsm>().beanFilters(AddressInterface.<jk>class</jk>).build();
             </p>
             
             <h6 class='topic'>Additional Information</h6>
@@ -2211,7 +2211,7 @@
             <tr><th>Group</th><th>Description</th><th>Examples</th><th>Can<br>serialize?</th><th>Can<br>parse?</th></tr>
             <tr class='dark bb' style='background-color:lightyellow;'>
                <td style='text-align:center'>1</td>
-               <td><b>Java primitive objects</b></td>
+               <td><b>Java primitives and primitive objects</b></td>
                <td>
                   <ul class='normal'>
                      <li><code>String</code>
@@ -2275,8 +2275,9 @@
                <td style='text-align:center'>3a</td>
                <td>
                   <b>With standard properties</b>
-                  <br>These are beans that have no-arg constructors and one or more properties defined by public getter 
-                  and setter methods or public fields.
+                  <br>These are beans that have one or more properties defined by public getter 
+                  or public fields.
+                  <br>Properties can also be defined as final read-only fields and passed in as constructor args.
                   <br>Property values are group [1, 2, 3ac, 4a, 6a] objects.
                </td>
                <td>&nbsp;</td>
@@ -2287,7 +2288,7 @@
                <td style='text-align:center'>3b</td>
                <td>
                   <b>With non-standard properties or not true beans</b>
-                  <br>These include true beans that have no-arg constructors and one or more properties defined by getter 
+                  <br>These include true beans that have one or more properties defined by getter 
                   and setter methods or properties, but property types include group [3b, 4b, 5, 6b, 7] objects.
                   <br>This also includes classes that look like beans but aren't true beans.  
                   For example, classes that have getters but not setters, or classes without no-arg constructors. 
@@ -2307,6 +2308,16 @@
                <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
                <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
             </tr>    
+            <tr class='light bb'>
+               <td style='text-align:center'>3d</td>
+               <td>
+                  <b>Read-only beans without setters</b>
+                  <br>The same as 3a, but without property setters or constructor args.
+               </td>
+               <td>&nbsp;</td>
+               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+               <td style='background-color:salmon;text-align:center'><b>no</b></td>
+            </tr>    
             <tr class='dark bb' style='background-color:lightyellow'>
                <td style='text-align:center'>4</td>
                <td>
@@ -2358,6 +2369,8 @@
                <td>
                   <b>Readers and InputStreams</b>
                   <br>Contents are serialized directly to the output stream or writer.
+                  <br>Typically used for low-level language-specific replacement of POJOs using per-Media-Type 
+                  POJO swaps.
                </td>
                <td>              
                   <ul class='normal'>
@@ -2811,7 +2824,7 @@
          <h6 class='figure'>Example with no namespaces</h6>
          <p class='bcode'>
    <jc>// Create a serializer with readable output, no namespaces yet.</jc>
-   XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().sq().ws().build();
+   XmlSerializer s = XmlSerializer.<jsm>create</jsm>().sq().ws().build();
 
    <jc>// Serialize to ATOM/XML</jc>
    String atomXml = s.serialize(feed);
@@ -3146,7 +3159,7 @@
    URL key4;
    
    <jc>// Load our config file</jc>
-   ConfigFile f = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>);
+   ConfigFile f = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>);
    
    <jc>// Read values from default section</jc>
    key1 = f.getInt(<js>"key1"</js>);
@@ -3165,7 +3178,7 @@
       </p>
       <p class='bcode'>
    <jc>// Construct the sample INI file programmatically</jc>
-   ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>)
+   ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>)
       .addLines(<jk>null</jk>,
          <js>"# Default section"</js>,
          <js>"key1 = 1"</js>,
@@ -3188,7 +3201,7 @@
       </p>
       <p class='bcode'>
    <jc>// Construct the sample INI file programmatically</jc>
-   ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>)
+   ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>)
       .addLines(<jk>null</jk>,
          <js>"# Default section"</js>)
       .addHeaderComments(<js>"section1"</js>,
@@ -3307,7 +3320,7 @@
    }
 
    <jc>// Example usage</jc>
-   ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>);
+   ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>);
    Address myAddress = cf.getSectionAsBean(<js>"MySection"</js>, Address.<jk>class</jk>);
       </p>
       <p>
@@ -3347,7 +3360,7 @@
    }
    
    <jc>// Example usage</jc>
-   ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>);
+   ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>);
    MyConfigInterface ci = cf.getSectionAsInterface(<js>"MySection"</js>, MyConfigInterface.<jk>class</jk>);
    <jk>int</jk> myInt = ci.getInt();
    ci.setBean(<jk>new</jk> MyBean());
@@ -3734,7 +3747,7 @@
          <p class='bcode'>
    
    <jc>// Create a client with basic JSON support.</jc>
-   RestClient client = <jk>new</jk> RestClientBuilder().rootUrl(<js>"http://localhost/remoteable"</js>).build();
+   RestClient client = RestClient.<jsm>create</jsm>().rootUrl(<js>"http://localhost/remoteable"</js>).build();
    
    <jc>// Get an interface proxy.</jc>
    IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
@@ -4078,7 +4091,7 @@
       </p>
       <p class='bcode'>
    <jc>// Create a reusable JSON client.</jc>
-   RestClient client = <jk>new</jk> RestClientBuilder().build();
+   RestClient client = RestClient.<jsm>create</jsm>().build();
    
    <jc>// The address of the root resource.</jc>
    String url = <js>"http://localhost:9080/sample/addressBook"</js>;
@@ -4092,7 +4105,7 @@
    
    <jc>// Add a person to the address book.
    // Use XML as the transport medium.</jc>
-   client = <jk>new</jk> RestClientBuilder(XmlSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>).build();
+   client = RestClient.<jsm>create</jsm>().serializer(XmlSerializer.<jk>class</jk>).parser(XmlSerializer.<jk>class</jk>).build();
    Person p = <jk>new</jk> Person(<js>"Joe Smith"</js>, 21);
    <jk>int</jk> returnCode = client.doPost(url + <js>"/entries"</js>, p).run();
       </p>
@@ -4131,7 +4144,7 @@
       String callMyMethod(<ja>@Header</ja>(<js>"E-Tag"</js>) UUID etag, <ja>@Query</ja>(<js>"debug"</js>) <jk>boolean</jk> debug, <ja>@Body</ja> MyPojo pojo);
    }
    
-   RestClient client = <jk>new</jk> RestClientBuilder().build();
+   RestClient client = RestClient.<jsm>create</jsm>().build();
    MyProxyInterface p = client.getRemoteableProxy(MyProxyInterface.<jk>class</jk>, <js>"http://hostname/some/rest/interface"</js>);
    String response = p.callMyMethod(UUID.<jsm>generate</jsm>(), <jk>true</jk>, <jk>new</jk> MyPojo());
          </p>
@@ -6359,9 +6372,9 @@
             System.<jsf>out</jsf>.println(<js>"Running client test..."</js>); 
             
             <jc>// Create a client to handle XML requests and responses.</jc> 
-            RestClient client = <jk>new</jk> RestClientBuilder().build(); 
-            RestClient xmlClient = <jk>new</jk> RestClientBuilder(XmlSerializer.<jsf>DEFAULT</jsf>, 
-               XmlParser.<jsf>DEFAULT</jsf>).build(); 
+            RestClient client = RestClient.<jsm>create</jsm>().build(); 
+            RestClient xmlClient = RestClient.<jsm>create</jsm>().serializer(XmlSerializer.<jsf>DEFAULT</jsf>)
+               .parser(XmlParser.<jsf>DEFAULT</jsf>).build(); 
             
             String root = <js>"http://localhost:10000/addressBook"</js>; 
             
@@ -6565,7 +6578,7 @@
          </p>
          <p class='bcode'>
    <jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
-   RestClient client = <jk>new</jk> RestClientBuilder()
+   RestClient client = RestClient.<jsm>create</jsm>()
       .rootUrl(<js>"http://localhost:10000/remoteable"</js>)
       .build();
    
@@ -6899,7 +6912,7 @@
       
       <jc>// Get registry URL from examples.cfg file.</jc>
       <jk>private</jk> String <jf>registryUrl</jf> = getConfig().getString(<js>"DockerRegistry/url"</js>); 
-      RestClient <jf>rc</jf> = <jk>new</jk> RestClientBuilder().build(); 
+      RestClient <jf>rc</jf> = RestClient.<jsm>create</jsm>().build(); 
       
       <jd>/** [GET /] - Show child resources. */</jd> 
       <ja>@SuppressWarnings</ja>(<js>"nls"</js>) 
@@ -6998,7 +7011,7 @@
       <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/{blogName}"</js>) 
       <jk>public</jk> ObjectList parseBlog(<ja>@Path</ja> String blogName) <jk>throws</jk> Exception { 
          ObjectList l = <jk>new</jk> ObjectList(); 
-         RestClient rc = <jk>new</jk> RestClientBuilder().build(); 
+         RestClient rc = RestClient.<jsm>create</jsm>().build(); 
          String site = <js>"http:<jc>//"</js> + blogName + <js>".tumblr.com/api/read/json"</js>;</jc> 
          ObjectMap m = rc.doGet(site).getResponse(ObjectMap.<jk>class</jk>); 
          <jk>int</jk> postsTotal = m.getInt(<js>"posts-total"</js>); 
@@ -7605,7 +7618,7 @@
          } 
       ) 
       <jk>public</jk> ConfigFile setConfigContents(<ja>@Body</ja> Reader contents) <jk>throws</jk> Exception { 
-         ConfigFile cf2 = <jk>new</jk> ConfigFileBuilder().build().load(contents); 
+         ConfigFile cf2 = ConfigFile.<jsm>create</jsm>().build().load(contents); 
          <jk>return</jk> getConfig().merge(cf2).save(); 
       } 
       
@@ -7717,12 +7730,173 @@
 </div>
 
 <!-- =============================================================================================================== -->
+<a id="Security"></a>
+<h2 class='topic' onclick='toggle(this)'>6 - Security Best-Practices</h2>
+<div class='topic'>
+   <p>
+      Security is always an ongoing concern in any library.  
+      If you discover any security vulnerabilities in this code, please refer to the instructions found here:
+   </p>
+   <ul class='spaced-list'>
+      <li><a class='doclink' href='http://www.apache.org/security'>SECURITY</a>
+   </ul>
+
+   <!-- =========================================================================================================== -->
+   <a id="Security.juneau-marshall"></a>
+   <h3 class='topic' onclick='toggle(this)'>6.1 - juneau-marshall</h3>
+   <div class='topic'>
+
+      <h6 class='topic'>Demarshalling vulnerabilities</h6>
+      <p>
+         One common security vulnerability is the ability to create arbitrary Java object instances through crafted
+         user input.  For example, support for constructing POJOs based on an input attribute defining a 
+         fully-qualified class name like <js>"{class:'com.foo.MyBean',...}"</js>
+      </p>
+      <p>
+         Fortunately, Juneau does not support an open-ended <js>"class</js> attribute.  
+         As a rule, it should not be possible to create arbitrary POJOs by any of the parsers.
+         The demarshalled object types are inferred via reflection of the class objects passed in through the parser 
+         method (e.g. <code>JsonParser.<jsf>DEFAULT</jsf>.parse(input, MyBean.<jk>class</jk>)</code>).
+         As long as the <code>Class</code> object passed into this method is not constructed from user-generated input,
+         it should be free from demarshalling vulnerabilities.   
+      </p> 
+      <p>
+         The following example shows a potential vector that circumvents the restriction above:
+      </p>
+      <p class='bcode'>
+   <jc>// Don't do this!</jc>
+   Class c = Class.<jsf>forName</jsf>(someUserInputString);
+   JsonParser.<jsf>DEFAULT</jsf>.parse(input, c);  <jc>// Oops!  Security hole!</jc>
+      </p>
+      <p>
+         Juneau does support something similar to a <js>"class"</js> attribute that allows you to define the
+         POJO type at runtime.
+         This is the <js>"type"</js> attribute.
+         The difference is that it's not possible to specify fully-qualified class names in <js>"type"</js> attributes,
+         and instead can only specify type keys defined through bean dictionaries. 
+         Instead of serializing the fully-qualified class names in the output, we instead serialize type
+         names that represent those POJO types.
+         <br>i.e. instead of <js>"class='com.foo.MyBean'"</js>, we instead serialize <js>"type='MyBeanIdentifier'"</js>.
+         <br>Since bean types are defined at compile time, it's impossible to instantiate arbitrary POJOs.
+      </p>
+      <p>
+         POJO types of generalized input are also inferred through swaps.
+         Again, since the POJO types are hardcoded at compile time, these should not be subject to demarshalling
+         vulnerabilities.  However, it is possible to circumvent this through your swap implementation as shown
+         below:   
+      </p>
+      <p class='bcode'>
+   <jc>// Don't do this!</jc>
+   <jk>public class</jk> MyInsecureSwap <jk>extends</jk> PojoSwap&lt;ObjectMap,Object&gt; {
+      <jk>public</jk> Object swap(BeanSession session, ObjectMap input) <jk>throws</jk> Exception {
+         <jc>// Security hole!</jc>
+         <jk>return</jk> Class.<jsf>forName</jsf>(input.getString(<js>"class"</js>)).newInstance();
+      }
+   }
+      </p>
+      <p>
+         Note that the <a href="org/apache/juneau/jso/JsoParser.html" title="class in org.apache.juneau.jso"><code>JsoParser</code></a>, a thin layer of the Juneau Parser API written on 
+         top of plain-old Java Object Serialization which itself is vulnerable to demarshalling issues.  
+         Due to this, the JSO parser is not included in any of the default REST servlet implementations. 
+         Be especially careful when using this parser, particularly if you want to use it for handing 
+         <code>application/x-java-serialized-object</code> input through REST servlets. 
+      </p>
+      <p>
+         All other parsers (JSON, URL-Encoding, MessagePack, etc...) work the same way in determining POJO types, so
+         should be safe from demarshalling vulnerabilities.  
+      </p>
+      
+      <h6 class='topic'>Dependent libraries</h6>
+      <p>
+         When accessing security vulnerabilities of any library, dependent libraries must also be taken into account:
+      </p>
+      <ul>
+         <li>The JSON, HTML, MsgPack, URL-Encoding, and UON parsers are written from scratch and do not rely on
+            any other parsing technologies.
+         <li>The XML and HTML parsers uses the built-in Java StAX parser.
+            This *should* be free from vulnerabilities.    
+         <li>The RDF parsers rely on Apache Jena 2.7.1.  
+            As of <code>7.0.1</code>, no known security vulnerabilities exist that affect Juneau at this time.
+      </ul>
+   </div>
+   
+   <!-- =========================================================================================================== -->
+   <a id="Security.juneau-svl"></a>
+   <h3 class='topic' onclick='toggle(this)'>6.2 - juneau-svl</h3>
+   <div class='topic'>
+      <p>
+         Care must be used when defining new <a href="org/apache/juneau/svl/Var.html" title="class in org.apache.juneau.svl"><code>Vars</code></a> using the SVL API since mistakes 
+         could potentially expose system properties, environment variables, or even file system files.
+      </p>
+      <p>
+         For recap, the SVL support allows you to embed variables of the form <js>"$X{key}"</js> inside strings that
+         get resolved to other strings.  The resolved strings themselves can also contain variables that also
+         get recursively resolved.  
+      </p>
+      <p>
+         An example of a potential security hole is shown below that could potentially expose any file on a file
+         system through a REST request:
+      </p>
+      <p class='bcode'>
+   <jk>public</jk> String doUnsafeGet(RestRequest req) {
+      <jc>// Security hole!</jc>
+      <jk>return</jk> req.getVarResolver().resolve(<js>"$R{Query.foo}"</js>);
+   }
+      </p>
+      <p>
+         This code is simply echoing the value of the <code>foo</code> query parameter.
+         Now say for example that a bad actor passes in the query string <js>"foo=$F{/some/file/on/file/system}"</js>.
+         The <code>$F</code> variable allows you to resolve the contents of files using SVL, and is provided
+         by default using the built-in variable resolver returned by the <code>RestRequest</code> object.
+         You've potentially just exposed the contents of that file through your REST interface.
+      </p>
+      <p>
+         In reality, the above security hole does not exist because of the following restrictions:
+      </p>
+      <ul class='spaced-list'>
+         <li>
+            <code>Vars</code> have two methods <a href="org/apache/juneau/svl/Var.html#allowNested--"><code>Var.allowNested()</code></a> and 
+            <a href="org/apache/juneau/svl/Var.html#allowRecurse--"><code>Var.allowRecurse()</code></a> that can be overridden to prevent recursive processing
+            of string variables.  These are both <jk>false</jk> for the <code>$R</code> variable, so the <code>$F</code>
+            variable in the result will never get processed and instead be treated as plain text. 
+         <li>
+            The <code>$F</code> variable only allows you to retrieve files within the JVM starting directory. 
+      </ul>
+      <p>
+         Even though the built-in Juneau variables are safe, special care is needed when defining your own custom
+         variables.  If your variable resolves user input in any way, it's HIGHLY recommended that you override the
+         <a href="org/apache/juneau/svl/Var.html#allowNested--"><code>Var.allowNested()</code></a> and <a href="org/apache/juneau/svl/Var.html#allowRecurse--"><code>Var.allowRecurse()</code></a> 
+         methods to prevent recursive handling of variables.
+      </p>
+   </div>
+   
+   <!-- =========================================================================================================== -->
+   <a id="Security.juneau-rest-server"></a>
+   <h3 class='topic' onclick='toggle(this)'>6.3 - juneau-rest-server</h3>
+   <div class='topic'>
+      <p>
+         Denial of service attacks can be alleviated through the <a href="org/apache/juneau/rest/annotation/RestResource.html#maxInput--"><code>maxInput()</code></a>
+         setting.  Arbitrarily-large input will trigger an exception before causing out-of-memory errors.
+         The default value for this setting is 100MB.  
+      </p>
+      <p>
+         Since the parsers do not use intermediate DOMs and instead parse directly into Java objects,  
+         deeply nested data structures will almost always trigger stack overflow errors long before memory consumption
+         becomes an issue.  However, this is NOT true of the RDF parsers that use an intermediate DOM.  If parsing 
+         RDF, you may want to consider lowering the max-input value above.
+      </p>
+   </div>
+
+</div>
+
+<!-- =============================================================================================================== -->
 <a id="ReleaseNotes"></a>
-<h2 class='topic' onclick='toggle(this)'>6 - Release Notes</h2>
+<h2 class='topic' onclick='toggle(this)'>7 - Release Notes</h2>
 <div class='topic'>
    
    <h5 class='toc'>What's new in each release</h5>
    <ul class='toc'>
+      <li><p><a class='doclink' href='#7.0.1'>7.0.1 (TBD)</a></p>
       <li><p><a class='doclink' href='#7.0.0'>7.0.0 (Oct 25, 2017)</a></p>
       <li><p><a class='doclink' href='#6.4.0'>6.4.0 (Oct 5, 2017)</a></p>
       <li><p><a class='doclink' href='#6.3.1'>6.3.1 (Aug 1, 2017)</a></p>
@@ -7794,6 +7968,61 @@
    </ul>
 
    <!-- =========================================================================================================== -->
+   <a id="7.0.1"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.0.1 (TBD)</h3>
+   <div class='topic'>
+   
+      <h6 class='topic'>juneau-marshall</h6>
+      <ul class='spaced-list'>
+         <li>New static <code>create()</code> methods for builders on serializers and parsers.
+            <br>This simplifies the syntax of creation of serializers and parsers by scratch.
+            <p class='bcode'>
+   <jc>// Old way</jc>
+   JsonSerializer s1 = <jk>new</jk> JsonSerializerBuilder().ws().build();
+   
+   <jc>// New way</jc>
+   JsonSerializer s2 = JsonSerializer.<jsm>create</jsm>().ws().build();
+            </p>
+            <br>The same static create methods have also been added to the following classes:
+            <ul>
+               <li><a href="org/apache/juneau/serializer/SerializerGroup.html#create--"><code>SerializerGroup.create()</code></a>
+               <li><a href="org/apache/juneau/parser/ParserGroup.html#create--"><code>ParserGroup.create()</code></a>
+               <li><a href="org/apache/juneau/encoders/EncoderGroup.html#create--"><code>EncoderGroup.create()</code></a>
+               <li><a href="org/apache/juneau/rest/client/RestClient.html#create--"><code>RestClient.create()</code></a>
+               <li><a href="org/apache/juneau/ini/ConfigFile.html#create--"><code>ConfigFile.create()</code></a>
+            </ul>
+         <li>
+            The order of the parameters in <a href="org/apache/juneau/serializer/SerializerSession.html#serialize-java.lang.Object-java.lang.Object-"><code>SerializerSession.serialize(Object,Object)</code></a>
+            has been change to match <a href="org/apache/juneau/serializer/Serializer.html#serialize-java.lang.Object-java.lang.Object-"><code>Serializer.serialize(Object,Object)</code></a>.  
+         <li>
+            Fixed some bugs in the XML parser related to whitespace and comments.
+      </ul>
+
+      <h6 class='topic'>juneau-marshall-rdf</h6>
+      <ul class='spaced-list'>
+      </ul>
+
+      <h6 class='topic'>juneau-svl</h6>
+      <ul class='spaced-list'>
+         <li>New methods on <a href="org/apache/juneau/svl/Var.html" title="class in org.apache.juneau.svl"><code>Var</code></a> class to restrict when nested and embedded variables
+         are resolved.
+            <ul>
+               <li><a href="org/apache/juneau/svl/Var.html#allowNested--"><code>Var.allowNested()</code></a>
+               <li><a href="org/apache/juneau/svl/Var.html#allowRecurse--"><code>Var.allowRecurse()</code></a>
+            </ul>
+      </ul>
+
+      <h6 class='topic'>juneau-rest-server</h6>
+      <ul class='spaced-list'>
+         <li>
+            New <a href="org/apache/juneau/rest/annotation/RestResource.html#maxInput--"><code>@RestResource.maxInput()</code></a> and 
+            <a href="org/apache/juneau/rest/annotation/RestMethod.html#maxInput--"><code>@RestMethod.maxInput()</code></a> for alleviating
+            potential DoS attacks.
+      </ul>
+
+   </div>
+   
+   <!-- =========================================================================================================== -->
    <a id="7.0.0"></a>
    <h3 class='topic' onclick='toggle(this)'>7.0.0 (Oct 25, 2017)</h3>
    <div class='topic'>
@@ -8976,7 +9205,7 @@
    WriterSerializer s = <jk>new</jk> JsonSerializer().setUseWhitespace(<jk>true</jk>).pojoSwaps(BSwap.<jk>class</jk>).lock();
 
    <jc>// New way</jc>
-   WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().ws().pojoSwaps(BSwap.<jk>class</jk>).build();
+   WriterSerializer s = JsonSerializer.<jsm>create</jsm>().ws().pojoSwaps(BSwap.<jk>class</jk>).build();
 
    <jc>/* Cloning an existing serializer or parser */ </jc>
    
@@ -9148,7 +9377,7 @@
    }
 
    <jc>// Client side</jc>
-   RestClient client = <jk>new</jk> RestClientBuilder().rootUrl(<jf>samplesUrl</jf>).build();         
+   RestClient client = RestClient.<jsm>create</jsm>().rootUrl(<jf>samplesUrl</jf>).build();        
    IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>, <js>"/addressBook/myproxy"</js>);
          </p>
             See <a href="org/apache/juneau/rest/annotation/RestMethod.html#name--"><code>RestMethod.name()</code></a> for more information.

http://git-wip-us.apache.org/repos/asf/juneau-website/blob/81ca4d4d/content/site/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-tree.html b/content/site/apidocs/overview-tree.html
index 2c491cc..3ffdcb0 100644
--- a/content/site/apidocs/overview-tree.html
+++ b/content/site/apidocs/overview-tree.html
@@ -598,6 +598,7 @@
 <li type="circle">org.apache.juneau.encoders.<a href="org/apache/juneau/encoders/EncoderGroupBuilder.html" title="class in org.apache.juneau.encoders"><span class="typeNameLink">EncoderGroupBuilder</span></a></li>
 <li type="circle">org.apache.juneau.encoders.<a href="org/apache/juneau/encoders/EncoderMatch.html" title="class in org.apache.juneau.encoders"><span class="typeNameLink">EncoderMatch</span></a></li>
 <li type="circle">org.apache.juneau.http.<a href="org/apache/juneau/http/EntityValidator.html" title="class in org.apache.juneau.http"><span class="typeNameLink">EntityValidator</span></a></li>
+<li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/FileReaderBuilder.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">FileReaderBuilder</span></a></li>
 <li type="circle">javax.activation.<a href="http://docs.oracle.com/javase/7/docs/api/javax/activation/FileTypeMap.html?is-external=true" title="class or interface in javax.activation"><span class="typeNameLink">FileTypeMap</span></a>
 <ul>
 <li type="circle">javax.activation.<a href="http://docs.oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html?is-external=true" title="class or interface in javax.activation"><span class="typeNameLink">MimetypesFileTypeMap</span></a>
@@ -608,6 +609,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/FileUtils.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">FileUtils</span></a></li>
+<li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/FileWriterBuilder.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">FileWriterBuilder</span></a></li>
 <li type="circle">java.util.logging.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/logging/Formatter.html?is-external=true" title="class or interface in java.util.logging"><span class="typeNameLink">Formatter</span></a>
 <ul>
 <li type="circle">org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/LogEntryFormatter.html" title="class in org.apache.juneau.microservice.resources"><span class="typeNameLink">LogEntryFormatter</span></a></li>
@@ -883,7 +885,7 @@
 <li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/JuneauLogger.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">JuneauLogger</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/LogParser.html" title="class in org.apache.juneau.microservice.resources"><span class="typeNameLink">LogParser</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;T&gt;, java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
+<li type="circle">org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/LogParser.html" title="class in org.apache.juneau.microservice.resources"><span class="typeNameLink">LogParser</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;T&gt;, java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
 <li type="circle">org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/LogParser.Entry.html" title="class in org.apache.juneau.microservice.resources"><span class="typeNameLink">LogParser.Entry</span></a></li>
 <li type="circle">org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/LogsResource.FileResource.html" title="class in org.apache.juneau.microservice.resources"><span class="typeNameLink">LogsResource.FileResource</span></a></li>
 <li type="circle">org.apache.juneau.http.<a href="org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http"><span class="typeNameLink">MediaType</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
@@ -916,6 +918,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.juneau.msgpack.<a href="org/apache/juneau/msgpack/MsgPackOutputStream.html" title="class in org.apache.juneau.msgpack"><span class="typeNameLink">MsgPackOutputStream</span></a></li>
+<li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/NoCloseOutputStream.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">NoCloseOutputStream</span></a></li>
 <li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/TeeOutputStream.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">TeeOutputStream</span></a></li>
 </ul>
 </li>
@@ -1037,7 +1040,6 @@
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/PropertyNamerDLC.html" title="class in org.apache.juneau"><span class="typeNameLink">PropertyNamerDLC</span></a> (implements org.apache.juneau.<a href="org/apache/juneau/PropertyNamer.html" title="interface in org.apache.juneau">PropertyNamer</a>)</li>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/PropertyNamerULC.html" title="class in org.apache.juneau"><span class="typeNameLink">PropertyNamerULC</span></a> (implements org.apache.juneau.<a href="org/apache/juneau/PropertyNamer.html" title="interface in org.apache.juneau">PropertyNamer</a>)</li>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau"><span class="typeNameLink">PropertyStore</span></a></li>
-<li type="circle">org.apache.juneau.<a href="org/apache/juneau/PropertyStore.PropertyMap.html" title="class in org.apache.juneau"><span class="typeNameLink">PropertyStore.PropertyMap</span></a></li>
 <li type="circle">org.apache.juneau.rest.converters.<a href="org/apache/juneau/rest/converters/Queryable.html" title="class in org.apache.juneau.rest.converters"><span class="typeNameLink">Queryable</span></a> (implements org.apache.juneau.rest.<a href="org/apache/juneau/rest/RestConverter.html" title="interface in org.apache.juneau.rest">RestConverter</a>)</li>
 <li type="circle">org.apache.juneau.jena.<a href="org/apache/juneau/jena/RdfUtils.html" title="class in org.apache.juneau.jena"><span class="typeNameLink">RdfUtils</span></a></li>
 <li type="circle">java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><span class="typeNameLink">Reader</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Readable.html?is-external=true" title="class or interface in java.lang">Readable</a>)
@@ -1137,7 +1139,7 @@
 </li>
 </ul>
 </li>
-<li type="circle">org.apache.juneau.<a href="org/apache/juneau/Session.html" title="class in org.apache.juneau"><span class="typeNameLink">Session</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>)
+<li type="circle">org.apache.juneau.<a href="org/apache/juneau/Session.html" title="class in org.apache.juneau"><span class="typeNameLink">Session</span></a>
 <ul>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/BeanSession.html" title="class in org.apache.juneau"><span class="typeNameLink">BeanSession</span></a>
 <ul>
@@ -1382,6 +1384,7 @@
 <li type="circle">org.apache.juneau.rest.response.<a href="org/apache/juneau/rest/response/WritableHandler.html" title="class in org.apache.juneau.rest.response"><span class="typeNameLink">WritableHandler</span></a> (implements org.apache.juneau.rest.<a href="org/apache/juneau/rest/ResponseHandler.html" title="interface in org.apache.juneau.rest">ResponseHandler</a>)</li>
 <li type="circle">java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><span class="typeNameLink">Writer</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang">Appendable</a>, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Flushable.html?is-external=true" title="class or interface in java.io">Flushable</a>)
 <ul>
+<li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/NoCloseWriter.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">NoCloseWriter</span></a></li>
 <li type="circle">org.apache.juneau.serializer.<a href="org/apache/juneau/serializer/SerializerWriter.html" title="class in org.apache.juneau.serializer"><span class="typeNameLink">SerializerWriter</span></a>
 <ul>
 <li type="circle">org.apache.juneau.json.<a href="org/apache/juneau/json/JsonWriter.html" title="class in org.apache.juneau.json"><span class="typeNameLink">JsonWriter</span></a></li>

http://git-wip-us.apache.org/repos/asf/juneau-website/blob/81ca4d4d/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html b/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
index adecf76..8fe2c7c 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
@@ -1046,7 +1046,7 @@
 <span class="sourceLineNo">1038</span>         else if (isParentClass(BeanFilterBuilder.class, c))<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>            lbf.add(newInstance(BeanFilterBuilder.class, c).build());<a name="line.1039"></a>
 <span class="sourceLineNo">1040</span>         else<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>            lbf.add(new InterfaceBeanFilterBuilder(c).build());<a name="line.1041"></a>
+<span class="sourceLineNo">1041</span>            lbf.add(new InterfaceBeanFilterBuilder(this, c).build());<a name="line.1041"></a>
 <span class="sourceLineNo">1042</span>      }<a name="line.1042"></a>
 <span class="sourceLineNo">1043</span>      beanFilters = lbf.toArray(new BeanFilter[0]);<a name="line.1043"></a>
 <span class="sourceLineNo">1044</span><a name="line.1044"></a>
@@ -1699,101 +1699,134 @@
 <span class="sourceLineNo">1691</span>   }<a name="line.1691"></a>
 <span class="sourceLineNo">1692</span><a name="line.1692"></a>
 <span class="sourceLineNo">1693</span>   /**<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>    * Returns a reusable {@link ClassMeta} representation for the class &lt;code&gt;Object&lt;/code&gt;.<a name="line.1694"></a>
+<span class="sourceLineNo">1694</span>    * Creates an instance of the specified class without throwing exceptions.<a name="line.1694"></a>
 <span class="sourceLineNo">1695</span>    *<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    * &lt;p&gt;<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    * This &lt;code&gt;ClassMeta&lt;/code&gt; is often used to represent "any object type" when an object type is not known.<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>    *<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    * &lt;p&gt;<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>    * This method is identical to calling &lt;code&gt;getClassMeta(Object.&lt;jk&gt;class&lt;/jk&gt;)&lt;/code&gt; but uses a cached copy to<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    * avoid a hashmap lookup.<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>    *<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    * @return The {@link ClassMeta} object associated with the &lt;code&gt;Object&lt;/code&gt; class.<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    */<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>   protected final ClassMeta&lt;Object&gt; object() {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>      return cmObject;<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>   }<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span><a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>   /**<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>    * Returns a reusable {@link ClassMeta} representation for the class &lt;code&gt;String&lt;/code&gt;.<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>    *<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>    * &lt;p&gt;<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>    * This &lt;code&gt;ClassMeta&lt;/code&gt; is often used to represent key types in maps.<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>    *<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>    * &lt;p&gt;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>    * This method is identical to calling &lt;code&gt;getClassMeta(String.&lt;jk&gt;class&lt;/jk&gt;)&lt;/code&gt; but uses a cached copy to<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>    * avoid a hashmap lookup.<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    *<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>    * @return The {@link ClassMeta} object associated with the &lt;code&gt;String&lt;/code&gt; class.<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    */<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>   protected final ClassMeta&lt;String&gt; string() {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>      return cmString;<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>   }<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span><a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>   /**<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>    * Returns a reusable {@link ClassMeta} representation for the class &lt;code&gt;Class&lt;/code&gt;.<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    *<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    * &lt;p&gt;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>    * This &lt;code&gt;ClassMeta&lt;/code&gt; is often used to represent key types in maps.<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    *<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>    * &lt;p&gt;<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    * This method is identical to calling &lt;code&gt;getClassMeta(Class.&lt;jk&gt;class&lt;/jk&gt;)&lt;/code&gt; but uses a cached copy to<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    * avoid a hashmap lookup.<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>    *<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    * @return The {@link ClassMeta} object associated with the &lt;code&gt;String&lt;/code&gt; class.<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    */<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>   protected final ClassMeta&lt;Class&gt; _class() {<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      return cmClass;<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>   }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span><a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>   @Override /* Object */<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>   public int hashCode() {<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>      return hashCode;<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>   }<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span><a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>   @Override /* Object */<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>   public boolean equals(Object o) {<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>      if (this == o)<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>         return true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      if (o instanceof BeanContext)<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>         return ((BeanContext)o).hashCode == hashCode;<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      return false;<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>   }<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span><a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>   @Override /* Context */<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>   public ObjectMap asMap() {<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      return super.asMap()<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>         .append("BeanContext", new ObjectMap()<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>            .append("id", System.identityHashCode(this))<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>            .append("beansRequireDefaultConstructor", beansRequireDefaultConstructor)<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>            .append("beansRequireSerializable", beansRequireSerializable)<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>            .append("beansRequireSettersForGetters", beansRequireSettersForGetters)<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>            .append("beansRequireSomeProperties", beansRequireSomeProperties)<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>            .append("beanMapPutReturnsOldValue", beanMapPutReturnsOldValue)<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>            .append("beanConstructorVisibility", beanConstructorVisibility)<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>            .append("beanClassVisibility", beanClassVisibility)<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            .append("beanMethodVisibility", beanMethodVisibility)<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>            .append("beanFieldVisibility", beanFieldVisibility)<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>            .append("useInterfaceProxies", useInterfaceProxies)<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>            .append("ignoreUnknownBeanProperties", ignoreUnknownBeanProperties)<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>            .append("ignoreUnknownNullBeanProperties", ignoreUnknownNullBeanProperties)<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>            .append("ignorePropertiesWithoutSetters", ignorePropertiesWithoutSetters)<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>            .append("ignoreInvocationExceptionsOnGetters", ignoreInvocationExceptionsOnGetters)<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>            .append("ignoreInvocationExceptionsOnSetters", ignoreInvocationExceptionsOnSetters)<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            .append("useJavaBeanIntrospector", useJavaBeanIntrospector)<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>            .append("beanFilters", beanFilters)<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            .append("pojoSwaps", pojoSwaps)<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            .append("notBeanClasses", notBeanClasses)<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            .append("implClasses", implClasses)<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>            .append("sortProperties", sortProperties)<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>            .append("locale", locale)<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>            .append("timeZone", timeZone)<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>            .append("mediaType", mediaType)<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>            .append("includeProperties", includeProperties)<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>            .append("excludeProperties", excludeProperties)<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>         );<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>   }<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>}<a name="line.1788"></a>
+<span class="sourceLineNo">1696</span>    * @param c The class to cast to.<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>    * @param c2<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>    *    The class to instantiate.<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>    *    Can also be an instance of the class.<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>    * @param args The arguments to pass to the constructor.<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>    */<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>   public &lt;T&gt; T newInstance(Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>      return newInstanceFromOuter(null, c, c2, args);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>   }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>   /**<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>    * Creates an instance of the specified class from within the context of another object.<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>    *<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>    * @param outer<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>    *    The outer object.<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>    * @param c The class to cast to.<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>    * @param c2<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>    *    The class to instantiate.<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>    *    Can also be an instance of the class.<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>    * @param args The arguments to pass to the constructor.<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>    */<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>   public &lt;T&gt; T newInstanceFromOuter(Object outer, Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      return ClassUtils.newInstanceFromOuter(outer, c, c2, args);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>   }<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>   <a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>   /**<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    * Returns a reusable {@link ClassMeta} representation for the class &lt;code&gt;Object&lt;/code&gt;.<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>    *<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    * &lt;p&gt;<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>    * This &lt;code&gt;ClassMeta&lt;/code&gt; is often used to represent "any object type" when an object type is not known.<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>    *<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>    * &lt;p&gt;<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    * This method is identical to calling &lt;code&gt;getClassMeta(Object.&lt;jk&gt;class&lt;/jk&gt;)&lt;/code&gt; but uses a cached copy to<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    * avoid a hashmap lookup.<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>    *<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    * @return The {@link ClassMeta} object associated with the &lt;code&gt;Object&lt;/code&gt; class.<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    */<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>   protected final ClassMeta&lt;Object&gt; object() {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>      return cmObject;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>   }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span><a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>   /**<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>    * Returns a reusable {@link ClassMeta} representation for the class &lt;code&gt;String&lt;/code&gt;.<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>    *<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    * &lt;p&gt;<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>    * This &lt;code&gt;ClassMeta&lt;/code&gt; is often used to represent key types in maps.<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    *<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    * &lt;p&gt;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    * This method is identical to calling &lt;code&gt;getClassMeta(String.&lt;jk&gt;class&lt;/jk&gt;)&lt;/code&gt; but uses a cached copy to<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>    * avoid a hashmap lookup.<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>    *<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>    * @return The {@link ClassMeta} object associated with the &lt;code&gt;String&lt;/code&gt; class.<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>    */<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>   protected final ClassMeta&lt;String&gt; string() {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>      return cmString;<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>   }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span><a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>   /**<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>    * Returns a reusable {@link ClassMeta} representation for the class &lt;code&gt;Class&lt;/code&gt;.<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>    *<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>    * &lt;p&gt;<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>    * This &lt;code&gt;ClassMeta&lt;/code&gt; is often used to represent key types in maps.<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>    *<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>    * &lt;p&gt;<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>    * This method is identical to calling &lt;code&gt;getClassMeta(Class.&lt;jk&gt;class&lt;/jk&gt;)&lt;/code&gt; but uses a cached copy to<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    * avoid a hashmap lookup.<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>    *<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>    * @return The {@link ClassMeta} object associated with the &lt;code&gt;String&lt;/code&gt; class.<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>    */<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>   protected final ClassMeta&lt;Class&gt; _class() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>      return cmClass;<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>   }<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span><a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>   @Override /* Object */<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>   public int hashCode() {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      return hashCode;<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>   }<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span><a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>   @Override /* Object */<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>   public boolean equals(Object o) {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>      if (this == o)<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>         return true;<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>      if (o instanceof BeanContext)<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>         return ((BeanContext)o).hashCode == hashCode;<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>      return false;<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>   }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>   @Override /* Context */<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>   public ObjectMap asMap() {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>      return super.asMap()<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>         .append("BeanContext", new ObjectMap()<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>            .append("id", System.identityHashCode(this))<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>            .append("beansRequireDefaultConstructor", beansRequireDefaultConstructor)<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>            .append("beansRequireSerializable", beansRequireSerializable)<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>            .append("beansRequireSettersForGetters", beansRequireSettersForGetters)<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>            .append("beansRequireSomeProperties", beansRequireSomeProperties)<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>            .append("beanMapPutReturnsOldValue", beanMapPutReturnsOldValue)<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>            .append("beanConstructorVisibility", beanConstructorVisibility)<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>            .append("beanClassVisibility", beanClassVisibility)<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>            .append("beanMethodVisibility", beanMethodVisibility)<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>            .append("beanFieldVisibility", beanFieldVisibility)<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>            .append("useInterfaceProxies", useInterfaceProxies)<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>            .append("ignoreUnknownBeanProperties", ignoreUnknownBeanProperties)<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>            .append("ignoreUnknownNullBeanProperties", ignoreUnknownNullBeanProperties)<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>            .append("ignorePropertiesWithoutSetters", ignorePropertiesWithoutSetters)<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>            .append("ignoreInvocationExceptionsOnGetters", ignoreInvocationExceptionsOnGetters)<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>            .append("ignoreInvocationExceptionsOnSetters", ignoreInvocationExceptionsOnSetters)<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>            .append("useJavaBeanIntrospector", useJavaBeanIntrospector)<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>            .append("beanFilters", beanFilters)<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>            .append("pojoSwaps", pojoSwaps)<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>            .append("notBeanClasses", notBeanClasses)<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>            .append("implClasses", implClasses)<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>            .append("sortProperties", sortProperties)<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            .append("locale", locale)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            .append("timeZone", timeZone)<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>            .append("mediaType", mediaType)<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>            .append("includeProperties", includeProperties)<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>            .append("excludeProperties", excludeProperties)<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>         );<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>   }<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>}<a name="line.1821"></a>
 
 
 


Mime
View raw message