This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/struts-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 5405fbb  Updates production by Jenkins
5405fbb is described below

commit 5405fbbb8e189f0fe46b726ac61bbfcf195095fc
Author: jenkins <bui...@apache.org>
AuthorDate: Mon Jan 29 15:46:00 2018 +0000

    Updates production by Jenkins
---
 content/plugins/plugins.html | 617 +++++++++++++++++++++----------------------
 1 file changed, 308 insertions(+), 309 deletions(-)

diff --git a/content/plugins/plugins.html b/content/plugins/plugins.html
index 23bd659..837af2f 100644
--- a/content/plugins/plugins.html
+++ b/content/plugins/plugins.html
@@ -134,6 +134,12 @@
 <ul id="markdown-toc">
   <li><a href="#static-resources" id="markdown-toc-static-resources">Static 
resources</a></li>
   <li><a href="#extension-points" id="markdown-toc-extension-points">Extension 
Points</a></li>
+  <li><a href="#plugin-examples" id="markdown-toc-plugin-examples">Plugin 
Examples</a>    <ul>
+      <li><a href="#sitemesh-plugin" 
id="markdown-toc-sitemesh-plugin">Sitemesh plugin</a></li>
+      <li><a href="#tiles-plugin" id="markdown-toc-tiles-plugin">Tiles 
plugin</a></li>
+    </ul>
+  </li>
+  <li><a href="#plugin-registry" id="markdown-toc-plugin-registry">Plugin 
Registry</a></li>
 </ul>
 
 <p>Struts 2 plugins contain classes and configuration that extend, replace, or 
add to existing Struts framework functionality. A plugin can be installed by 
adding its JAR file to the application’s class path, in addition to the JAR 
files to fulfill whatever dependencies the plugin itself may have. To configure 
the plugin, the JAR should contain a <code 
class="highlighter-rouge">struts-plugin.xml</code> file, which follows the same 
format as an ordinary <code class="highlighter-rouge">str [...]
@@ -190,287 +196,282 @@
 
 <p>The following extension points are available in Struts 2:</p>
 
