You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2020/11/15 14:36:03 UTC

svn commit: r1068041 [9/9] - in /websites/production/openwebbeans/content/meecrowave: ./ assets/css/ assets/plugins/ assets/plugins/elegant_font/css/ assets/plugins/font-awesome/css/ meecrowave-core/ meecrowave-gradle/ meecrowave-jolokia/ meecrowave-jp...

Modified: websites/production/openwebbeans/content/meecrowave/meecrowave-oauth2/index.html
==============================================================================
--- websites/production/openwebbeans/content/meecrowave/meecrowave-oauth2/index.html (original)
+++ websites/production/openwebbeans/content/meecrowave/meecrowave-oauth2/index.html Sun Nov 15 14:36:03 2020
@@ -18,7 +18,7 @@
     <link rel="stylesheet" href="/meecrowave/assets/plugins/font-awesome/css/font-awesome.min.css">
     <link rel="stylesheet" href="/meecrowave/assets/plugins/elegant_font/css/style.css?version=1">
     <!-- highlighting -->
-    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/idea.min.css">
+    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/idea.min.css" integrity="sha256-rYB1c4yTU5UJB//rod7DtBo1JM6HAme/9Vd+VesFG2U=" crossorigin="anonymous" />
 
     <!-- Theme CSS -->
     <link id="theme-style" rel="stylesheet" href="/meecrowave/assets/css/styles.css">
@@ -66,310 +66,346 @@
 
 
             <section class="doc-section">
-                <div id="preamble"> 
- <div class="sectionbody"> 
-  <div class="paragraph"> 
-   <p>Starting with version 0.3.0.</p> 
-  </div> 
-  <div class="paragraph"> 
-   <p>Coordinates:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Starting with version 0.3.0.</p>
+</div>
+<div class="paragraph">
+<p>Coordinates:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;dependency&gt;
   &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
   &lt;artifactId&gt;meecrowave-oauth2&lt;/artifactId&gt;
   &lt;version&gt;${meecrowave.version}&lt;/version&gt;
