Author: rmannibucau
Date: Thu Apr 18 13:17:43 2019
New Revision: 1043823
Log:
Site checkin for project Meecrowave :: Doc
Added:
websites/production/openwebbeans/content/meecrowave/howto.html
Removed:
websites/production/openwebbeans/content/meecrowave/meecrowave-core/configuration.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-core/deploy-webapp.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-gradle/index.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-jpa/index.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-oauth2/index.pdf
websites/production/openwebbeans/content/meecrowave/start.pdf
websites/production/openwebbeans/content/meecrowave/testing/index.pdf
Modified:
websites/production/openwebbeans/content/meecrowave/community.pdf
websites/production/openwebbeans/content/meecrowave/companion-projects.pdf
websites/production/openwebbeans/content/meecrowave/components.pdf
websites/production/openwebbeans/content/meecrowave/download.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-core/cli.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-jolokia/index.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-jta/index.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-letsencrypt/index.pdf
websites/production/openwebbeans/content/meecrowave/meecrowave-maven/index.html
websites/production/openwebbeans/content/meecrowave/meecrowave-maven/index.pdf
websites/production/openwebbeans/content/meecrowave/testing/index.html
Modified: websites/production/openwebbeans/content/meecrowave/community.pdf
==============================================================================
Binary files - no diff available.
Modified:
websites/production/openwebbeans/content/meecrowave/companion-projects.pdf
==============================================================================
Binary files - no diff available.
Modified: websites/production/openwebbeans/content/meecrowave/components.pdf
==============================================================================
Binary files - no diff available.
Modified: websites/production/openwebbeans/content/meecrowave/download.pdf
==============================================================================
Binary files - no diff available.
Added: websites/production/openwebbeans/content/meecrowave/howto.html
==============================================================================
--- websites/production/openwebbeans/content/meecrowave/howto.html (added)
+++ websites/production/openwebbeans/content/meecrowave/howto.html Thu Apr 18
13:17:43 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-maven hljs"
data-lang="maven"><dependency>
+ <groupId>org.apache.meecrowave</groupId>
+ <artifactId>meecrowave-specs-api</artifactId>
+ <version>${meecrowave.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.apache.meecrowave</groupId>
+ <artifactId>meecrowave-core</artifactId>
+ <version>${meecrowave.version}</version>
+</dependency>
+
+<!-- if you intend to have unit tests (you really should) -->
+<dependency>
+ <groupId>org.apache.meecrowave</groupId>
+ <artifactId>meecrowave-junit</artifactId>
+ <version>${meecrowave.version}</version>
+ <scope>test</scope>
+</dependency></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-maven hljs"
data-lang="maven"><plugin>
+ <!--
+ For starting meecrowave via Maven. Just run
+ $> mvn clean install meecrowave:run
+ -->
+ <groupId>org.apache.meecrowave</groupId>
+ <artifactId>meecrowave-maven-plugin</artifactId>
+ <version>${meecrowave.version}</version>
+</plugin></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"><servlet>
+ <description>My Servlet</description>
+ <servlet-name>MyServlet</servlet-name>
+
<servlet-class>org.my.servlet.ImplementationClass</servlet-class>
+ <init-param>
+ <param-name>param-name</param-name>
+ <param-value>My param value</param-value>
+ </init-param>
+ <load-on-startup>0</load-on-startup>
+ <async-supported>true</async-supported>
+</servlet>
+<servlet-mapping>
+ <servlet-name>MyServlet</servlet-name>
+ <url-pattern>/my_mapping/*</url-pattern>
+</servlet-mapping></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<Class<?>> 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>org.mypackage.MyServletContainerInitializer</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>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());
+ }
+}</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 ->
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’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 <webapp> element to the meecrowave plugin
configuration. Example :</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-pom.xml hljs"
data-lang="pom.xml"><plugin>
+ <!--
+ For starting meecrowave via Maven. Just run
+ $> mvn clean install meecrowave:run
+ -->
+ <groupId>org.apache.meecrowave</groupId>
+ <artifactId>meecrowave-maven-plugin</artifactId>
+ <version>${meecrowave.version}</version>
+ <configuration>
+ <!-- include packaged app as webapp -->
+ <webapp>src/main/webapp/dist</webapp>
+ </configuration>
+</plugin></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 © 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/meecrowave-core/cli.pdf
==============================================================================
Binary files - no diff available.
Modified:
websites/production/openwebbeans/content/meecrowave/meecrowave-jolokia/index.pdf
==============================================================================
Binary files - no diff available.
Modified:
websites/production/openwebbeans/content/meecrowave/meecrowave-jta/index.pdf
==============================================================================
Binary files - no diff available.
Modified:
websites/production/openwebbeans/content/meecrowave/meecrowave-letsencrypt/index.pdf
==============================================================================
Binary files - no diff available.
Modified:
websites/production/openwebbeans/content/meecrowave/meecrowave-maven/index.html
==============================================================================
---
websites/production/openwebbeans/content/meecrowave/meecrowave-maven/index.html
(original)
+++
websites/production/openwebbeans/content/meecrowave/meecrowave-maven/index.html
Thu Apr 18 13:17:43 2019
@@ -568,7 +568,7 @@ it independently.</p>
<pre class="highlightjs highlight"><code class="language-xml hljs"
data-lang="xml"><plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
- <version>2.4.3</version>
+ <version>3.2.1</version>
<executions>
<execution>
<id>bundle</id>
Modified:
websites/production/openwebbeans/content/meecrowave/meecrowave-maven/index.pdf
==============================================================================
Binary files - no diff available.
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 Thu
Apr 18 13:17:43 2019
@@ -286,7 +286,7 @@ The methods must not have any parameter.
<property name="ssl">false</property>
<property name="sslProtocol"></property>
<property name="stopPort">-1</property>
- <property
name="tempDir">/tmp/meecrowave_1947069769205821</property>
+ <property
name="tempDir">/tmp/meecrowave_2087318055521612</property>
<property name="tomcatAccessLogPattern"></property>
<property name="tomcatAutoSetup">true</property>
<property name="tomcatFilter"></property>