diff --git a/content/site/apidocs-9.0.0/overview-summary.html b/content/site/apidocs-9.0.0/overview-summary.html
index 6240e8f..a2249e5 100644
--- a/content/site/apidocs-9.0.0/overview-summary.html
+++ b/content/site/apidocs-9.0.0/overview-summary.html
@@ -1183,6 +1183,7 @@
       <li><p><a class='doclink' href='#Security.s.Svl'>juneau-svl</a><span class='update'>created: 8.2.0</span></p>
       <li><p><a class='doclink' href='#Security.s.Rest'>juneau-rest-server</a><span class='update'>created: 8.2.0</span></p>
    </ol>
+   <li><p class='toc2'><a class='doclink' href='#v9.0-migration-guide'>v9.0 Migration Guide</a></p>
 </ol>
 
 
@@ -3009,11 +3010,11 @@
                      <li class='jc'><a href="org/apache/juneau/marshaller/Uon.html" title="class in org.apache.juneau.marshaller"><code>Uon</code></a>
                      <li class='jc'><a href="org/apache/juneau/marshaller/UrlEncoding.html" title="class in org.apache.juneau.marshaller"><code>UrlEncoding</code></a>
                      <li class='jc'><a href="org/apache/juneau/marshaller/Xml.html" title="class in org.apache.juneau.marshaller"><code>Xml</code></a>
-                     <li class='jc'><code>N3</code>
-                     <li class='jc'><code>NTriple</code>
-                     <li class='jc'><code>RdfXml</code>
-                     <li class='jc'><code>RdfXmlAbbrev</code>
-                     <li class='jc'><code>Turtle</code>
+                     <li class='jc'><code>org.apache.juneau.marshaller.N3</code>
+                     <li class='jc'><code>org.apache.juneau.marshaller.NTriple</code>
+                     <li class='jc'><code>org.apache.juneau.marshaller.RdfXml</code>
+                     <li class='jc'><code>org.apache.juneau.marshaller.RdfXmlAbbrev</code>
+                     <li class='jc'><code>org.apache.juneau.marshaller.Turtle</code>
                   </ul>
                </ul>
             <li class='jac'><a href="org/apache/juneau/marshaller/StreamMarshaller.html" title="class in org.apache.juneau.marshaller"><code>StreamMarshaller</code></a>
@@ -3053,11 +3054,11 @@
       <li class='jc'><a href="org/apache/juneau/marshaller/Uon.html" title="class in org.apache.juneau.marshaller"><code>Uon</code></a>
       <li class='jc'><a href="org/apache/juneau/marshaller/UrlEncoding.html" title="class in org.apache.juneau.marshaller"><code>UrlEncoding</code></a>
       <li class='jc'><a href="org/apache/juneau/marshaller/Xml.html" title="class in org.apache.juneau.marshaller"><code>Xml</code></a>
-      <li class='jc'><code>N3</code>
-      <li class='jc'><code>NTriple</code>
-      <li class='jc'><code>RdfXml</code>
-      <li class='jc'><code>RdfXmlAbbrev</code>
-      <li class='jc'><code>Turtle</code>
+      <li class='jc'><code>org.apache.juneau.marshaller.N3</code>
+      <li class='jc'><code>org.apache.juneau.marshaller.NTriple</code>
+      <li class='jc'><code>org.apache.juneau.marshaller.RdfXml</code>
+      <li class='jc'><code>org.apache.juneau.marshaller.RdfXmlAbbrev</code>
+      <li class='jc'><code>org.apache.juneau.marshaller.Turtle</code>
    </ul>
    <p>
       Each predefined marshaller also includes static convenience from/to methods to make it even easier to
@@ -12790,11 +12791,11 @@
    <ul class='javatree'>
       <li class='jc'><code>org.apache.juneau.jena.RdfSerializer</code>
          <ul class='javatreec'>
-            <li class='jc'><code>RdfXmlSerializer</code>
-            <li class='jc'><code>RdfXmlAbbrevSerializer</code>
-            <li class='jc'><code>N3Serializer</code>
-            <li class='jc'><code>NTripleSerializer</code>
-            <li class='jc'><code>TurtleSerializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.RdfXmlSerializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.RdfXmlAbbrevSerializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.N3Serializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.NTripleSerializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.TurtleSerializer</code>
          </ul>
       </li>
    </ul>