-&lt;/dependency&gt;</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>A small OAuth2 server based on CXF implementation.</p> 
-  </div> 
-  <div class="paragraph"> 
-   <p>See <a href="https://cxf.apache.org/docs/jax-rs-oauth2.html" class="bare">https://cxf.apache.org/docs/jax-rs-oauth2.html</a> for more details.</p>
-  </div> 
-  <div class="paragraph"> 
-   <p>Here is the current configuration (mainly based on CXF one):</p> 
-  </div> 
-  <table class="tableblock frame-all grid-all spread table table-bordered"> 
-   <colgroup> 
-    <col style="width: 50%;"> 
-    <col style="width: 50%;"> 
-   </colgroup> 
-   <thead> 
-    <tr> 
-     <th class="tableblock halign-left valign-top">Name</th> 
-     <th class="tableblock halign-left valign-top">Description</th> 
-    </tr> 
-   </thead> 
-   <tbody> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-access-token-lifetime</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">How long an access token is valid, default to 3600s</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-authorization-code-support</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Is authorization code flow supported</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-block-unsecure-requests</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should unsecured requests be blocked</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-client-force</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Is a client mandatory or can a token be issued without any client</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-default-scopes</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Comma separated list of default scopes</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-encrypted-algorithm</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">The algorithm for the key for the encrypted provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-encrypted-key</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">The key for encrypted provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-invisible-scopes</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Comma separated list of invisible to client scopes</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-config</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JCache configuration uri for the cache manager (jcache or provider)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-jmx</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JCache JMX MBeans be enabled</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-loader</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">The loader bean or class name</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-statistics</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JCache statistics be enabled</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-store-jwt-token-key-only</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JCache store jwt token key only (jcache provider)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-store-value</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JCache store value or not</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-writer</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">The writer bean or class name</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-database-driver</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JPA database driver for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-database-password</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JPA database password for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-database-url</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JPA database url for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-database-username</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JPA database username for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-max-active</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JPA max active connections for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-max-idle</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JPA max idle connections for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-max-wait</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JPA max wait for connections for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-properties</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JPA persistence unit properties for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-test-on-borrow</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">should connections be tested on borrow for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-test-on-return</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">should connections be tested on return for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-validation-interval</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">validation interval for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-validation-query</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">validation query for jpa provider</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jwt-access-token-claim-map</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">The jwt claims configuration</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-partial-match-scope-validation</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Is partial match for scope validation activated</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-provider</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Which provider type to use: jcache[-code], jpa[-code], encrypted[-code]</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-redirection-match-redirect-uri-with-application-uri</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">For authorization code flow, should redirect uri be matched with application one</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-redirection-max-default-session-interval</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">For authorization code flow, how long a session can be</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-redirection-scopes-requiring-no-consent</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">For authorization code flow, the scopes using no consent</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-redirection-use-registered-redirect-uri-if-possible</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">For authorization code flow, should the registered uri be used</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-refresh-token</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Is issuing of access token issuing a refreh token too</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-refresh-token-lifetime</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">How long a refresh token is valid, default to eternity (0)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-refresh-token-recycling</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should refresh token be recycled</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-required-scopes</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Comma separated list of required scopes</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-support-pre-authorized-tokens</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Are pre-authorized token supported</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-support-public-client</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Are public clients supported</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-token-support</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Are token flows supported</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-use-all-client-scopes</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Are all client scopes used for refresh tokens</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-use-jaas</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should jaas be used - alternative (default) is to delegate to meecrowave/tomcat realms</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-use-jwt-format-for-access-token</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should access token be jwt?</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-write-custom-errors</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should custom errors be written</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-write-optional-parameters</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should optional parameters be written</p></td> 
-    </tr> 
-   </tbody> 
-  </table> 
-  <div class="paragraph"> 
-   <p>These options are available through the CLI or through properties as usually with Meecrowave configuration.</p> 
-  </div> 
-  <div class="paragraph"> 
-   <p>Note that meecrowave also provides a bundle which is an executable jar to run an OAuth2 server.</p> 
-  </div> 
-  <div class="paragraph"> 
-   <p>Here is a sample usage of that bundle:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">java -jar meecrowave-oauth2-0.3.1-bundle.jar --users test=test --roles test=test</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>Then just test your token endpoint:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">curl -XPOST http://localhost:8080/oauth2/token -d username=test -d password=test -d grant_type=password</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>And you should get something like:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-javascript hljs" data-lang="javascript">{
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Or to not get JPA/JCache implementations:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
+  &lt;artifactId&gt;meecrowave-oauth2-minimal&lt;/artifactId&gt;
+  &lt;version&gt;${meecrowave.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>A small OAuth2 server based on CXF implementation.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="http://cxf.apache.org/docs/jax-rs-oauth2.html" class="bare">http://cxf.apache.org/docs/jax-rs-oauth2.html</a> for more details.</p>
+</div>
+<div class="paragraph">
+<p>Here is the current configuration (mainly based on CXF one):</p>
+</div>
+<table class="tableblock frame-all grid-all stretch table table-bordered">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-access-token-lifetime</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">How long an access token is valid, default to 3600s</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-authorization-code-support</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Is authorization code flow supported</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-block-unsecure-requests</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should unsecured requests be blocked</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-client-force</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Is a client mandatory or can a token be issued without any client</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-default-scopes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Comma separated list of default scopes</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-encrypted-algorithm</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The algorithm for the key for the encrypted provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-encrypted-key</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The key for encrypted provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-forward-role-as-jwt-claims</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should jaas be used - alternative (default) is to delegate to meecrowave/tomcat realms</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-invisible-scopes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Comma separated list of invisible to client scopes</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-config</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JCache configuration uri for the cache manager (jcache or provider)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-jmx</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JCache JMX MBeans be enabled</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-loader</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The loader bean or class name</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-statistics</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JCache statistics be enabled</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-store-jwt-token-key-only</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JCache store jwt token key only (jcache provider)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-store-value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JCache store value or not</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jcache-writer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The writer bean or class name</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-database-driver</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPA database driver for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-database-password</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPA database password for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-database-url</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPA database url for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-database-username</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPA database username for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-max-active</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPA max active connections for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-max-idle</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPA max idle connections for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-max-wait</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPA max wait for connections for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-properties</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPA persistence unit properties for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-test-on-borrow</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">should connections be tested on borrow for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-test-on-return</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">should connections be tested on return for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-validation-interval</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">validation interval for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jpa-validation-query</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">validation query for jpa provider</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jwt-access-token-claim-map</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The jwt claims configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-jwt-issuer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The jwt issuer (ignored if not set)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-partial-match-scope-validation</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Is partial match for scope validation activated</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-provider</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Which provider type to use: jcache[-code], jpa[-code], encrypted[-code]</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-redirection-match-redirect-uri-with-application-uri</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">For authorization code flow, should redirect uri be matched with application one</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-redirection-max-default-session-interval</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">For authorization code flow, how long a session can be</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-redirection-scopes-requiring-no-consent</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">For authorization code flow, the scopes using no consent</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-redirection-use-registered-redirect-uri-if-possible</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">For authorization code flow, should the registered uri be used</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-refresh-token</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Is issuing of access token issuing a refreh token too</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-refresh-token-lifetime</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">How long a refresh token is valid, default to eternity (0)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-refresh-token-recycling</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should refresh token be recycled</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-require-user-to-start-authorization_code-flow</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should the authorization_code flow require an authenicated user.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-required-scopes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Comma separated list of required scopes</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-support-pre-authorized-tokens</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Are pre-authorized token supported</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-support-public-client</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Are public clients supported</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-token-support</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Are token flows supported</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-use-all-client-scopes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Are all client scopes used for refresh tokens</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-use-jaas</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should jaas be used - alternative (default) is to delegate to meecrowave/tomcat realms</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-use-jwt-format-for-access-token</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should access token be jwt?</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-use-s256-code-challenge</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Are the code_challenge used by PKCE flow digested or not.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-write-custom-errors</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should custom errors be written</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--oauth2-write-optional-parameters</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should optional parameters be written</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>These options are available through the CLI or through properties as usually with Meecrowave configuration.</p>
+</div>
+<div class="paragraph">
+<p>Note that meecrowave also provides a bundle which is an executable jar to run an OAuth2 server.</p>
+</div>
+<div class="paragraph">
+<p>Here is a sample usage of that bundle:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="bash" class="language-bash hljs">java -jar meecrowave-oauth2-0.3.1-bundle.jar --users test=test --roles test=test</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Then just test your token endpoint:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="bash" class="language-bash hljs">curl -XPOST http://localhost:8080/oauth2/token -d username=test -d password=test -d grant_type=password</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>And you should get something like:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="javascript" class="language-javascript hljs">{
   "access_token":"5e2f211d4b4ccaa36a11d0876597f01e",
   "token_type":"Bearer",
   "expires_in":3600,
   "scope":"refreshToken",
   "refresh_token":"7ae5dc2e25925e5514b7e2e632cfa6a"
-}</code></pre> 
-   </div> 
-  </div> 
-  <div class="admonitionblock important"> 
-   <table> 
-    <tbody>
-     <tr> 
-      <td class="icon"> <i class="fa icon-important" title="Important"></i> </td> 
-      <td class="content"> these example use inline users but you should configure a realm for a real usage. </td> 
-     </tr> 
-    </tbody>
-   </table> 
-  </div> 
-  <div class="admonitionblock note"> 
-   <table> 
-    <tbody>
-     <tr> 
-      <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> 
-      <td class="content"> this module is interesting if you plan to base your application development on Meecrowave because it shows how to use CLI configuration and wire it in your application but also how to use a 3rd party library (CXF there) and build a fatjar. </td> 
-     </tr> 
-    </tbody>
-   </table> 
-  </div> 
- </div> 
-</div> 
-<div class="sect1"> 
- <h2 id="_authorization_code_case">Authorization code case</h2> 
- <div class="sectionbody"> 
-  <div class="paragraph"> 
-   <p>Authorization code flow is a bit more complicated but services (endpoints) can be activated (see configuration - <code>--oauth2-authorization-code-support</code>).</p> 
-  </div> 
-  <div class="paragraph"> 
-   <p>You will need to configure CXF to point to the keystore/key to crypt/sign the token in session. It is properties based. All CXF properties (<code>rs.security.<strong></strong></code><strong>) are supported but prefixed with <code>oauth2.cxf.</code> to avoid to mix it with another configuration starting with <code>rs.</code></strong>.</p> 
-  </div> 
-  <div class="paragraph"> 
-   <p>For instance you can use:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-properties hljs" data-lang="properties">oauth2.cxf.rs.security.keystore.type = jks
+}</code></pre>
+</div>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+these example use inline users but you should configure a realm for a real usage.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+this module is interesting if you plan to base your application development
+on Meecrowave because it shows how to use CLI configuration and wire it in your application
+but also how to use a 3rd party library (CXF there) and build a fatjar.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_authorization_code_case">Authorization code case</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Authorization code flow is a bit more complicated but services (endpoints) can be activated (see configuration - <code>--oauth2-authorization-code-support</code>).</p>
+</div>
+<div class="paragraph">
+<p>You will need to configure CXF to point to the keystore/key to crypt/sign the token in session.
+It is properties based. All CXF properties (<code>rs.security.<strong></code>) are supported but prefixed with <code>oauth2.cxf.</code> to avoid
+to mix it with another configuration starting with <code>rs.</strong></code>.</p>
+</div>
+<div class="paragraph">
+<p>For instance you can use:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="properties" class="language-properties hljs">oauth2.cxf.rs.security.keystore.type = jks
 oauth2.cxf.rs.security.keystore.file = /opt/keystores/oauth2.jks
 oauth2.cxf.rs.security.keystore.password = password
 oauth2.cxf.rs.security.keystore.alias = alice
