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 2019/10/03 13:56:35 UTC

svn commit: r1050995 [5/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...

Added: websites/production/openwebbeans/content/meecrowave/howto.html
==============================================================================
--- websites/production/openwebbeans/content/meecrowave/howto.html (added)
+++ websites/production/openwebbeans/content/meecrowave/howto.html Thu Oct  3 13:56:35 2019
@@ -0,0 +1,466 @@
+<!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="body-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_documents_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_documents_alt"></span> Howto</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/howto.pdf"><i class="fa fa-file-pdf-o"></i> Download as PDF</a>
+  </div>
+</div>
+
+
+
+            <section class="doc-section">
+                <div class="sect1">
+<h2 id="_how_to_create_a_simple_maven_project_using_meecrowave">How to create a simple maven project using Meecrowave ?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You should add the following dependencies do the dependencies section of your pom.xml (adjust version to current stable version)</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+    &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
+    &lt;artifactId&gt;meecrowave-specs-api&lt;/artifactId&gt;
+    &lt;version&gt;${meecrowave.version}&lt;/version&gt;
+&lt;/dependency&gt;
+&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;
+
+&lt;!-- if you intend to have unit tests (you really should) --&gt;
+&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;scope&gt;test&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>and the following plugin configuration to the build/plugins section of your pom.xml</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;plugin&gt;
+    &lt;!--
+    For starting meecrowave via Maven. Just run
+    $&gt; mvn clean install meecrowave:run
+    --&gt;
+    &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
+    &lt;artifactId&gt;meecrowave-maven-plugin&lt;/artifactId&gt;
+    &lt;version&gt;${meecrowave.version}&lt;/version&gt;
+&lt;/plugin&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Then, you can start your app by running</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-shell hljs" data-lang="shell">mvn clean install meecrowave:run</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_how_to_add_a_rest_endpoint">How to add a REST Endpoint ?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You should declare your endpoint path and verd :</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">package org.mypackage;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+
+@Path("mypath")
+@ApplicationScoped
+public class MyEndpoint {
+
+    /**
+     * Ping / pong rest GET method, to check backend and replies to queries
+     *
+     * @return
+     */
+    @Path("/ping")
+    @GET
+    public String getPing() {
+        return "pong";
+    }
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_how_to_add_a_filter_simple_case">How to add a filter (simple case) ?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Use standard Servlet 4.0 <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/annotation/WebFilter.html">@WebFilter</a> annotation. A simple example :</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">package org.mypackage;
+
+import java.io.IOException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * A simple CORS filter
+ *
+ */
+@WebFilter(asyncSupported = true, urlPatterns = {"/*"})
+public class CORSFilter implements Filter {
+
+    /**
+     * A basic CORS filter, allowing everything
+     */
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
+            throws IOException, ServletException {
+
+        HttpServletRequest request = (HttpServletRequest) servletRequest;
+
+        HttpServletResponse response = (HttpServletResponse) servletResponse;
+        response.addHeader("Access-Control-Allow-Origin", "*");
+        response.addHeader("Access-Control-Allow-Methods","GET, OPTIONS, HEAD, PUT, POST, DELETE");
+        response.addHeader("Access-Control-Allow-Headers","*");
+
+        if (request.getMethod().equals("OPTIONS")) {
+            // special case of return code for "OPTIONS" query
+            response.setStatus(HttpServletResponse.SC_ACCEPTED);
+            return;
+        }
+
+        // pass the request along the filter chain
+        chain.doFilter(request, servletResponse);
+    }
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_how_to_add_a_servlet">How to add a servlet ?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>If your servlet requires no configuration that you would typically put in the web.xml file, you can use the <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/annotation/WebServlet.html">@WebServlet</a> annotation from the Servlet 3.0 specification.</p>
+</div>
+<div class="paragraph">
+<p>If you need to configure the servlet, you should use a <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContainerInitializer.html">ServletContainerInitializer</a>.</p>
+</div>
+<div class="paragraph">
+<p>If you would have a declaration such as :</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;servlet&gt;
+    &lt;description&gt;My Servlet&lt;/description&gt;
+    &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt;
+    &lt;servlet-class&gt;org.my.servlet.ImplementationClass&lt;/servlet-class&gt;
+    &lt;init-param&gt;
+        &lt;param-name&gt;param-name&lt;/param-name&gt;
+        &lt;param-value&gt;My param value&lt;/param-value&gt;
+    &lt;/init-param&gt;
+    &lt;load-on-startup&gt;0&lt;/load-on-startup&gt;
+    &lt;async-supported&gt;true&lt;/async-supported&gt;
+&lt;/servlet&gt;
+&lt;servlet-mapping&gt;
+    &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt;
+    &lt;url-pattern&gt;/my_mapping/*&lt;/url-pattern&gt;
+&lt;/servlet-mapping&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>in your web.xml, you would have a SerlvetContainerInitializer such as :</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">package org.mypackage;
+
+import java.util.Set;
+
+import javax.servlet.ServletContainerInitializer;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletRegistration;
+
+import org.my.servlet.ImplementationClass;
+
+public class MyServletContainerInitializer implements ServletContainerInitializer {
+    @Override
+    public void onStartup(final Set&lt;Class&lt;?&gt;&gt; c, final ServletContext context) {
+        final ServletRegistration.Dynamic def = context.addServlet("My Servlet", ImplementationClass.class);
+        def.setInitParameter("param-name", "My param value");
+
+        def.setLoadOnStartup(0);
+        def.addMapping("/my_mapping/*");
+        def.setAsyncSupported(true);
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Then, you should register this implementation of ServletContainerInitializer:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>in a SPI, in src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer:</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code>org.mypackage.MyServletContainerInitializer</code></pre>
+</div>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>or add it to Meecrowave configuration using a Meecrowave.ConfigurationCustomizer such as :</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">package org.mypackage;
+
+import org.apache.meecrowave.Meecrowave;
+
+public class ServletContainerInitializerCustomizer implements Meecrowave.ConfigurationCustomizer {
+    @Override
+    public void accept(final Meecrowave.Builder builder) {
+        builder.addServletContextInitializer(new MyServletContainerInitializer());
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Using this last option, the configuration will also be performed before unit tests are executed.</p>
+</div>
+<div class="paragraph">
+<p>Your implementation of Meecrowave.ConfigurationCustomizer should be added to the configuration by appending its canonical name to the src/main/resources/META-INF/org.apache.meecrowave.Meecrowave$ConfigurationCustomizer file.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_how_to_add_a_valve">How to add a valve ?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Simple cases should be handled using <a href="http://openwebbeans.apache.org/meecrowave/meecrowave-core/configuration.html#_valve_configuration">a meecrowave.properties file</a>.</p>
+</div>
+<div class="paragraph">
+<p>More complex cases can be handled using an implementation of Meecrowave.ConfigurationCustomizer.</p>
+</div>
+<div class="paragraph">
+<p>In the following example, we instantiate a <a href="https://tomcat.apache.org/tomcat-9.0-doc/rewrite.html">Tomcat RewriteValve</a> and load the rewrite.config file we usually put in src/main/webapp/WEB-INF in a webapp packaged as a war, and that we would put in src/main/resources in a meecrowave app :</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">package org.mypackage;
+
+import java.io.IOException;
+import java.io.InputStream;
+import lombok.extern.log4j.Log4j2;
+import org.apache.catalina.LifecycleException;
+import org.apache.catalina.valves.rewrite.RewriteValve;
+import org.apache.meecrowave.Meecrowave;
+
+/**
+ * A bit of glue to set proxy / RewriteValve configuration at startup
+ *
+ */
+@Log4j2
+public class RewriteValveCustomizer implements Meecrowave.ConfigurationCustomizer {
+    final String PROXY_CONFIG = "rewrite.config";
+    @Override
+    public void accept(final Meecrowave.Builder builder) {
+        log.info("Loading proxy / rewrite configuration from {}", PROXY_CONFIG);
+        log.info("This file should be in src/main/resources in project sources");
+        try (InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(PROXY_CONFIG)) {
+            if (null == stream) {
+                log.info("Rewrite configuration file {} not found", PROXY_CONFIG);
+                return;
+            }
+            configuration = new BufferedReader(new InputStreamReader(stream)).lines().collect(Collectors.joining("\n"));
+        } catch (IOException ex) {
+            log.error("Error reading rewrite / proxy configuration file {}", PROXY_CONFIG);
+            return;
+        }
+        final RewriteValve proxy = new RewriteValve() {
+            @Override
+            protected synchronized void startInternal() throws LifecycleException {
+                super.startInternal();
+                try {
+                    setConfiguration(configuration);
+                } catch (final Exception e) {
+                    throw new LifecycleException(e);
+                }
+            }
+        };
+        // at this time, we are still single threaded. So, this should be safe.
+        builder.instanceCustomizer(tomcat -&gt; tomcat.getHost().getPipeline().addValve(proxy));
+        log.info("Proxy / rewrite configuration valve configured and added to tomcat.");
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Your implementation of Meecrowave.ConfigurationCustomizer should be added to the configuration by appending its canonical name to the src/main/resources/META-INF/org.apache.meecrowave.Meecrowave$ConfigurationCustomizer file.</p>
+</div>
+<div class="paragraph">
+<p>A more complex example <a href="https://rmannibucau.metawerx.net/post/tomcat-rewrite-url">is available on Romain Manni-Bucau&#8217;s blog</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_how_to_add_a_web_frontend">How to add a web frontend ?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You should add a &lt;webapp&gt; element to the meecrowave plugin configuration. Example :</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;plugin&gt;
+    &lt;!--
+        For starting meecrowave via Maven. Just run
+        $&gt; mvn clean install meecrowave:run
+    --&gt;
+    &lt;groupId&gt;org.apache.meecrowave&lt;/groupId&gt;
+    &lt;artifactId&gt;meecrowave-maven-plugin&lt;/artifactId&gt;
+    &lt;version&gt;${meecrowave.version}&lt;/version&gt;
+    &lt;configuration&gt;
+        &lt;!-- include packaged app as webapp --&gt;
+        &lt;webapp&gt;src/main/webapp/dist&lt;/webapp&gt;
+    &lt;/configuration&gt;
+&lt;/plugin&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>will add the content of the "dist" folder to your package and its files will be available on the application root.</p>
+</div>
+<div class="paragraph">
+<p>Note that your frontend will be served when executing the app (on a mvn meecrowave:run or when running a packaged app). It will not be available during unit tests.</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-2019
+                <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/index.html
==============================================================================
--- websites/production/openwebbeans/content/meecrowave/index.html (original)
+++ websites/production/openwebbeans/content/meecrowave/index.html Thu Oct  3 13:56:35 2019
@@ -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">
@@ -105,8 +105,8 @@
     <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-2019
+                <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
             </p>
           </div>
         </div>
@@ -121,10 +121,13 @@
     <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/meecrowave-core/cli.html
==============================================================================
--- websites/production/openwebbeans/content/meecrowave/meecrowave-core/cli.html (original)
+++ websites/production/openwebbeans/content/meecrowave/meecrowave-core/cli.html Thu Oct  3 13:56:35 2019
@@ -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,358 +66,380 @@
 
 
             <section class="doc-section">
-                <div id="preamble"> 
- <div class="sectionbody"> 
-  <div class="paragraph"> 
-   <p>Meecrowave provides a CLI (Command Line Interface) called <code>org.apache.meecrowave.runner.Cli</code>.</p> 
-  </div> 
-  <div class="paragraph"> 
-   <p>It can be used to deploy the java classpath or a war. Here are the main options:</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">--cdi-conversation</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should CDI conversation be activated</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--client-auth</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore client authentication</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--conf</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Conf folder to synchronize</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--connector</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Custom connectors</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--cxf-servlet-params</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Init parameters passed to CXF servlet</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--default-ssl-hostconfig-name</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">The name of the default SSLHostConfig that will be used for secure https connections.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--delete-on-startup</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should the directory be cleaned on startup if existing</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--dir</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Root folder if provided otherwise a fake one is created in tmp-dir</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--host</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Default host</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--http2</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Activate HTTP 2</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--http</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">HTTP port</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--https</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS port</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--cxf-initialize-client-bus</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should the client bus be set. If false the server one will likely be reused.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--servlet-container-initializer-injection</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should ServletContainerInitialize support injections.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-beanvalidation</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should bean validation be activated on JAX-RS endpoint if present in the classpath.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-default-providers</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">If jaxrsProviderSetup is true the list of default providers to load (or defaulting to johnson jsonb and jsonp ones)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-log-provider</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JAX-RS providers be logged</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-mapping</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Default jaxrs mapping</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-provider-setup</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should default JAX-RS provider be configured</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jaxws-support-if-present</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should @WebService CDI beans be deployed if cxf-rt-frontend-jaxws is in the classpath.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-binary-strategy</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider prettify the output</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-encoding</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Which encoding provider JSON-B should use</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-ijson</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider comply to I-JSON</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-naming-strategy</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider prettify the output</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-nulls</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider serialize nulls</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-order-strategy</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider prettify the output</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-prettify</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider prettify the output</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-buffer-strategy</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JSON-P JAX-RS provider buffer strategy (see johnzon)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-read-buffer-length</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JSON-P JAX-RS provider read buffer limit size (see johnzon)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-max-string-length</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JSON-P JAX-RS provider max string limit size (see johnzon)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-write-buffer-length</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">JSON-P JAX-RS provider write buffer limit size (see johnzon)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-supports-comment</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-P JAX-RS provider prettify the outputs (see johnzon)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-supports-comment</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-P JAX-RS provider support comments (see johnzon)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--keep-server-xml-as-this</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Don’t replace ports in server.xml</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--keystore-alias</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore alias</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--keystore-file</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore location</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--keystore-password</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore password</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--keystore-type</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore type</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--logging-global-setup</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should logging be configured to use log4j2 (it is global)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--login-config</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">web.xml login config</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--meecrowave-properties</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Loads a meecrowave properties, defaults to meecrowave.properties.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--pid-file</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">A file path to write the process id if the server starts</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--properties</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Passthrough properties</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--quick-session</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should an unsecured but fast session id generator be used</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--realm</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">realm</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--roles</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">In memory roles</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--scanning-exclude</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">A forced exclude list of jar names (comma separated values)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--scanning-include</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">A forced include list of jar names (comma separated values)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--scanning-package-exclude</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">A forced exclude list of packages names (comma separated values)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--scanning-package-include</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">A forced include list of packages names (comma separated values)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--security-constraint</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">web.xml security constraint</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--server-xml</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Provided server.xml</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--shared-libraries</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">A folder containing shared libraries.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--skip-http</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Skip HTTP connector</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--ssl</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Use HTTPS</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--ssl-protocol</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS protocol</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--stop</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Shutdown port if used or -1</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--tmp-dir</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Temporary directory</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-access-log-pattern</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Activates and configure the access log valve. Value example: '%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-default-setup</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Add default servlet</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-filter</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">A Tomcat JarScanFilter</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-skip-jmx</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">(Experimental) Should Tomcat MBeans be skipped.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-scanning</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should Tomcat scanning be used (@HandleTypes, @WebXXX)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-wrap-loader</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">(Experimental) When deploying a classpath (current classloader), should meecrowave wrap the loader to define another loader identity but still use the same classes and resources.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--log4j2-jul-bridge</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should JUL logs be redirected to Log4j2 - only works before JUL usage.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--use-shutdown-hook</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Use shutdown hook to automatically stop the container on Ctrl+C</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-default</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Should Tomcat default be set (session timeout, mime mapping etc…​)</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--users</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">In memory users</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--watcher-bouncing</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Activate redeployment on directories update using this bouncing.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--web-resource-cached</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Cache web resources</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--web-session-cookie-config</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Force the cookie-config, it uses a properties syntax with the keys being the web.xml tag names.</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--web-session-timeout</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Force the session timeout for webapps</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--web-xml</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Global web.xml</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--help</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Show the CLI help/usage</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--context</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">The context to use to deploy the webapp</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--webapp</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Location of the webapp, if not set the classpath will be deployed</p></td> 
-    </tr> 
-    <tr> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">--docbase</p></td> 
-     <td class="tableblock halign-left valign-top"><p class="tableblock">Location of the docbase for a classpath deployment</p></td> 
-    </tr> 
-   </tbody> 
-  </table> 
-  <div class="paragraph"> 
-   <p>Note that <code>help</code> command is supported as well.</p> 
-  </div> 
- </div> 
-</div> 
-<div class="sect1"> 
- <h2 id="_extending_the_cli">Extending the CLI</h2> 
- <div class="sectionbody"> 
-  <div class="paragraph"> 
-   <p>You can add your own CLI options implementing <code>org.apache.meecrowave.runner.Cli$Options</code> (just a marker interface, no logic to code) and use <code>@CliOption</code> to define fields as coming from the CLI arguments. To register your option bean just add it in <code>META-INF/services/org.apache.meecrowave.runner.Cli$Options</code>.</p> 
-  </div> 
-  <div class="admonitionblock tip"> 
-   <table> 
-    <tbody>
-     <tr> 
-      <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
-      <td class="content"> <code>Meecrowave.Builder</code> provides a <code>getExtension(type)</code> which can be used to get this kind of extension. This is common and works in all modes (arquillian, JUnit, embedded etc…​) replacing the arguments by properties on <code>Meecrowave.Builder</code> instance. </td> 
-     </tr> 
-    </tbody>
-   </table> 
-  </div> 
- </div> 
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Meecrowave provides a CLI (Command Line Interface) called <code>org.apache.meecrowave.runner.Cli</code>.</p>
+</div>
+<div class="paragraph">
+<p>It can be used to deploy the java classpath or a war. Here are the main options:</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">--tomcat-antiresourcelocking</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should Tomcat anti resource locking feature be activated on StandardContext.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--cdi-conversation</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should CDI conversation be activated</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--client-auth</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore client authentication</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--conf</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Conf folder to synchronize</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--connector</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Custom connectors</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-context-configurer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Configurers for all webapps. The Consumer&lt;Context&gt; instances will be applied to all deployments.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--cxf-servlet-params</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Init parameters passed to CXF servlet</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--default-ssl-hostconfig-name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The name of the default SSLHostConfig that will be used for secure https connections.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--delete-on-startup</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should the directory be cleaned on startup if existing</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--dir</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Root folder if provided otherwise a fake one is created in tmp-dir</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--host</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Default host</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--http2</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Activate HTTP 2</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--http</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP port</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--https</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS port</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--cxf-initialize-client-bus</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should the client bus be set. If false the server one will likely be reused.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--servlet-container-initializer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ServletContainerInitializer instances.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--servlet-container-initializer-injection</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should ServletContainerInitialize support injections.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-beanvalidation</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should bean validation be activated on JAX-RS endpoint if present in the classpath.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-default-providers</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">If jaxrsProviderSetup is true the list of default providers to load (or defaulting to johnson jsonb and jsonp ones)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-log-provider</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JAX-RS providers be logged</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-mapping</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Default jaxrs mapping</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jaxrs-provider-setup</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should default JAX-RS provider be configured</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jaxws-support-if-present</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should @WebService CDI beans be deployed if cxf-rt-frontend-jaxws is in the classpath.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-binary-strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider prettify the output</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-encoding</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Which encoding provider JSON-B should use</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-ijson</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider comply to I-JSON</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-naming-strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider prettify the output</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-nulls</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider serialize nulls</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-order-strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider prettify the output</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonb-prettify</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-B provider prettify the output</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-buffer-strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JSON-P JAX-RS provider buffer strategy (see johnzon)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-read-buffer-length</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JSON-P JAX-RS provider read buffer limit size (see johnzon)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-max-string-length</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JSON-P JAX-RS provider max string limit size (see johnzon)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-write-buffer-length</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JSON-P JAX-RS provider write buffer limit size (see johnzon)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-supports-comment</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-P JAX-RS provider prettify the outputs (see johnzon)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--jsonp-supports-comment</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSON-P JAX-RS provider support comments (see johnzon)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--keep-server-xml-as-this</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Don&#8217;t replace ports in server.xml</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--keystore-alias</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore alias</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--keystore-file</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore location</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--keystore-password</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore password</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--keystore-type</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS keystore type</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--logging-global-setup</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should logging be configured to use log4j2 (it is global)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--login-config</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">web.xml login config</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--meecrowave-properties</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Loads a meecrowave properties, defaults to meecrowave.properties.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--pid-file</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A file path to write the process id if the server starts</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--properties</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Passthrough properties</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--quick-session</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should an unsecured but fast session id generator be used</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--realm</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">realm</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--roles</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">In memory roles</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--scanning-exclude</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A forced exclude list of jar names (comma separated values)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--scanning-include</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A forced include list of jar names (comma separated values)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--scanning-package-exclude</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A forced exclude list of packages names (comma separated values)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--scanning-package-include</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A forced include list of packages names (comma separated values)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--security-constraint</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">web.xml security constraint</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--server-xml</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Provided server.xml</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--shared-libraries</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A folder containing shared libraries.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--skip-http</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Skip HTTP connector</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--ssl</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Use HTTPS</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--ssl-protocol</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--stop</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Shutdown port if used or -1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tmp-dir</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Temporary directory</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-access-log-pattern</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Activates and configure the access log valve. Value example: '%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-default-setup</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Add default servlet</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-filter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A Tomcat JarScanFilter</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-default-setup-jsp-development</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JSP support if available be set in development mode</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-skip-jmx</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">(Experimental) Should Tomcat MBeans be skipped.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-scanning</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should Tomcat scanning be used (@HandleTypes, @WebXXX)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-wrap-loader</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">(Experimental) When deploying a classpath (current classloader), should meecrowave wrap the loader to define another loader identity but still use the same classes and resources.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--log4j2-jul-bridge</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should JUL logs be redirected to Log4j2 - only works before JUL usage.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--use-shutdown-hook</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Use shutdown hook to automatically stop the container on Ctrl+C</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--tomcat-default</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should Tomcat default be set (session timeout, mime mapping etc&#8230;&#8203;)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--users</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">In memory users</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--watcher-bouncing</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Activate redeployment on directories update using this bouncing.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--web-resource-cached</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Cache web resources</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--web-session-cookie-config</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Force the cookie-config, it uses a properties syntax with the keys being the web.xml tag names.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--web-session-timeout</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Force the session timeout for webapps</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--web-xml</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Global web.xml</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--help</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Show the CLI help/usage</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--context</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The context to use to deploy the webapp</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--webapp</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Location of the webapp, if not set the classpath will be deployed</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">--docbase</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Location of the docbase for a classpath deployment</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Note that <code>help</code> command is supported as well.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_extending_the_cli">Extending the CLI</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can add your own CLI options implementing <code>org.apache.meecrowave.runner.Cli$Options</code>
+(just a marker interface, no logic to code) and use <code>@CliOption</code> to define fields
+as coming from the CLI arguments. To register your option bean just add it in <code>META-INF/services/org.apache.meecrowave.runner.Cli$Options</code>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+<code>Meecrowave.Builder</code> provides a <code>getExtension(type)</code> which can be used to get this
+kind of extension. This is common and works in all modes (arquillian, JUnit, embedded etc&#8230;&#8203;)
+replacing the arguments by properties on <code>Meecrowave.Builder</code> instance.
+</td>
+</tr>
+</table>
+</div>
+</div>
 </div>
             </section><!--//doc-section-->
 
@@ -445,8 +467,8 @@
     <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-2019
+                <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.
             </p>
           </div>
         </div>
@@ -461,10 +483,13 @@
     <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/meecrowave-core/cli.pdf
==============================================================================
Binary files - no diff available.