@@ -12812,7 +12813,7 @@
                            <ul>
                               <li class='jac'><a href="org/apache/juneau/serializer/WriterSerializer.Builder.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer.Builder</code></a>
                                  <ul>
-                                    <li class='jc'><code>RdfSerializer.Builder</code>
+                                    <li class='jc'><code>org.apache.juneau.jena.RdfSerializer.Builder</code>
                                  </ul>
                               </li>
                            </ul>
@@ -12831,29 +12832,29 @@
       The following pre-configured serializers are provided for convenience:
    </p>
    <ul class='javatree'>
-      <li class='jc'><code>RdfSerializer</code>
+      <li class='jc'><code>org.apache.juneau.jena.RdfSerializer</code>
          <ul>
-            <li class='jc'><code>RdfXmlSerializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.RdfXmlSerializer</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
             </li>
-            <li class='jc'><code>RdfXmlAbbrevSerializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.RdfXmlAbbrevSerializer</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
             </li>
-            <li class='jc'><code>N3Serializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.N3Serializer</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
             </li>
-            <li class='jc'><code>NTripleSerializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.NTripleSerializer</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
             </li>
-            <li class='jc'><code>TurtleSerializer</code>
+            <li class='jc'><code>org.apache.juneau.jena.TurtleSerializer</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
@@ -12874,16 +12875,16 @@
 <div class='topic'><!-- START: 3.1.2 - juneau-marshall-rdf.jmr.RdfDetails.jmr.Parsers -->
 <div class='topic'>
    <p>
-      The <code>RdfParser</code> class is the top-level class for all Jena-based parsers.
+      The <code>org.apache.juneau.jena.RdfParser</code> class is the top-level class for all Jena-based parsers.
       Language-specific parsers are defined as inner subclasses of the <c>RdfParser</c> class:
    </p>  
    <ul class='javatree'>
-      <li class='jc'><code>RdfParser</code>
+      <li class='jc'><code>org.apache.juneau.jena.RdfParser</code>
          <ul class='javatreec'>
-            <li class='jc'><code>RdfXmlParser</code>
-            <li class='jc'><code>NTripleParser</code>
-            <li class='jc'><code>TurtleParser</code>
-            <li class='jc'><code>N3Parser</code>
+            <li class='jc'><code>org.apache.juneau.jena.RdfXmlParser</code>
+            <li class='jc'><code>org.apache.juneau.jena.NTripleParser</code>
+            <li class='jc'><code>org.apache.juneau.jena.TurtleParser</code>
+            <li class='jc'><code>org.apache.juneau.jena.N3Parser</code>
          </ul>
       </li>
    </ul>
@@ -12902,7 +12903,7 @@
                      <ul>
                         <li class='jac'><a href="org/apache/juneau/parser/ReaderParser.Builder.html" title="class in org.apache.juneau.parser"><code>ReaderParser.Builder</code></a>
                            <ul>
-                              <li class='jc'><code>RdfParser.Builder</code>
+                              <li class='jc'><code>org.apache.juneau.jena.RdfParser.Builder</code>
                            </ul>
                         </li>
                      </ul>
@@ -12919,24 +12920,24 @@
       The following pre-configured parsers are provided for convenience:
    </p>
    <ul class='javatree'>
-      <li class='jc'><code>RdfParser</code>
+      <li class='jc'><code>org.apache.juneau.jena.RdfParser</code>
          <ul>
-            <li class='jc'><code>RdfXmlParser</code>
+            <li class='jc'><code>org.apache.juneau.jena.RdfXmlParser</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
             </li>
-            <li class='jc'><code>N3Parser</code>
+            <li class='jc'><code>org.apache.juneau.jena.N3Parser</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
             </li>
-            <li class='jc'><code>NTripleParser</code>
+            <li class='jc'><code>org.apache.juneau.jena.NTripleParser</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
             </li>
-            <li class='jc'><code>TurtleParser</code>
+            <li class='jc'><code>org.apache.juneau.jena.TurtleParser</code>
                <ul>
                   <li class='jf'><code>DEFAULT</code>
                </ul>
@@ -13177,7 +13178,7 @@
       form, and in some cases it's impossible.
    </p>
    <p>