-oauth2.cxf.rs.security.key.password = pwd</code></pre> 
-   </div> 
-  </div> 
- </div> 
+oauth2.cxf.rs.security.key.password = pwd</code></pre>
+</div>
+</div>
+</div>
 </div>
             </section><!--//doc-section-->
 
@@ -397,8 +433,8 @@ oauth2.cxf.rs.security.key.password = pw
     <footer class="footer text-center">
         <div class="container">
           <div class="row">
-            <p >Copyright &copy; 2016
-                <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
+            <p >Copyright &copy; 2016-2020
+                <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
             </p>
           </div>
         </div>
@@ -413,10 +449,13 @@ oauth2.cxf.rs.security.key.password = pw
     <script type="text/javascript" src="/meecrowave/assets/plugins/jquery-1.12.3.min.js"></script>
     <script type="text/javascript" src="/meecrowave/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
     <script type="text/javascript" src="/meecrowave/assets/plugins/jquery-match-height/jquery.matchHeight-min.js"></script>
-    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js" integrity="sha256-aYTdUrn6Ow1DDgh5JTc3aDGnnju48y/1c8s1dgkYPQ8=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/java.min.js" integrity="sha256-21Z1xKC/FsaqN9z9jIER9xiX4XbV5buFEVdkZvsfBIc=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/groovy.min.js" integrity="sha256-0B+Ps1zCncLC5JIOQ+MtIhI/UhbJkYbxWsJowD3c+tk=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/shell.min.js" integrity="sha256-nwOM3xEc6CFfrPNDN1upX+5ynjWKAXsg+bW63SSzte0=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/bash.min.js" integrity="sha256-zXrlim8wsIvcEFjsD3THiAfTvtPZifqx8q0rxegiWQc=" crossorigin="anonymous"></script>
     <script type="text/javascript" src="/meecrowave/assets/js/main.js?version=1"></script>
 
 </body>
 </html>
 
-