-<table border="1" summary="">
-   <tr>
-     <th>Type</th>
-     <th>Property</th>
-     <th>Scope</th>
-     <th>Description</th>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.ObjectFactory</td>
-     <td>struts.objectFactory</td>
-     <td>singleton</td>
-     <td>Creates actions, results, and interceptors</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.ActionFactory</td>
-     <td>struts.objectFactory.actionFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create Actions, you can implement/extend 
existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.ResultFactory</td>
-     <td>struts.objectFactory.resultFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create Results, you can implement/extend 
existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.InterceptorFactory</td>
-     <td>struts.objectFactory.interceptorFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create Interceptors, you can 
implement/extend existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.ConverterFactory</td>
-     <td>struts.objectFactory.converterFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create TypeConverters, you can 
implement/extend existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.factory.ValidatorFactory</td>
-     <td>struts.objectFactory.validatorFactory</td>
-     <td>singleton</td>
-     <td>Dedicated factory used to create Validators, you can implement/extend 
existing one instead of defining new ObjectFactory</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.ActionProxyFactory</td>
-     <td>struts.actionProxyFactory</td>
-     <td>singleton</td>
-     <td>Creates the ActionProxy</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.util.ObjectTypeDeterminer</td>
-     <td>struts.objectTypeDeterminer</td>
-     <td>singleton</td>
-     <td>Determines what the key and element class of a Map or Collection 
should be</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.dispatcher.mapper.ActionMapper</td>
-     <td>struts.mapper.class</td>
-     <td>singleton</td>
-     <td>Determines the ActionMapping from a request and a URI from an 
ActionMapping</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.dispatcher.multipart.MultiPartRequest</td>
-     <td>struts.multipart.parser</td>
-     <td>per request</td>
-     <td>Parses a multipart request (file upload)</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.views.freemarker.FreemarkerManager</td>
-     <td>struts.freemarker.manager.classname</td>
-     <td>singleton</td>
-     <td>Loads and processes Freemarker templates</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.views.velocity.VelocityManager</td>
-     <td>struts.velocity.manager.classname</td>
-     <td>singleton</td>
-     <td>Loads and processes Velocity templates</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.validator.ActionValidatorManager</td>
-     <td>struts.actionValidatorManager</td>
-     <td>singleton</td>
-     <td>Main interface for validation managers (regular and annotation 
based).  Handles both the loading of
-         configuration and the actual validation (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.util.ValueStackFactory</td>
-     <td>struts.valueStackFactory</td>
-     <td>singleton</td>
-     <td>Creates value stacks (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.reflection.ReflectionProvider</td>
-     <td>struts.reflectionProvider</td>
-     <td>singleton</td>
-     <td>Provides reflection services, key place to plug in a custom 
expression language (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.reflection.ReflectionContextFactory</td>
-     <td>struts.reflectionContextFactory</td>
-     <td>singleton</td>
-     <td>Creates reflection context maps used for reflection and expression 
language operations (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.config.PackageProvider</td>
-     <td>N/A</td>
-     <td>singleton</td>
-     <td>All beans registered as PackageProvider implementations will be 
automatically included in configuration building (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.util.PatternMatcher</td>
-     <td>struts.patternMatcher</td>
-     <td>singleton</td>
-     <td>Matches patterns, such as action names, generally used in 
configuration (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.views.dispatcher.DefaultStaticContentLoader</td>
-     <td>struts.staticContentLoader</td>
-     <td>singleton</td>
-     <td>Loads static resources (since 2.1)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.impl.XWorkConverter</td>
-     <td>struts.xworkConverter</td>
-     <td>singleton</td>
-     <td>Handles conversion logic and allows to load custom converters per 
class or per action</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.TextProvider</td>
-     <td>struts.xworkTextProvider</td>
-     <td>default</td>
-     <td>Allows provide custom TextProvider for whole application</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.LocaleProvider</td>
-     <td>struts.localeProvider</td>
-     <td>singleton</td>
-     <td>DEPRECATED! Allows provide custom TextProvider for whole application 
- instead this endpoint use <b>struts.localeProviderFactory</b></td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.LocaleProviderFactory</td>
-     <td>struts.localeProviderFactory</td>
-     <td>singleton</td>
-     <td>Allows provide custom LocaleProvider for whole application</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.components.UrlRenderer</td>
-     <td>struts.urlRenderer</td>
-     <td>singleton</td>
-     <td>Allows provide custom implementation of environment specific URL 
rendering/creating class</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.UnknownHandlerManager</td>
-     <td>struts.unknownHandlerManager</td>
-     <td>singleton</td>
-     <td>Implementation of this interface allows handle logic of unknown 
Actions, Methods or Results</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.views.util.UrlHelper</td>
-     <td>struts.view.urlHelper</td>
-     <td>singleton</td>
-     <td>Helper class used with URLRenderer to provide exact logic for 
building URLs</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.FileManagerFactory</td>
-     <td>struts.fileManagerFactory</td>
-     <td>singleton</td>
-     <td>Used to create {@link FileManager} instance to access files on the 
File System as also to monitor if reload is needed,
-     can be implemented / overwritten to meet specific an application server 
needs
-     </td>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.impl.CollectionConverter</td>
-     <td>struts.converter.collection</td>
-     <td>singleton</td>
-     <td>Converter used to convert any object to Collection and back</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.impl.ArrayConverter</td>
-     <td>struts.converter.array</td>
-     <td>singleton</td>
-     <td>Converter used to convert any object to Array and back</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.impl.DateConverter</td>
-     <td>struts.converter.date</td>
-     <td>singleton</td>
-     <td>Converter used to convert any object to Date and back</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.impl.NumberConverter</td>
-     <td>struts.converter.number</td>
-     <td>singleton</td>
-     <td>Converter used to convert any object to Number and back</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.impl.StringConverter</td>
-     <td>struts.converter.string</td>
-     <td>singleton</td>
-     <td>Converter used to convert any object to String and back</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td>
-     <td>struts.conversion.properties.processor</td>
-     <td>singleton</td>
-     <td>Process Properties to create converters</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td>
-     <td>struts.converter.file.processor</td>
-     <td>singleton</td>
-     <td>Process <class>-conversion.properties file create 
converters</class></td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor</td>
-     <td>struts.converter.annotation.processor</td>
-     <td>singleton</td>
-     <td>Process TypeConversion annotation to create converters</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.TypeConverterCreator</td>
-     <td>struts.converter.creator</td>
-     <td>singleton</td>
-     <td>Creates user converters</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.conversion.TypeConverterHolder</td>
-     <td>struts.converter.holder</td>
-     <td>singleton</td>
-     <td>Holds user converters' instances</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.util.TextParser</td>
-     <td>struts.expression.parser</td>
-     <td>singleton</td>
-     <td>Used to parse expressions like ${foo.bar} or %{bar.foo} but it is up 
tp the TextParser's
-         implementation what kind of opening char to use (#, $, %, etc)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.ExcludedPatternsChecker</td>
-     <td>struts.excludedPatterns.checker</td>
-     <td>request</td>
-     <td>Used across different interceptors to check if given string matches 
one of the excluded patterns</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.AcceptedPatternsChecker</td>
-     <td>struts.acceptedPatterns.checker</td>
-     <td>request</td>
-     <td>Used across different interceptors to check if given string matches 
one of the accepted patterns</td>
-   </tr>
-   <tr>
-     <td>org.apache.struts2.util.ContentTypeMatcher</td>
-     <td>struts.contentTypeMatcher</td>
-     <td>singleton</td>
-     <td>Matches content type of uploaded files (since 2.3.22)</td>
-   </tr>
-   <tr>
-     <td>com.opensymphony.xwork2.LocalizedTextProvider</td>
-     <td>struts.localizedTextProvider</td>
-     <td>singleton</td>
-     <td>Provides access to resource bundles used to localise messages (since 
2.5.11)</td>
-   </tr>
- 
-
-
-
-
-
-
-## Plugin Examples
-
-Let's look at two similar but different plugins bundled with the core 
distribution.
-
-### Sitemesh plugin
-
-[SiteMesh](http://opensymphony.com/sitemesh/) is a popular alternative to 
Tiles. SiteMesh provides a common look-and-feel to an application's pages by 
automatically wrapping a plain page with common elements like headers and 
menubars.
-
-The `sitemesh-plugin.jar` contains several classes, a standard JAR manifest, 
and a plugin configuration file.
-
-````text
- + META-INF/
+<table>
+  <thead>
+    <tr>
+      <th>Property</th>
+      <th>Description</th>
+      <th>Scope</th>
+      <th>Type</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>struts.objectFactory</td>
+      <td>Creates actions, results, and interceptors</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.ObjectFactory</td>
+    </tr>
+    <tr>
+      <td>struts.objectFactory.actionFactory</td>
+      <td>Dedicated factory used to create Actions, you can implement/extend 
existing one instead of defining new ObjectFactory</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.factory.ActionFactory</td>
+    </tr>
+    <tr>
+      <td>struts.objectFactory.resultFactory</td>
+      <td>Dedicated factory used to create Results, you can implement/extend 
existing one instead of defining new ObjectFactory</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.factory.ResultFactory</td>
+    </tr>
+    <tr>
+      <td>struts.objectFactory.interceptorFactory</td>
+      <td>Dedicated factory used to create Interceptors, you can 
implement/extend existing one instead of defining new ObjectFactory</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.factory.InterceptorFactory</td>
+    </tr>
+    <tr>
+      <td>struts.objectFactory.converterFactory</td>
+      <td>Dedicated factory used to create TypeConverters, you can 
implement/extend existing one instead of defining new ObjectFactory</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.factory.ConverterFactory</td>
+    </tr>
+    <tr>
+      <td>struts.objectFactory.validatorFactory</td>
+      <td>Dedicated factory used to create Validators, you can 
implement/extend existing one instead of defining new ObjectFactory</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.factory.ValidatorFactory</td>
+    </tr>
+    <tr>
+      <td>struts.actionProxyFactory</td>
+      <td>Creates the ActionProxy</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.ActionProxyFactory</td>
+    </tr>
+    <tr>
+      <td>struts.objectTypeDeterminer</td>
+      <td>Determines what the key and element class of a Map or Collection 
should be</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.util.ObjectTypeDeterminer</td>
+    </tr>
+    <tr>
+      <td>struts.mapper.class</td>
+      <td>Determines the ActionMapping from a request and a URI from an 
ActionMapping</td>
+      <td>singleton</td>
+      <td>org.apache.struts2.dispatcher.mapper.ActionMapper</td>
+    </tr>
+    <tr>
+      <td>struts.multipart.parser</td>
+      <td>Parses a multipart request (file upload)</td>
+      <td>per request</td>
+      <td>org.apache.struts2.dispatcher.multipart.MultiPartRequest</td>
+    </tr>
+    <tr>
+      <td>struts.freemarker.manager.classname</td>
+      <td>Loads and processes Freemarker templates</td>
+      <td>singleton</td>
+      <td>org.apache.struts2.views.freemarker.FreemarkerManager</td>
+    </tr>
+    <tr>
+      <td>struts.velocity.manager.classname</td>
+      <td>Loads and processes Velocity templates</td>
+      <td>singleton</td>
+      <td>org.apache.struts2.views.velocity.VelocityManager</td>
+    </tr>
+    <tr>
+      <td>struts.actionValidatorManager</td>
+      <td>Main interface for validation managers (regular and annotation 
based).  Handles both the loading of configuration and the actual validation 
(since 2.1)</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.validator.ActionValidatorManager</td>
+    </tr>
+    <tr>
+      <td>struts.valueStackFactory</td>
+      <td>Creates value stacks (since 2.1)</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.util.ValueStackFactory</td>
+    </tr>
+    <tr>
+      <td>struts.reflectionProvider</td>
+      <td>Provides reflection services, key place to plug in a custom 
expression language (since 2.1)</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.reflection.ReflectionProvider</td>
+    </tr>
+    <tr>
+      <td>struts.reflectionContextFactory</td>
+      <td>Creates reflection context maps used for reflection and expression 
language operations (since 2.1)</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.reflection.ReflectionContextFactory</td>
+    </tr>
+    <tr>
+      <td>N/A</td>
+      <td>All beans registered as PackageProvider implementations will be 
automatically included in configuration building (since 2.1)</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.config.PackageProvider</td>
+    </tr>
+    <tr>
+      <td>struts.patternMatcher</td>
+      <td>Matches patterns, such as action names, generally used in 
configuration (since 2.1)</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.util.PatternMatcher</td>
+    </tr>
+    <tr>
+      <td>struts.staticContentLoader</td>
+      <td>Loads static resources (since 2.1)</td>
+      <td>singleton</td>
+      <td>org.apache.struts2.views.dispatcher.DefaultStaticContentLoader</td>
+    </tr>
+    <tr>
+      <td>struts.xworkConverter</td>
+      <td>Handles conversion logic and allows to load custom converters per 
class or per action</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.impl.XWorkConverter</td>
+    </tr>
+    <tr>
+      <td>struts.xworkTextProvider</td>
+      <td>Allows provide custom TextProvider for whole application</td>
+      <td>default</td>
+      <td>com.opensymphony.xwork2.TextProvider</td>
+    </tr>
+    <tr>
+      <td>struts.localeProvider</td>
+      <td>DEPRECATED! Allows provide custom TextProvider for whole application 
- instead this endpoint use <strong>struts.localeProviderFactory</strong></td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.LocaleProvider</td>
+    </tr>
+    <tr>
+      <td>struts.localeProviderFactory</td>
+      <td>Allows provide custom LocaleProvider for whole application</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.LocaleProviderFactory</td>
+    </tr>
+    <tr>
+      <td>struts.urlRenderer</td>
+      <td>Allows provide custom implementation of environment specific URL 
rendering/creating class</td>
+      <td>singleton</td>
+      <td>org.apache.struts2.components.UrlRenderer</td>
+    </tr>
+    <tr>
+      <td>struts.unknownHandlerManager</td>
+      <td>Implementation of this interface allows handle logic of unknown 
Actions, Methods or Results</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.UnknownHandlerManager</td>
+    </tr>
+    <tr>
+      <td>struts.view.urlHelper</td>
+      <td>Helper class used with URLRenderer to provide exact logic for 
building URLs</td>
+      <td>singleton</td>
+      <td>org.apache.struts2.views.util.UrlHelper</td>
+    </tr>
+    <tr>
+      <td>struts.fileManagerFactory</td>
+      <td>Used to create FileManager instance to access files on the File 
System as also to monitor if reload is needed, can be implemented / overwritten 
to meet specific an application server needs</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.FileManagerFactory</td>
+    </tr>
+    <tr>
+      <td>struts.converter.collection</td>
+      <td>Converter used to convert any object to Collection and back</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.impl.CollectionConverter</td>
+    </tr>
+    <tr>
+      <td>struts.converter.array</td>
+      <td>Converter used to convert any object to Array and back</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.impl.ArrayConverter</td>
+    </tr>
+    <tr>
+      <td>struts.converter.date</td>
+      <td>Converter used to convert any object to Date and back</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.impl.DateConverter</td>
+    </tr>
+    <tr>
+      <td>struts.converter.number</td>
+      <td>Converter used to convert any object to Number and back</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.impl.NumberConverter</td>
+    </tr>
+    <tr>
+      <td>struts.converter.string</td>
+      <td>Converter used to convert any object to String and back</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.impl.StringConverter</td>
+    </tr>
+    <tr>
+      <td>struts.conversion.properties.processor</td>
+      <td>Process Properties to create converters</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td>
+    </tr>
+    <tr>
+      <td>struts.converter.file.processor</td>
+      <td>Process {class}-conversion.properties file create converters</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td>
+    </tr>
+    <tr>
+      <td>struts.converter.annotation.processor</td>
+      <td>Process TypeConversion annotation to create converters</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor</td>
+    </tr>
+    <tr>
+      <td>struts.converter.creator</td>
+      <td>Creates user converters</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.TypeConverterCreator</td>
+    </tr>
+    <tr>
+      <td>struts.converter.holder</td>
+      <td>Holds user converters’ instances</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.conversion.TypeConverterHolder</td>
+    </tr>
+    <tr>
+      <td>struts.expression.parser</td>
+      <td>Used to parse expressions like ${foo.bar} or %{bar.foo} but it is up 
tp the TextParser’s implementation what kind of opening char to use (#, $, %, 
etc)</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.util.TextParser</td>
+    </tr>
+    <tr>
+      <td>struts.excludedPatterns.checker</td>
+      <td>Used across different interceptors to check if given string matches 
one of the excluded patterns</td>
+      <td>request</td>
+      <td>com.opensymphony.xwork2.ExcludedPatternsChecker</td>
+    </tr>
+    <tr>
+      <td>struts.acceptedPatterns.checker</td>
+      <td>Used across different interceptors to check if given string matches 
one of the accepted patterns</td>
+      <td>request</td>
+      <td>com.opensymphony.xwork2.AcceptedPatternsChecker</td>
+    </tr>
+    <tr>
+      <td>struts.contentTypeMatcher</td>
+      <td>Matches content type of uploaded files (since 2.3.22)</td>
+      <td>singleton</td>
+      <td>org.apache.struts2.util.ContentTypeMatcher</td>
+    </tr>
+    <tr>
+      <td>struts.localizedTextProvider</td>
+      <td>Provides access to resource bundles used to localise messages (since 
2.5.11)</td>
+      <td>singleton</td>
+      <td>com.opensymphony.xwork2.LocalizedTextProvider</td>
+    </tr>
+  </tbody>
+</table>
+
+<h2 id="plugin-examples">Plugin Examples</h2>
+
+<p>Let’s look at two similar but different plugins bundled with the core 
distribution.</p>
+
+<h3 id="sitemesh-plugin">Sitemesh plugin</h3>
+
+<p><a href="http://opensymphony.com/sitemesh/";>SiteMesh</a> is a popular 
alternative to Tiles. SiteMesh provides a common look-and-feel to an 
application’s pages by automatically wrapping a plain page with common elements 
like headers and menubars.</p>
+
+<p>The <code class="highlighter-rouge">sitemesh-plugin.jar</code> contains 
several classes, a standard JAR manifest, and a plugin configuration file.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code> + META-INF/
    + manifest.mf
  + org
    + apache
@@ -480,15 +481,13 @@ The `sitemesh-plugin.jar` contains several classes, a 
standard JAR manifest, and
          + TemplatePageFilter.class
          + VelocityPageFilter.class
  + struts-plugin.xml
-````
-
-While the SiteMesh Plugin doesn't provide any new results, interceptors, or 
actions, or even extend any Struts integration points, it does need to know 
what settings have been enabled in the Struts framework. Therefore, its 
`struts-plugin.xml` looks like this:
-
+</code></pre>
+</div>
 
+<p>While the SiteMesh Plugin doesn’t provide any new results, interceptors, or 
actions, or even extend any Struts integration points, it does need to know 
what settings have been enabled in the Struts framework. Therefore, its <code 
class="highlighter-rouge">struts-plugin.xml</code> looks like this:</p>
 
-```xml
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
+<div class="highlighter-rouge"><pre class="highlight"><code><span 
class="cp">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;</span>
+<span class="c">&lt;!--
 /*
  * $Id$
  *
@@ -509,30 +508,28 @@ While the SiteMesh Plugin doesn't provide any new 
results, interceptors, or acti
  * specific language governing permissions and limitations
  * under the License.
  */
--->
-&lt;!DOCTYPE struts PUBLIC
+--&gt;</span>
+<span class="cp">&lt;!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
-       "http://struts.apache.org/dtds/struts-2.5.dtd"&gt;
+       "http://struts.apache.org/dtds/struts-2.5.dtd"&gt;</span>
     
-<struts>
-    <bean class="org.apache.struts2.sitemesh.FreemarkerPageFilter" 
static="true" optional="true" />
-    <bean class="org.apache.struts2.sitemesh.VelocityPageFilter" static="true" 
optional="true" />
-</struts>
-
-```
-
+<span class="nt">&lt;struts&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"org.apache.struts2.sitemesh.FreemarkerPageFilter"</span> <span 
class="na">static=</span><span class="s">"true"</span> <span 
class="na">optional=</span><span class="s">"true"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"org.apache.struts2.sitemesh.VelocityPageFilter"</span> <span 
class="na">static=</span><span class="s">"true"</span> <span 
class="na">optional=</span><span class="s">"true"</span><span 
class="nt">/&gt;</span>
+<span class="nt">&lt;/struts&gt;</span>
 
+</code></pre>
+</div>
 
-The two bean elements, with the "static" flag enabled, tell Struts to inject 
the current settings and framework objects into static property setters on 
startup. This allows, for example, the FreeMarkerPageFilter class to get an 
instance of the Struts FreemarkerManager and the current encoding setting.
+<p>The two bean elements, with the “static” flag enabled, tell Struts to 
inject the current settings and framework objects into static property setters 
on startup. This allows, for example, the FreeMarkerPageFilter class to get an 
instance of the Struts FreemarkerManager and the current encoding setting.</p>
 
-### Tiles plugin
+<h3 id="tiles-plugin">Tiles plugin</h3>
 
-[Tiles](http://struts.apache.org/struts-sandbox/tiles/index.html) is a popular 
alternative to SiteMesh. Tiles provides a common look-and-feel to an 
application's pages by breaking the page down into common fragments or "tiles".
+<p><a 
href="http://struts.apache.org/struts-sandbox/tiles/index.html";>Tiles</a> is a 
popular alternative to SiteMesh. Tiles provides a common look-and-feel to an 
application’s pages by breaking the page down into common fragments or 
“tiles”.</p>
 
-The `tiles-plugin.jar` contains several classes, a standard JAR manifest, and 
a configuration file.
+<p>The <code class="highlighter-rouge">tiles-plugin.jar</code> contains 
several classes, a standard JAR manifest, and a configuration file.</p>
 
-```text
- + META-INF/
+<div class="highlighter-rouge"><pre class="highlight"><code> + META-INF/
    + manifest.mf
  + org
    + apache
@@ -544,14 +541,16 @@ The `tiles-plugin.jar` contains several classes, a 
standard JAR manifest, and a
          + tiles
            + TilesResult.class
    + struts-plugin.xml
-```
+</code></pre>
+</div>
 
-Since the Tiles Plugin does need to register configuration elements, a result 
class, it provides a `struts-plugin.xml` file.
+<p>Since the Tiles Plugin does need to register configuration elements, a 
result class, it provides a <code 
class="highlighter-rouge">struts-plugin.xml</code> file.</p>
 
-## Plugin Registry
+<h2 id="plugin-registry">Plugin Registry</h2>
 
-&gt; For a list of bundled plugins, see the [Plugin Reference 
Documentation](plugin-developers.html). For more about bundled and third-party 
plugins, visit the [Apache Struts Plugin 
Registry](http://cwiki.apache.org/S2PLUGINS/home.html).
-</tr></table>
+<blockquote>
+  <p>For a list of bundled plugins, see the <a 
href="plugin-developers.html">Plugin Reference Documentation</a>. For more 
about bundled and third-party plugins, visit the <a 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Apache Struts Plugin 
Registry</a>.</p>
+</blockquote>
 
   </section>
 </article>

-- 
To stop receiving notification emails like this one, please contact
git-site-r...@apache.org.

Reply via email to