-      By default, the <code>RdfParser</code> class handles this by scanning all the nodes and 
+      By default, the <code>org.apache.juneau.jena.RdfParser</code> class handles this by scanning all the nodes and 
       identifying the nodes without incoming references.
       However, this is inefficient, especially for large models.
       And in cases where the root node is referenced by another node in the model by URL, it's not possible to 
@@ -15661,6 +15662,14 @@
          </ul>
       </li>
    </ul>
+   <p>
+      Assertions have 3 categories of methods:
+   </p>
+   <ul>
+      <li>Testing methods (<c>isX</c> methods)
+      <li>Transform methods (<c>asX</c> methods)
+      <li>Configuration methods (<c>setX</c> methods)
+   </ul>
    <h5 class='figure'>Examples:</h5>
    <p class='bjava'>
    <jk>import static</jk> org.apache.juneau.assertions.Assertions.*;
@@ -15698,17 +15707,8 @@
       .asMessage().is(<js>"foo"</js>);
    </p>
    <p>
-      Assertions have 3 categories of methods:
-   </p>
-   <ul>
-      <li>Testing methods.
-      <li>Transform methods.
-      <li>Configuration methods.
-   </ul>
-   <p>
-      Testing methods perform an assertion on the specified value and throws a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang"><code>AssertionError</code></a> if
+      Testing methods (<c>isX</c> methods) perform an assertion on the specified value and throws a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang"><code>AssertionError</code></a> if
       the test fails.  Otherwise, the method returns the original assertion object to allow you to chain the command.
-      Testing methods start with <c>is</c>.
    </p>
    <h5 class='figure'>Example:</h5>
    <p class='bjava'>
@@ -15718,8 +15718,8 @@
       .isNotEmpty();  <jc>// Perform test and returns original FluentStringAssertion.</jc>
    </p>  
    <p>
-      Transform methods allow you to convert assertions of one type to another type or to convert the tested value to
-      some other form wrapped in another assertion.  Transform methods start with <c>as</c>.
+      Transform methods (<c>asX</c> methods) allow you to convert assertions of one type to another type or to convert the tested value to
+      some other form wrapped in another assertion.
    </p>
    <h5 class='figure'>Example:</h5>
    <p class='bjava'>
@@ -15731,7 +15731,7 @@
          .isContains(<js>"FOO"</js>);  <jc>// Runs test and returns original FluentStringAssertion.</jc>
    </p>  
    <p>
-      Configuration methods allow you to tailor the behavior of assertions when they fail.  They always return the same assertion object.
+      Configuration methods (<c>setX</c> methods) allow you to tailor the behavior of assertions when they fail.  They always return the same assertion object.
       Transformed assertions inherit the configurations of the created-by assertions.  Configuration methods start with <c>set</c>.
    </p>
    <h5 class='figure'>Example:</h5>
@@ -17208,7 +17208,7 @@
       <li class='jic'><a href="org/apache/juneau/rest/config/BasicSimpleJsonConfig.html" title="interface in org.apache.juneau.rest.config"><code>BasicSimpleJsonConfig</code></a>
       <li class='jic'><a href="org/apache/juneau/rest/config/BasicOpenApiConfig.html" title="interface in org.apache.juneau.rest.config"><code>BasicOpenApiConfig</code></a>
       <li class='jic'><a href="org/apache/juneau/rest/config/BasicUniversalConfig.html" title="interface in org.apache.juneau.rest.config"><code>BasicUniversalConfig</code></a>
-      <li class='jic'><code>BasicUniversalJenaConfig</code>
+      <li class='jic'><code>org.apache.juneau.rest.config.BasicUniversalJenaConfig</code>
    </ul>
    <p>
       For example, if you want to provide a resource that supports all languages in Juneau, 
@@ -19275,7 +19275,7 @@
             <li class='jic'><a href="org/apache/juneau/rest/config/BasicSimpleJsonConfig.html" title="interface in org.apache.juneau.rest.config"><code>BasicSimpleJsonConfig</code></a>
             <li class='jic'><a href="org/apache/juneau/rest/config/BasicOpenApiConfig.html" title="interface in org.apache.juneau.rest.config"><code>BasicOpenApiConfig</code></a>
             <li class='jic'><a href="org/apache/juneau/rest/config/BasicUniversalConfig.html" title="interface in org.apache.juneau.rest.config"><code>BasicUniversalConfig</code></a>