Added: websites/production/openwebbeans/content/meecrowave/meecrowave-proxy/index.html
==============================================================================
--- websites/production/openwebbeans/content/meecrowave/meecrowave-proxy/index.html (added)
+++ websites/production/openwebbeans/content/meecrowave/meecrowave-proxy/index.html Sun Nov 15 14:36:03 2020
@@ -0,0 +1,317 @@
+<!DOCTYPE html>
+<!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->
+<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
+<!--[if !IE]><!--> <html lang="en"> <!--<![endif]-->
+<head>
+    <title>Meecrowave :: the customizable server</title>
+    <!-- Meta -->
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="shortcut icon" href="/meecrowave/favicon.ico">
+    <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
+    <!-- Global CSS -->
+    <link rel="stylesheet" href="/meecrowave/assets/plugins/bootstrap/css/bootstrap.min.css">
+    <!-- Plugins CSS -->
+    <link rel="stylesheet" href="/meecrowave/assets/plugins/font-awesome/css/font-awesome.min.css">
+    <link rel="stylesheet" href="/meecrowave/assets/plugins/elegant_font/css/style.css?version=1">
+    <!-- highlighting -->
+    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/idea.min.css" integrity="sha256-rYB1c4yTU5UJB//rod7DtBo1JM6HAme/9Vd+VesFG2U=" crossorigin="anonymous" />
+
+    <!-- Theme CSS -->
+    <link id="theme-style" rel="stylesheet" href="/meecrowave/assets/css/styles.css">
+    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+</head>
+
+<body class="blue-green">
+    <div class="page-wrapper">
+    <!-- TODO: google analytics -->
+<header class="header text-center">
+  <div class="container">
+      <div class="branding">
+          <h1 class="doc-title">
+              <span aria-hidden="true" class="icon icon_puzzle_alt icon"></span>
+              <a href="/meecrowave/index.html">
+                Meecrowave
+              </a>
+          </h1>
+      </div>
+  </div><!--//container-->
+</header><!--//header-->
+<div class="doc-wrapper">
+    <div class="container">
+        <div id="doc-header" class="doc-header text-center">
+            <h1 class="doc-title"><span aria-hidden="true" class="icon icon icon_puzzle_alt"></span> Meecrowave Proxy</h1>
+        </div><!--//doc-header-->
+
+<div class="doc-body">
+    <div class="doc-content">
+        <div class="content-inner">
+
+
+
+
+<div class='btn-toolbar pull-right' style="z-index: 2000;">
+  <div class='btn-group'>
+      <a class="btn" href="/meecrowave/meecrowave-proxy/index.pdf"><i class="fa fa-file-pdf-o"></i> Download as PDF</a>
+  </div>
+</div>
+
+
+
+            <section class="doc-section">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Coordinates:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
+  &lt;artifactId&gt;meecrowave-proxy&lt;/artifactId&gt;
+  &lt;version&gt;${meecrowave.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Simple proxy module using Meecrowave as backbone.
+It can be extended using CDI programming model and JAX-RS client.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration">Configuration</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch table table-bordered">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-async-timeout</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Asynchronous execution timeout.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-configuration</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The route file.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-mapping</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Where to bind the proxy (url pattern).</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-multipart</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Is multipart explicit.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-multipart-maxfilesizethreshold</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Max file size threshold for multipart requests.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-multipart-location</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The multipart temporary folder.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-multipart-maxfilesize</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Max file size for multipart requests.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-multipart-maxrequestsize</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Max request size for multipart requests.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--proxy-skip</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should default setup be ignored</p></td>
+</tr>
+</tbody>
+</table>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+you can use that servlet in a plain Servlet container (adding JAX-RS+JSON-B client).
+An integration example can be found in <code>org.apache.meecrowave.proxy.servlet.meecrowave.ProxyServletSetup#accept</code>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration_file">Configuration File</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Each route defines an execution context which means:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>A way to match the incoming request (by method + prefix for now),</p>
+</li>
+<li>
+<p>A way to forward the incoming request (which target server is called),</p>
+</li>
+<li>
+<p>A way to execute the request isolated in a dedicated thread (how many threads are allocated to the route, which timeout to use, &#8230;&#8203;).</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>The routes file follows the following shape:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="json" class="language-json hljs">{
+  "defaultRoute": { // optional
+    // ... anything a route can get, it is used as default for plain "routes"
+  },
+  "routes": [
+    {
+      "id": "get-simple",
+      "requestConfiguration": {
+        "method": "GET",
+        "prefix": "/prefix-to-match",
+        "addedHeaders" : { "Authorization": "Value", ... },
+        "skippedHeaders" : [ "Content-Length", ... ],
+        "skippedCookies" : [ "Cookie", ... ],
+      },
+      "responseConfiguration": {
+        "target": "http://....",
+        "skippedHeaders" : [ "Content-Length", ... ],
+        "skippedCookies" : [ "Cookie", ... ],
+      },
+      "clientConfiguration": {
+        "executor": {
+            "core": 8,
+            "max": 512,
+            "keepAlive": 60000,
+            "shutdownTimeout": 1
+        },
+        "timeouts": {
+            "connect": 30000,
+            "read": 30000,
+            "execution": 60000
+        },
+        "sslConfiguration": {
+            "acceptAnyCertificate": false,
+            "keystoreLocation": "...",
+            "keystoreType": "...",
+            "keystorePassword": "...",
+            "truststoreType": "...",
+            "verifiedHostnames": ["..."]
+        }
+      },
+      "extensions": { // optional, used for custom extensions and let the user enrich the route configuration
+      }
+    },
+    // ...
+  ],
+  "extensions": { // optional
+  }
+}</code></pre>
+</div>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+the file is filtered with system properties so you can use <code>${system-prop-key}</code>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_extend">Extend</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The default implementation uses <code>CDIProxyServlet</code> which triggers multiple events to let you extend the proxy implementation:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p><code>BeforeRequest</code> and <code>AfterResponse</code> which are sent around the proxying,</p>
+</li>
+<li>
+<p><code>OnRequest</code> and <code>OnResponse</code> which enables you to replace the way the request is mapped to the proxied server and the way the response of the proxied server is mapped to the client.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>Since <code>meecrowave-proxy</code> is a simple meecrowave module you can embed it and customize it as any CDI application.</p>
+</div>
+</div>
+</div>
+            </section><!--//doc-section-->
+
+
+
+
+        </div><!--//content-inner-->
+    </div><!--//doc-content-->
+
+    <div class="doc-sidebar">
+        <nav id="doc-nav">
+            <ul id="doc-menu" class="nav doc-menu hidden-xs affix-top" data-spy="affix">
+                <li><a href="/meecrowave/index.html">Home</a></li>
+                <li><a href="/meecrowave/start.html">Quick Start</a></li>
+                <li><a href="/meecrowave/components.html">Components</a></li>
+                <li><a href="/meecrowave/download.html">Download</a></li>
+                <li><a href="/meecrowave/community.html">Community</a></li>
+            </ul><!--//doc-menu-->
+        </nav>
+    </div>
+</div>
+
+</div><!--//page-wrapper-->
+
+    <footer class="footer text-center">
+        <div class="container">
+          <div class="row">
+            <p >Copyright &copy; 2016-2020
+                <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
+            </p>
+          </div>
+        </div>
+
+        <div class="container"><!-- don't remove it otherwise theme is no more creative common -->
+            <small class="copyright">Designed with <i class="fa fa-heart"></i> by <a href="http://themes.3rdwavemedia.com/" target="_blank">Xiaoying Riley</a> for developers</small>
+        </div><!--//container-->
+    </footer><!--//footer-->
+
+
+    <!-- Main Javascript -->
+    <script type="text/javascript" src="/meecrowave/assets/plugins/jquery-1.12.3.min.js"></script>
+    <script type="text/javascript" src="/meecrowave/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
+    <script type="text/javascript" src="/meecrowave/assets/plugins/jquery-match-height/jquery.matchHeight-min.js"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js" integrity="sha256-aYTdUrn6Ow1DDgh5JTc3aDGnnju48y/1c8s1dgkYPQ8=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/java.min.js" integrity="sha256-21Z1xKC/FsaqN9z9jIER9xiX4XbV5buFEVdkZvsfBIc=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/groovy.min.js" integrity="sha256-0B+Ps1zCncLC5JIOQ+MtIhI/UhbJkYbxWsJowD3c+tk=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/shell.min.js" integrity="sha256-nwOM3xEc6CFfrPNDN1upX+5ynjWKAXsg+bW63SSzte0=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/bash.min.js" integrity="sha256-zXrlim8wsIvcEFjsD3THiAfTvtPZifqx8q0rxegiWQc=" crossorigin="anonymous"></script>
+    <script type="text/javascript" src="/meecrowave/assets/js/main.js?version=1"></script>
+
+</body>
+</html>
+

Modified: websites/production/openwebbeans/content/meecrowave/start.html
==============================================================================
--- websites/production/openwebbeans/content/meecrowave/start.html (original)
+++ websites/production/openwebbeans/content/meecrowave/start.html Sun Nov 15 14:36:03 2020
@@ -18,7 +18,7 @@
     <link rel="stylesheet" href="/meecrowave/assets/plugins/font-awesome/css/font-awesome.min.css">
     <link rel="stylesheet" href="/meecrowave/assets/plugins/elegant_font/css/style.css?version=1">
     <!-- highlighting -->
-    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/idea.min.css">
+    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/idea.min.css" integrity="sha256-rYB1c4yTU5UJB//rod7DtBo1JM6HAme/9Vd+VesFG2U=" crossorigin="anonymous" />
 
     <!-- Theme CSS -->
     <link id="theme-style" rel="stylesheet" href="/meecrowave/assets/css/styles.css">
@@ -66,73 +66,105 @@
 
 
             <section class="doc-section">
-                <div class="sect1"> 
- <h2 id="_your_first_application">Your first application</h2> 
- <div class="sectionbody"> 
-  <div class="paragraph"> 
-   <p>Meecrowave relies on JAX-RS and CDI so to start you just need to write a JAX-RS endpoint:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@Path("kitchen")
+                <div class="sect1">
+<h2 id="_your_first_application">Your first application</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_dependencies">Dependencies</h3>
+<div class="paragraph">
+<p>Just add in any Maven <code>pom.xml</code> - or gradle <code>build.gradle</code> the following dependency:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
+  &lt;artifactId&gt;meecrowave-core&lt;/artifactId&gt;
+  &lt;version&gt;${meecrowave.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If you intend to reuse our <code>Cli</code> main you should also add:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;dependency&gt;
+  &lt;groupId&gt;commons-cli&lt;/groupId&gt;
+  &lt;artifactId&gt;commons-cli&lt;/artifactId&gt;
+  &lt;version&gt;1.4&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_runtime">Runtime</h3>
+<div class="paragraph">
+<p>Meecrowave relies on JAX-RS and CDI so to start you just need to write a JAX-RS endpoint:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">@Path("kitchen")
 @ApplicationScoped
 public class HelloKitchen {
     @GET
     public String getMenu() {
         return "good things";
     }
-}</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>Then booting Meecrowave is as easy as launching:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">try (final Meecrowave meecrowave = new Meecrowave().bake()) {
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Then booting Meecrowave is as easy as launching - or reuse <code>org.apache.meecrowave.runner.Cli</code> provided main:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">try (final Meecrowave meecrowave = new Meecrowave().bake()) {
     new Scanner(System.in).nextLine();
-}</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>You should get some output containing:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code>[19:54:55.397][INFO][main][.meecrowave.cxf.CxfCdiAutoSetup] REST Application: / -&gt; org.apache.cxf.cdi.DefaultApplication
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You should get some output containing:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-none hljs">[19:54:55.397][INFO][main][.meecrowave.cxf.CxfCdiAutoSetup] REST Application: / -&gt; org.apache.cxf.cdi.DefaultApplication
 [19:54:55.399][INFO][main][.meecrowave.cxf.CxfCdiAutoSetup]      Service URI: /kitchen  -&gt; org.app.HelloKitchen
-[19:54:55.401][INFO][main][.meecrowave.cxf.CxfCdiAutoSetup]               GET /kitchen/ -&gt;      String getMenu()</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>And you can check it works doing:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code>curl http://localhost:8080/kitchen</code></pre> 
-   </div> 
-  </div> 
- </div> 
-</div> 
-<div class="sect1"> 
- <h2 id="_you_re_in_a_hurry_use_groovy">You’re in a hurry? Use groovy!</h2> 
- <div class="sectionbody"> 
-  <div class="admonitionblock important"> 
-   <table> 
-    <tbody>
-     <tr> 
-      <td class="icon"> <i class="fa icon-important" title="Important"></i> </td> 
-      <td class="content"> this feature is supported starting from version 0.3.0 only. </td> 
-     </tr> 
-    </tbody>
-   </table> 
-  </div> 
-  <div class="paragraph"> 
-   <p>Create a file called <code>hello.groovy</code>:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@Grab('org.apache.meecrowave:meecrowave-core:0.3.0')
+[19:54:55.401][INFO][main][.meecrowave.cxf.CxfCdiAutoSetup]               GET /kitchen/ -&gt;      String getMenu()</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>And you can check it works doing:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-none hljs">curl http://localhost:8080/kitchen</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_youre_in_a_hurry_use_groovy">You&#8217;re in a hurry? Use groovy!</h2>
+<div class="sectionbody">
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+this feature is supported starting from version 0.3.0 only.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Create a file called <code>hello.groovy</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">@Grab('org.apache.meecrowave:meecrowave-core:0.3.0')
 
 import org.apache.meecrowave.Meecrowave
 
@@ -149,34 +181,45 @@ class Hello {
     }
 }
 
