You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2022/09/18 12:43:08 UTC
[juneau-website] 02/02: Remove obsolete documentation
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
commit 142d7b9cfd5dc4ad2f18dbb00864ae39ed66b597
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sun Sep 18 08:42:48 2022 -0400
Remove obsolete documentation
---
content/articles.html | 33 ---
content/community.html | 102 ---------
content/components.html | 232 -------------------
content/config.html | 169 --------------
content/documentation.html | 405 --------------------------------
content/downloads.html | 16 +-
content/dto.html | 268 ----------------------
content/examples.html | 131 -----------
content/issues.html | 47 ----
content/marshall.html | 557 ---------------------------------------------
content/microservice.html | 192 ----------------
content/petstore.html | 555 --------------------------------------------
content/releaseNotes.html | 109 ---------
content/rest-client.html | 115 ----------
content/rest-server.html | 450 ------------------------------------
content/sourceCode.html | 39 ----
content/twitter.html | 6 -
content/whatsnew.html | 208 -----------------
18 files changed, 8 insertions(+), 3626 deletions(-)
diff --git a/content/articles.html b/content/articles.html
deleted file mode 100644
index ebba6064a..000000000
--- a/content/articles.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <h5 class='toc'>Articles / Blog Posts</h5>
- <p>
- If you have any articles you would like to post here, email them to <l>dev@juneau.apache.org</l>.
- </p>
- <ul class='spaced-list'>
- <li><a class='doclink' href='https://medium.com/@shalithasuranga/serializing-and-deserializing-pojos-in-to-many-formats-using-apache-juneau-6b68d97aee6c' target="_top">11-12-18 - Serializing and deserializing POJOs in to many formats using Apache Juneau (Shalitha Suranga)</a>
- <li><a class='doclink' href='https://medium.com/@ayeshmanthaperera/construct-html-fragments-as-java-objects-using-apache-juneau-aeb9a9c5c2ca' target="_top">12-15-18 - Construct HTML fragments Atom feeds Swagger documents using Apache Juneau (Ayeshmantha Perera)</a>
- <li><a class='doclink' href='https://dev.to/robledokari/pet-store-with-apache-juneau-part-1-5cgm' target="_top">10-21-19 - Pet Store with Apache Juneau Part 1 (Karina Robledo)</a>
- </ul>
-</body>
-</html>
diff --git a/content/community.html b/content/community.html
deleted file mode 100644
index 8fa39a572..000000000
--- a/content/community.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <h5 class='toc'>Community</h5>
- <div class='topic'>
- <p>
- Anyone wishing to become a committer to the Juneau project should subscribe to the mailing list <l>dev@juneau.apache.org</l>.<br>
- To do so, simply send an empty email from your account to <a class='doclink' href='mailto:dev-subscribe@juneau.apache.org'>dev-subscribe@juneau.apache.org</a>
- or <a class='doclink' href='mailto:dev-digest-subscribe@juneau.apache.org'>dev-digest-subscribe@juneau.apache.org</a>
- </p>
- <p>
- In general, all discussion should be performed through the mailing list.
- </p>
- <ul class='spaced-list'>
- <li><a class='doclink' href='http://apache.org/foundation/mailinglists.html' target='_top'>Apache mailing lists</a> - How to subscribe to the mailing list.
- <li><a class='doclink' href='https://lists.apache.org/list.html?dev@juneau.apache.org' target='_top'>Pony Mail</a> - Mailing list archive.
- <li><a class='doclink' href='https://cwiki.apache.org/confluence/display/JUNEAU' target='_top'>Confluence workspace</a> - Design documents and information for developers.
- <li><a class='doclink' href='https://cwiki.apache.org/confluence/pages/viewrecentblogposts.action?key=JUNEAU' target='_top'>Confluence blog</a> - Updates on new features and changes.
- <li><a class='doclink' href='https://twitter.com/ApacheJuneau' target='_top'>Twitter</a> - Announcements.
- <li><a class='doclink' href='https://the-asf.slack.com/messages/C4RHGMTC2' target='_top'>Slack</a> - Intra-team communication.
- </ul>
- </div>
-
- <h5 class='toc'>Becoming a contributor</h5>
- <div class='topic'>
- <p>
- We are actively looking for contributors to join and take an active role in the project!
- </p>
- <p>
- To become a contributor, we recommend joining and contributing code changes through the mailing list.
- Once you're contributing and your work is good, one of our team may invite you to be a committer. After that, the team will call for a vote.
- When that happens, if you accept, the following process kicks into place:
- </p>
- <ul class='spaced-list'>
- <li>Download and print the Apache Contributor License Agreement from the <a class='doclink' href='http://www.apache.org/dev/new-committers-guide.html' target='_top'>New committers guide</a>.
- <li>Sign and fax (or email) the CLA to Apache.
- <li>Wait for your name to appear on the list of received CLAs.
- Once that's done, let us know and we can apply to Apache Infrastructure to have your account created.
- We'll need the following information: Full name, preferred email address, preferred unix account name.
- <li>Read the <a class='doclink' href='http://www.apache.org/dev/new-committers-guide.html' target='_top'>New committers guide</a>.
- <li>More information for new committers can be found in the <a class='doclink' href='http://www.apache.org/dev/committers.html' target='_top'>Committers information</a> doc.
- </ul>
- <p>
- The Juneau project does not currently have distinct roles for Committers and PMC (Project Management Committee).
- All Committers are also voting members.
- </p>
- </div>
-
- <h5 class='toc'>Developer how-to articles</h5>
- <div class='topic'>
- <ul class='spaced-list'>
- <li><a class='doclink' target='_top' href='https://cwiki.apache.org/confluence/display/JUNEAU/Contributing+for+Non-committers'>How non-committers can contribute code</a>
- <li><a class='doclink' target='_top' href='https://cwiki.apache.org/confluence/display/JUNEAU/Setting+up+your+Eclipse+workspace'>Setting up your Eclipse workspace</a>
- <li><a class='doclink' target='_top' href='https://cwiki.apache.org/confluence/display/JUNEAU/Coding+guidelines'>Coding guidelines</a>
- <li><a class='doclink' target='_top' href='https://cwiki.apache.org/confluence/display/JUNEAU/New+release+guidelines'>New release guidelines</a>
- <li><a class='doclink' target='_top' href='https://cwiki.apache.org/confluence/display/JUNEAU/Versioning+guidelines'>Versioning guidelines</a>
- <li><a class='doclink' target='_top' href='https://cwiki.apache.org/confluence/display/JUNEAU/Using+the+code+formatting+stylesheet'>Using the code formatting stylesheet</a>
- <li><a class='doclink' target='_top' href='https://cwiki.apache.org/confluence/display/JUNEAU/Adding+content+to+the+overview-summary.html+file'>Adding content to the overview-summary.html file</a>
- <li><a class='doclink' target='_top' href='https://cwiki.apache.org/confluence/display/JUNEAU/Development+wish+list'>Development wish list</a>
- </ul>
- </div>
-
- <h5 class='toc'>Current members</h5>
- <br>
- <div class='topic'>
- <table class='styled w800'>
- <tr><th>Name</th><th>Role</th><th>User ID</th></tr>
- <tr class='light'><td>John D. Ament</td><td>PMC / Committer</td><td>johnadament</td><tr>
- <tr class='dark'><td>Steve Blackmon</td><td>PMC / Committer</td><td>sblackmon</td><tr>
- <tr class='light'><td>James Bognar</td><td>PMC Chair / Committer</td><td>jamesbognar</td><tr>
- <tr class='dark'><td>David M Goddard</td><td>PMC / Committer</td><td>dmg</td><tr>
- <tr class='light'><td>Peter Haumer</td><td>PMC / Committer</td><td>phaumer</td><tr>
- <tr class='dark'><td>Raphi D Lee</td><td>PMC / Committer</td><td>yidonguk</td><tr>
- <tr class='light'><td>Ayeshmantha Perera</td><td>PMC / Committer</td><td>akayeshmantha</td><tr>
- <tr class='dark'><td>Craig L Russell</td><td>PMC / Committer</td><td>clr</td><tr>
- <tr class='light'><td>Stian Soiland-Reyes</td><td>PMC / Committer</td><td>stain</td><tr>
- <tr class='dark'><td>Shalitha Suranga</td><td>PMC / Committer</td><td>shalithasuranga</td><tr>
- <tr class='light'><td>Jochen Wiedmann</td><td>PMC / Committer</td><td>jochen</td><tr>
- <tr class='dark bb'><td>Marcelo Vieira</td><td>PMC / Committer</td><td>marcelosouzav</td><tr>
- </table>
- </div>
-</body>
-</html>
diff --git a/content/components.html b/content/components.html
deleted file mode 100644
index 76122cb9d..000000000
--- a/content/components.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- =========================================================================================================== -->
- <!-- === COMPONENTS ============================================================================================ -->
- <!-- =========================================================================================================== -->
-
- <h5 class='toc'>Components</h5>
- <div class='topic'>
- <p>
- We've strived to keep prerequisites to an absolute minimum in order to make adoption as easy as possible.
- </p>
- <p>
- The library consists of the following artifacts found in the Maven group <code>"org.apache.juneau"</code>:
- </p>
- <table class='styled w800'>
- <tr>
- <th>Category</th><th>Maven Artifacts</th><th>Description</th><th>Prereqs</th>
- </tr>
- <tr class='dark bb'>
- <td rowspan="5" style='text-align:center;font-weight:bold;padding:20px;' class='code'>juneau-core</td>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall'>juneau-marshall</a></td>
- <td>Serializers and parsers for:
- <ul style='margin:0px 10px;'>
- <li>JSON
- <li>XML
- <li>HTML
- <li>UON
- <li>URL-Encoding
- <li>MessagePack
- <li>OpenAPI
- <li>SOAP/XML
- <li>CSV
- <li>BSON (coming soon)
- <li>YAML (coming soon)
- <li>Protobuf (coming soon)
- <li>Amazon Ion (coming soon)
- </ul>
- </td>
- <td>
- <ul style='margin:0px 10px;'>
- <li>Java 8
- </ul>
- </td>
- </tr>
- <tr class='dark bb'>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall-rdf'>juneau-marshall-rdf</a></td>
- <td>
- Serializers and parsers for:
- <ul style='margin:0px 10px;'>
- <li>RDF/XML
- <li>RDF/XML-Abbrev
- <li>N-Triple
- <li>Turtle
- <li>N3
- </ul>
- </td>
- <td>
- <ul style='margin:0px 10px;'>
- <li>Java 8
- <li>Apache Jena 2.7.1
- </ul>
- </td>
- </tr>
- <tr class='dark bb'>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-dto'>juneau-dto</a></td>
- <td>
- Data Transfer Objects for:
- <ul style='margin:0px 10px;'>
- <li>HTML5
- <li>Atom
- <li>Cognos
- <li>JSON-Schema
- <li>Swagger 2.0
- </ul>
- </td>
- <td><ul style='margin:0px 10px;'><li>Java 8+</li></ul></td>
- </tr>
- <tr class='dark bb'>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-svl'>juneau-svl</a></td>
- <td>
- Simple Variable Language API
- </td>
- <td><ul style='margin:0px 10px;'><li>Java 8+</li></ul></td>
- </tr>
- <tr class='dark bb'>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-config'>juneau-config</a></td>
- <td>
- Configuration file API
- </td>
- <td><ul style='margin:0px 10px;'><li>Java 8+</li></ul></td>
- </tr>
- <tr class='light bb'>
- <td rowspan="4" style='text-align:center;font-weight:bold;padding:20px;' class='code'>juneau-rest</td>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-rest-server'>juneau-rest-server</a></td>
- <td>
- REST Servlet API
- </td>
- <td>
- <ul style='margin:0px 10px;'>
- <li>Java 8
- <li>Servlet 3.1+
- </ul>
- </td>
- </tr>
- <tr class='light bb'>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-rest-server-springboot'>juneau-rest-server-springboot</a></td>
- <td>
- Spring Boot integration support
- </td>
- <td>
- <ul style='margin:0px 10px;'>
- <li>Java 8+
- <li>Spring Boot 2.0+
- </ul>
- </td>
- </tr>
- <tr class='light bb'>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-rest-server-jaxrs'>juneau-rest-server-jaxrs</a></td>
- <td>
- JAX-RS support
- </td>
- <td>
- <ul style='margin:0px 10px;'>
- <li>Java 8+
- <li>JAX-RS 2.0
- </ul>
- </td>
- </tr>
- <tr class='light bb'>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-rest-client'>juneau-rest-client</a></td>
- <td>
- REST Client API
- </td>
- <td>
- <ul style='margin:0px 10px;'>
- <li>Java 8+
- <li>Apache HttpClient 4.5+
- </ul>
- </td>
- </tr>
- <tr class='dark bb'>
- <td rowspan="2" style='text-align:center;font-weight:bold;padding:20px;' class='code'>juneau-examples</td>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-examples-core'>juneau-examples-core</a></td>
- <td>
- Core code examples
- </td>
- <td></td>
- </tr>
- <tr class='dark bb'>
- <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-examples-rest'>juneau-examples-rest</a></td>
- <td>
- REST code examples
- </td>
- <td></td>
- </tr>
- <tr class='light bb'>
- <td rowspan="1" style='text-align:center;font-weight:bold;padding:20px;' class='code'>juneau-all</td>
- <td class='code'><code>juneau-all</code></td>
- <td>
- Combination of the following:
- <ul style='margin:0px 10px;'>
- <li>juneau-marshall
- <li>juneau-dto
- <li>juneau-svl
- <li>juneau-config
- <li>juneau-rest-server
- <li>juneau-rest-client
- </ul>
- </td>
- <td>
- <ul style='margin:0px 10px;'>
- <li>Java 8+
- <li>Servlet 3.1+
- <li>Apache HttpClient 4.5+
- </ul>
- </td>
- </tr>
- </table>
-
- <p>
- The current version of Juneau is <code>9.0-B1</code>.
- The easiest way to pull in the library is through the following maven dependency:
- </p>
- <p class='bcode w800'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-all<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
- <p>
- If you would like to work with the bleeding-edge code, you can access the <code>9.0.0-SNAPSHOT</code>
- version through the following repository:
- </p>
- <p class='bcode w800'>
- <xt><pluginRepositories>
- <pluginRepository>
- <id><xv>apache.snapshots</xv></id>
- <url><xv>http://repository.apache.org/snapshots/</xv></url>
- <snapshots>
- <enabled><xv>true</xv></enabled>
- <updatePolicy><xv>always</xv></updatePolicy>
- </snapshots>
- </pluginRepository>
- </pluginRepositories></xt>
- </p>
- <p>
- Each of the components are also packaged as stand-alone OSGi modules.
- </p>
- </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/content/config.html b/content/config.html
deleted file mode 100644
index 01bb8ca21..000000000
--- a/content/config.html
+++ /dev/null
@@ -1,169 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-CONFIG ===================================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-config'>juneau-config</h5>
- <div class='topic'>
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-config<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-config-9.0-B1.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.config_9.0-B1.jar
- </p>
-
- <p>
- The <code>juneau-config</code> module defines an API allows you to interact with INI-style configuration files using POJOs.
- It builds upon the marshalling and SVL APIs to provide sophisticated dynamic configuration files.
- <p>
- <p class='bcode w800'>
- <cc>#--------------------------</cc>
- <cc># My section</cc>
- <cc>#--------------------------</cc>
- <cs>[MySection]</cs>
-
- <cc># An integer</cc>
- <ck>anInt</ck> = <cv>1</cv>
-
- <cc># A boolean</cc>
- <ck>aBoolean</ck> = <cv>true</cv>
-
- <cc># An int array</cc>
- <ck>anIntArray</ck> = <cv>[1,2,3]</cv>
-
- <cc># A POJO that can be converted from a String</cc>
- <ck>aURL</ck> = <cv>http://foo </cv>
-
- <cc># A POJO that can be converted from JSON</cc>
- <ck>aBean</ck> = <cv>{foo:'bar',baz:123}</cv>
-
- <cc># A system property</cc>
- <ck>locale</ck> = <cv>$S{java.locale, en_US}</cv>
-
- <cc># An environment variable</cc>
- <ck>path</ck> = <cv>$E{PATH, unknown}</cv>
-
- <cc># A manifest file entry</cc>
- <ck>mainClass</ck> = <cv>$MF{Main-Class}</cv>
-
- <cc># Another value in this config file</cc>
- <ck>sameAsAnInt</ck> = <cv>$C{MySection/anInt}</cv>
-
- <cc># A command-line argument in the form "myarg=foo"</cc>
- <ck>myArg</ck> = <cv>$ARG{myarg}</cv>
-
- <cc># The first command-line argument</cc>
- <ck>firstArg</ck> = <cv>$ARG{0}</cv>
-
- <cc># Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.</cc>
- <ck>nested</ck> = <cv>$S{mySystemProperty,$E{MY_ENV_VAR,$ARG{0}}}</cv>
-
- <cc># A POJO with embedded variables</cc>
- <ck>aBean2</ck> = <cv>{foo:'$ARG{0}',baz:$C{MySection/anInt}}</cv>
- </p>
- <p>
- The beauty of these files is that they're easy to read and modify, yet sophisticated enough to allow you to
- store arbitrary-complex data structures and retrieve them as simple values or complex POJOs:
- </p>
- <p class='bcode w800'>
- <jc>// Load our config file</jc>
- Config <jv>config</jv> = Config.<jsm>create</jsm>().name(<js>"MyIniFile.cfg"</js>).build();
-
- <jk>int</jk> <jv>anInt</jv> = <jv>config</jv>.getInt(<js>"MySection/anInt"</js>);
- <jk>boolean</jk> <jv>aBoolean</jv> = <jv>config</jv>.getBoolean(<js>"MySection/aBoolean"</js>);
- <jk>int</jk>[] <jv>anIntArray</jv> = <jv>config</jv>.getObject(<js>"MySection/anIntArray"</js>, <jk>int</jk>[].<jk>class</jk>);
- URL <jv>aURL</jv> = <jv>config</jv>.getObject(<js>"MySection/aURL"</js>, URL.<jk>class</jk>);
- MyBean <jv>aBean</jv> = <jv>config</jv>.getObject(<js>"MySection/aBean"</js>, MyBean.<jk>class</jk>);
- Locale <jv>locale</jv> = <jv>config</jv>.getObject(<js>"MySection/locale"</js>, Locale.<jk>class</jk>);
- String <jv>path</jv> = <jv>config</jv>.getString(<js>"MySection/path"</js>);
- String <jv>mainClass</jv> = <jv>config</jv>.getString(<js>"MySection/mainClass"</js>);
- <jk>int</jk> <jv>sameAsAnInt</jv> = <jv>config</jv>.getInt(<js>"MySection/sameAsAnInt"</js>);
- String <jv>myArg</jv> = <jv>config</jv>.getString(<js>"MySection/myArg"</js>);
- String <jv>firstArg</jv> = <jv>config</jv>.getString(<js>"MySection/firstArg"</js>);
- </p>
- <p>
- One of the more powerful aspects of the REST servlets is that you can pull values directly from
- config files by using the <js>"$C"</js> variable in annotations.
- For example, the HTML stylesheet for your REST servlet can be defined in a config file like so:
- </p>
- <p class='bcode w800'>
- <ja>@Rest</ja>(
- path=<js>"/myResource"</js>,
- config=<js>"$S{my.config.file}"</js> <jc>// Path to config file (here pulled from a system property)</jc>
- )
- <ja>@HtmlDocConfig</ja>(
- stylesheet=<js>"$C{MyResourceSettings/myStylesheet}"</js> <jc>// Stylesheet location pulled from config file.</jc>
- )
- <jk>public class</jk> MyResource <jk>extends</jk> RestServlet {
- </p>
- <p>
- Other features:
- </p>
- <ul class='spaced-list'>
- <li>
- Support for storing and retrieving any of the following data types:
- <ul>
- <li>Primitives
- <li>POJOs
- <li>Beans
- <li>Arrays, Maps, and Collections of anything
- <li>Binary data
- </ul>
- <li>
- A listener API that allows you to, for example, reinitialize your REST resource if the config file
- changes, or listen for changes to particular sections or values.
- <li>
- Filesystem watcher integration allows configs to reflect changes on the file system in real-time.
- <li>
- Config files can be modified through the Config class (e.g. add/remove/modify sections and keys, add/remove comments and whitespace, etc...).
- <br>When using these APIs, you <b>DO NOT</b> lose formatting in your existing configuration file.
- All existing whitespace and comments are preserved for you!
- <li>
- Support for encoding of values for added security.
- <li>
- Config sections can be used to directly populate beans.
- <li>
- Config sections can be accessed and manipulated through Java interface proxies.
- <li>
- An extensible storage API allows you to write your own config storage location for files such as databases or the cloud.
- </ul>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-config'>juneau-config</a>
- </ul>
- </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/content/documentation.html b/content/documentation.html
deleted file mode 100644
index a0fded7e9..000000000
--- a/content/documentation.html
+++ /dev/null
@@ -1,405 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <h5 class='toc'>Documentation</h5>
- <div class='topic'>
- <p>
- All user documentation in Juneau is provided through Javadocs.
- </p>
- <p>
- The Javadocs overview document provides a general overview for all of Juneau.
- The package-level documents that link from the overview provide in-depth information on subtopics.
- </p>
- <ul class='spaced-list'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/index.html' target="_top">Javadocs - 9.0.0</a>
- </ul>
- </div>
-
- <a id='TOC'></a><h5 class='toc'>Table of Contents - 9.0</h5>
-
-<ol class='toc'>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview'>Overview</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview.o.Marshalling'>Marshalling</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview.o.EndToEndRest'>End-to-End REST</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview.o.RestServer'>REST Server</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview.o.RestClient'>REST Client</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview.o.Dtos'>DTOs</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview.o.ConfigFiles'>Config Files</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview.o.FluentAssertions'>Fluent Assertions</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Overview.o.GeneralDesign'>General Design</a><span class='update'>created: <b>9.0.0</b></span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall'>juneau-marshall</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Marshallers'>Marshallers</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.SerializersAndParsers'>Serializers and Parsers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.BeanContexts'>Bean Contexts</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport'>Java Beans Support</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport.jm.BeanAnnotation'>@Bean Annotation</a><span class='update'>updated: 8.2.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport.jm.BeanpAnnotation'>@Beanp Annotation</a><span class='update'>updated: 8.1.0,8.1.2,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport.jm.BeancAnnotation'>@Beanc Annotation</a><span class='update'>updated: 8.1.0,8.1.2</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport.jm.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport.jm.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport.jm.ParentPropertyAnnotation'>@ParentProperty Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport.jm.PojoBuilders'>POJO Builders</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JavaBeansSupport.jm.BypassSerialization'>Bypass Serialization using Readers and InputStreams</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HttpPartSerializersParsers'>HTTP Part Serializers and Parsers</a><span class='update'>updated: 8.2.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.ContextSettings'>Context Settings</a><span class='update'>updated: 8.1.3,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.ContextAnnotations'>Context Annotations</a><span class='update'>created: 8.1.0, updated: 8.1.3,8.2.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JsonMap'>JsonMap and JsonList</a><span class='update'>updated: 8.2.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.ComplexDataTypes'>Complex Data Types</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.SerializerSetsParserSets'>SerializerSets and ParserSets</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Swaps'>Swaps</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Swaps.jm.DefaultSwaps'>Default Swaps</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Swaps.jm.AutoSwaps'>Auto-detected swaps</a><span class='update'>created: 8.1.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Swaps.jm.PerMediaTypeSwaps'>Per-media-type Swaps</a><span class='update'>updated: 8.1.0,8.2.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Swaps.jm.OneWaySwaps'>One-way Swaps</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Swaps.jm.SwapAnnotation'>@Swap Annotation</a><span class='update'>updated: 8.0.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Swaps.jm.TemplatedSwaps'>Templated Swaps</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Swaps.jm.SurrogateClasses'>Surrogate Classes</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.DynamicallyAppliedAnnotations'>Dynamically Applied Annotations</a><span class='update'>created: 8.1.3, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.BeanDictionaries'>Bean Names and Dictionaries</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.BeanDictionaries.jm.BeanSubTypes'>Bean Subtypes</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.VirtualBeans'>Virtual Beans</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Recursion'>Non-Tree Models and Recursion Detection</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.ParsingIntoGenericModels'>Parsing into Generic Models</a><span class='update'>updated: 8.2.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.ReadingContinuousStreams'>Reading Continuous Streams</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.MarshallingUris'>URIs</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JacksonComparison'>Comparison with Jackson</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.PojoCategories'>POJO Categories</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.SimpleVariableLanguage'>Simple Variable Language</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.SimpleVariableLanguage.jm.SvlVariables'>SVL Variables</a><span class='update'>updated: 8.0.0,8.1.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.SimpleVariableLanguage.jm.VarResolvers'>VarResolvers and VarResolverSessions</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.SimpleVariableLanguage.jm.DefaultVarResolver'>VarResolver.DEFAULT</a><span class='update'>created: 8.1.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.SimpleVariableLanguage.jm.SvlOtherNotes'>Other Notes</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.Encoders'>Encoders</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.ObjectTools'>Object Tools</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JsonDetails'>JSON Details</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JsonDetails.jm.JsonMethodology'>JSON Methodology</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JsonDetails.jm.JsonSerializers'>JSON Serializers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JsonDetails.jm.SimplifiedJson'>Simplified JSON</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JsonDetails.jm.JsonParsers'>JSON Parsers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JsonDetails.jm.JsonAnnotation'>@Json Annotation</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.JsonSchemaDetails'>JSON-Schema Support</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.XmlDetails'>XML Details</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.XmlDetails.jm.XmlMethodology'>XML Methodology</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.XmlDetails.jm.XmlSerializers'>XML Serializers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.XmlDetails.jm.XmlParsers'>XML Parsers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.XmlDetails.jm.XmlBeanTypeNameAnnotation'>@Bean(typeName) Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.XmlDetails.jm.XmlChildNameAnnotation'>@Xml(childName) Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.XmlDetails.jm.XmlFormatAnnotation'>@Xml(format) Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.XmlDetails.jm.XmlNamespaces'>Namespaces</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails'>HTML Details</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails.jm.HtmlMethodology'>HTML Methodology</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails.jm.HtmlSerializers'>HTML Serializers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails.jm.HtmlParsers'>HTML Parsers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails.jm.HtmlAnnotation'>@Html Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails.jm.HtmlRenderAnnotation'>@Html(render) Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails.jm.HtmlDocSerializer'>HtmlDocSerializer</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails.jm.BasicHtmlDocTemplate'>BasicHtmlDocTemplate</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlDetails.jm.HtmlCustomTemplates'>Custom Templates</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.HtmlSchema'>HTML-Schema Support</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UonDetails'>UON Details</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UonDetails.jm.UonMethodology'>UON Methodology</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UonDetails.jm.UonSerializers'>UON Serializers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UonDetails.jm.UonParsers'>UON Parsers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UrlEncodingDetails'>URL-Encoding Details</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UrlEncodingDetails.jm.UrlEncMethodology'>URL-Encoding Methodology</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UrlEncodingDetails.jm.UrlEncSerializers'>URL-Encoding Serializers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UrlEncodingDetails.jm.UrlEncParsers'>URL-Encoding Parsers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.UrlEncodingDetails.jm.UrlEncodingAnnotation'>@UrlEncoding Annotation</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.MsgPackDetails'>MessagePack Details</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.MsgPackDetails.jm.MsgPackSerializers'>MessagePack Serializers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.MsgPackDetails.jm.MsgPackParsers'>MessagePack Parsers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.OpenApiDetails'>OpenAPI Details</a><span class='update'>updated: 8.2.0</span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.OpenApiDetails.jm.OpenApiMethodology'>OpenAPI Methodology</a><span class='update'>updated: 8.2.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.OpenApiDetails.jm.OpenApiSerializers'>OpenAPI Serializers</a><span class='update'>updated: 8.2.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.OpenApiDetails.jm.OpenApiParsers'>OpenAPI Parsers</a><span class='update'>updated: 8.2.0,<b>9.0.0</b></span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall.jm.BestPractices'>Best Practices</a></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf'>juneau-marshall-rdf</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf.jmr.RdfDetails'>RDF Details</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf.jmr.RdfDetails.jmr.Serializers'>RDF Serializers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf.jmr.RdfDetails.jmr.Parsers'>RDF Parsers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf.jmr.RdfDetails.jmr.RdfAnnotation'>@Rdf Annotation</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf.jmr.RdfDetails.jmr.Namespaces'>Namespaces</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf.jmr.RdfDetails.jmr.UriProperties'>URI Properties</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf.jmr.RdfDetails.jmr.RootProperty'>Root Property</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-marshall-rdf.jmr.RdfDetails.jmr.TypedLiterals'>Typed Literals</a><span class='update'>updated: <b>9.0.0</b></span></p>
- </ol>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-dto'>juneau-dto</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-dto.jd.Html5'>HTML5</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-dto.jd.Atom'>Atom</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-dto.jd.Swagger'>Swagger</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-dto.jd.SwaggerUi'>Swagger UI</a></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config'>juneau-config</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.Overview'>Overview</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.Overview.jc.SyntaxRules'>Syntax Rules</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ReadingEntries'>Reading Entries</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ReadingEntries.jc.Pojos'>POJOs</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ReadingEntries.jc.Arrays'>Arrays</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ReadingEntries.jc.JCFObjects'>Java Collection Framework Objects</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ReadingEntries.jc.BinaryData'>Binary Data</a><span class='update'>updated: <b>9.0.0</b></span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.Variables'>Variables</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.Variables.jc.LogicVariables'>Logic Variables</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ModdedEntries'>Modded/Encoded Entries</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.Sections'>Sections</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.SettingValues'>Setting Values</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.SettingValues.jc.FileSystemChanges'>File System Changes</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.SettingValues.jc.CustomEntrySerialization'>Custom Entry Serialization</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.SettingValues.jc.BulkSettingValues'>Setting Values in Bulk</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.Listeners'>Listeners</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.SerializingConfigs'>Serializing</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ConfigImports'>Imports</a><span class='update'>updated: 8.1.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ConfigStores'>Config Stores</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ConfigStores.jc.MemoryStore'>MemoryStore</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ConfigStores.jc.FileStore'>FileStore</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ConfigStores.jc.CustomStores'>Custom ConfigStores</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ConfigStores.jc.StoreListeners'>ConfigStore Listeners</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ReadOnlyConfigs'>Read-only Configs</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.ClosingConfigs'>Closing Configs</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-config.jc.SystemDefaultConfig'>System Default Config</a><span class='update'>created: 8.0.0, updated: 8.1.0</span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-assertions'>juneau-assertions</a><span class='update'>created: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-assertions.ja.Overview'>Overview</a><span class='update'>created: <b>9.0.0</b></span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-common'>juneau-rest-common</a><span class='update'>created: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-common.jrc.HelperClasses'>Helper Classes</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-common.jrc.Annotations'>Annotations</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-common.jrc.HttpHeaders'>HTTP Headers</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-common.jrc.HttpParts'>HTTP Parts</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-common.HttpEntitiesAndResources'>HTTP Entities and Resources</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-common.jrc.HttpResponses'>HTTP Responses</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-common.jrc.RemoteProxyInterfaces'>Remote Proxy Interfaces</a><span class='update'>created: <b>9.0.0</b></span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server'>juneau-rest-server</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Overview'>Overview</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.AnnotatedClasses'>@Rest-Annotated Classes</a><span class='update'>updated: 8.1.2,<b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.AnnotatedClasses.jrs.PredefinedClasses'>Predefined Classes</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.AnnotatedClasses.jrs.ChildResources'>Child Resources</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.AnnotatedClasses.jrs.PathVariables'>Path Variables</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.AnnotatedClasses.jrs.Deployment'>Deployment</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.AnnotatedClasses.jrs.LifecycleHooks'>Lifecycle Hooks</a><span class='update'>updated: <b>9.0.0</b></span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods'>@RestOp-Annotated Methods</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.InferredHttpMethodsAndPaths'>Inferred HTTP Methods and Paths</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.JavaMethodParameters'>Java Method Parameters</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.JavaMethodReturnTypes'>Java Method Return Types</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.JavaMethodThrowableTypes'>Java Method Throwable Types</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.PathPatterns'>Path Patterns</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.Matchers'>Matchers</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.OverloadingHttpMethods'>Overloading HTTP Methods</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.AdditionalInformation'>Additional Information</a><span class='update'>updated: <b>9.0.0</b></span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HttpParts'>HTTP Parts</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HttpParts.jrs.PartMarshallers'>Part Marshallers</a><span class='update'>updated: 8.1.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HttpParts.jrs.HttpPartAnnotations'>HTTP Part Annotations</a><span class='update'>updated: 8.1.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HttpParts.jrs.DefaultParts'>Default Parts</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HttpParts.jrs.RequestBeans'>@Request Beans</a><span class='update'>updated: 8.1.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HttpParts.jrs.ResponseBeans'>@Response Beans</a><span class='update'>updated: 8.1.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HttpParts.jrs.HttpPartApis'>HTTP Part APIs</a><span class='update'>created: <b>9.0.0</b></span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Marshalling'>Marshalling</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HandlingFormPosts'>Form Posts</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Guards'>Guards</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Converters'>Converters</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.LocalizedMessages'>Localized Messages</a><span class='update'>updated: 8.2.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Encoders'>Encoders</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.ConfigurationFiles'>Configuration Files</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.SvlVariables'>SVL Variables</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.StaticFiles'>Static files</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.ClientVersioning'>Client Versioning</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger'>Swagger</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger'>BasicRestServlet/BasicRestObject</a><span class='update'>updated: 8.1.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo'>Basic Swagger Info</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger.jrs.SwaggerTags'>Tags</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations'>Operations</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters'>Parameters</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses'>Responses</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger.jrs.SwaggerModels'>Models</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet'>SwaggerUI.css</a></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.ExecutionStatistics'>REST method execution statistics</a><span class='update'>created: 8.1.3, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HtmlDocAnnotation'>@HtmlDocConfig</a><span class='update'>updated: 8.1.0,<b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI'>User Interfaces (UI) vs. Developer Interfaces (DI)</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets'>Widgets</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets'>Predefined Widgets</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization'>UI Customization</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets'>Stylesheets</a><span class='update'>updated: 8.1.0,<b>9.0.0</b></span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.LoggingAndDebugging'>Logging / Debugging</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HttpStatusCodes'>HTTP Status Codes</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.BuiltInParameters'>Built-in Parameters</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.UsingWithOsgi'>Using with OSGi</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestContext'>RestContext</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestOpContext'>RestOpContext</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.ResponseProcessors'>Response Processors</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.RestRpc'>REST/RPC</a><span class='update'>updated: 8.0.0,<b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.SerializingUris'>Serializing URIs</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.UtilityBeans'>Utility Beans</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.HtmlBeans'>Using with HTML Beans</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server.jrs.OtherNotes'>Other Notes</a></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server-springboot'>juneau-rest-server-springboot</a><span class='update'>created: 8.0.0, updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-server-springboot.jrss.Overview'>Overview</a><span class='update'>created: 8.0.0, updated: <b>9.0.0</b></span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client'>juneau-rest-client</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.PojoMarshalling'>POJO Marshalling</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.RequestParts'>Request Parts</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.RequestContent'>Request Content</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.ResponseStatus'>Response Status</a><span class='update'>created: 8.1.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.ResponseHeaders'>Response Headers</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.ResponseContent'>Response Content</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.CustomCallHandlers'>Custom Call Handlers</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Interceptors'>Interceptors</a><span class='update'>created: 8.2.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies'>REST Proxies</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.Remote'>@Remote</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.RemoteMethod'>@RemoteOp</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.Content'>@Content</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.FormData'>@FormData</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.Query'>@Query</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.Header'>@Header</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.Path'>@Path</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.Request'>@Request</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.Response'>@Response</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces'>Dual-purpose (end-to-end) interfaces</a><span class='update'>created: 8.0.0</span></p>
- </ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.LoggingAndDebugging'>Logging and Debugging</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.CustomizingHttpClient'>Customizing HttpClient</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.ExtendingRestClient'>Extending RestClient</a><span class='update'>created: 8.2.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Authentication'>Authentication</a><span class='update'>updated: 8.2.0</span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC'>BASIC Authentication</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm'>FORM-based Authentication</a></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC'>OIDC Authentication</a></p>
- </ol>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-mock'>juneau-rest-mock</a><span class='update'>created: 8.1.0, updated: 8.2.0</span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-rest-mock.jrm.MockRestClient'>MockRestClient</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core'>juneau-microservice-core</a><span class='update'>created: 8.1.0</span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.Overview'>Microservice Overview</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.LifecycleMethods'>Lifecycle Methods</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.Args'>Args</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.Manifest'>Manifest</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.Config'>Config</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.SystemProperties'>System properties</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.VarResolver'>VarResolver</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.ConsoleCommands'>Console Commands</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-core.jmc.Listeners'>Listeners</a><span class='update'>created: 8.0.0</span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty'>juneau-microservice-jetty</a><span class='update'>created: 8.1.0</span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty.jmj.Overview'>Overview</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty.jmj.LifecycleMethods'>Lifecycle Methods</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty.jmj.ResourceClasses'>Resource Classes</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty.jmj.PredefinedResourceClasses'>Predefined Resource Classes</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty.jmj.Config'>Config</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty.jmj.JettyXml'>Jetty.xml file</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty.jmj.UiCustomization'>UI Customization</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-microservice-jetty.jmj.Extending'>Extending JettyMicroservice</a><span class='update'>created: 8.0.0</span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#my-jetty-microservice'>my-jetty-microservice</a><span class='update'>created: 8.1.0</span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#my-jetty-microservice.mjm.Installing'>Installing in Eclipse</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#my-jetty-microservice.mjm.Running'>Running in Eclipse</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#my-jetty-microservice.mjm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0</span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#my-springboot-microservice'>my-springboot-microservice</a><span class='update'>created: 8.0.0</span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#my-springboot-microservice.msm.Installing'>Installing in Eclipse</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#my-springboot-microservice.msm.Running'>Running in Eclipse</a><span class='update'>created: 8.0.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#my-springboot-microservice.msm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0</span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-petstore'>juneau-petstore</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-petstore.jp.RunningTheApp'>Running the Pet Store App</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-petstore.jp.juneau-petstore-api'>juneau-petstore-api</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-petstore.jp.juneau-petstore-client'>juneau-petstore-client</a><span class='update'>created: <b>9.0.0</b></span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#juneau-petstore.jp.juneau-petstore-server'>juneau-petstore-server</a><span class='update'>created: <b>9.0.0</b></span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Glossaries'>Glossaries</a><span class='update'>created: 8.1.3</span></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Glossaries.g.LanguageSupport'>Language Support</a><span class='update'>created: 8.1.3</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Glossaries.g.Annotations'>Annotations</a><span class='update'>created: 8.1.3</span></p>
- </ol>
- <li><p class='toc2'><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Security'>Security Best-Practices</a></p>
- <ol>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Security.s.Marshall'>juneau-marshall</a><span class='update'>created: 8.2.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Security.s.Svl'>juneau-svl</a><span class='update'>created: 8.2.0</span></p>
- <li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#Security.s.Rest'>juneau-rest-server</a><span class='update'>created: 8.2.0</span></p>
- </ol>
-</ol>
-
-</body>
-</html>
diff --git a/content/downloads.html b/content/downloads.html
index d50f4578a..fe21f0701 100644
--- a/content/downloads.html
+++ b/content/downloads.html
@@ -33,14 +33,14 @@
<h5 class='toc'>Current release</h5>
<p class='download w800'>
- 9.0-B1 (July 2, 2022) (BETA)
- - <a href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#9.0-B1'>Release Notes</a>
- - <a href='https://www.apache.org/dyn/closer.cgi/juneau/binaries/juneau-9.0-B1/apache-juneau-9.0-B1-bin.zip'>Binaries</a>
- (<a href='https://www.apache.org/dist/juneau/binaries/juneau-9.0-B1/apache-juneau-9.0-B1-bin.zip.asc'>ASC</a>,
- <a href='https://www.apache.org/dist/juneau/binaries/juneau-9.0-B1/apache-juneau-9.0-B1-bin.zip.sha512'>SHA512</a>)
- - <a href='https://www.apache.org/dyn/closer.cgi/juneau/source/juneau-9.0-B1/apache-juneau-9.0-B1-src.zip'>Source</a>
- (<a href='https://www.apache.org/dist/juneau/source/juneau-9.0-B1/apache-juneau-9.0-B1-src.zip.asc'>ASC</a>,
- <a href='https://www.apache.org/dist/juneau/source/juneau-9.0-B1/apache-juneau-9.0-B1-src.zip.sha512'>SHA512</a>)
+ 9.0.0 (July 2, 2022) (BETA)
+ - <a href='http://juneau.apache.org/site/apidocs-9.0.0/overview-summary.html#9.0.0'>Release Notes</a>
+ - <a href='https://www.apache.org/dyn/closer.cgi/juneau/binaries/juneau-9.0.0/apache-juneau-9.0.0-bin.zip'>Binaries</a>
+ (<a href='https://www.apache.org/dist/juneau/binaries/juneau-9.0.0/apache-juneau-9.0.0-bin.zip.asc'>ASC</a>,
+ <a href='https://www.apache.org/dist/juneau/binaries/juneau-9.0.0/apache-juneau-9.0.0-bin.zip.sha512'>SHA512</a>)
+ - <a href='https://www.apache.org/dyn/closer.cgi/juneau/source/juneau-9.0.0/apache-juneau-9.0.0-src.zip'>Source</a>
+ (<a href='https://www.apache.org/dist/juneau/source/juneau-9.0.0/apache-juneau-9.0.0-src.zip.asc'>ASC</a>,
+ <a href='https://www.apache.org/dist/juneau/source/juneau-9.0.0/apache-juneau-9.0.0-src.zip.sha512'>SHA512</a>)
</p>
<p class='download w800'>
8.2.0 (Oct 14, 2020)
diff --git a/content/dto.html b/content/dto.html
deleted file mode 100644
index dbec71a0a..000000000
--- a/content/dto.html
+++ /dev/null
@@ -1,268 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-DTO ======================================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-dto'>juneau-dto</h5>
- <div class='topic'>
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-dto<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-dto-9.0-B1.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.dto_9.0-B1.jar
- </p>
-
- <p>
- Data Transfer Object libraries are provided for a variety of languages that allow you to serialize commonly-used
- documents.
- </p>
- <ul>
- <li>HTML5
- <li>Atom
- <li>Cognos
- <li>JSON-Schema
- <li>Swagger 2.0
- </ul>
- <p>
- HTML5 documents and fragments can be constructed using the HTML5 DTOs and HTML or XML serializers:
- </p>
- <p class='bcode w800'>
- <jk>import static</jk> org.apache.juneau.dto.html5.HtmlBuilder.*;
-
- Object <jv>myform</jv> =
- <jsm>form</jsm>().action(<js>"/submit"</js>).method(<js>"POST"</js>)
- .children(
- <js>"Position (1-10000): "</js>, <jsm>input</jsm>(<js>"number"</js>).name(<js>"pos"</js>).value(1), <jsm>br</jsm>(),
- <js>"Limit (1-10000): "</js>, <jsm>input</jsm>(<js>"number"</js>).name(<js>"limit"</js>).value(100), <jsm>br</jsm>(),
- <jsm>button</jsm>(<js>"submit"</js>, <js>"Submit"</js>),
- <jsm>button</jsm>(<js>"reset"</js>, <js>"Reset"</js>)
- );
-
- String <jv>html</jv> = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>myform</jv>);
- </p>
- <p class='bcode w800'><xt>
- <form <xa>action</xa>=<xs>'/submit'</xs> <xa>method</xa>=<xs>'POST'</xs>>
- <xv>Position (1-10000):</xv> <input <xa>name</xa>=<xs>'pos'</xs> <xa>type</xa>=<xs>'number'</xs> <xa>value</xa>=<xs>'1'</xs>/><br/>
- <xv>Limit (1-10000):</xv> <input <xa>name</xa>=<xs>'pos'</xs> <xa>type</xa>=<xs>'number'</xs> <xa>value</xa>=<xs>'100'</xs>/><br/>
- <button <xa>type</xa>=<xs>'submit'</xs>><xv>Submit</xv></button>
- <button <xa>type</xa>=<xs>'reset'</xs>><xv>Reset</xv></button>
- </form>
- </xt></p>
- <p>
- And you're not limited to just HTML. The HTML5 beans are POJOs that can be serialized using any
- of the serializers, such as lax JSON:
- </p>
- <p class='bcode w800'>
- {
- <jok>_type</jok>: <jov>'form'</jov>,
- <jok>a</jok>: { <jok>action</jok>: <jov>'/submit'</jov>, <jok>method</jok>: <jov>'POST'</jov> },
- <jok>c</jok>: [
- <jov>'Position (1-10000): '</jov>,
- { <jok>_type</jok>: <jov>'input'</jov>, <jok>a</jok>: { <jok>type</jok>: <jov>'number'</jov>, <jok>name</jok>: <jov>'pos'</jov>, <jok>value</jok>: <jov>1</jov> } },
- { <jok>_type</jok>: <jov>'br'</jov> },
- <jov>'Limit (1-10000): '</jov>,
- { <jok>_type</jok>: <jov>'input'</jov>, <jok>a</jok>: { <jok>type</jok>: <jov>'number'</jov>, <jok>name</jok>: <jov>'limit'</jov>, <jok>value</jok>: <jov>100</jov> } },
- { <jok>_type</jok>: <jov>'br'</jov> },
- { <jok>_type</jok>: <jov>'button'</jov>, <jok>a</jok>: { <jok>type</jok>: <jov>'submit'</jov> }, <jok>c</jok>: [ <jov>'Submit'</jov> ] },
- { <jok>_type</jok>: <jov>'button'</jov>, <jok>a</jok>: { <jok>type</jok>: <jov>'reset'</jov> }, <jok>c</jok>: [ <jov>'Reset'</jov> ] }
- ]
- }
- </p>
-
- <p>
- ATOM feeds can be constructed using the ATOM DTOs and XML serializer:
- </p>
- <p class='bcode w800'>
- <jk>import static</jk> org.apache.juneau.dto.atom.AtomBuilder.*;
-
- Feed <jv>feed</jv> =
- <jsm>feed</jsm>(<js>"tag:juneau.apache.org"</js>, <js>"Juneau ATOM specification"</js>, <js>"2016-01-02T03:04:05Z"</js>)
- .subtitle(<jsm>text</jsm>(<js>"html"</js>).text(<js>"Describes <em>stuff</em> about Juneau"</js>))
- .links(
- <jsm>link</jsm>(<js>"alternate"</js>, <js>"text/html"</js>, <js>"http://juneau.apache.org/"</js>).hreflang(<js>"en"</js>),
- <jsm>link</jsm>(<js>"self"</js>, <js>"application/atom+xml"</js>, <js>"http://juneau.apache.org/feed.atom"</js>)
- )
- .rights(<js>"Copyright (c) 2016, Apache Foundation"</js>)
- .entries(
- <jsm>entry</jsm>(<js>"tag:juneau.sample.com,2013:1.2345"</js>, <js>"Juneau ATOM specification snapshot"</js>, <js>"2016-01-02T03:04:05Z"</js>)
- .published(<js>"2016-01-02T03:04:05Z"</js>)
- .content(
- <jsm>content</jsm>(<js>"xhtml"</js>)
- .lang(<js>"en"</js>)
- .base(<js>"http://www.apache.org/"</js>)
- .text(<js>"<div><p><i>[Update: Juneau supports ATOM.]</i></p></div>"</js>)
- )
- );
-
- <jc>// Serialize to ATOM/XML</jc>
- String <jv>atomXml</jv> = XmlSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>feed</jv>);
- </p>
- <p class='bcode w800'>
- <xt><feed></xt>
- <xt><id></xt>
- tag:juneau.apache.org
- <xt></id></xt>
- <xt><link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs> <xa>hreflang</xa>=<xs>'en'</xs>/<xt>></xt>
- <xt><link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/feed.atom'</xs> <xa>rel</xa>=<xs>'self'</xs> <xa>type</xa>=<xs>'application/atom+xml'</xs>/<xt>></xt>
- <xt><rights></xt>
- Copyright (c) 2016, Apache Foundation
- <xt></rights></xt>
- <xt><title</xt> <xa>type</xa>=<xs>'text'</xs>></xt>
- Juneau ATOM specification
- <xt></title></xt>
- <xt><updated></xt>2016-01-02T03:04:05Z<xt></updated></xt>
- <xt><subtitle</xt> <xa>type</xa>=<xs>'html'</xs><xt>></xt>
- Describes <em>stuff</em> about Juneau
- <xt></subtitle></xt>
- <xt><entry></xt>
- <xt><id></xt>
- tag:juneau.apache.org
- <xt></id></xt>
- <xt><title></xt>
- Juneau ATOM specification snapshot
- <xt></title></xt>
- <xt><updated></xt>2016-01-02T03:04:05Z<xt></updated></xt>
- <xt><content</xt> <xa>base</xa>=<xs>'http://www.apache.org/'</xs> <xa>lang</xa>=<xs>'en'</xs> <xa>type</xa>=<xs>'xhtml'</xs><xt>></xt>
- <xt><div</xt> <xa>xmlns</xa>=<xs>"http://www.w3.org/1999/xhtml"</xs><xt>><p><i></xt>[Update: Juneau supports ATOM.]<xt></i></p></div></xt>
- <xt></content></xt>
- <xt><published></xt>2016-01-02T03:04:05Z<xt></published></xt>
- <xt></entry></xt>
- <xt></feed></xt>
- </p>
- <p>
- Swagger documents can be constructed using the Swagger DTOs and JSON serializer:
- </p>
- <p class='bcode w800'>
- <jk>import static</jk> org.apache.juneau.dto.swagger.SwaggerBuilder.*;
-
- Swagger <jv>swagger</jv> = <jsm>swagger</jsm>()
- .swagger(<js>"2.0"</js>)
- .info(
- <jsm>info</jsm>(<js>"Swagger Petstore"</js>, <js>"1.0.0"</js>)
- .description(<js>"This is a sample server Petstore server."</js>)
- .termsOfService(<js>"http://swagger.io/terms/"</js>)
- .contact(
- <jsm>contact</jsm>().email(<js>"apiteam@swagger.io"</js>)
- )
- .license(
- <jsm>license</jsm>(<js>"Apache 2.0"</js>).url(<js>"http://www.apache.org/licenses/LICENSE-2.0.html"</js>)
- )
- )
- .path(<js>"/pet"</js>, <js>"post"</js>,
- <jsm>operation</jsm>()
- .tags(<js>"pet"</js>)
- .summary(<js>"Add a new pet to the store"</js>)
- .description(<js>""</js>)
- .operationId(<js>"addPet"</js>)
- .consumes(MediaType.<jsf>JSON</jsf>, MediaType.<jsf>XML</jsf>)
- .produces(MediaType.<jsf>JSON</jsf>, MediaType.<jsf>XML</jsf>)
- .parameters(
- <jsm>parameterInfo</jsm>(<js>"body"</js>, <js>"body"</js>)
- .description(<js>"Pet object that needs to be added to the store"</js>)
- .required(<jk>true</jk>)
- )
- .response(405, <jsm>responseInfo</jsm>(<js>"Invalid input"</js>))
- );
-
- <jc>// Serialize to Swagger/JSON</jc>
- String <jv>swaggerJson</jv> = JsonSerializer.<jsf>DEFAULT_READABLE</jsf>.serialize(<jv>swagger</jv>);
- </p>
- <p class='bcode w800'>
- {
- <jok>"swagger"</jok>: <jov>"2.0"</jov>,
- <jok>"info"</jok>: {
- <jok>"title"</jok>: <jov>"Swagger Petstore"</jov>,
- <jok>"description"</jok>: <jov>"This is a sample server Petstore server."</jov>,
- <jok>"version"</jok>: <jov>"1.0.0"</jov>,
- <jok>"termsOfService"</jok>: <jov>"http://swagger.io/terms/"</jov>,
- <jok>"contact"</jok>: {
- <jok>"email"</jok>: <jov>"apiteam@swagger.io"</jov>
- },
- <jok>"license"</jok>: {
- <jok>"name"</jok>: <jov>"Apache 2.0"</jov>,
- <jok>"url"</jok>: <jov>"http://www.apache.org/licenses/LICENSE-2.0.html"</jov>
- }
- },
- <jok>"paths"</jok>: {
- <jok>"/pet"</jok>: {
- <jok>"post"</jok>: {
- <jok>"tags"</jok>: [
- <jov>"pet"</jov>
- ],
- <jok>"summary"</jok>: <jov>"Add a new pet to the store"</jov>,
- <jok>"description"</jok>: <jov>""</jov>,
- <jok>"operationId"</jok>: <jov>"addPet"</jov>,
- <jok>"consumes"</jok>: [
- <jov>"application/json"</jov>,
- <jov>"text/xml"</jov>
- ],
- <jok>"produces"</jok>: [
- <jov>"application/json"</jov>,
- <jov>"text/xml"</jov>
- ],
- <jok>"parameters"</jok>: [
- {
- <jok>"in"</jok>: <jov>"body"</jov>,
- <jok>"name"</jok>: <jov>"body"</jov>,
- <jok>"description"</jok>: <jov>"Pet object that needs to be added to the store"</jov>,
- <jok>"required"</jok>: <jov>true</jov>
- }
- ],
- <jok>"responses"</jok>: {
- <jok>"405"</jok>: {
- <jok>"description"</jok>: <jov>"Invalid input"</jov>
- }
- }
- }
- }
- }
- }
- </p>
- <p>
- Note that these DTOs can also be serialized to any of the other supported languages such as JSON or MessagePack!
- And they can be parsed back into their original objects!
- </p>
- <p>
- As a convenience, you can also simply call <code>toString()</code> on any of these DTOs and they will
- be serialized directly to a string in the typical language (e.g. HTML5 beans to HTML, Swagger to JSON, etc...).
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-dto'>juneau-dto</a>
- </ul>
- </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/content/examples.html b/content/examples.html
deleted file mode 100644
index d6d4e3878..000000000
--- a/content/examples.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-EXAMPLES-CORE ============================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-examples-core'>juneau-examples-core</h5>
- <div class='topic'>
- <h5 class='figure'>Archive File</h5>
- <p class='bcode w500'>
- juneau-examples-core-9.0-B1.zip
- </p>
-
- <p>
- The <code>juneau-examples-core</code> project contains various code examples for using the core APIs.
- </p>
-
- <img class='bordered' src='images/juneau-examples-core.Installing.3.png' style='width:400px'>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-examples-core'>juneau-examples-core</a>
- </ul>
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-EXAMPLES-REST ============================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-examples-rest'>juneau-examples-rest</h5>
- <div class='topic'>
- <h5 class='figure'>Archive File</h5>
- <p class='bcode w500'>
- juneau-examples-rest-9.0-B1.zip
- </p>
-
- <p>
- The <code>juneau-examples-rest</code> project includes various examples of REST resources written
- using Juneau.
- </p>
- <p>
- When running, it produces the following REST interface:
- </p>
-
- <p class='bcode w800'>
- http://localhost:10000
- </p>
- <img class='bordered w800' src='images/juneau-examples-rest.RootResources.1.png'>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-examples-rest'>juneau-examples-rest</a>
- </ul>
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-EXAMPLES-REST-JETTY ======================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-examples-rest-jetty'>juneau-examples-rest-jetty</h5>
- <div class='topic'>
- <h5 class='figure'>Archive File</h5>
- <p class='bcode w500'>
- juneau-examples-rest-jetty-9.0-B1.zip
- </p>
-
- <p>
- The <code>juneau-examples-rest-jetty</code> project includes everything you need create a Samples REST
- microservice in an Eclipse workspace and build it as an executable jar.
- </p>
-
- <img class='bordered' src='images/juneau-examples-rest-jetty.Installing.3.png' style='width:400px'>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a>
- </ul>
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-EXAMPLES-REST-SPRINGBOOT =================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-examples-rest'>juneau-examples-rest-springboot</h5>
- <div class='topic'>
- <h5 class='figure'>Archive File</h5>
- <p class='bcode w500'>
- juneau-examples-rest-springboot9.0-B1.zip
- </p>
-
- <p>
- The <code>juneau-examples-rest-springboot</code> library contains the same examples as <code>juneau-examples-rest</code>
- but also includes the following:
- </p>
- <ul class='spaced-list'>
- <li>
- A starter class for invoking the examples using Spring Boot.
- <li>
- A resource resolver for resolving REST resources as injectable beans.
- <li>
- A POM that extends from <code>spring-boot-starter-parent</code> that allows you to build a fully-shaded executable jar.
- <li>
- Configuration files for deploying the microservice to Heroku.
- </ul>
-
- <img class='bordered' src='images/juneau-examples-rest-springboot.Installing.3.png' style='width:400px'>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-examples-rest-springboot'>juneau-examples-rest-springboot</a>
- </ul>
- </div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/content/issues.html b/content/issues.html
deleted file mode 100644
index 0db988216..000000000
--- a/content/issues.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <h5 class='toc'>Issues</h5>
- <p>
- Juneau has no bugs. However, in the <i>extremely unlikely</i> event that you happen to find a bug, please report it at the JIRA repository listed below.
- </p>
- <ul class='spaced-list'>
- <li><a class='doclink' href='https://issues.apache.org/jira/browse/JUNEAU' target="_top">JIRA</a>
- </ul>
- <p>
- External developers should use the following categories for requests:
- </p>
- <ul class='spaced-list'>
- <li><l>Bug</l> - Broken functionality.
- <li><l>Feature Request</l> - Requests for brand new functionality.
- <li><l>Improvement</l> - Requests for improvements to existing functionality.
- <li><l>Wish</l> - Trivial requests.
- </ul>
- <h5 class='toc'>Security Vulnerabilities</h5>
- <p>
- 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>
-</body>
-</html>
diff --git a/content/marshall.html b/content/marshall.html
deleted file mode 100644
index 28e356649..000000000
--- a/content/marshall.html
+++ /dev/null
@@ -1,557 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-MARSHALL =================================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-marshall'>juneau-marshall</h5>
- <div class='topic'>
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-marshall<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-marshall-9.0-B1.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.marshall_9.0-B1.jar
- </p>
-
- <p>
- The <code>juneau-marshall</code> library includes easy-to-use and highly customizable serializers and parsers
- based around a common API.
- </p>
- <p>
- <a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#Glossaries.LanguageSupport'>Glossary > Language Support</a>
- </p>
- <p>
- Features include:
- </p>
- <ul class='spaced-list'>
- <li>Serializers can send output directly to Writers, OutputStreams, Files, Strings, or byte arrays.
- <li>Parsers can receive input directly from Readers, InputStreams, Files, Strings, or byte arrays.
- <li>Parsers can reconstruct arbitrarily complex data structures consisting of maps, collections, beans, and other POJOs.
- <li>Serializers and parsers do not use intermediate DOMs! POJOs are serialized directly to streams and parsed back directly to POJOs, making them extremely efficient and fast.
- <li>Supported languages are highly-customizable and powerful. For example, JSON support includes:
- <ul>
- <li>Support for variants such as LAX syntax (unquoted attributes and single quotes).
- <li>Support for embedded Javascript comments.
- <li>Fully RFC1759 compliant.
- <li>20% faster than Jackson.
- </ul>
- </ul>
- <hr>
- <p>
- The default serializers can often be used to serialize POJOs in a single line of code:
- </p>
- <p class='bcode w800'>
- <jc>// A simple bean</jc>
- <jk>public class</jk> Person {
- <jk>public</jk> String <jf>name</jf> = <js>"John Smith"</js>;
- <jk>public int</jk> <jf>age</jf> = 21;
- }
-
- Person <jv>person</jv> = <jk>new</jk> Person(); <jc>// An arbitrary POJO</jc>
-
- <jc>// Produces:
- // "{name:'John Smith',age:21}"</jc>
- String <jv>laxJson</jv> = SimpleJsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // "{"name":"John Smith","age":21}"</jc>
- String <jv>strictJson</jv> = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // <object>
- // <name>John Smith</name>
- // <age>21</age>
- // </object></jc>
- String <jv>xml</jv> = XmlSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // <table>
- // <tr><td>name</td><td>John Smith</td></tr>
- // <tr><td>age</td><td>21</td></tr>
- // </table></jc>
- String <jv>html</jv> = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Same as Html, but wraps it in HTML and BODY elements with page title/description/links:</jc>
- String <jv>htmlDoc</jv> = HtmlDocSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // name='John+Smith'&age=21</jc>
- String <jv>urlEncoding</jv> = UrlEncodingSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // (name='John Smith',age=21)</jc>
- String <jv>uon</jv> = UonSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // 82 A4 name AA 4A John Smith 68 A3 age 15</jc>
- <jk>byte</jk>[] <jv>messagePack</jv> = MsgPackSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall.Serializers'>juneau-marshall > Serializers</a>
- </ul>
-
- <hr>
-
- <p>
- Parsing back into POJOs is equally simple for any of the supported languages shown above.
- Language fragments are also supported.
- </p>
- <p>
- JSON parsing shown here:
- </p>
- <p class='bcode w800'>
- <jc>// Use one of the predefined parsers.</jc>
- ReaderParser <jv>parser</jv> = JsonParser.<jsf>DEFAULT</jsf>;
-
- <jc>// Parse a JSON object (creates a generic ObjectMap).</jc>
- String <jv>json</jv> = <js>"{name:'John Smith',age:21}"</js>;
- Map <jv>map</jv> = <jv>parser</jv>.parse(<jv>json</jv>, Map.<jk>class</jk>);
-
- <jc>// Parse a JSON string.</jc>
- <jv>json</jv> = <js>"'foobar'"</js>;
- String <jv>string</jv> = <jv>parser</jv>.parse(<jv>json</jv>, String.<jk>class</jk>);
-
- <jc>// Parse a JSON number as a Long or Float.</jc>
- <jv>json</jv> = <js>"123"</js>;
- Long <jv>_long</jv> = <jv>parser</jv>.parse(<jv>json</jv>, Long.<jk>class</jk>);
- Float <jv>_float</jv> = <jv>parser</jv>.parse(<jv>json</jv>, Float.<jk>class</jk>);
-
- <jc>// Parse a JSON object as a bean.</jc>
- <jv>json</jv> = <js>"{name:'John Smith',age:21}"</js>;
- Person <jv>person</jv> = <jv>parser</jv>.parse(<jv>json</jv>, Person.<jk>class</jk>);
-
- <jc>// Parse a JSON object as a HashMap<String,Person>.</jc>
- <jv>json</jv> = <js>"{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}"</js>;
- Map<String,Person> <jv>personMap</jv> = <jv>parser</jv>.parse(
- <jv>json</jv>,
- HashMap.<jk>class</jk>,
- String.<jk>class</jk>,
- Person.<jk>class</jk>
- );
-
- <jc>// Parse a JSON object as a HashMap<String,LinkedList<Person>>.</jc>
- <jv>json</jv> = <js>"{a:[{name:'John Smith',age:21},{name:'Joe Smith',age:42}]}"</js>;
- Map<String,List<Person>> <jv>personListMap</jv> = <jv>parser</jv>.parse(
- <jv>json</jv>,
- HashMap.<jk>class</jk>,
- String.<jk>class</jk>,
- LinkedList.<jk>class</jk>,
- Person.<jk>class</jk>
- );
-
- <jc>// Parse a JSON array of integers as a Collection of Integers or int[] array.</jc>
- <jv>json</jv> = <js>"[1,2,3]"</js>;
- List<Integer> <jv>integerList</jv> = <jv>parser</jv>.parse(
- <jv>json</jv>,
- LinkedList.<jk>class</jk>,
- Integer.<jk>class</jk>
- );
- <jk>int</jk>[] <jv>intList</jv> = <jv>parser</jv>.parse(
- <jv>json</jv>,
- <jk>int</jk>[].<jk>class</jk>
- );
-
- <jc>// Parse arbitrary input into ObjectMap or ObjectList objects
- // (similar to JSONObject/JSONArray but generalized for all languages).</jc>
- <jv>json</jv> = <js>"{name:'John Smith',age:21}"</js>;
- OMap <jv>oMap</jv> = <jv>parser</jv>.parse(<jv>json</jv>, OMap.<jk>class</jk>);
- <jk>int</jk> age = <jv>oMap</jv>.getInt(<js>"age"</js>);
-
- <jv>json</jv> = <js>"[1,true,null]"</js>;
- OList <jv>oList</jv> = <jv>parser</jv>.parse(<jv>json</jv>, ObjectList.<jk>class</jk>);
- <jk>boolean</jk> <jv>boolean</jv> = <jv>oList</jv>.getBoolean(1);
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall.Parsers'>juneau-marshall > Parsers</a>
- </ul>
- <hr>
- <p>
- Marshalls are pairings of serializers and parsers in a single class for even simpler code:
- </p>
- <p class='bcode w800'>
- Person <jv>person</jv> = <jk>new</jk> Person(); <jc>// An arbitrary POJO</jc>
-
- <jc>// Serialize</jc>
- String <jv>json</jv> = Json.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>simpleJson</jv> = SimpleJson.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>xml</jv> = Xml.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>html</jv> = Html.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>uon</jv> = Uon.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>urlEncoding</jv> = UrlEncoding.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>openapi</jv> = OpenApi.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- <jk>byte</jk>[] <jv>msgPack</jv> = MsgPack.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>rdfXml</jv> = RdfXml.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>rdfXmlAbbrev</jv> = RdfXmlAbbrev.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>n3</jv> = N3.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>nTuple</jv> = NTuple.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
- String <jv>turtle</jv> = Turtle.<jsf>DEFAULT</jsf>.write(<jv>person</jv>);
-
- <jc>// Parse</jc>
- <jv>person</jv> = Json.<jsf>DEFAULT</jsf>.read(<jv>json</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = Xml.<jsf>DEFAULT</jsf>.read(<jv>xml</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = Html.<jsf>DEFAULT</jsf>.read(<jv>html</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = Uon.<jsf>DEFAULT</jsf>.read(<jv>uon</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = UrlEncoding.<jsf>DEFAULT</jsf>.read(<jv>urlEncoding</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = OpenApi.<jsf>DEFAULT</jsf>.read(<jv>openapi</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = MsgPack.<jsf>DEFAULT</jsf>.read(<jv>msgPack</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = RdfXml.<jsf>DEFAULT</jsf>.read(<jv>rdfXml</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = RdfXmlAbbrev.<jsf>DEFAULT</jsf>.read(<jv>rdfXmlAbbrev</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = N3.<jsf>DEFAULT</jsf>.read(<jv>n3</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = NTuple.<jsf>DEFAULT</jsf>.read(<jv>nTuple</jv>, Person.<jk>class</jk>);
- <jv>person</jv> = Turtle.<jsf>DEFAULT</jsf>.read(<jv>turtle</jv>, Person.<jk>class</jk>);
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall.Marshalls'>juneau-marshall > Marshalls</a>
- </ul>
-
- <hr>
-
- <p>
- Serializers and parsers are builder-based. Build from scratch or clone existing instances. Lots of configuration options available for all the languages.
- </p>
- <p class='bcode w800'>
- <jc>// Create a serializer from scratch programmatically using a builder.</jc>
- JsonSerializer <jv>serializer</jv> = JsonSerializer.<jsm>create</jsm>()
- .simple() <jc>// Simple mode</jc>
- .sq() <jc>// Use single quotes</jc>
- .swaps( <jc>// Swap unserializable classes with surrogate POJOs</jc>
- IteratorSwap.<jk>class</jk>, <jc>// Iterators swapped with lists</jc>
- ByteArrayBase64Swap.<jk>class</jk>, <jc>// byte[] swapped with base-64 encoded strings</jc>
- CalendarSwap.ISO8601DT.<jk>class</jk> <jc>// Calendars swapped with ISO8601-compliant strings</jc>
- )
- .timeZone(TimeZone.<jsf>GMT</jsf>) <jc>// For timezone-specific serialization</jc>
- .locale(Locale.<jsf>JAPAN</jsf>) <jc>// For locale-specific serialization</jc>
- .sortCollections()
- .sortProperties()
- .keepNullProperties()
- .trimStrings()
- .beanMethodVisibility(<jsf>PROTECTED</jsf>) <jc>// Control which fields/methods are serialized</jc>
- .dictionary( <jc>// Adds type variables for resolution during parsing</jc>
- MyBeanA.<jk>class</jk>,
- MyBeanB.<jk>class</jk>
- )
- .debug() <jc>// Debug mode</jc>
- .build();
-
- <jc>// Same as above, but using declarative named properties.</jc>
- <jc>// This is how serializers and parsers are typically configured on REST servlets and clients.</jc>
- JsonSerializer <jv>serializer</jv> = JsonSerializer.<jsm>create</jsm>()
- .set(<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
- .set(<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>)
- .appendTo(<jsf>BEAN_swaps</jsf>, IteratorSwap.<jk>class</jk>)
- .appendTo(<jsf>BEAN_swaps</jsf>, ByteArrayBase64Swap.<jk>class</jk>)
- .appendTo(<jsf>BEAN_swaps</jsf>, CalendarSwap.ISO8601DT.<jk>class</jk>)
- .set(<jsf>BEAN_timeZone</jsf>, TimeZone.<jsf>GMT</jsf>)
- .set(<jsf>BEAN_locale</jsf>, Locale.<jsf>JAPAN</jsf>)
- .set(<jsf>SERIALIZER_sortCollections</jsf>, <jk>true</jk>)
- .set(<jsf>BEAN_sortProperties</jsf>, <jk>true</jk>)
- .set(<jsf>SERIALIZER_keepNullProperties</jsf>, <jk>true</jk>)
- .set(<jsf>SERIALIZER_trimStrings</jsf>, <jk>true</jk>)
- .set(<jsf>BEAN_beanMethodVisibility</jsf>, <jsf>PROTECTED</jsf>)
- .appendTo(<jsf>BEAN_dictionary</jsf>, MyBeanA.<jk>class</jk>)
- .appendTo(<jsf>BEAN_dictionary</jsf>, MyBeanB.<jk>class</jk>)
- .set(<jsf>BEAN_debug</jsf>, <jk>true</jk>)
- .build();
-
- <jc>// Clone an existing serializer and modify it to use single-quotes.</jc>
- JsonSerializer <jv>serializer</jv> = JsonSerializer.<jsf>DEFAULT</jsf>.builder()
- .sq()
- .build();
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall.ConfigurableProperties'>juneau-marshall > Configurable Properties</a>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#Glossaries.ConfigurableProperties'>Glossary > Configurable Properties</a>
- </ul>
-
- <hr>
- <p>
- Many POJOs such as primitives, beans, collections, arrays, and classes with various known constructors and methods are serializable out-of-the-box.
- For other objects, "transforms" allow you to perform various mutations on them before serialization and after parsing.
- </p>
- <ul class='spaced-list'>
- <li>Transforms
- <ul>
- <li>Bean filters - Control how bean properties are handled (naming conventions, ordering, visibility,...).
- <li>POJO swaps - Replace non-serializable POJOs with serializable equivalents.
- <br>Predefined swaps provided for common cases: <code>ByteArrayBase64Swap</code>, 50+ variants of Calendar/Date swaps, <code>Enumeration/Iterator</code> swaps.
- </ul>
- <li>Annotations
- <br>Various annotations available for your POJO classes that are recognized by ALL serializers and parsers:
- <br><ja>@Bean</ja>, <ja>@Beanc</ja>, <ja>@Beanp</ja>, <ja>@BeanIgnore</ja>, <ja>@NameProperty</ja>, <ja>@ParentProperty</ja>
- <br>
- <br>Annotations also provided for language-specific behaviors where it makes sense:
- <br><ja>@Json</ja>, <ja>@Html</ja>, <ja>@Xml</ja>, <ja>@UrlEncoding</ja>
- <br>
- <br>All annotations have programmatic equivalents when you don't have access to POJO source.
-
- <li>Swap methods
- <br>By default, various instance and static methods and constructors are automatically detected and supported:
- <br><code>valueOf(String)</code>, <code>parse(String)</code>, <code>parseString(String)</code>, <code>forName(String)</code>, <code>forString(String)</code>,
- <code>fromString(String)</code>, <code>T(String)</code>, <code>Object swap(BeanSession)</code>, <code>T unswap(BeanSession, T.class)</code>
- </ul>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall.PojoCategories'>juneau-marshall > POJO Categories</a>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#Glossaries.Annotations'>Glossary > Annotations</a>
- </ul>
-
- <hr>
- <p>
- UON (URL-Encoded Object Notation) allows JSON-like data structures (OBJECT, ARRAY, NUMBER, BOOLEAN, STRING, NULL) in HTTP constructs (query parameters, form parameters,
- headers, URL parts) without violating RFC2396.
- This allows POJOs to be converted directly into these HTTP constructs which is not possible in other languages such as JSON.
- </p>
- <p class='bcode w800'>
- (
- id=1,
- name=<js>'John+Smith'</js>,
- uri=<js>http://sample/addressBook/person/1</js>,
- addressBookUri=<js>http://sample/addressBook</js>,
- birthDate=<js>1946-08-12T00:00:00Z</js>,
- addresses=@(
- (
- uri=<js>http://sample/addressBook/address/1</js>,
- personUri=<js>http://sample/addressBook/person/1</js>,
- id=<js>1</js>,
- street=<js>'100+Main+Street'</js>,
- city=<js>Anywhereville</js>,
- state=<js>NY</js>,
- zip=<js>12345</js>,
- isCurrent=<jk>true</jk>
- )
- )
- )
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall.UonDetails'>juneau-marshall > UON Details</a>
- </ul>
-
- <hr>
- <p>
- Lots of shortcuts are provided throughout the API to simplify tasks, and the APIs are often useful for debugging and logging purposes as well:
- </p>
- <p class='bcode w800'>
- <jc>// Create JSON strings from scratch using fluent-style code.</jc>
- String <jv>jsonObject</jv> = <jk>new</jk> OMap().append(<js>"foo"</js>,<js>"bar"</js>).toString();
- String <jv>jsonArray</jv> = <jk>new</jk> OList().append(<js>"foo"</js>).append(123).append(<jk>null</jk>).toString();
-
- <jc>// Create maps and beans directly from JSON.</jc>
- Map<String,Object> <jv>myMap</jv> = <jk>new</jk> OMap(<js>"{foo:'bar'}"</js>);
- List<Object> <jv>myList</jv> = <jk>new</jk> OList(<js>"['foo',123,null]"</js>);
-
- <jc>// Load a POJO from a JSON file.</jc>
- MyPojo <jv>myPojo</jv> = JsonParser.<jsf>DEFAULT</jsf>.parse(<jk>new</jk> File(<js>"myPojo.json"</js>));
-
- <jc>// Serialize POJOs and ignore exceptions (great for logging)</jc>
- String <jv>json</jv> = SimpleJson.<jsf>DEFAULT</jsf>.toString(<jv>myPojo</jv>);
-
- <jc>// Dump a POJO to the console.</jc>
- SimpleJson.<jsf>DEFAULT</jsf>.println(<jv>myPojo</jv>);
-
- String <jv>message</jv> = <jk>new</jk> StringMessage(<js>"My POJO in {0}: {1}"</js>, <js>"JSON"</js>, <jk>new</jk> StringObject(<jv>myPojo</jv>)).toString();
-
- <jc>// Create a 'REST-like' wrapper around a POJO.</jc>
- <jc>// Allows you to manipulate POJO trees using URIs and GET/PUT/POST/DELETE commands.</jc>
- PojoRest <jv>pojoRest</jv> = <jk>new</jk> PojoRest(<jv>myPojo</jv>);
- <jv>pojoRest</jv>.get(String.<jk>class</jk>, <js>"addressBook/0/name"</js>);
- <jv>pojoRest</jv>.put(<js>"addressBook/0/name"</js>, <js>"John Smith"</js>);
- </p>
-
- <ul class='seealso'>
- <ul class='doctree'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall.ObjectMap'>juneau-marshall > ObjectMap and ObjectList</a>
- </ul>
-
- <hr>
- <p>
- <code>SerializerGroup</code> and <code>ParserGroup</code> classes allow serializers and parsers
- to be retrieved by W3C-compliant HTTP <code>Accept</code> and <code>Content-Type</code> values:
- </p>
- <p class='bcode w800'>
- <jc>// Construct a new serializer group with configuration parameters that get applied to all serializers.</jc>
- SerializerGroup <jv>serializerGroup</jv> = SerializerGroup.<jsm>create</jsm>()
- .append(JsonSerializer.<jk>class</jk>, UrlEncodingSerializer.<jk>class</jk>);
- .ws() <jc>// or .setUseWhitespace(true) or .set(SERIALIZER_useWhitespace, true)</jc>
- .swaps(CalendarSwap.ISO8601DT.<jk>class</jk>) <jc>// or .appendTo(BEAN_pojoSwaps, CalendarSwap.ISO8601DT.class)</jc>
- .build();
-
- <jc>// Find the appropriate serializer by Accept type and serialize our POJO to the specified writer.</jc>
- <jc>// Fully RFC2616 compliant.</jc>
- <jv>serializerGroup</jv>.getSerializer(<js>"text/invalid, text/json;q=0.8, text/*;q:0.6, *\/*;q=0.0"</js>)
- .serialize(<jv>person</jv>, <jv>myWriter</jv>);
-
- <jc>// Construct a new parser group with configuration parameters that get applied to all parsers.</jc>
- ParserGroup <jv>parserGroup</jv> = ParserGroup.<jsm>create</jsm>()
- .append(JsonParser.<jk>class</jk>, UrlEncodingParser.<jk>class</jk>);
- .swaps(CalendarSwap.ISO8601DT.<jk>class</jk>) <jc>// or .appendTo(BEAN_pojoSwaps, CalendarSwap.ISO8601DT.class)</jc>
- .build();
-
- Person <jv>person</jv> = <jv>parserGroup</jv>.getParser(<js>"text/json"</js>).parse(<jv>myReader</jv>, Person.<jk>class</jk>);
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall.Groups'>juneau-marshall > SerializerGroups and ParserGroups</a>
- </ul>
- <p>
- The <code>org.apache.juneau.svl</code> package defines an API for a language called "Simple Variable Language".
- In a nutshell, Simple Variable Language (or SVL) is text that contains variables of the form
- <js>"$varName{varKey}"</js>.
- </p>
- <p>
- Variables can be recursively nested within the varKey (e.g. <js>"$FOO{$BAR{xxx},$BAZ{xxx}}"</js>).
- Variables can also return values that themselves contain more variables.
- </p>
- <p class='bcode w800'>
- <jc>// Use the default variable resolver to resolve a string that contains $S (system property) variables</jc>
- String <jv>myProperty</jv> = VarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"The Java home directory is $S{java.home}"</js>);
- </p>
- <p>
- The following shows how variables can be arbitrarily nested:
- </p>
- <p class='bcode w800'>
- <jc>// Look up a property in the following order:
- // 1) MYPROPERTY environment variable.
- // 2) 'my.property' system property if environment variable not found.
- // 3) 'not found' string if system property not found.</jc>
- String <jv>myproperty</jv> = VarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"$E{MYPROPERTY,$S{my.property,not found}}"</js>);
- </p>
- <p>
- SVL is a large topic on it's own.
- It is used extensively in the ConfigFile, REST and Microservice APIs.
- </p>
- <p>
- Plugging in your own variables is also easy.
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-svl'>juneau-svl</a>
- </ul>
-
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-MARSHALL-RDF =============================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-marshall-rdf'>juneau-marshall-rdf</h5>
- <div class='topic'>
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-marshall-rdf<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-marshall-rdf-9.0-B1.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.marshall.rdf_9.0-B1.jar
- </p>
-
- <p>
- The <code>juneau-marshall-rdf</code> library provides additional serializers and parsers for RDF.
- These rely on the Apache Jena library to provide support for the following languages:
- </p>
- <ul>
- <li>RDF/XML
- <li>RDF/XML-Abbrev
- <li>N-Triple
- <li>Turtle
- <li>N3
- </ul>
- <p>
- The serializers and parsers work identically to those in <code>juneau-marshall</code>, but are
- packaged separately so that you don't need to pull in the Jena dependency unless you need it.
- </p>
-
- <p class='bcode w800'>
- <jc>// A simple bean</jc>
- <jk>public class</jk> Person {
- <jk>public</jk> String <jf>name</jf> = <js>"This is RDF format."</js>;
- <jk>public</jk> String <jf>id</jf> = <js>"foo"</js>;
- }
-
- <jc>// Serialize a bean to various RDF languages</jc>
- Person <jv>person</jv> = <jk>new</jk> Person();
-
- <jc>// Produces:
- // <rdf:RDF
- // xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- // xmlns:jp="http://www.apache.org/juneaubp/"
- // xmlns:j="http://www.apache.org/juneau/">
- // <rdf:Description>
- // <jp:name>This is RDF format.</jp:name>
- // <jp:id>foo</jp:id>
- // </rdf:Description>
- // </rdf:RDF></jc>
- String <jv>rdfXml</jv> = RdfXmlAbbrevSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // @prefix jp: <http://www.apache.org/juneaubp/> .
- // @prefix j: <http://www.apache.org/juneau/> .
- // [] jp:id "foo" ;
- // jp:name "This is RDF format." .</jc>
- String <jv>rdfN3</jv> = N3Serializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // _:A3bf53c85X3aX157cf407e2dX3aXX2dX7ffd <http://www.apache.org/juneaubp/name> "This is RDF format." .
- // _:A3bf53c85X3aX157cf407e2dX3aXX2dX7ffd <http://www.apache.org/juneaubp/age> "rdf" .</jc>
- String <jv>rdfNTriple</jv> = NTripleSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
-
- <jc>// Produces:
- // @prefix jp: <http://www.apache.org/juneaubp/> .
- // @prefix j: <http://www.apache.org/juneau/> .
- // [] jp:id "foo" ;
- // jp:name "This is RDF format." .</jc>
- String <jv>rdfTurtle</jv> = TurtleSerializer.<jsf>DEFAULT</jsf>.serialize(<jv>person</jv>);
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-marshall-rdf'>juneau-marshall-rdf</a>
- </ul>
- </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/content/microservice.html b/content/microservice.html
deleted file mode 100644
index 2f3fa4d61..000000000
--- a/content/microservice.html
+++ /dev/null
@@ -1,192 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- =========================================================================================================== -->
- <!-- === JUNEAU MICROSERVICE =================================================================================== -->
- <!-- =========================================================================================================== -->
-
- <h5 class='toc' id='juneau-microservice'>juneau-microservice</h5>
- <div>
-
- <p>
- Microservices combine all the functionality of the core, server, and client APIs to provide truly powerful
- and easy-to-use REST interfaces with minimal overhead.
- </p>
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-MICROSERVICE-CORE ========================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-microservice-core'>juneau-microservice-core</h5>
- <div>
-
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-microservice-core<xt></artifactId></xt>
- <xt><version></xt>8.1.0<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-microservice-core-8.1.0.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.microservice.core_8.1.0.jar
- </p>
-
- <p>
- Juneau Microservice is an API for creating stand-alone executable jars with automatic support for
- Juneau configurations and console commands.
- </p>
-
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- <jk>public class</jk> App {
- <jk>public static void</jk> main(String[] args) {
- Microservice
- .<jsm>create</jsm>() <jc>// Create builder.</jc>
- .args(args) <jc>// Pass in args.</jc>
- .build() <jc>// Create microservice.</jc>
- .start() <jc>// Start microservice.</jc>
- ;
- }
- }
- </p>
-
- <h5 class='section'>More Information:</h5>
- <ul class='doctree'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-microservice-core'>juneau-microservice-core</a>
- </ul>
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-MICROSERVICE-JETTY ========================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-microservice-jetty'>juneau-microservice-jetty</h5>
- <div>
-
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-microservice-jetty<xt></artifactId></xt>
- <xt><version></xt>8.1.0<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-microservice-jetty-8.1.0.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.microservice.jetty_8.1.0.jar
- </p>
-
- <p>
- Juneau Microservice Jetty is an API for creating stand-alone executable jars that can be used to
- start lightweight configurable REST interfaces with all the power of the Juneau REST server and client APIs.
- </p>
- <p>
- The API builds upon the <l>juneau-microservice-core</l> library to produce easy-to-create and
- easy-to-use microservices in a standard Java 1.8+ environment.
- </p>
-
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- <jk>public class</jk> App {
- <jk>public static void</jk> main(String[] args) {
- JettyMicroservice
- .<jsm>create</jsm>() <jc>// Create builder.</jc>
- .args(args) <jc>// Pass in args.</jc>
- .servlets(RootResource.<jk>class</jk>) <jc>// A Juneau RestServlet class.</jc>
- .build() <jc>// Create microservice.</jc>
- .start() <jc>// Start microservice.</jc>
- ;
- }
- }
- </p>
-
- <h5 class='section'>More Information:</h5>
- <ul class='doctree'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-microservice-jetty'>juneau-microservice-jetty</a>
- </ul>
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === MY_JETTY_MICROSERVICE ============================================================================= -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='my-jetty-microservice'>my-jetty-microservice</h5>
- <div>
- <h5 class='figure'>Starter Project Zip</h5>
- <p class='bcode w500'>
- my-jetty-microservice-8.1.0.zip
- </p>
-
- <p>
- The <l>my-jetty-microservice.zip</l> file is a predefined starter Eclipse project for developing
- REST microservices using the <l>juneau-microservice-jetty</l> library.
- </p>
-
- <img class='bordered' src='images/my-jetty-microservice.Installing.3.png' style='width:400px'>
-
- <h5 class='section'>More Information:</h5>
- <ul class='doctree'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#my-jetty-microservice'>my-jetty-microservice</a>
- </ul>
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === MY_SPRINGBOOG_MICROSERVICE ======================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='my-springboot-microservice'>my-springboot-microservice</h5>
- <div>
- <h5 class='figure'>Starter Project Zip</h5>
- <p class='bcode w500'>
- my-springboot-microservice-8.1.0.zip
- </p>
-
- <p>
- The <l>my-springboot-microservice.zip</l> file is a predefined starter Eclipse project for developing
- REST microservices using the <l>juneau-rest-server-springboot</l> library with Spring Boot.
- </p>
-
- <img class='bordered' src='images/my-springboot-microservice.Installing.3.png' style='width:400px'>
-
- <h5 class='section'>More Information:</h5>
- <ul class='doctree'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#my-springboot-microservice'>my-springboot-microservice</a>
- </ul>
- </div>
-
- </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/content/petstore.html b/content/petstore.html
deleted file mode 100644
index d5896adab..000000000
--- a/content/petstore.html
+++ /dev/null
@@ -1,555 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- @import url("../content/styles/juneau-code.css");
- @import url("../content/styles/juneau-doc.css");
- p { max-width: 800px;}
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
-<h2 class='topic'>PetStore Application</h2>
-<div class='topic'>
- <p>
- The <c>PetStore</c> application is an functional application meant to demonstrate using Juneau with other technologies
- such as Spring Boot, Spring Data, Bootstrap, and Datatables to create fully-functional applications with end-to-end
- REST integration support.
- </p>
- <p>
- What makes Juneau unique is the ability to create Java interfaces that behave just like RPC, but using REST
- as the underlying protocol. And the technology it not tied to any platform so it can be used in any environment
- by simply pulling in Maven dependencies. The server-side need only provide the ability to host a servlet.
- </p>
- <p>
- Visit the <a class='doclink' href='https://github.com/apache/juneau-petstore'>GitHub project</a> hosting the application.
- </p>
- <p>
- The project is broken down into the following subprojects:
- </p>
- <ul class='spaced-list'>
- <li><c>juneau-petstore-api</c> - Contains the Java interface and DTOs for the petstore application.
- <li><c>juneau-petstore-server</c> - Contains the server-side Java implementation of the petstore Java interface as a REST resource.
- <li><c>juneau-petstore-client</c> - Contains the client-side Java proxy of the petstore Java interface.
- </ul>
-
- <h3 class='topic'>Running the Petstore App</h3>
- <div class='topic'>
- <ul class='spaced-list'>
- <li>
- Install <a class='doclink' href='https://docs.docker.com/install/'>docker</a> on your machine.
- </li>
- <li>
- <p>
- Clone the Petstore project on your machine.
- </p>
- <p class='bcode w800'>
- git clone https://github.com/apache/juneau-petstore.git
- </p>
- </li>
- <li>
- <p>
- Open terminal inside the project directory and run the below command to start the app.
- </p>
- <p class='bcode w800'>
- docker build . -t petstore && docker run -p 5000:5000 petstore
- </p>
- </li>
- </ul>
- </div>
-
- <h3 class='topic'>juneau-petstore-api</h3>
- <div class='topic'>
- <p>
- The <c>juneau-petstore-api</c> module contains the Java interface of our application and the DTOs that go along
- with it. These classes are meant to be shared between the server and client side code.
- </p>
-
- <p>
- The <c>PetStore</c> class is our primary class for defining our application. It's a standard Java interface with
- annotations used to describe how the methods map to REST calls.
- </p>
- <h5 class='figure'>PetStore.java</h5>
- <p class='bcode w800'>
- <ja>@Remote</ja>(path=<js>"/petstore"</js>)
- <jk>public interface</jk> PetStore {
-
- <ja>@RemoteMethod</ja>(method=<jsf>GET</jsf>, path=<js>"/pet"</js>)
- <jk>public</jk> Collection<Pet> getPets() <jk>throws</jk> NotAcceptable;
-
- <ja>@RemoteMethod</ja>(path=<js>"/pet/{petId}"</js>)
- <jk>public</jk> Pet getPet(
- <ja>@Path</ja>(
- name=<js>"petId"</js>,
- description=<js>"ID of pet to return"</js>,
- example=<js>"123"</js>
- )
- <jk>long</jk> <jv>petId</jv>
- ) <jk>throws</jk> IdNotFound, NotAcceptable;
-
- <ja>@RemoteMethod</ja>(method=<jsf>POST</jsf>, path=<js>"/pet"</js>)
- <jk>public long</jk> createPet(
- <ja>@Body</ja>(
- description=<js>"Pet object to add to the store"</js>
- ) CreatePet <jv>pet</jv>
- ) <jk>throws</jk> IdConflict, NotAcceptable, UnsupportedMediaType;
-
- ...
- }
- </p>
- <p>
- <ja>@Remote</ja> and <ja>@RemoteMethod</ja> are client-side annotations used to map the method calls to REST
- and will be describe in the client code section.
- </p>
- <p>
- <ja>@Path</ja> and <ja>@Body</ja> are used by both the client and server side code to map to REST artifacts on both
- sides.
- </p>
- <p>
- Both sets of annotations are provided by pulling in the Juneau dependency below:
-
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-marshall<xt></artifactId></xt>
- <xt><version></xt>8.1.0<xt></version></xt>
- <xt></dependency></xt>
- </p>
- <p>
- The <c>Pet</c> class is a DTO that gets serialized over the REST connection. It is also annotated with JPA annotations
- so that they can easily be stored in a JPA datastore on the server side.
- </p>
- <h5 class='figure'>Pet.java</h5>
- <p class='bcode w800'>
- <ja>@Bean</ja>(typeName=<js>"Pet"</js>, fluentSetters=<jk>true</jk>, properties=<js>"id,species,name,tags,price,status"</js>)
- <ja>@Entity</ja>(name=<js>"PetstorePet"</js>)
- <jk>public class</jk> Pet {
-
- <ja>@Column @Id @GeneratedValue</ja>
- <ja>@Schema</ja>(description=<js>"Unique identifier for this pet."</js>)
- <ja>@Html</ja>(link=<js>"servlet:/pet/{id}"</js>)
- <jk>private long</jk> <jf>id</jf>;
-
- <ja>@Column</ja>(length=50)
- <ja>@Schema</ja>(description=<js>"Pet name."</js>, minLength=3, maxLength=50)
- <jk>private</jk> String <jf>name</jf>;
-
- <ja>@Column</ja>
- <ja>@Schema</ja>(description=<js>"Price of pet."</js>, maximum=<js>"999.99"</js>)
- <ja>@Html</ja>(render=PriceRender.<jk>class</jk>)
- <jk>private float</jk> <jf>price</jf>;
-
- ...
- }
- </p>
- <p>
- The annotations here are a combination of Juneau annotations for controlling marshalling (<ja>@Bean</ja>, <ja>@Html</ja>)
- and documentation/validation (<ja>@Schema</ja>), and JPA annoations for database persistence (<ja>@Entity</ja>, <ja>@Column</ja>).
- </p>
- <div class='info'>
- Most applications may choose to have separate classes for DTOs and JPA beans since you typically are not going to want
- to expose server-side details to client-side code. In these examples however they were combined into the same classes for brevity.
- </div>
- </div>
-
- <h3 class='topic'>juneau-petstore-client</h3>
- <div class='topic'>
- <p>
- The <c>juneau-petstore-client</c> module contains a single <c>Main</c> class used to instantiate the proxy against
- our remote REST interface using the Java interface described above.
- </p>
-
- <h5 class='figure'>Main.java</h5>
- <p class='bcode w800'>
- <jk>public class</jk> Main {
-
- <jk>public static void</jk> main(String[] <jv>args</jv>) {
-
- <jc>// Create a RestClient with JSON serialization support.</jc>
- RestClient <jv>restClient</jv> = RestClient.<jsm>create</jsm>().simpleJson().build();
-
- <jc>// Instantiate our proxy.</jc>
- PetStore <jv>petStore</jv> = <jv>restClient</jv>.getRemote(PetStore.<jk>class</jk>, <js>"http://localhost:5000"</js>);
-
- <jc>// Print out the pets in the store.</jc>
- Collection<Pet> <jv>pets</jv> = <jv>petStore</jv>.getPets();
-
- <jc>// Pretty-print them to STDOUT.</jc>
- SimpleJson.<jsf>DEFAULT_READABLE</jsf>.println(<jv>pets</jv>);
- }
- }
- </p>
- <p>
- Notice how little code is necessary to construct a remote proxy.
- </p>
- </div>
-
- <h3 class='topic'>juneau-petstore-server</h3>
- <div class='topic'>
- <p>
- The <c>juneau-petstore-server</c> module contains all of the guts of the application. It's a standard Spring Boot
- application with Juneau integration support.
- </p>
-
- <h5 class='figure'>App.java</h5>
- <p class='bcode w800'>
- <ja>@SpringBootApplication</ja>
- <jk>public class</jk> App {
-
- <jk>public static void</jk> main(String[] <jv>args</jv>) {
- <jk>new</jk> App().start(<jv>args</jv>);
- }
-
- <jk>protected void</jk> start(String[] <jv>args</jv>) {
- <jk>new</jk> SpringApplicationBuilder(App.<jk>class</jk>)
- .initializers(<jk>new</jk> JuneauRestInitializer(App.<jk>class</jk>))
- .run(<jv>args</jv>);
- }
- }
- </p>
-
- <h5 class='figure'>AppConfiguration.java</h5>
- <p class='bcode w800'>
- <ja>@Configuration</ja>
- <jk>public class</jk> AppConfiguration {
-
- <ja>@Bean</ja>
- <jk>public</jk> PetStoreService petStoreService() {
- <jk>return new</jk> PetStoreService();
- }
-
- <ja>@Bean</ja>
- <ja>@JuneauRestRoot</ja>
- <jk>public</jk> RootResources rootResources() {
- <jk>return new</jk> RootResources();
- }
-
- <ja>@Bean</ja>
- <jk>public</jk> PetStoreResource petStoreResource() {
- <jk>return new</jk> PetStoreResource();
- }
- }
- </p>
- <p>
- The <c>JuneauRestInitializer</c> is used to allow Juneau resource classes to reference child Spring beans.
- It is only required if you wish to use injection on your child resources.
- </p>
-
- <p>
- The <c>RootResources</c> class is the top-level entry point into the REST API. It allows us to group
- child resources. In our case though we only have one child resource...<c>PetStoreResource</c>:
- </p>
-
- <h5 class='figure'>RootResources.java</h5>
- <p class='bcode w800'>
- <ja>@Rest</ja>(
- path=<js>"/*"</js>,
- title=<js>"Root resources"</js>,
- description=<js>"Example of a router resource page."</js>,
- children={
- PetStoreResource.<jk>class</jk>
- }
- )
- <ja>@HtmlDocConfig</ja>(
- widgets={
- ContentTypeMenuItem.<jk>class</jk>,
- ThemeMenuItem.<jk>class</jk>
- },
- navlinks={
- <js>"options: ?method=OPTIONS"</js>,
- <js>"$W{ContentTypeMenuItem}"</js>,
- <js>"$W{ThemeMenuItem}"</js>,
- <js>"source: $C{Source/gitHub}/org/apache/juneau/petstore/rest/$R{servletClassSimple}.java"</js>
- },
- aside={
- <js>"<div style='max-width:400px' class='text'>"</js>,
- <js>" <p>This is an example of a 'router' page that serves as a jumping-off point to child resources.</p>"</js>,
- <js>" <p>Resources can be nested arbitrarily deep through router pages.</p>"</js>,
- <js>" <p>Note the <span class='link'>options</span> link provided that lets you see the generated swagger doc for this page.</p>"</js>,
- <js>" <p>Also note the <span class='link'>sources</span> link on these pages to view the source code for the page.</p>"</js>,
- <js>" <p>All content on pages in the UI are serialized POJOs. In this case, it's a serialized array of beans with 2 properties, 'name' and 'description'.</p>"</js>,
- <js>" <p>Other features (such as this aside) are added through annotations.</p>"</js>,
- <js>"</div>"</js>
- }
- )
- <ja>@SerializerConfig</ja>(
- <jc>// For testing purposes, we want to use single quotes in all the serializers so it's easier to do simple
- // String comparisons.
- // You can apply any of the Serializer/Parser/BeanContext settings this way.</jc>
- quoteChar=<js>"'"</js>
- )
- <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletGroup {
- <jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L;
- }
- </p>
- <p>
- This page renders as follows:
- </p>
-
- <p class='bcode w800'>
- http://localhost:5000
- </p>
- <img class='bordered w800' src='petstore/RootResources.png'>
-
- <p>
- The <c>PetStoreResource</c> class is the REST implementation of our <c>PetStore</c> interface.
- </p>
-
- <h5 class='figure'>PetStoreResource.java</h5>
- <p class='bcode w800'>
- <ja>@Rest</ja>(
- path=<js>"/petstore"</js>,
- title=<js>"Petstore application"</js>,
- description={
- <js>"This is a sample server Petstore server based on the Petstore sample at Swagger.io."</js>,
- <js>"You can find out more about Swagger at http://swagger.io."</js>,
- },
- swagger=<ja>@ResourceSwagger</ja>(
- version=<js>"1.0.0"</js>,
- title=<js>"Swagger Petstore"</js>,
- termsOfService=<js>"You are on your own."</js>,
- contact=<ja>@Contact</ja>(
- name=<js>"Juneau Development Team"</js>,
- email=<js>"dev@juneau.apache.org"</js>,
- url=<js>"http://juneau.apache.org"</js>
- ),
- license=<ja>@License</ja>(
- name=<js>"Apache 2.0"</js>,
- url=<js>"http://www.apache.org/licenses/LICENSE-2.0.html"</js>
- ),
- externalDocs=<ja>@ExternalDocs</ja>(
- description=<js>"Find out more about Juneau"</js>,
- url=<js>"http://juneau.apache.org"</js>
- ),
- tags={
- <ja>@Tag</ja>(
- name=<js>"pet"</js>,
- description=<js>"Everything about your Pets"</js>,
- externalDocs=<ja>@ExternalDocs</ja>(
- description=<js>"Find out more"</js>,
- url=<js>"http://juneau.apache.org"</js>
- )
- ),
- <ja>@Tag</ja>(
- name=<js>"store"</js>,
- description=<js>"Access to Petstore orders"</js>
- ),
- <ja>@Tag</ja>(
- name=<js>"user"</js>,
- description=<js>"Operations about user"</js>,
- externalDocs=<ja>@ExternalDocs</ja>(
- description=<js>"Find out more about our store"</js>,
- url=<js>"http://juneau.apache.org"</js>
- )
- )
- }
- ),
- staticFiles={<js>"htdocs:/htdocs"</js>}
- )
- <ja>@HtmlDocConfig</ja>(
- widgets={
- ContentTypeMenuItem.<jk>class</jk>,
- ThemeMenuItem.<jk>class</jk>,
- },
- navlinks={
- <js>"up: request:/.."</js>,
- <js>"options: servlet:/?method=OPTIONS"</js>,
- <js>"$W{ContentTypeMenuItem}"</js>,
- <js>"$W{ThemeMenuItem}"</js>,
- <js>"source: $C{Source/gitHub}/org/apache/juneau/petstore/rest/$R{servletClassSimple}.java"</js>
- },
- head={
- <js>"<link rel='icon' href='$U{servlet:/htdocs/cat.png}'/>"</js> <jc>// Add a cat icon to the page.</jc>
- },
- header={
- <js>"<h1>$R{resourceTitle}</h1>"</js>,
- <js>"<h2>$R{methodSummary}</h2>"</js>,
- <js>"$C{PetStore/headerImage}"</js>
- },
- aside={
- <js>"<div style='max-width:400px' class='text'>"</js>,
- <js>" <p>This page shows a standard nested REST resource.</p>"</js>,
- <js>" <p>It shows how different properties can be rendered on the same bean in different views.</p>"</js>,
- <js>" <p>It also shows examples of HtmlRender classes and @BeanProperty(format) annotations.</p>"</js>,
- <js>" <p>It also shows how the Queryable converter and query widget can be used to create searchable interfaces.</p>"</js>,
- <js>"</div>"</js>
- },
- stylesheet=<js>"servlet:/htdocs/themes/dark.css"</js> <jc>// Use dark theme by default.</jc>
- )
- <jk>public class</jk> PetStoreResource <jk>extends</jk> BasicRest <jk>implements</jk> PetStore {
-
- <ja>@Inject</ja>
- <jk>private</jk> PetStoreService <jf>store</jf>;
-
- <jd>/**
- * Navigation page
- *
- * @return Navigation page contents.
- */</jd>
- <ja>@RestMethod</ja>(
- name=<jsf>GET</jsf>,
- path=<js>"/"</js>,
- summary=<js>"Navigation page"</js>
- )
- <ja>@HtmlDocConfig</ja>(
- style={
- <js>"INHERIT"</js>, <jc>// Flag for inheriting resource-level CSS.</jc>
- <js>"body { "</js>,
- <js>"background-image: url('petstore/htdocs/background.jpg'); "</js>,
- <js>"background-color: black; "</js>,
- <js>"background-size: cover; "</js>,
- <js>"background-attachment: fixed; "</js>,
- <js>"}"</js>
- }
- )
- <jk>public</jk> ResourceDescriptions getTopPage() {
- <jk>return new</jk> ResourceDescriptions()
- .append(<js>"pet"</js>, <js>"All pets in the store"</js>)
- .append(<js>"store"</js>, <js>"Orders and inventory"</js>)
- .append(<js>"user"</js>, <js>"Petstore users"</js>)
- ;
- }
-
- ...
- </p>
- <p>
- Clicking the <c>petstore</c> link on the root page takes you to our PetStore resource:
- </p>
- <p class='bcode w800'>
- http://localhost:5000/petstore
- </p>
- <img class='bordered w800' src='petstore/PetStore.png'>
-
- <p>
- The methods defined in our <c>PetStore</c> interface are implemented like so:
- </p>
- <h5 class='figure'>PetStoreResource.java</h5>
- <p class='bcode w800'>
- <ja>@Override</ja> <jc>/* PetStore */</jc>
- <ja>@RestMethod</ja>(
- name=<jsf>GET</jsf>,
- path=<js>"/pet"</js>,
- summary=<js>"All pets in the store"</js>,
- swagger=<ja>@MethodSwagger</ja>(
- tags=<js>"pet"</js>,
- parameters={
- Queryable.<jsf>SWAGGER_PARAMS</jsf> <jc>// Documents searching.</jc>
- }
- ),
- converters={Queryable.<jk>class</jk>} <jc>// Searching support.</jc>
- )
- <ja>@BeanConfig</ja>(
- bpx=<js>"Pet: tags,photo"</js> <jc>// In this view, don't serialize tags/photos properties.</jc>
- )
- <jk>public</jk> Collection<Pet> getPets() <jk>throws</jk> NotAcceptable {
- <jk>return</jk> <jf>store</jf>.getPets();
- }
-
- <ja>@Override</ja> <jc>/* PetStore */</jc>
- <ja>@RestMethod</ja>(
- name=<jsf>GET</jsf>,
- path=<js>"/pet/{petId}"</js>,
- summary=<js>"Find pet by ID"</js>,
- description=<js>"Returns a single pet"</js>,
- swagger=<ja>@MethodSwagger</ja>(
- tags=<js>"pet"</js>
- )
- )
- <jk>public</jk> Pet getPet(<jk>long</jk> <jv>petId</jv>) <jk>throws</jk> IdNotFound, NotAcceptable {
- <jk>return</jk> <jf>store</jf>.getPet(<jv>petId</jv>);
- }
-
- <ja>@Override</ja> <jc>/* PetStore */</jc>
- <ja>@RestMethod</ja>(
- name=<jsf>POST</jsf>,
- path=<js>"/pet"</js>,
- summary=<js>"Add a new pet to the store"</js>,
- swagger=<ja>@MethodSwagger</ja>(
- tags=<js>"pet"</js>
- ),
- roleGuard=<js>"ROLE_ADMIN || (ROLE_USER && ROLE_WRITABLE)"</js> <jc>// Restrict access to this method.</jc>
- )
- <jk>public long</jk> createPet(CreatePet <jv>pet</jv>) <jk>throws</jk> IdConflict, NotAcceptable, UnsupportedMediaType {
- <jk>return</jk> <jf>store</jf>.create(<jv>pet</jv>).getId();
- }
-
- ...
- </p>
- <p>
- After running the <c>Main</c> method in the client code to populate the database, the page renders as follows:
- </p>
- <p class='bcode w800'>
- http://localhost:5000/petstore/pet
- </p>
- <img class='bordered w800' src='petstore/PetStore_pets.png'>
-
- <p>
- The <l>OPTIONS</l> menu items takes you to the auto-generated Swagger UI for the application:
- </p>
- <p class='bcode w900'>
- http://localhost:10000/petstore/pet?method=OPTIONS
- </p>
- <img class='bordered w900' src='petstore/9a.png'>
- <p>
- Since we've defined tags on our annotations, the pet-related operations are all grouped under the <l>pet</l> tag:
- </p>
- <img class='bordered w900' src='petstore/9b.png'>
- <p>
- Information for all HTTP parts is automatically generated:
- </p>
- <img class='bordered w900' src='petstore/9h.png'>
- <p>
- The schema models for POJO models is available in the <l>Responses</l> section of an operation:
- </p>
- <img class='bordered w900' src='petstore/9c.png'>
- <p>
- Auto-generated examples are available for all supported languages:
- </p>
- <img class='bordered w900' src='petstore/9d.png'>
- <p>
- For example, <l>application/json+simple</l>:
- </p>
- <img class='bordered w900' src='petstore/9e.png'>
- <p>
- Examples can be derived in a number of ways. In our case, we've defined a static method on our <l>Pet</l>
- class annotated with <ja>@Example</ja>:
- </p>
- <h5 class='figure'>Pet.java</h5>
- <p class='bcode w800'>
- <ja>@Example</ja>
- <jk>public static</jk> Pet example() {
- <jk>return new</jk> Pet()
- .id(123)
- .species(Species.<jsf>DOG</jsf>)
- .name(<js>"Doggie"</js>)
- .tags(<js>"friendly"</js>,<js>"smart"</js>)
- .status(PetStatus.<jsf>AVAILABLE</jsf>);
- }
- </p>
- <p>
- Similar functionality exists for request bodies as well:
- </p>
- <img class='bordered w900' src='petstore/9f.png'>
- <p>
- At the bottom of the page is a listing of the POJO models in the app:
- </p>
- <img class='bordered w900' src='petstore/9g.png'>
-
- </div>
-</div>
-</body>
diff --git a/content/releaseNotes.html b/content/releaseNotes.html
deleted file mode 100644
index 4c689ad83..000000000
--- a/content/releaseNotes.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <a id='TOC'></a><h5 class='toc'>Release Notes</h5>
-
-<ul class='toc'>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.0'>5.0.0.0 (Jun 11, 2012)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.1'>5.0.0.1 (Jun 14, 2012)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.2'>5.0.0.2 (Sept 28, 2012)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.3'>5.0.0.3 (Oct 3, 2012)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.4'>5.0.0.4 (Oct 7, 2012)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.5'>5.0.0.5 (Oct 29, 2012)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.6'>5.0.0.6 (Oct 30, 2012)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.7'>5.0.0.7 (Jan 20, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.8'>5.0.0.8 (Jan 30, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.9'>5.0.0.9 (Feb 26, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.10'>5.0.0.10 (Mar 7, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.11'>5.0.0.11 (Mar 8, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.12'>5.0.0.12 (Mar 10, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.13'>5.0.0.13 (Mar 14, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.14'>5.0.0.14 (Mar 23, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.15'>5.0.0.15 (Mar 24, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.16'>5.0.0.16 (Mar 25, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.17'>5.0.0.17 (Mar 25, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.18'>5.0.0.18 (Mar 27, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.19'>5.0.0.19 (Apr 1, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.20'>5.0.0.20 (Apr 7, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.21'>5.0.0.21 (Apr 9, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.22'>5.0.0.22 (Apr 12, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.23'>5.0.0.23 (Apr 14, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.24'>5.0.0.24 (May 9, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.25'>5.0.0.25 (May 11, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.26'>5.0.0.26 (Jun 5, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.27'>5.0.0.27 (July 7, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.28'>5.0.0.28 (July 9, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.29'>5.0.0.29 (Aug 2, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.30'>5.0.0.30 (Aug 8, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.31'>5.0.0.31 (Aug 9, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.32'>5.0.0.32 (Oct 5, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.33'>5.0.0.33 (Oct 20, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.34'>5.0.0.34 (Nov 10, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.35'>5.0.0.35 (Nov 26, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.0.0.36'>5.0.0.36 (Dec 18, 2013)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.0'>5.1.0.0 (Jan 18, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.1'>5.1.0.1 (Jan 25, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.2'>5.1.0.2 (Apr 27, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.3'>5.1.0.3 (Jun 28, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.4'>5.1.0.4 (Aug 25, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.5'>5.1.0.5 (Sept 1, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.6'>5.1.0.6 (Sept 21, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.7'>5.1.0.7 (Oct 5, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.8'>5.1.0.8 (Oct 25, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.9'>5.1.0.9 (Dec 1, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.10'>5.1.0.10 (Dec 23, 2014)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.11'>5.1.0.11 (Feb 14, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.12'>5.1.0.12 (Mar 28, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.13'>5.1.0.13 (Apr 24, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.14'>5.1.0.14 (May 10, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.15'>5.1.0.15 (May 24, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.16'>5.1.0.16 (June 28, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.17'>5.1.0.17 (Aug 3, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.18'>5.1.0.18 (Aug 5, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.19'>5.1.0.19 (Aug 15, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.1.0.20'>5.1.0.20 (Sept 5, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.2.0.0'>5.2.0.0 (Dec 30, 2015)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#5.2.0.1'>5.2.0.1 (Mar 23, 2016)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#6.0.0'>6.0.0 (Oct 3, 2016)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#6.0.1'>6.0.1 (Jan 3, 2017)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#6.1.0'>6.1.0 (Feb 25, 2017)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#6.2.0'>6.2.0 (Apr 28, 2017)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#6.3.0'>6.3.0 (Jun 30, 2017)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#6.3.1'>6.3.1 (Aug 1, 2017)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#6.4.0'>6.4.0 (Oct 5, 2017)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.0.0'>7.0.0 (Oct 25, 2017)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.0.1'>7.0.1 (Dec 24, 2017)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.1.0'>7.1.0 (Mar 08, 2018)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.2.0'>7.2.0 (Sept 25, 2018)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.2.1'>7.2.1 (Oct 23, 2018)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.2.2'>7.2.2 (Nov 7, 2018)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.0.0'>8.0.0 (Jan 01, 2019)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.1.0'>8.1.0 (Aug 21, 2019)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.1.1'>8.1.1 (Sept 20, 2019)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.1.2'>8.1.2 (Dec 01, 2019)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.1.3'>8.1.3 (Jan 20, 2020)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.2.0'>8.2.0 (TBD)</a></p>
-<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#9.0.0'>9.0.0 (TBD)</a></p>
-</ul>
-
-</body>
-</html>
diff --git a/content/rest-client.html b/content/rest-client.html
deleted file mode 100644
index 73003a7a9..000000000
--- a/content/rest-client.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-REST-CLIENT ================================================================================ -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-rest-client'>juneau-rest-client</h5>
- <div class='topic'>
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-rest-client<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-rest-client-9.0-B1.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.rest.client_9.0-B1.jar
- </p>
-
- <p>
- Built upon the feature-rich Apache HttpClient library, the Juneau RestClient API adds support for fluent-style
- REST calls and the ability to perform marshalling of POJOs to and from HTTP parts.
- </p>
-
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- <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().code().is(200)
- .assertHeader(<js>"Content-Type"</js>).matchesSimple(<js>"application/json*"</js>)
- .getBody().as(MyBean.<jk>class</jk>);
- </p>
-
- <p>
- Breaking apart the fluent call, we can see the classes being used:
- </p>
-
- <p class='bcode w800'>
- RestClientBuilder <jv>builder</jv> = RestClient.<jsm>create</jsm>().simpleJson();
- RestClient <jv>client</jv> = <jv>builder</jv>.build();
- RestRequest <jv>req</jv> = <jv>client</jv>.get(<jsf>URI</jsf>);
- RestResponse <jv>res</jv> = <jv>req</jv>.run();
- RestResponseStatusLineAssertion <jv>statusLineAssertion</jv> = <jv>res</jv>.assertStatus();
- FluentIntegerAssertion<RestResponse> <jv>codeAssertion</jv> = <jv>statusLineAssertion</jv>.code();
- <jv>res</jv> = <jv>codeAssertion</jv>.is(200);
- FluentStringAssertion<RestResponse> <jv>headerAssertion</jv> = <jv>res</jv>.assertHeader(<js>"Content-Type"</js>);
- <jv>res</jv> = <jv>headerAssertion</jv>.matchesSimple(<js>"application/json*"</js>);
- RestResponseBody <jv>body</jv> = <jv>res</jv>.getBody();
- MyBean <jv>bean</jv> = <jv>body</jv>.as(MyBean.<jk>class</jk>);
- </p>
-
- <p>
- It additionally provides support for creating remote proxy interfaces using REST as the transport medium.
- </p>
-
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- <jc>// Define a Remote proxy for interacting with a REST interface.</jc>
- <ja>@Remote</ja>(path=<js>"/petstore"</js>)
- <jk>public interface</jk> PetStore {
-
- <ja>@RemoteMethod</ja>(method=<jsf>POST</jsf>, path=<js>"/pets"</js>)
- Pet addPet(
- <ja>@Body</ja> CreatePet <jv>pet</jv>,
- <ja>@Header</ja>(<js>"E-Tag"</js>) UUID <jv>etag</jv>,
- <ja>@Query</ja>(<js>"debug"</js>) <jk>boolean</jk> <jv>debug</jv>
- );
- }
-
- <jc>// Use a RestClient with default Simple JSON support.</jc>
- RestClient <jv>client</jv> = RestClient.<jsm>create</jsm>().simpleJson().build();
-
- PetStore <jv>store</jv> = <jv>client</jv>.getRemote(PetStore.<jk>class</jk>, <js>"http://localhost:10000"</js>);
- CreatePet <jv>createPet</jv> = <jk>new</jk> CreatePet(<js>"Fluffy"</js>, 9.99);
- Pet <jv>pet</jv> = <jv>store</jv>.addPet(<jv>createPet</jv>, UUID.<jsm>randomUUID</jsm>(), <jk>true</jk>);
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-rest-client'>juneau-rest-client</a>
- </ul>
- </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/content/rest-server.html b/content/rest-server.html
deleted file mode 100644
index 9bf748acc..000000000
--- a/content/rest-server.html
+++ /dev/null
@@ -1,450 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-REST-SERVER ================================================================================ -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-rest-server'>juneau-rest-server</h5>
- <div class='topic'>
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-rest-server<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-rest-server-9.0-B1.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.rest.server_9.0-B1.jar
- </p>
-
- <p>
- The REST server API builds upon the <code>SerializerGroup</code> and <code>ParserGroup</code> classes
- to provide annotated REST servlets that automatically negotiate the HTTP media types for you.
- Developers simply work with requests, responses, headers, path variables, query parameters, and form data as POJOs.
- It allows you to create sophisticated REST interfaces using tiny amounts of code.
- </p>
- <p>
- The end goal is to provide simple and flexible yet sophisticated REST interfaces that allow POJOs to be automatically represented as
- different content types depending on whatever the particular need:
- </p>
- <ul class='spaced-list'>
- <li>HTML for viewing POJOs in easy-to-read format in a browser.
- <li>JSON for interacting through Javascript.
- <li>XML for interacting with other applications.
- <li>RDF for interacting with triple stores.
- <li>URL-Encoding for interacting through HTML forms.
- <li>MessagePack for efficiently transmitting large amounts of data.
- </ul>
- <p>
- A simple example that supports all languages:
- </p>
- <p class='bcode w800'>
- <ja>@Rest</ja>(
- path=<js>"/systemProperties"</js>,
- title=<js>"System properties resource"</js>
- )
- <jk>public class</jk> SystemPropertiesResource <jk>extends</jk> BasicRestServlet {
-
- <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>)
- <jk>public</jk> Map getSystemProperties(<ja>@Query</ja>(<js>"sort"</js>) <jk>boolean</jk> <jv>sort</jv>) <jk>throws</jk> Throwable {
- <jk>if</jk> (<jv>sort</jv>)
- <jk>return new</jk> TreeMap(System.<jsm>getProperties</jsm>());
- <jk>return</jk> System.<jsm>getProperties</jsm>();
- }
-
- <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/{propertyName}"</js>)
- <jk>public</jk> String getSystemProperty(<ja>@Path</ja>(<js>"propertyName"</js>) String <jv>propertyName</jv>) <jk>throws</jk> Throwable {
- <jk>return</jk> System.<jsm>getProperty</jsm>(<jv>propertyName</jv>);
- }
-
- <ja>@RestMethod</ja>(name=<jsf>PUT</jsf>, path=<js>"/{propertyName}"</js>, guards=AdminGuard.<jk>class</jk>)
- <jk>public</jk> String setSystemProperty(<ja>@Path</ja>(<js>"propertyName"</js>) String <jv>propertyName</jv>, <ja>@Body</ja> String <jv>value</jv>) {
- System.<jsm>setProperty</jsm>(<jv>propertyName</jv>, <jv>value</jv>);
- <jk>return</jk> <js>"OK"</js>;
- }
-
- <ja>@RestMethod</ja>(name=<jsf>POST</jsf>, path=<js>"/"</js>, guards=AdminGuard.<jk>class</jk>)
- <jk>public</jk> String setSystemProperties(<ja>@Body</ja> java.util.Properties <jv>newProperties</jv>) {
- System.<jsm>setProperties</jsm>(<jv>newProperties</jv>);
- <jk>return</jk> <js>"OK"</js>;
- }
-
- <ja>@RestMethod</ja>(name=<jsf>DELETE</jsf>, path=<js>"/{propertyName}"</js>, guards=AdminGuard.<jk>class</jk>)
- <jk>public</jk> String deleteSystemProperty(<ja>@Path</ja>(<js>"propertyName"</js>) String <jv>propertyName</jv>) {
- System.<jsm>clearProperty</jsm>(<jv>propertyName</jv>);
- <jk>return</jk> <js>"OK"</js>;
- }
- }
- </p>
- <br><br><hr>
- <p>
- The REST API is built on top of Servlets, making them easy to deploy in any JEE environment.
- </p>
- <p>
- REST Java methods can return any of the following objects:
- <br>POJOs, <ja>@Response</ja> annotated objects, <code>Readers</code>, <code>InputStreams</code>, <code>ZipFiles</code>, <code>Redirects</code>, <code>Streamables</code>, and <code>Writables</code>.
- </p>
- <p>
- Or add your own handlers for other types.
- </p>
- <p>
- REST Java methods can be passed any of the following objects in any order:
- </p>
- <ul class='spaced-list'>
- <li>Low-level request/response objects:
- <br><code>HttpServletRequest</code>, <code>HttpServletResponse</code>, <code>RestRequest</code>, <code>RestResponse</code>.
- <li>Intermediate-level objects:
- <br><code>RequestHeaders</code>, <code>RequestQuery</code>, <code>RequestFormData</code>, <code>RequestPathMatch</code>, <code>RequestBody</code>.
- <li>All RFC 2616 request header objects:
- <br><code>Accept</code>, <code>AcceptLanguage</code>, <code>AcceptEncoding</code>...
- <li>Annotated parameters:
- <br><ja>@Header</ja>, <ja>@Query</ja>, <ja>@FormData</ja>, <ja>@Path</ja>, <ja>@PathRemainder</ja>, <ja>@Body</ja>.
- <li>Other objects:
- <br><code>Locale</code>, <code>ResourceBundle</code>, <code>MessageBundle</code>, <code>InputStream</code>, <code>OutputStream</code>, <code>Reader</code>, <code>Writer</code>...
- <li>User-defined parameter types.
- </ul>
- <p>
- Automatic error handling is provided for a variety of conditions:
- </p>
- <ul>
- <li>Automatic 401 errors (Unauthorized) on failed guards.
- <li>Automatic 404 errors (Not Found) on unmatched path patterns.
- <li>Automatic 405 errors (Method Not Implemented) on unimplemented methods.
- <li>Automatic 406 errors (Not Acceptable) when no matching serializer was found to handle the <l>Accept</l> header.
- <li>Automatic 412 errors (Precondition Failed) when all matchers failed to match.
- <li>Automatic 415 errors (Unsupported Media Type) when no matching parser was found was found to handle the <l>Content-Type</l> header.
- <li>Automatic 500 errors on uncaught exceptions.
- <li>Throw your own runtime RestException with HTTP status and response object.
- </ul>
- <p>
- Other features include:
- </p>
- <ul class='spaced-list'>
- <li>Extremely simple debuggability using nothing more than your browser.
- <li>Simplified localization support.
- <li>Configurability through external INI files.
- <li>Client-versioned responses (and other customizable heuristic matching APIs).
- <li>Automatic statistics gathering.
- <li>Define and use your own HTML stylesheets.
- <li>Lots of up-to-date documentation and examples.
- <li>MUCH MORE!....
- </ul>
- <br><hr>
- <p>
- Navigable hierarchies of REST resources are easy to set up either programmatically or through annotations.
- </p>
- <p>
- The following example is the <code>RootResources</code> class from the REST examples showing how to construct
- a grouping of resources using the <code>children()</code> annotation:
- </p>
- <p class='bcode w800'>
- <ja>@Rest</ja>(
- path=<js>"/"</js>,
- title=<js>"Root resources"</js>,
- description=<js>"Example of a router resource page."</js>,
- children={
- HelloWorldResource.<jk>class</jk>,
- PetStoreResource.<jk>class</jk>,
- DtoExamples.<jk>class</jk>,
- ConfigResource.<jk>class</jk>,
- LogsResource.<jk>class</jk>,
- ShutdownResource.<jk>class</jk>
- }
- )
- <ja>@HtmlDocConfig</ja>(
- links={
- <js>"options: ?method=OPTIONS"</js>,
- <js>"$W{ContentTypeMenuItem}"</js>,
- <js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/RootResources.java"</js>
- },
- aside={
- <js>"<div style='max-width:400px' class='text'>"</js>,
- <js>" <p>This is an example of a 'router' page that serves as a jumping-off point to child resources.</p>"</js>,
- <js>" <p>Resources can be nested arbitrarily deep through router pages.</p>"</js>,
- <js>" <p>Note the options link provided that lets you see the generated swagger doc for this page.</p>"</js>,
- <js>" <p>Also note the source link on these pages to view the source code for the page.</p>"</js>,
- <js>" <p>All content on pages in the UI are serialized POJOs. In this case, it's a serialized array of beans with 2 properties, 'name' and 'description'.</p>"</js>,
- <js>" <p>Other features (such as this aside) are added through annotations.</p>"</js>,
- <js>"</div>"</js>
- },
- footer=<js>"$W{PoweredByApache}"</js>,
- widgets={
- PoweredByApache.<jk>class</jk>,
- ContentTypeMenuItem.<jk>class</jk>
- }
- )
- <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletGroup { <jc>/* No code needed! */</jc> }
- </p>
- <p>
- The above resource when rendered in HTML shows how easy it is to discover and navigate to child resources using a browser:
- </p>
- <p class='bcode w800'>
- http://localhost:10000
- </p>
- <img class='bordered w800' src='images/juneau-examples-rest.RootResources.1.png'>
- <p>
- Resources can be nested arbitrarily deep.
- The <ja>@Rest</ja> and <ja>@RestMethod</ja> annotations can be applied to any classes, not just
- servlets. The only requirement is that the top-level resource be a subclass of <code>RestServlet</code> as a hook into
- the servlet container.
- </p>
-
- <p>
- The <code>juneau-examples-rest</code> project includes various other examples that highlight some of the
- capabilities of the REST servlet API.
- <br>
- For example, the <code>PetStoreResource</code> class shows some advanced features such as using POJO renders
- and converters, and HTML widgets.
- </p>
- <p class='bcode w800'>
- http://localhost:10000/petstore
- </p>
- <img class='bordered w800' src='images/juneau-examples-rest.PetStoreResource.1.png'>
- <p>
- The beans being serialized are shown here:
- </p>
- <p class='bcode w800'>
- <jc>// Our bean class.</jc>
- <jk>public class</jk> Pet {
-
- <ja>@Html</ja>(link=<js>"servlet:/{id}"</js>) <jc>// Creates a hyperlink in HTML view.</jc>
- <ja>@NameProperty</ja> <jc>// Links the parent key to this bean.</jc>
- <jk>public int</jk> <jf>id</jf>;
-
- <jk>public</jk> String <jf>name</jf>;
- <jk>public</jk> Kind <jf>kind</jf>;
-
- <ja>@Beanp</ja>(format=<js>"$%.2f"</js>) <jc>// Renders price in dollars.</jc>
- <jk>public float</jk> <jf>price</jf>;
-
- <ja>@Beanp</ja>(swap=DateSwap.<jsf>RFC2822D</jsf>.<jk>class</jk>) <jc>// Renders dates in RFC2822 format.</jc>
- <jk>public</jk> Date <jf>birthDate</jf>;
-
- <jk>public int</jk> getAge() {
- Calendar <jv>calendar</jv> = <jk>new</jk> GregorianCalendar();
- <jv>calendar</jv>.setTime(<jf>birthDate</jf>);
- <jk>return new</jk> GregorianCalendar().get(Calendar.<jsf>YEAR</jsf>) - <jv>calendar</jv>.get(Calendar.<jsf>YEAR</jsf>);
- }
- }
-
- <ja>@Html</ja>(render=KindRender.<jk>class</jk>) <jc>// Render as an icon in HTML.</jc>
- <jk>public static enum</jk> Kind {
- <jsf>CAT</jsf>, <jsf>DOG</jsf>, <jsf>BIRD</jsf>, <jsf>FISH</jsf>, <jsf>MOUSE</jsf>, <jsf>RABBIT</jsf>, <jsf>SNAKE</jsf>
- }
-
- <jk>public static class</jk> KindRender <jk>extends</jk> HtmlRender<Kind> {
- <ja>@Override</ja>
- <jk>public</jk> Object getContent(SerializerSession <jv>session</jv>, Kind <jv>value</jv>) {
- <jk>return new</jk> Img().src(<js>"servlet:/htdocs/"</js>+<jv>value</jv>.toString().toLowerCase()+<js>".png"</js>);
- }
- <ja>@Override</ja>
- <jk>public</jk> String getStyle(SerializerSession <jv>session</jv>, Kind <jv>value</jv>) {
- <jk>return</jk> <js>"background-color:#FDF2E9"</js>;
- }
- }
- </p>
-
- <p>
- The <code>QUERY</code> menu item shows the capabilities of Converters which are post-processors that
- work to filter POJOs after they've been returned by your Java method.
- <br>
- In this case, we're using the <code>Queryable</code> converter that allows us to perform search/view/sort/paging
- against collections of beans:
- </p>
- <img class='bordered w800' src='images/juneau-examples-rest.PetStoreResource.2.png'>
-
- <p>
- The drop-down menu items are implemented through "widgets" which allow you to embed arbitrary HTML, Javascript,
- and CSS in the HTML view of the page.
- </p>
- <p class='bcode w800'>
- <ja>@RestMethod</ja>(
- name=<jsf>GET</jsf>,
- path=<js>"/"</js>,
- summary=<js>"The complete list of pets in the store"</js>,
-
- <jc>// Add our converter for POJO query support.</jc>
- converters=Queryable.<jk>class</jk>
- )
- <ja>@HtmlDocConfig</ja>(
-
- <jc>// Add our menu items in the nav links.</jc>
- links={
- <js>"up: request:/.."</js>,
- <js>"options: servlet:/?method=OPTIONS"</js>,
- <js>"$W{QueryMenuItem}"</js>,
- <js>"$W{ContentTypeMenuItem}"</js>,
- <js>"$W{StyleMenuItem}"</js>,
- <js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/PetStoreResource.java"</js>
- },
-
- <jc>// Add 'query' and 'content-types' menu items.</jc>
- widgets={
- QueryMenuItem.<jk>class</jk>,
- ContentTypeMenuItem.<jk>class</jk>,
- StyleMenuItem.<jk>class</jk>
- }
- )
- <jk>public</jk> Collection<Pet> getPets() {
- </p>
-
- <p>
- HTML views are highly customizable with abilities such as defining your own look-and-feel and even allowing
- you to define your own templates.
- </p>
- <p>
- For example, the PetStore page above rendered in one of the other predefined stylesheets:
- </p>
- <h5 class='figure'>Light look-and-feel</h5>
- <img class='bordered w800' src='images/juneau-examples-rest.PetStoreResource.3.png'>
- <h5 class='figure'>Dark look-and-feel</h5>
- <img class='bordered w800' src='images/juneau-examples-rest.PetStoreResource.4.png'>
-
- <p>
- Swagger UI is auto-generated and self-hosted through OPTIONS requests:
- </p>
- <p class='bcode w900'>
- http://localhost:10000/petstore?method=OPTIONS
- </p>
- <img class='bordered w900' src='images/juneau-examples-rest.PetStoreResource.9a.png'>
- <br>
- <img class='bordered w900' src='images/juneau-examples-rest.PetStoreResource.9h.png'>
- <br>
- <img class='bordered w900' src='images/juneau-examples-rest.PetStoreResource.9f.png'>
-
- <p>
- Swagger contains auto-generated code examples for all supported languages:
- </p>
- <img class='bordered w900' src='images/juneau-examples-rest.PetStoreResource.9d.png'>
- <br>
- <img class='bordered w900' src='images/juneau-examples-rest.PetStoreResource.9e.png'>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-rest-server'>juneau-rest-server</a>
- </ul>
-
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-REST-SERVER-SPRINGBOOT ===================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-rest-server-springboot'>juneau-rest-server-springboot</h5>
- <div class='topic'>
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-rest-server-springboot<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-rest-server-springboot-9.0-B1.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.rest.server.springboot_9.0-B1.jar
- </p>
-
- <p>
- The <code>juneau-rest-server-springboot</code> library provides classes to make it easy to integrate
- Juneau REST resources with Spring and Spring Boot.
- </p>
-
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- <ja>@SpringBootApplication</ja>
- <ja>@Controller</ja>
- <jk>public class</jk> App {
-
- <jk>public static void</jk> main(String[] <jv>args</jv>) {
- <jk>new</jk> SpringApplicationBuilder(App.<jk>class</jk>)
- .initializers(<jk>new</jk> JuneauRestInitializer(App.<jk>class</jk>))
- .run(<jv>args</jv>);
- }
-
- <jd>/** Our root resource */</jd>
- <ja>@Bean @JuneauRestRoot</ja>
- <jk>public</jk> RootResource getRootResource() {
- <jk>return new</jk> RootResource(); <jc>// A subclass of RestServlet.</jc>
- }
- }
- </p>
- <p>
- The initializer will search for Spring beans annotated with the <ja>@JuneauRestRoot</ja> annotation identifying it
- as a top-level servlet to be deployed in the Spring Boot web container.
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-rest-server-springboot'>juneau-rest-server-springboot</a>
- </ul>
- </div>
-
- <!-- ======================================================================================================= -->
- <!-- === JUNEAU-REST-SERVER-JAXRS ========================================================================== -->
- <!-- ======================================================================================================= -->
-
- <h5 class='toc' id='juneau-rest-server-jaxrs'>juneau-rest-server-jaxrs</h5>
- <div class='topic'>
- <h5 class='figure'>Maven Dependency</h5>
- <p class='bcode w500'>
- <xt><dependency></xt>
- <xt><groupId></xt>org.apache.juneau<xt></groupId></xt>
- <xt><artifactId></xt>juneau-rest-server-jaxrs<xt></artifactId></xt>
- <xt><version></xt>9.0-B1<xt></version></xt>
- <xt></dependency></xt>
- </p>
-
- <h5 class='figure'>Java Library</h5>
- <p class='bcode w500'>
- juneau-rest-server-jaxrs-9.0-B1.jar
- </p>
-
- <h5 class='figure'>OSGi Module</h5>
- <p class='bcode w500'>
- org.apache.juneau.rest.server.jaxrs_9.0-B1.jar
- </p>
-
- <p>
- The <code>juneau-rest-server-jaxrs</code> module defines predefined <code>MessageBodyReader</code> and
- <code>MessageBodyWriter</code> implementations for using Juneau serializers and parsers in JAX-RS environments.
- </p>
-
- <ul class='seealso'>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#juneau-rest-server-jaxrs'>juneau-rest-server-jaxrs</a>
- </ul>
- </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/content/sourceCode.html b/content/sourceCode.html
deleted file mode 100755
index a7dc8a2a8..000000000
--- a/content/sourceCode.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- TEST -->
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <h5 class='toc'>Source Code</h5>
- <p>
- Source code can be accessed through either GitHub or the Apache GitBox repository.
- </p>
- <ul class='spaced-list'>
- <li><a class='doclink' href='https://github.com/apache/juneau' target="_top">Juneau Source</a> (<a class='doclink' href='https://gitbox.apache.org/repos/asf/juneau.git' target="_top">gitbox</a>)
- <li><a class='doclink' href='https://github.com/apache/juneau-website' target="_top">Website Source</a> (<a class='doclink' href='https://gitbox.apache.org/repos/asf/juneau-website.git' target="_top">gitbox</a>)
- <li><a class='doclink' href='https://github.com/apache/juneau-petstore' target="_top">Petstore Application</a>
- <li><a class='doclink' href='https://cwiki.apache.org/confluence/display/JUNEAU/Setting+up+your+Eclipse+workspace' target="_top">Workspace setup instructions</a>
- </ul>
- <h5 class='toc'>Builds</h5>
- <ul class='spaced-list'>
- <li><a class='doclink' href='https://ci-builds.apache.org/job/Juneau/job/Juneau-Java-1.8/'>Jenkins</a> <img src='https://ci-builds.apache.org/buildStatus/icon?job=Juneau%2FJuneau-Java-1.8'>
- </ul>
-</body>
-</html>
diff --git a/content/twitter.html b/content/twitter.html
deleted file mode 100644
index b9e46587a..000000000
--- a/content/twitter.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<body>
- <a class="twitter-timeline" data-width="600" href="https://twitter.com/ApacheJuneau">Loading...</a> <script src="http://platform.twitter.com/widgets.js" charset="utf-8"></script>
-</body>
-</html>
diff --git a/content/whatsnew.html b/content/whatsnew.html
deleted file mode 100644
index ba174c7fb..000000000
--- a/content/whatsnew.html
+++ /dev/null
@@ -1,208 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- test -->
- <!-- Google Tag Manager -->
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','GTM-MT3PBTF');</script>
- <!-- End Google Tag Manager -->
-
- <style>
- @import url("styles/juneau-code.css");
- @import url("styles/juneau-doc.css");
- </style>
-</head>
-<body>
- <!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MT3PBTF"
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
- <!-- End Google Tag Manager (noscript) -->
-
- <!-- =========================================================================================================== -->
- <!-- === What's New ============================================================================================ -->
- <!-- =========================================================================================================== -->
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.2.0'>Juneau 8.2.0</a></h5>
- <div class='topic'>
- <ul class='spaced-list'>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.2.0/org/apache/juneau/rest/client2/RestClient.html'>Completely revamped RestClient API</a>.
- </ul>
- </div>
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.1.3'>Juneau 8.1.3</a></h5>
- <div class='topic'>
- <ul class='spaced-list'>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.3/overview-summary.html#juneau-marshall.DynamicallyAppliedAnnotations'>Dynamically applied annotations</a>.
- All annotations such as <ja>@Bean</ja> and <ja>@Beanp</ja> can now be applied to classes and methods
- without direct access to source code.
- <li>
- Configurable properties can now set default values via system properties and environment variables.
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.3/overview-summary.html#juneau-rest-server.ExecutionStatistics'>REST method execution statistics</a>.
- </ul>
- </div>
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.1.2'>Juneau 8.1.2</a></h5>
- <div class='topic'>
- <ul class='spaced-list'>
- <li>
- Support for read-only and write-only bean properties.
- <li>
- Simplified annotation class names.
- <li>
- Improvements to extensibility of <code>RestClient</code> class.
- </ul>
- </div>
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.1.1'>Juneau 8.1.1</a></h5>
- <div class='topic'>
- <ul class='spaced-list'>
- <li>
- New <a href='https://github.com/apache/juneau-petstore'>Pet Store Application</a> in GitHub.
- <li>
- Full serializing/parsing support for <code>Optional</code> objects.
- <li>
- Cleaned up library dependencies:
- <ul>
- <li>
- <code>juneau-rest-client</code> no longer depends on <code>juneau-rest-server</code>
- <li>
- Annotations for common client/server REST interfaces are now in <code>juneau-marshall</code> and no longer depend on <code>juneau.rest.client</code>/<code>juneau.rest.server</code>.
- </ul>
- <li>
- Improved support for Spring Boot.
- <li>
- Improved support for serving up static files.
- </ul>
- </div>
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.1.0'>Juneau 8.1.0</a></h5>
- <div class='topic'>
- <p>
- 8.1.0 is a major release with the following new features.
- </p>
- <ul class='spaced-list'>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-marshall.ConfigurableAnnotations'>Configurable Annotations</a>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-marshall.Transforms.DefaultPojoSwaps'>Default PojoSwaps</a>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-config.Imports'>Config Imports</a>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-rest-server.Instantiation.BasicRest'>BasicRest</a>, <a href='#juneau-rest-server.Instantiation.BasicRestGroup'>BasicRestGroup</a> classes
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-rest-server.RestResource.RestResourcePath'>Path variables on resource paths</a>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-rest-server.RestMethod.RequestAttributes'>Request Attributes API</a>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-rest-server.RoleGuards'>Role Guards</a>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-rest-server.LoggingAndDebugging'>Improved REST logging/debugging</a>
- <li>
- <a href='http://juneau.apache.org/site/apidocs-8.1.0/overview-summary.html#juneau-rest-mock'>New MockRest API</a>
- </ul>
- </div>
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#8.0.0'>Juneau 8.0.0</a></h5>
- <div class='topic'>
- <p>
- 8.0.0 is a major release with significant new functionality in the microservice APIs.
- </p>
- <ul class='spaced-list'>
- <li>
- All deprecated APIs have been cleaned up.
- <li>
- The Microservice API has been revamped to use a builder-based approach to creating microservices.
- <br>The new API is considerably more flexible in design and allows for the configuration and external
- files to be located in either the home directory or inside the jar classpath.
- <li>
- New Spring Boot integration support classes.
- <br>REST resource classes can now easily be deployed as Spring Beans in a Spring Boot environment.
- <li>
- New template starter projects for creating either Jetty or Spring-Boot based microservices.
- <li>
- New instructions on how to quickly deploy Juneau-based applications to Heroku.
- </ul>
- </div>
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.2.2'>Juneau 7.2.2</a></h5>
- <div class='topic'>
- <ul class='spaced-list'>
- <li>
- Minor bug fixes and improvements to PetStore application.
- </ul>
- </div>
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.2.1'>Juneau 7.2.1</a></h5>
- <div class='topic'>
- <ul class='spaced-list'>
- <li>
- Fixed binary backwards compatibility issues with 7.1.0.
- <li>
- Method-level annotations (e.g. <ja>@RestMethod</ja>) and parameter-level annotations (e.g. <ja>@Query</ja>) are now inheritable
- from parent classes and interfaces.
- <br>This allows you to define <a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.1/overview-summary.html#juneau-rest-client.RestProxies.DualPurposeInterfaces'>Dual-Purpose Java Interfaces</a>.
- </ul>
- </div>
-
- <h5 class='toc'>What's New in <a href='http://juneau.apache.org/site/apidocs-9.0-B1/overview-summary.html#7.2.0'>Juneau 7.2.0</a></h5>
- <div class='topic'>
- <ul class='spaced-list'>
- <li>OpenAPI part serializing and parsing with full support for OpenAPI validation of input and output in the REST servlet and client APIs.
- <ul>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-marshall.OpenApiDetails'>juneau-marshall > OpenAPI Details</a>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-server.OpenApiSchemaPartParsing'>juneau-rest-server > OpenAPI Schema Part Parsing</a>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-server.OpenApiSchemaPartSerializing'>juneau-rest-server > OpenAPI Schema Part Serializing</a>
- </ul>
- <li>Auto-generated Swagger UI.
- <ul>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-dto.SwaggerUI'>juneau-dto > Swagger UI</a>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-server.Swagger'>juneau-rest-server > Swagger</a>
- </ul>
- <li>New HTTP-Part annotations that are applicable to both the servlet and client APIs.
- <ul>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-server.HttpPartAnnotations'>juneau-rest-server > HTTP-Part Annotations</a>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-client.RestProxies'>juneau-rest-client > REST Proxies</a>
- </ul>
- <li>Simplified UI customization.
- <ul>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-microservice-server.UiCustomization'>juneau-microservice-server > UI Customization</a>
- </ul>
- <li>New Marshall API that combines serializers and parsers into single classes.
- <ul>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-marshall.Marshalls'>juneau-marshall > Marshalls</a>
- </ul>
- <li>Serverless servlet and client unit testing.
- <ul>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-server.UnitTesting'>juneau-rest-server > Serverless Unit Testing</a>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-client.UnitTesting'>juneau-rest-client > Serverless Unit Testing</a>
- </ul>
- <li>Predefined REST responses and exceptions.
- <ul>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-server.RestMethod.PredefinedResponses'>juneau-rest-server > Predefined Responses</a>
- <li><a class='doclink' href='http://juneau.apache.org/site/apidocs-7.2.0/overview-summary.html#juneau-rest-server.RestMethod.PredefinedExceptions'>juneau-rest-server > Predefined Exceptions</a>
- </ul>
- </ul>
- </div>
-
- <!-- =========================================================================================================== -->
- <!-- === COMING SOON =========================================================================================== -->
- <!-- =========================================================================================================== -->
-
- <!-- h5 class='toc'>Coming soon</h5>
- <div>
- <ul class='spaced-list'>
- <li><a class='doclink' href='https://cwiki.apache.org/confluence/display/JUNEAU/2018/05/09/Serverless+REST+Unit+Testing'>Serverless REST unit testing</a>
- <li><a class='doclink' href='https://cwiki.apache.org/confluence/display/JUNEAU/2018/04/13/Configurable+look-and-feel'>Configurable look-and-feel</a>
- <li><a class='doclink' href='https://cwiki.apache.org/confluence/display/JUNEAU/2018/03/17/Swagger+UI+enhancements'>Swagger UI enhancements</a>
- <li><a class='doclink' href='https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=75977264'>Swagger UI enhancements (update)</a>
- <li><a class='doclink' href='https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=87296658'>Support for auto-validation in Swagger annotations.</a>
- </ul>
- </div-->
-</body>
-</html>
\ No newline at end of file