-            <li class='jic'><code>BasicUniversalJenaConfig</code>
+            <li class='jic'><code>org.apache.juneau.rest.config.BasicUniversalJenaConfig</code>
          </ul>
       </li>
    </ul>
@@ -29107,16 +29107,16 @@
       </tr>
       <tr>
          <td><c>text/n3</c></td>
-         <td><ul><li class='jc'><code>N3Serializer</code></ul></td>
-         <td><ul><li class='jc'><code>N3Parser</code></ul></td>
-         <td><ul><li class='jc'><code>N3</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.N3Serializer</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.N3Parser</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.marshaller.N3</code></ul></td>
          <td><a class='doclink' href='#juneau-marshall-rdf'>juneau-marshall-rdf</a></td>
       </tr>
       <tr>
          <td><c>text/n-triple</c></td>
-         <td><ul><li class='jc'><code>NTripleSerializer</code></ul></td>
-         <td><ul><li class='jc'><code>NTripleParser</code></ul></td>
-         <td><ul><li class='jc'><code>NTriple</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.NTripleSerializer</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.NTripleParser</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.marshaller.NTriple</code></ul></td>
          <td><a class='doclink' href='#juneau-marshall-rdf'>juneau-marshall-rdf</a></td>
       </tr>
       <tr>
@@ -29135,16 +29135,16 @@
       </tr>
       <tr>
          <td><c>text/xml+rdf<c></td>
-         <td><ul><li class='jc'><code>RdfXmlSerializer</code></ul></td>
-         <td><ul><li class='jc'><code>RdfXmlParser</code></ul></td>
-         <td><ul><li class='jc'><code>RdfXml</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.RdfXmlSerializer</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.RdfXmlParser</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.marshaller.RdfXml</code></ul></td>
          <td><a class='doclink' href='#juneau-marshall-rdf'>juneau-marshall-rdf</a></td>
       </tr>
       <tr>
          <td><c>text/xml+rdf+abbrev</c></td>
-         <td><ul><li class='jc'><code>RdfXmlAbbrevSerializer</code></ul></td>
-         <td><ul><li class='jc'><code>RdfXmlParser</code></ul></td>
-         <td><ul><li class='jc'><code>RdfXmlAbbrev</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.RdfXmlAbbrevSerializer</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.RdfXmlParser</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.marshaller.RdfXmlAbbrev</code></ul></td>
          <td><a class='doclink' href='#juneau-marshall-rdf'>juneau-marshall-rdf</a></td>
       </tr>
       <tr>
@@ -29156,9 +29156,9 @@
       </tr>
       <tr>
          <td><c>text/turtle</c></td>
-         <td><ul><li class='jc'><code>TurtleSerializer</code></ul></td>
-         <td><ul><li class='jc'><code>TurtleParser</code></ul></td>
-         <td><ul><li class='jc'><code>Turtle</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.TurtleSerializer</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.jena.TurtleParser</code></ul></td>
+         <td><ul><li class='jc'><code>org.apache.juneau.marshaller.Turtle</code></ul></td>
          <td><a class='doclink' href='#juneau-marshall-rdf'>juneau-marshall-rdf</a></td>
       </tr>
       <tr>
@@ -29673,6 +29673,91 @@
 </div><!-- END: 18.3 - Security.s.Rest -->
 </div><!-- END: 18 - Security -->
 