-new Meecrowave().bake().await()</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>then</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">groovy hello.groovy</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>Finally you can test it:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">curl http://localhost:8080/hello</code></pre> 
-   </div> 
-  </div> 
- </div> 
-</div> 
-<div class="sect1"> 
- <h2 id="_sample">Sample</h2> 
- <div class="sectionbody"> 
-  <div class="paragraph"> 
-   <p><a href="https://github.com/apache/openwebbeans-meecrowave-examples" class="bare">https://github.com/apache/openwebbeans-meecrowave-examples</a> contains ready to use examples using meecrowave.</p> 
-  </div> 
- </div> 
+new Meecrowave().bake().await()</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>then</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="bash" class="language-bash hljs">groovy hello.groovy</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Finally you can test it:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="bash" class="language-bash hljs">curl http://localhost:8080/hello</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_and_my_war">And my war?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>See <a href="meecrowave-core/deploy-webapp.html">How to deploy a war</a> to see how to use meecrowave to deploy an existing war.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_sample">Sample</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><a href="https://github.com/apache/openwebbeans-meecrowave-examples" class="bare">https://github.com/apache/openwebbeans-meecrowave-examples</a> contains ready to use examples using meecrowave.</p>
+</div>
+<div class="paragraph">
+<p>You can also find more information on our <a href="howto.html">How To</a> page.</p>
+</div>
+</div>
 </div>
             </section><!--//doc-section-->
 
