This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/juneau-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 6ca08db19 Add migration guide.
6ca08db19 is described below
commit 6ca08db1937c9227705269f62c9c10f0e1cb8ec7
Author: JamesBognar <[email protected]>
AuthorDate: Sat Oct 8 15:16:26 2022 -0400
Add migration guide.
---
content/site/apidocs-9.0.0/overview-summary.html | 332 +++++++++++++++--------
1 file changed, 221 insertions(+), 111 deletions(-)
diff --git a/content/site/apidocs-9.0.0/overview-summary.html
b/content/site/apidocs-9.0.0/overview-summary.html
index 6240e8fb1..a2249e504 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 [...]
+ </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 [...]
+ </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<? <jk>extends</jk>
StaticFiles></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>
+ <p>
+ Major changes include:
</p>
-
- <h5 class='topic w800'>General changes</h5>
<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>
@@ -37148,24 +37237,8 @@
<jk>public</jk> Object myRestMethod() { ... }
}
</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" tit [...]
- <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.
@@ -37173,6 +37246,28 @@
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="annotati [...]
- / <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>