+<!-- ==================================================================================================== -->
+
+<h2 class='topic' onclick='toggle(this)'><a href='#v9.0-migration-guide' id='v9.0-migration-guide'>19 - v9.0 Migration Guide</a></h2>
+<div class='topic'><!-- START: 19 - v9.0-migration-guide -->
+<div class='topic'>
+   <p>
+      The following guide can be used to help migrate your code to v9.0.  Note that you can also refer to the <a href='#9.0.0'>Release Notes</a> for
+      changes as well.
+   </p>
+   <table class='styled w900'>
+      <tr>
+         <th>
+            Old
+         </th>
+         <th>
+            New
+         </th>
+      </tr>
+      <tr>
+         <td>
+            <ja>@RestMethod</ja> annotation.
+         </td>
+         <td>
+            Has been replaced with <a href="org/apache/juneau/rest/annotation/RestOp.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestOp</code></a>, <a href="org/apache/juneau/rest/annotation/RestGet.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestGet</code></a>, <a href="org/apache/juneau/rest/annotation/RestPut.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestPut</code></a>, <a href="org/apache/juneau/rest/annotation/RestPost.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestPost</code></a>, <a href="org/apache/juneau/rest/annotation/RestDelete.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestDelete</code></a>, <a href="org/apache/juneau/rest/annotation/RestOptions.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestOptions</code></a>
+         </td>
+      </tr>
+      <tr>
+         <td>
+            <ja>@RemoteMethod</ja> annotation.
+         </td>
+         <td>
+            Has been replaced with <a href="org/apache/juneau/http/remote/RemoteOp.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteOp</code></a>, <a href="org/apache/juneau/http/remote/RemoteGet.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteGet</code></a>, <a href="org/apache/juneau/http/remote/RemotePut.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePut</code></a>, <a href="org/apache/juneau/http/remote/RemotePost.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePost</code></a>, <a href="org/apache/juneau/http/remote/RemoteDelete.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteDelete</code></a>.
+         </td>
+      </tr>
+      <tr>
+         <td>
+            <c>BasicRestServletJena</c>, <c>BasicRestServletJenaGroup</c> classes.
+         </td>
+         <td>
+            These have been removed in 9.0 due to the removal of the Jena packages (due to security issues).  Replace
+            with <a href="org/apache/juneau/rest/servlet/BasicRestServlet.html" title="class in org.apache.juneau.rest.servlet"><code>BasicRestServlet</code></a> and <a href="org/apache/juneau/rest/servlet/BasicRestServletGroup.html" title="class in org.apache.juneau.rest.servlet"><code>BasicRestServletGroup</code></a>.
+         </td>
+      </tr>
+      <tr>
+         <td>
+            <ja>@Body</ja> annotation.
+         </td>
+         <td>
+            Has been renamed to <ja>@Content</ja> (to better match HTTP naming conventions such as Content-Type/Content-Encoding headers).
+         </td>
+      </tr>
+      <tr>
+         <td>
+            <c><ja>@Query</ja>(_default)</c>, <c><ja>@FormData</ja>(_default)</c>.
+         </td>
+         <td>
+            Has been renamed to <a href="org/apache/juneau/http/annotation/Query.html#def--"><code>Query.def()</code></a> / <a href="org/apache/juneau/http/annotation/FormData.html#def--"><code>FormData.def()</code></a>.  Note however that <ja>@RestOp</ja>-annotated parameters
+            now also support use of Optional parameters which simplifies the coding of default values.
+         </td>
+      </tr>
+      <tr>
+         <td>
+            <c><ja>@Rest</ja>(reqHeaders)</c>.
+         </td>
+         <td>
+            Has been renamed to <a href="org/apache/juneau/rest/annotation/Rest.html#defaultRequestHeaders--"><code>Rest.defaultRequestHeaders()</code></a> and added <a href="org/apache/juneau/rest/annotation/Rest.html#defaultResponseHeaders--"><code>Rest.defaultResponseHeaders()</code></a>.
+         </td>
+      </tr>
+      <tr>
+         <td>
+            <ja>@Rest(staticFiles)</ja>.
+         </td>
+         <td>
+            Changed from a string array to a <c>Class&lt;? <jk>extends</jk> StaticFiles&gt;</c>.  If you're extending from 
+            <a href="org/apache/juneau/rest/servlet/BasicRestServlet.html" title="class in org.apache.juneau.rest.servlet"><code>BasicRestServlet</code></a>/<a href="org/apache/juneau/rest/servlet/BasicRestObject.html" title="class in org.apache.juneau.rest.servlet"><code>BasicRestObject</code></a>, the <a href="org/apache/juneau/rest/servlet/BasicRestOperations.html#getHtdoc-java.lang.String-java.util.Locale-"><code>BasicRestOperations.getHtdoc(String,Locale)</code></a>
+            is already implemented for you to provide static files under the sub-URI <js>/htdocs/*</js>.  The default implementation for finding
+            static files is <a href="org/apache/juneau/rest/staticfile/BasicStaticFiles.html" title="class in org.apache.juneau.rest.staticfile"><code>BasicStaticFiles</code></a> which provides basic out-of-the-box functionality, so you can usually
+            just remove the previous <c><ja>@Rest</ja>(staticFiles)</c> value.
+         </td>
+      </tr>
+   </table>
+   
+</div>
+</div><!-- END: 19 - v9.0-migration-guide -->
+
 
 <h2 class='topic' onclick='toggle(this)'><a href='#ReleaseNotes' id='ReleaseNotes'>Release Notes</a></h2>
 <div class='topic'>
@@ -30569,7 +30654,7 @@
       Juno 5.0.0.18 is a moderate update.
    </p>
    <p>
-      The biggest change is the introduction of the <code>RdfSerializer</code> class that uses Jena to generate RDF/XML, RDF/XML-ABBREV, N-Tuple, N3, and Turtle output.
+      The biggest change is the introduction of the <code>org.apache.juneau.jena.RdfSerializer</code> class that uses Jena to generate RDF/XML, RDF/XML-ABBREV, N-Tuple, N3, and Turtle output.
    </p>
    <p>
       This code should be considered prototype-quality, and subject to change in the future.<br>  
@@ -30625,11 +30710,11 @@
    <h5 class='topic w800'>Core API changes</h5>
    <ul class='spaced-list'>
       <li>
-         New Jena-based <code>RdfSerializer</code> for serializing POJOs to RDF/XML, RDF/XML-ABBREV, N-Triple, Turtle, and N3.<br>
+         New Jena-based <code>org.apache.juneau.jena.RdfSerializer</code> for serializing POJOs to RDF/XML, RDF/XML-ABBREV, N-Triple, Turtle, and N3.<br>
          Serializes ANY POJOs to RDF, even simple objects and primitives.
       </li>
       <li>
-         New Jena-based <code>RdfParser</code> for parsing RDF/XML, RDF/XML-ABBREV, N3, Turtle, and N-Triple back into POJOs.
+         New Jena-based <code>org.apache.juneau.jena.RdfParser</code> for parsing RDF/XML, RDF/XML-ABBREV, N3, Turtle, and N-Triple back into POJOs.
       </li>
       <li>
          <dc>XmlSerializerContext.XML_autoDetectNamespaces</dc> default changed to <jk>true</jk>.<br>
@@ -35395,15 +35480,15 @@
       <li>
          RDF serializer subclasses have been moved into top-level classes:
          <ul>
-            <li><c>RdfSerializer.Xml</c> -> <code>RdfXmlSerializer</code>
-            <li><c>RdfSerializer.XmlAbbrev</c> -> <code>RdfXmlAbbrevSerializer</code>
-            <li><c>RdfSerializer.N3</c> -> <code>N3Serializer</code>
-            <li><c>RdfSerializer.NTriple</c> -> <code>NTripleSerializer</code>
-            <li><c>RdfSerializer.Turtle</c> -> <code>TurtleSerializer</code>
-            <li><c>RdfParser.Xml</c> -> <code>RdfXmlParser</code>
-            <li><c>RdfParser.N3</c> -> <code>N3Parser</code>
-            <li><c>RdfParser.NTriple</c> -> <code>NTripleParser</code>
-            <li><c>RdfParser.Turtle</c> -> <code>TurtleParser</code>
+            <li><c>RdfSerializer.Xml</c> -> <code>org.apache.juneau.jena.RdfXmlSerializer</code>
+            <li><c>RdfSerializer.XmlAbbrev</c> -> <code>org.apache.juneau.jena.RdfXmlAbbrevSerializer</code>
+            <li><c>RdfSerializer.N3</c> -> <code>org.apache.juneau.jena.N3Serializer</code>
+            <li><c>RdfSerializer.NTriple</c> -> <code>org.apache.juneau.jena.NTripleSerializer</code>
+            <li><c>RdfSerializer.Turtle</c> -> <code>org.apache.juneau.jena.TurtleSerializer</code>
+            <li><c>RdfParser.Xml</c> -> <code>org.apache.juneau.jena.RdfXmlParser</code>
+            <li><c>RdfParser.N3</c> -> <code>org.apache.juneau.jena.N3Parser</code>
+            <li><c>RdfParser.NTriple</c> -> <code>org.apache.juneau.jena.NTripleParser</code>
+            <li><c>RdfParser.Turtle</c> -> <code>org.apache.juneau.jena.TurtleParser</code>
          </ul>
       <li>
          New API for pairing serializers and parsers for simplified syntax:
@@ -37120,15 +37205,19 @@
 <div class='topic'>
    <p>
       Juneau 9.0.0 is a major release.  Deprecated APIs that have been accumulating over time have been removed.
-      The underlying code has undergone significant refactoring to ease maintainability and improve overall performance.
+      
    </p>
-   
-   <h5 class='topic w800'>General changes</h5>
+   <p>
+      Major changes include:
+   </p>
    <ul class='spaced-list'>
       <li>
+         The code has undergone significant refactoring to ease maintainability and improve overall performance.
          Configuration properties have been removed entirely.  They have been replaced with a standard builder-based
          architecture.  In addition to making the code more maintainable, it also improves performance when
          creating new serializers/parsers/rest clients (and others).
+      <li>
+         REST servlets now seemlessly integrate with Spring Boot.  
    </ul>
    
    <h5 class='topic w800'>juneau-marshall</h5>
@@ -37149,30 +37238,36 @@
    }
          </p>
       <li>
-         New shortened form <a href="org/apache/juneau/http/remote/RemoteOp.html#value--"><code>RemoteOp.value()</code></a> for specifying http method name and path.
-         <p class='bcode'>
-   <jc>// Normal form</jc>
-   <ja>@RemoteOp</ja>(method=<jsf>PUT</jsf>, path=<js>"/foo"</js>)
-   
-   <jc>// Shortened form</jc>
-   <ja>@RemoteOp</ja>(<js>"PUT /foo"</js>)
-         </p>
-      <li>
-         New annotations:  <a href="org/apache/juneau/http/remote/RemoteGet.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteGet</code></a>/<a href="org/apache/juneau/http/remote/RemotePut.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePut</code></a>/<a href="org/apache/juneau/http/remote/RemotePost.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePost</code></a>/<a href="org/apache/juneau/http/remote/RemoteDelete.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteDelete</code></a>
-      <li>
-         Significant refactoring of the classes in the <a href="org/apache/juneau/http/package-summary.html"><code>org.apache.juneau.http</code></a> package and subpackages.  Attempts were made to make classes as natural
-         extensions to the Apache HttpComponents APIs.  Significant new functionality here.
-      <li>
          New <a href="org/apache/juneau/annotation/Marshalled.html" title="annotation in org.apache.juneau.annotation"><code>@Marshalled</code></a> annotation for non-bean classes.
       <li>
-         New <a href="org/apache/juneau/annotation/Bean.html#example--"><code>@Bean(example)</code></a> annotation.
-      <li>
          New <a href="org/apache/juneau/annotation/BeanConfig.html#ignoreUnknownEnumValues--"><code>@BeanConfig(ignoreUnknownEnumValues)</code></a> annotation and support for ignoring
          unknown enum values during parsing.
       <li>
          Java Serialized Object marshalling support has been removed entirely due to security risks with usage (better safe than sorry).
    </ul>
    
+   <h5 class='topic w800'>juneau-rest-common</h5>
+   <p>
+      New module containing the common REST classes/annotations uses by both the client and server APIs.
+      These were previously contained within <c>juneau-marshall</c>.
+   </p>
+   <ul class='spaced-list'>
+      <li>
+         Significant refactoring of the classes in the <a href="org/apache/juneau/http/package-summary.html"><code>org.apache.juneau.http</code></a> package and subpackages.  Attempts were made to make classes as natural
+         extensions to the Apache HttpComponents APIs.  Significant new functionality here.
+      <li>
+         <c>@RemoteMethod</c> annotation has been replaced with the following:
+         <ul class='javatreec'>
+            <li class='ja'><a href="org/apache/juneau/http/remote/RemoteOp.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteOp</code></a>
+            <li class='ja'><a href="org/apache/juneau/http/remote/RemoteGet.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteGet</code></a>
+            <li class='ja'><a href="org/apache/juneau/http/remote/RemotePut.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePut</code></a>
+            <li class='ja'><a href="org/apache/juneau/http/remote/RemotePatch.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePatch</code></a>
+            <li class='ja'><a href="org/apache/juneau/http/remote/RemotePost.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePost</code></a>
+            <li class='ja'><a href="org/apache/juneau/http/remote/RemoteDelete.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteDelete</code></a>
+         </ul>
+      </li>
+   </ul>
+
    <h5 class='topic w800'>juneau-rest-server</h5>
    <ul class='spaced-list'>
       <li>
@@ -37181,7 +37276,18 @@
          processors, serializers/parsers, JSON schema generators, statistics gathering stores, and default request attributes/headers and response
          headers.
       <li>
-         Defining REST resources with predefined marshalling support is now much simpler.  You now extend from a basic REST servlet/object.
+         <c>@RestMethod</c> annotation has been replaced with the following:
+         <ul class='javatreec'>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestOp.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestOp</code></a>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestGet.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestGet</code></a>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestPut.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestPut</code></a>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestPatch.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestPatch</code></a>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestPost.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestPost</code></a>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestDelete.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestDelete</code></a>
+         </ul>
+      </li>
+      <li>
+         Defining REST resources with predefined marshalling support is now much simpler.  You can now extend from a basic REST servlet/object.
          <p class='bcode'>
    <jc>// A root resource that supports JSON/HTML marshalling.</jc>
    <jk>public class</jk> MyRootResources <jk>extends</jk> BasicRestServletGroup  { ... }
@@ -37189,20 +37295,13 @@
    <jc>// A child resource that supports all available marshalling.</jc>
    <jk>public class</jk> MyChildResource <jk>extends</jk> BasicRestObject { ... }
          </p>
-         REST servlets/objects are in the <a href="org/apache/juneau/rest/servlet/package-summary.html"><code>org.apache.juneau.rest.servlet</code></a> package and REST configs are in the <a href="org/apache/juneau/rest/config/package-summary.html"><code>org.apache.juneau.rest.config</code></a> package.
-      <li>
-         <ja>@RestMethod</ja> annotation has been replaced with 
-         <a href="org/apache/juneau/http/remote/RemoteGet.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteGet</code></a> / <a href="org/apache/juneau/http/remote/RemotePut.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePut</code></a> / <a href="org/apache/juneau/http/remote/RemotePost.html" title="annotation in org.apache.juneau.http.remote"><code>RemotePost</code></a> / <a href="org/apache/juneau/http/remote/RemoteDelete.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteDelete</code></a>
-          / <a href="org/apache/juneau/http/remote/RemoteOp.html" title="annotation in org.apache.juneau.http.remote"><code>RemoteOp</code></a>
-      <li>
-         New shortened form <a href="org/apache/juneau/rest/annotation/RestOp.html#value--"><code>RestOp.value()</code></a> for specifying http method name and path.
-         <p class='bcode'>
-   <jc>// Normal form</jc>
-   <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, path=<js>"/{propertyName}"</js>)
-   
-   <jc>// Shortened form</jc>
-   <ja>@RestOp</ja>(<js>"PUT /{propertyName}"</js>)
-         </p>
+         <ul class='javatreec'>
+            <li class='jc'><a href="org/apache/juneau/rest/servlet/BasicRestServlet.html" title="class in org.apache.juneau.rest.servlet"><code>BasicRestServlet</code></a>
+            <li class='jc'><a href="org/apache/juneau/rest/servlet/BasicRestServletGroup.html" title="class in org.apache.juneau.rest.servlet"><code>BasicRestServletGroup</code></a>
+            <li class='jc'><a href="org/apache/juneau/rest/servlet/BasicRestObject.html" title="class in org.apache.juneau.rest.servlet"><code>BasicRestObject</code></a>
+            <li class='jc'><a href="org/apache/juneau/rest/servlet/BasicRestObjectGroup.html" title="class in org.apache.juneau.rest.servlet"><code>BasicRestObjectGroup</code></a>
+         </ul>
+      </li>
    </ul>
    
    <h5 class='topic w800'>juneau-dto</h5>
@@ -37225,6 +37324,17 @@
       <li>
          While the general usage pattern stays the same, the REST client code has undergone significant rewriting.  It is now more inline
          as an extension of the Apache HttpClient library.  Much new functionality such as support for fluent assertions has been added.
+         <p class='bjava'>
+   <jc>// Create a basic REST client with JSON support and download a bean.</jc>
+   MyBean <jv>bean</jv> = RestClient.<jsm>create</jsm>()
+      .simpleJson()
+      .build()
+      .get(<jsf>URI</jsf>)
+      .run()
+      .assertStatus().asCode().is(200)
+      .assertHeader(<js>"Content-Type"</js>).matchesSimple(<js>"application/json*"</js>)
+      .getContent().as(MyBean.<jk>class</jk>);
+         </p>
    </ul>
    
    <h5 class='topic w800'>juneau-rest-mock</h5>