@@ -204,8 +247,8 @@ new Meecrowave().bake().await()</code></
     <footer class="footer text-center">
         <div class="container">
           <div class="row">
-            <p >Copyright &copy; 2016
-                <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
+            <p >Copyright &copy; 2016-2020
+                <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
             </p>
           </div>
         </div>
@@ -220,10 +263,13 @@ new Meecrowave().bake().await()</code></
     <script type="text/javascript" src="/meecrowave/assets/plugins/jquery-1.12.3.min.js"></script>
     <script type="text/javascript" src="/meecrowave/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
     <script type="text/javascript" src="/meecrowave/assets/plugins/jquery-match-height/jquery.matchHeight-min.js"></script>
-    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js" integrity="sha256-aYTdUrn6Ow1DDgh5JTc3aDGnnju48y/1c8s1dgkYPQ8=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/java.min.js" integrity="sha256-21Z1xKC/FsaqN9z9jIER9xiX4XbV5buFEVdkZvsfBIc=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/groovy.min.js" integrity="sha256-0B+Ps1zCncLC5JIOQ+MtIhI/UhbJkYbxWsJowD3c+tk=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/shell.min.js" integrity="sha256-nwOM3xEc6CFfrPNDN1upX+5ynjWKAXsg+bW63SSzte0=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/bash.min.js" integrity="sha256-zXrlim8wsIvcEFjsD3THiAfTvtPZifqx8q0rxegiWQc=" crossorigin="anonymous"></script>
     <script type="text/javascript" src="/meecrowave/assets/js/main.js?version=1"></script>
 
 </body>
 </html>
 
-

Modified: websites/production/openwebbeans/content/meecrowave/testing/index.html
==============================================================================
--- websites/production/openwebbeans/content/meecrowave/testing/index.html (original)
+++ websites/production/openwebbeans/content/meecrowave/testing/index.html Sun Nov 15 14:36:03 2020
@@ -18,7 +18,7 @@
     <link rel="stylesheet" href="/meecrowave/assets/plugins/font-awesome/css/font-awesome.min.css">
     <link rel="stylesheet" href="/meecrowave/assets/plugins/elegant_font/css/style.css?version=1">
     <!-- highlighting -->
-    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/idea.min.css">
+    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/idea.min.css" integrity="sha256-rYB1c4yTU5UJB//rod7DtBo1JM6HAme/9Vd+VesFG2U=" crossorigin="anonymous" />
 
     <!-- Theme CSS -->
     <link id="theme-style" rel="stylesheet" href="/meecrowave/assets/css/styles.css">
@@ -66,32 +66,35 @@
 
 
             <section class="doc-section">
-                <div class="sect1"> 
- <h2 id="_junit">JUnit</h2> 
- <div class="sectionbody"> 
-  <div class="paragraph"> 
-   <p>Coordinates:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+                <div class="sect1">
+<h2 id="_junit">JUnit</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Coordinates:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;dependency&gt;
   &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
   &lt;artifactId&gt;meecrowave-junit&lt;/artifactId&gt;
   &lt;version&gt;${meecrowave.version}&lt;/version&gt;
-&lt;/dependency&gt;</code></pre> 
-   </div> 
-  </div> 
-  <div class="sect2"> 
-   <h3 id="_rules_and_runners">Rules and Runners</h3> 
-   <div class="paragraph"> 
-    <p>Meecrowave provides two flavors of JUnit integration: standalone or runners/rules. The standalone one will ensure there is a single container for the whole JVM. It also fits standalone environments where you want to control the lifecycle. The other one will follow the JUnit lifecycle (per class or test rule).</p> 
-   </div> 
-   <div class="paragraph"> 
-    <p>Here how to use the standalone flavor:</p> 
-   </div> 
-   <div class="listingblock"> 
-    <div class="content"> 
-     <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@RunWith(MonoMeecrowave.Runner.class)
+  &lt;scope&gt;test&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_rules_and_runners">Rules and Runners</h3>
+<div class="paragraph">
+<p>Meecrowave provides two flavors of JUnit integration: standalone or runners/rules. The standalone one will
+ensure there is a single container for the whole JVM. It also fits standalone environments where you want to control the lifecycle.
+The other one will follow the JUnit lifecycle (per class or test rule).</p>
+</div>
+<div class="paragraph">
+<p>Here how to use the standalone flavor:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">@RunWith(MonoMeecrowave.Runner.class)
 public class MonoMeecrowaveRuleTest {
     /* or
     @ClassRule
@@ -105,21 +108,23 @@ public class MonoMeecrowaveRuleTest {
     public void test() throws IOException {
         // use "http://localhost:" + config.getHttpPort()
     }
-}</code></pre> 
-    </div> 
-   </div> 
-   <div class="paragraph"> 
-    <p>When using the standalone, <code>@MonoMeecrowave.Runner.ConfigurationInject</code> allows to still access the configuration and random HTTP port.</p> 
-   </div> 
-   <div class="paragraph"> 
-    <p>For the configuration, the standalone runner will use a global configuration shared by all tests. To load it it will use a standard <code>ServiceLoader</code> on type <code>org.apache.meecrowave.Meecrowave$ConfigurationCustomizer</code>.</p> 
-   </div> 
-   <div class="paragraph"> 
-    <p>And here is the one bound to the JUnit lifecycle</p> 
-   </div> 
-   <div class="listingblock"> 
-    <div class="content"> 
-     <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class MeecrowaveRuleTest {
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>When using the standalone, <code>@MonoMeecrowave.Runner.ConfigurationInject</code> allows to still
+access the configuration and random HTTP port.</p>
+</div>
+<div class="paragraph">
+<p>For the configuration, the standalone runner will use a global configuration shared by all tests. To load it
+it will use a standard <code>ServiceLoader</code> on type <code>org.apache.meecrowave.Meecrowave$ConfigurationCustomizer</code>.</p>
+</div>
+<div class="paragraph">
+<p>And here is the one bound to the JUnit lifecycle</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">public class MeecrowaveRuleTest {
     @ClassRule // started once for the class, @Rule would be per method
     public static final MeecrowaveRule RULE = new MeecrowaveRule();
 
@@ -127,24 +132,27 @@ public class MonoMeecrowaveRuleTest {
     public void test() throws IOException {
         // use "http://localhost:" + RULE.getConfiguration().getHttpPort()
     }
-}</code></pre> 
-    </div> 
-   </div> 
-   <div class="paragraph"> 
-    <p>As usual with JUnit rules, you can decide whereas the Meecrowave instance is bound to the entire test class or a method by using @ClassRule or @Rule.</p> 
-   </div> 
-  </div> 
-  <div class="sect2"> 
-   <h3 id="_junit_5">JUnit 5</h3> 
-   <div class="paragraph"> 
-    <p>JUnit 5 integrates a new <code>Extension</code> system. It is not yet very well supported by IDEs but you can already use it with Gradle and Maven (see <a href="http://junit.org/junit5/docs/current/user-guide/#running-tests" class="bare">http://junit.org/junit5/docs/current/user-guide/#running-tests</a>).</p> 
-   </div> 
-   <div class="paragraph"> 
-    <p>The usage has two annotations: <code>@MeecrowaveConfig</code> which remaps most of the configuration of Meecrowave and <code>@MonoMeecrowaveConfig</code> which is close to <code>MonoMeecrowave.Runner</code> in term of usage.</p> 
-   </div> 
-   <div class="listingblock"> 
-    <div class="content"> 
-     <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@MeecrowaveConfig /*(some config)*/
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>As usual with JUnit rules, you can decide whereas the Meecrowave instance is bound to the entire test class
+or a method by using @ClassRule or @Rule.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_junit_5">JUnit 5</h3>
+<div class="paragraph">
+<p>JUnit 5 integrates a new <code>Extension</code> system. It is not yet very well supported by IDEs but you can already use it with
+Gradle and Maven (see <a href="http://junit.org/junit5/docs/current/user-guide/#running-tests" class="bare">http://junit.org/junit5/docs/current/user-guide/#running-tests</a>).</p>
+</div>
+<div class="paragraph">
+<p>The usage has two annotations: <code>@MeecrowaveConfig</code> which remaps most of the configuration of Meecrowave and <code>@MonoMeecrowaveConfig</code>
+which is close to <code>MonoMeecrowave.Runner</code> in term of usage.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">@MeecrowaveConfig /*(some config)*/
 public class MeecrowaveConfigTest {
     @ConfigurationInject
     private Meecrowave.Builder config;
@@ -154,62 +162,68 @@ public class MeecrowaveConfigTest {
         final String base = "http://localhost:" + config.getHttpPort();
         // asserts
     }
-}</code></pre> 
-    </div> 
-   </div> 
-   <div class="paragraph"> 
-    <p>Or</p> 
-   </div> 
-   <div class="listingblock"> 
-    <div class="content"> 
-     <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@MonoMeecrowaveConfig
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Or</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">@MonoMeecrowaveConfig
 public class MeecrowaveConfigTest {
     // ...
-}</code></pre> 
-    </div> 
-   </div> 
-   <div class="admonitionblock tip"> 
-    <table> 
-     <tbody>
-      <tr> 
-       <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
-       <td class="content"> JUnit 5 integration provides an <code>@AfterFirstInjection</code> method and <code>@AfterLastTest</code> which can be used to setup/reset some environment using injections once for a set of test methods. The methods must not have any parameter. </td> 
-      </tr> 
-     </tbody>
-    </table> 
-   </div> 
-  </div> 
- </div> 
-</div> 
-<div class="sect1"> 
- <h2 id="_arquillian_container">Arquillian Container</h2> 
- <div class="sectionbody"> 
-  <div class="paragraph"> 
-   <p>Container dependency:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+}</code></pre>
+</div>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+JUnit 5 integration provides an <code>@AfterFirstInjection</code> method and <code>@AfterLastTest</code>
+which can be used to setup/reset some environment using injections once for a set of test methods.
+The methods must not have any parameter.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_arquillian_container">Arquillian Container</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Container dependency:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;dependency&gt;
   &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
   &lt;artifactId&gt;meecrowave-arquillian&lt;/artifactId&gt;
   &lt;version&gt;${meecrowave.version}&lt;/version&gt;
-&lt;/dependency&gt;</code></pre> 
-   </div> 
-  </div> 
-  <div class="paragraph"> 
-   <p>For the configuration check <a href="/meecrowave/meecrowave-core/configuration.html">Core configuration</a>.</p> 
-  </div> 
-  <div class="paragraph"> 
-   <p>Here is a sample:</p> 
-  </div> 
-  <div class="listingblock"> 
-   <div class="content"> 
-    <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+  &lt;scope&gt;test&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For the configuration check <a href="/meecrowave/meecrowave-core/configuration.html">Core configuration</a>.</p>
+</div>
+<div class="paragraph">
+<p>Here is a sample:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;arquillian xmlns="http://jboss.org/schema/arquillian"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"&gt;
   &lt;container qualifier="meecrowave" default="true"&gt;
     &lt;configuration&gt;
+      &lt;property name="antiResourceLocking"&gt;false&lt;/property&gt;
       &lt;property name="arquillianProtocol"&gt;Servlet 3.1&lt;/property&gt;
       &lt;property name="cdiConversation"&gt;false&lt;/property&gt;
       &lt;property name="clientAuth"&gt;&lt;/property&gt;
@@ -274,10 +288,11 @@ public class MeecrowaveConfigTest {
       &lt;property name="ssl"&gt;false&lt;/property&gt;
       &lt;property name="sslProtocol"&gt;&lt;/property&gt;
       &lt;property name="stopPort"&gt;-1&lt;/property&gt;
-      &lt;property name="tempDir"&gt;/var/folders/cc/5g6j5x3x74154g2rmmtpz_4w0000gn/T/meecrowave_184680423404202&lt;/property&gt;
+      &lt;property name="tempDir"&gt;/tmp/meecrowave_23934057649176&lt;/property&gt;
       &lt;property name="tomcatAccessLogPattern"&gt;&lt;/property&gt;
       &lt;property name="tomcatAutoSetup"&gt;true&lt;/property&gt;
       &lt;property name="tomcatFilter"&gt;&lt;/property&gt;
+      &lt;property name="tomcatJspDevelopment"&gt;false&lt;/property&gt;
       &lt;property name="tomcatNoJmx"&gt;true&lt;/property&gt;
       &lt;property name="tomcatScanning"&gt;true&lt;/property&gt;
       &lt;property name="tomcatWrapLoader"&gt;true&lt;/property&gt;
@@ -294,10 +309,10 @@ public class MeecrowaveConfigTest {
       &lt;property name="webXml"&gt;&lt;/property&gt;
     &lt;/configuration&gt;
   &lt;/container&gt;
-&lt;/arquillian&gt;</code></pre> 
-   </div> 
-  </div> 
- </div> 
+&lt;/arquillian&gt;</code></pre>
+</div>
+</div>
+</div>
 </div>
             </section><!--//doc-section-->
 
@@ -325,8 +340,8 @@ public class MeecrowaveConfigTest {
     <footer class="footer text-center">
         <div class="container">
           <div class="row">
-            <p >Copyright &copy; 2016
-                <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
+            <p >Copyright &copy; 2016-2020
+                <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
             </p>
           </div>
         </div>
@@ -341,10 +356,13 @@ public class MeecrowaveConfigTest {
     <script type="text/javascript" src="/meecrowave/assets/plugins/jquery-1.12.3.min.js"></script>
     <script type="text/javascript" src="/meecrowave/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
     <script type="text/javascript" src="/meecrowave/assets/plugins/jquery-match-height/jquery.matchHeight-min.js"></script>
-    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js" integrity="sha256-aYTdUrn6Ow1DDgh5JTc3aDGnnju48y/1c8s1dgkYPQ8=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/java.min.js" integrity="sha256-21Z1xKC/FsaqN9z9jIER9xiX4XbV5buFEVdkZvsfBIc=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/groovy.min.js" integrity="sha256-0B+Ps1zCncLC5JIOQ+MtIhI/UhbJkYbxWsJowD3c+tk=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/shell.min.js" integrity="sha256-nwOM3xEc6CFfrPNDN1upX+5ynjWKAXsg+bW63SSzte0=" crossorigin="anonymous"></script>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/bash.min.js" integrity="sha256-zXrlim8wsIvcEFjsD3THiAfTvtPZifqx8q0rxegiWQc=" crossorigin="anonymous"></script>
     <script type="text/javascript" src="/meecrowave/assets/js/main.js?version=1"></script>
 
 </body>
 </html>
 
-