Author: lukaszlenart
Date: Fri Apr  3 05:49:56 2015
New Revision: 946159

Log:
Updates production

Added:
    websites/production/struts/content/docs/version-notes-2323.html
Modified:
    websites/production/struts/content/docs/actionmapper.html
    
websites/production/struts/content/docs/building-struts-2-normal-release.html
    websites/production/struts/content/docs/file-upload.html
    websites/production/struts/content/docs/interceptors.html
    websites/production/struts/content/docs/localization.html
    websites/production/struts/content/docs/migration-guide.html
    websites/production/struts/content/docs/plugins.html
    websites/production/struts/content/docs/struts-defaultxml.html
    websites/production/struts/content/docs/type-conversion.html
    websites/production/struts/content/docs/validation.html

Modified: websites/production/struts/content/docs/actionmapper.html
==============================================================================
--- websites/production/struts/content/docs/actionmapper.html (original)
+++ websites/production/struts/content/docs/actionmapper.html Fri Apr  3 
05:49:56 2015
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1422602092323 {padding: 0px;}
-div.rbtoc1422602092323 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1422602092323 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1428039176917 {padding: 0px;}
+div.rbtoc1428039176917 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1428039176917 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1422602092323">
+/*]]>*/</style><div class="toc-macro rbtoc1428039176917">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Description">Description</a></li><li><a shape="rect" 
href="#ActionMapper-DefaultActionMapper">DefaultActionMapper</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Methodprefix">Method prefix</a></li><li><a shape="rect" 
href="#ActionMapper-Actionprefix">Action prefix</a></li></ul>
 </li><li><a shape="rect" href="#ActionMapper-CustomActionMapper">Custom 
ActionMapper</a></li><li><a shape="rect" 
href="#ActionMapper-CompositeActionMapper">CompositeActionMapper</a></li><li><a 
shape="rect" 
href="#ActionMapper-PrefixBasedActionMapper">PrefixBasedActionMapper</a></li><li><a
 shape="rect" 
href="#ActionMapper-ActionMapperandActionMappingobjects">ActionMapper and 
ActionMapping objects</a>

Modified: 
websites/production/struts/content/docs/building-struts-2-normal-release.html
==============================================================================
--- 
websites/production/struts/content/docs/building-struts-2-normal-release.html 
(original)
+++ 
websites/production/struts/content/docs/building-struts-2-normal-release.html 
Fri Apr  3 05:49:56 2015
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 
id="BuildingStruts2-Normalrelease-Content">Content</h1><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1422602474428 {padding: 0px;}
-div.rbtoc1422602474428 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1422602474428 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1428039328366 {padding: 0px;}
+div.rbtoc1428039328366 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1428039328366 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1422602474428">
+/*]]>*/</style></p><div class="toc-macro rbtoc1428039328366">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a 
shape="rect" href="#BuildingStruts2-Normalrelease-Gettingready">Getting 
ready</a></li><li><span class="TOCOutline">2</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-UpdateDraftDocswhenneeded">Update Draft 
Docs when needed</a></li><li><span class="TOCOutline">3</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Besureyourlocalcopyisup-to-date">Be sure 
your local copy is up-to-date</a></li><li><span class="TOCOutline">4</span> <a 
shape="rect" href="#BuildingStruts2-Normalrelease-Createareleasebranch">Create 
a release branch</a></li><li><span class="TOCOutline">5</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Preparerelease">Prepare 
release</a></li><li><span class="TOCOutline">6</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Performtherelease">Perform the 
release</a></li><li><span class="TOCOutline">7</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Movetheasse
 mblies">Move the assemblies</a></li><li><span class="TOCOutline">8</span> <a 
shape="rect" 
href="#BuildingStruts2-Normalrelease-Announceavailability">Announce 
availability</a></li><li><span class="TOCOutline">9</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Cleanuprepository">Clean up 
repository</a></li><li><span class="TOCOutline">10</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Voteonit">Vote on it</a></li><li><span 
class="TOCOutline">11</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Copyfiles">Copy files</a></li><li><span 
class="TOCOutline">12</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Promoterelease">Promote 
release</a></li><li><span class="TOCOutline">13</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Cleanupoldreleases">Clean up old 
releases</a></li><li><span class="TOCOutline">14</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Waitforrsync">Wait for 
rsync</a></li><li><span class="TOCOutline">15</s
 pan> <a shape="rect" href="#BuildingStruts2-Normalrelease-Updatesite">Update 
site</a></li><li><span class="TOCOutline">16</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Redeploythedocs(Optional)">Redeploy the 
docs (Optional)</a></li><li><span class="TOCOutline">17</span> <a shape="rect" 
href="#BuildingStruts2-Normalrelease-Postannouncements">Post 
announcements</a></li></ul>
 </div><h2 id="BuildingStruts2-Normalrelease-BuildingSteps(Struts)">Building 
Steps (Struts)</h2><h3 id="BuildingStruts2-Normalrelease-Gettingready">Getting 
ready</h3><ol><li>Create an "Struts 2.x.y omnibus ticket" ticket in JIRA to 
refer to in upcoming release related commit comments and for general 
documentation purposes. Mark it with priority "Blocker".</li><li>Switch to 
branch&#160;<code>develop</code></li><li>Ensure that the master POM and Struts 
Annotations have current releases</li><li>Review JIRA for any issues without a 
fix version set, and for any issues that should be resolved for the pending 
release.</li><li>Ensure that there are no repositories or pluginRepositories 
listed in the poms.</li><li>If you have committed all changes regarding the 
release process, close the omnibus ticket as it is the last open ticket for the 
upcoming release</li><li>Release the upcoming version in JIRA (under 
Administration/Manage Releases) and tag the release date</li><li>Add next 
milestone ve
 rsion to the JIRA roadmap</li><li>Create DONE and TODO filters for the new 
version, share with all, and remove obsolete TODO filter</li><li>Create a new 
Version Notes page in Confluence, link from <a shape="rect" 
href="migration-guide.html">Migration Guide</a>, and link to prior release page 
and JIRA DONE filters of the version to release</li><li>Export wiki pages and 
put them under&#160;<code>/docs</code></li></ol><h3 
id="BuildingStruts2-Normalrelease-UpdateDraftDocswhenneeded">Update Draft Docs 
when needed</h3><p>Checkout&#160;<code>struts-site</code> project (see details 
at the bottom of this page) and perform export:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[cd struts-site
@@ -182,10 +182,10 @@ mvn javadoc:javadoc deploy --no-plugin-u
                             <p>Repository is identified by user name and 
public IP address, so if in meantime your IP changed, a new staging repository 
will be created so you must drop the old one (check the dates!) - if IP is the 
same, artifacts will be uploaded to the same repository as first attempt.</p>
                     </div>
     </div>
-<h3 id="BuildingStruts2-Normalrelease-Movetheassemblies">Move the 
assemblies</h3><p>To simplify testing, the assemblies have to be moved to the 
<code>/www/people.apache.org/builds/struts/$VERSION</code> dir.</p><p>After 
closing repository in Nexus, check if the release files are available from 
staging repository as bellow:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BuildingStruts2-Normalrelease-Movetheassemblies">Move the 
assemblies</h3><p>To simplify testing, the assemblies have to be moved to the 
<code class="java plain">https:</code><code class="java 
comments">//dist.apache.org/repos/dist/dev/struts/</code><code>$VERSION</code> 
dir.</p><p>After closing repository in Nexus, check if the release files are 
available from staging repository as bellow:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[https://repository.apache.org/content/groups/staging/org/apache/struts/struts2-assembly/$VERSION/
 ]]></script>
-</div></div><p>In order to move the assemblies login to people.apache.org and 
execute the following code:</p><p><span style="font-family: monospace;"><span 
style="white-space: pre-wrap;background-color: rgb(255,255,255);"><br 
clear="none"></span></span></p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>In order to move the assemblies login to people.apache.org and 
execute the following code:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[#!/bin/sh
 
 #create the destination directory

Modified: websites/production/struts/content/docs/file-upload.html
==============================================================================
--- websites/production/struts/content/docs/file-upload.html (original)
+++ websites/production/struts/content/docs/file-upload.html Fri Apr  3 
05:49:56 2015
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>The Struts 2 framework provides 
built-in support for processing file uploads that conform to <a shape="rect" 
class="external-link" href="http://www.ietf.org/rfc/rfc1867.txt"; 
rel="nofollow">RFC 1867</a>, "Form-based File Upload in HTML". When correctly 
configured the framework will pass uploaded file(s) into your Action class. 
Support for individual and multiple file uploads are provided. When a file is 
uploaded it will typically be stored in a temporary directory. Uploaded files 
should be processed or moved by your Action class to ensure the data is not 
lost. Be aware that servers may have a security policy in place that prohibits 
you from writing to directories other than the temporary directory and the 
directories that belong to your web application.</p><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1422602378371 {padding: 0px;}
-div.rbtoc1422602378371 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1422602378371 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1428039322792 {padding: 0px;}
+div.rbtoc1428039322792 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1428039322792 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1422602378371">
+/*]]>*/</style></p><div class="toc-macro rbtoc1428039322792">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FileUpload-Dependencies">Dependencies</a></li><li><a shape="rect" 
href="#FileUpload-BasicUsage">Basic Usage</a></li><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFiles">Uploading Multiple Files</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFilesusingArrays">Uploading Multiple Files 
using Arrays</a></li><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFilesusingLists">Uploading Multiple Files 
using Lists</a></li></ul>
 </li><li><a shape="rect" href="#FileUpload-AdvancedConfiguration">Advanced 
Configuration</a>

Modified: websites/production/struts/content/docs/interceptors.html
==============================================================================
--- websites/production/struts/content/docs/interceptors.html (original)
+++ websites/production/struts/content/docs/interceptors.html Fri Apr  3 
05:49:56 2015
@@ -145,11 +145,11 @@ under the License.
                     </div>
     </div>
 <p>Many Actions share common concerns. Some Actions need input validated. 
Other Actions may need a file upload to be pre-processed. Another Action might 
need protection from a double submit. Many Actions need drop-down lists and 
other controls pre-populated before the page displays.</p><p>The framework 
makes it easy to share solutions to these concerns using an "Interceptor" 
strategy. When you request a resource that maps to an "action", the framework 
invokes the Action object. But, before the Action is executed, the invocation 
can be intercepted by another object. After the Action executes, the invocation 
could be intercepted again. Unsurprisingly, we call these objects 
"Interceptors."</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1422601979749 {padding: 0px;}
-div.rbtoc1422601979749 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1422601979749 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1428039145673 {padding: 0px;}
+div.rbtoc1428039145673 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1428039145673 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1422601979749">
+/*]]>*/</style></p><div class="toc-macro rbtoc1428039145673">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Interceptors-UnderstandingInterceptors">Understanding 
Interceptors</a></li><li><a shape="rect" 
href="#Interceptors-ConfiguringInterceptors">Configuring 
Interceptors</a></li><li><a shape="rect" 
href="#Interceptors-StackingInterceptors">Stacking Interceptors</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Interceptors-TheDefaultConfiguration">The Default 
Configuration</a></li></ul>
 </li><li><a shape="rect" href="#Interceptors-FrameworkInterceptors">Framework 
Interceptors</a>
@@ -270,6 +270,8 @@ div.rbtoc1422601979749 li {margin-left:
     &lt;bean type=&quot;com.opensymphony.xwork2.util.PatternMatcher&quot; 
name=&quot;namedVariable&quot; 
class=&quot;com.opensymphony.xwork2.util.NamedVariablePatternMatcher&quot;/&gt;
     &lt;bean type=&quot;com.opensymphony.xwork2.util.PatternMatcher&quot; 
name=&quot;regex&quot; 
class=&quot;org.apache.struts2.util.RegexPatternMatcher&quot;/&gt;
 
+    &lt;bean type=&quot;org.apache.struts2.util.ContentTypeMatcher&quot; 
name=&quot;struts&quot; 
class=&quot;org.apache.struts2.util.DefaultContentTypeMatcher&quot;/&gt;
+
     &lt;bean 
type=&quot;org.apache.struts2.dispatcher.mapper.ActionMapper&quot; 
name=&quot;struts&quot; 
class=&quot;org.apache.struts2.dispatcher.mapper.DefaultActionMapper&quot; /&gt;
     &lt;bean 
type=&quot;org.apache.struts2.dispatcher.mapper.ActionMapper&quot; 
name=&quot;composite&quot; 
class=&quot;org.apache.struts2.dispatcher.mapper.CompositeActionMapper&quot; 
/&gt;
     &lt;bean 
type=&quot;org.apache.struts2.dispatcher.mapper.ActionMapper&quot; 
name=&quot;restful&quot; 
class=&quot;org.apache.struts2.dispatcher.mapper.RestfulActionMapper&quot; /&gt;

Modified: websites/production/struts/content/docs/localization.html
==============================================================================
--- websites/production/struts/content/docs/localization.html (original)
+++ websites/production/struts/content/docs/localization.html Fri Apr  3 
05:49:56 2015
@@ -159,7 +159,11 @@ not found com/acme/package.properties, i
 <p></p>
                     </div>
     </div>
-<h2 id="Localization-Examples">Examples</h2><p>There are several ways to 
access the message resources, including <code>getText</code>, the 
<code>text</code> tag, and the <code>i18n</code> tag.</p><h3 
id="Localization-UsinggetTextfromaTag">Using <code>getText</code> from a 
Tag</h3><p>To display i18n text, use a call to <code>getText</code> in the <a 
shape="rect" href="property.html">property</a> tag, or any other tag, such as 
the UI tags. (The <code>getText</code> technique is especially useful for 
labels of UI tags.)</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<h3 id="Localization-Defaultaction'sclass">Default action's class</h3><p>If 
you configure action as follow</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;action name=&quot;index&quot;&gt;
+   &lt;result&gt;/index.jsp&lt;/result&gt;
+&lt;/action&gt;]]></script>
+</div></div><p>it will use a default class defined 
with&#160;<code>default-class-ref</code><span style="color: 
rgb(34,34,34);">&#160;in&#160;<code>struts-default.xml</code> which 
is&#160;<code>com.opensymphony.xwork2.ActionSupport</code>. It means you have 
two options here to get I18N working in that case:</span></p><ul><li><span 
style="color: 
rgb(34,34,34);">define&#160;<code>com/opensymphony/xwork2/ActionSupport.properties</code>
 and put messages there</span></li><li><span style="color: 
rgb(34,34,34);">point&#160;<code>default-class-ref</code> to your base class 
and then defined appropriated <code>.properties</code>&#160;file (corresponding 
to class' name or package)</span></li></ul><p><span style="font-size: 
20.0px;line-height: 1.5;">Examples</span></p><p>There are several ways to 
access the message resources, including <code>getText</code>, the 
<code>text</code> tag, and the <code>i18n</code> tag.</p><h3 
id="Localization-UsinggetTextfromaTag">Using <code>getText</code> from a Ta
 g</h3><p>To display i18n text, use a call to <code>getText</code> in the <a 
shape="rect" href="property.html">property</a> tag, or any other tag, such as 
the UI tags. (The <code>getText</code> technique is especially useful for 
labels of UI tags.)</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;s:property value=&quot;getText(&#39;some.key&#39;)&quot; /&gt;

Modified: websites/production/struts/content/docs/migration-guide.html
==============================================================================
--- websites/production/struts/content/docs/migration-guide.html (original)
+++ websites/production/struts/content/docs/migration-guide.html Fri Apr  3 
05:49:56 2015
@@ -125,7 +125,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Getting here from there.</p><h3 
id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><a 
shape="rect" href="version-notes-2322.html">Version Notes 2.3.22</a></li><li><a 
shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></li><li><a 
shape="rect" href="version-notes-23163.html">Version Notes 
2.3.16.3</a></li><li><a shape="rect" href="version-notes-23162.html">Version 
Notes 2.3.16.2</a></li><li><a shape="rect" 
href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a 
shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a 
shape="rect" href="version-notes-23153.html">Version Notes 
2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version 
Notes 2.3.15.2</a></li><li><a shape="rect" 
href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a 
shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a 
shape="rect" href="version-notes
 -23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" 
href="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a 
shape="rect" href="version-notes-23141.html">Version Notes 
2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version 
Notes 2.3.14</a></li><li><a shape="rect" 
href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a 
shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a 
shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a 
shape="rect" href="version-notes-2341.html">Version Notes 
2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 
2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 
2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 
2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version 
Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version 
Notes 2.3.1
 </a></li></ul><h3 id="MigrationGuide-VersionNotes2.2.x">Version Notes 
2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 
2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 
2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 
2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 
2.2.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.1.x">Version Notes 
2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 
2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 
2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 
2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 
2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 
2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 
2.1.3</a></li><li><a shape="rect" href="version-notes-212.html"
 >Version Notes 2.1.2</a></li><li><a shape="rect" 
 >href="version-notes-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" 
 >href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 
 >id="MigrationGuide-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a 
 >shape="rect" href="release-notes-2014.html">Release Notes 
 >2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release 
 >Notes 2.0.13</a></li><li><a shape="rect" 
 >href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a 
 >shape="rect" href="release-notes-20112.html">Release Notes 
 >2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release 
 >Notes 2.0.11.1</a></li><li><a shape="rect" 
 >href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a 
 >shape="rect" href="release-notes-2010.html">Release Notes 
 >2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release 
 >Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release 
 >Notes 2.0.8</a></li><li><a shape="r
 ect" href="release-notes-207.html">Release Notes 2.0.7</a></li><li><a 
shape="rect" href="release-notes-206.html">Release Notes 2.0.6</a></li><li><a 
shape="rect" href="release-notes-205.html">Release Notes 2.0.5</a></li><li><a 
shape="rect" href="release-notes-204.html">Release Notes 2.0.4</a></li><li><a 
shape="rect" href="release-notes-203.html">Release Notes 2.0.3</a></li><li><a 
shape="rect" href="release-notes-202.html">Release Notes 2.0.2</a></li><li><a 
shape="rect" href="release-notes-201.html">Release Notes 2.0.1</a></li><li><a 
shape="rect" href="release-notes-200.html">Release Notes 2.0.0</a></li></ul><h3 
id="MigrationGuide-Struts1toStruts2">Struts 1 to Struts 2</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 
alike? How are they differe
 nt?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Various issues (and hopefully 
their solutions!) encountered during migrations to Struts 
2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" href="migration-strategies.html">Migration 
Strategies</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Steps and overall strategies for migrating Struts 1 
applications to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" href="migration-tools.html">Migration 
Tools</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Development tools to help aid the migration 
process.</p></td></tr></tbody></table></div><h4 
id="MigrationGuide-Tutorials">Tutorials</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
  class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://www.infoq.com/news/migrating-struts2"; rel="nofollow">Migrating 
Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 
2006)</p></td></tr></tbody></table></div><h4 
id="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://struts.apache.org/roadmap.html#new";>Roadmap FAQ</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 
2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" class="external-link" 
href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html";
 rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Don Brown's summary of events</p></td></tr
 ></tbody></table></div><h3 id="MigrationGuide-Webwork2.2toStruts2">Webwork 2.2 
 >to Struts 2</h3><div class="table-wrap"><table 
 >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
 >class="confluenceTh"><p><a shape="rect" 
 >href="key-changes-from-webwork-2.html">Key Changes From WebWork 
 >2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has 
 >been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th 
 >colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
 >href="webwork-2-migration-strategies.html">WebWork 2 Migration 
 >Strategies</a></p></th><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 
 >applications to Struts 2.</p></td></tr></tbody></table></div><h2 
 >id="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" 
 >href="where-do-we-get-the-latest-version-the-framework.html">Where do we get 
 >the latest version the framework</a>?</li><li><a shape="rect" 
 >href="what-are-some-of-the-frameworks-
 best-features.html">What are some of the framework's best 
features</a>?</li><li><a shape="rect" 
href="what-is-the-actioncontext.html">What is the 
ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" 
href="contributors-guide.html">Contributors Guide</a></h2></div>
+            <div id="ConfluenceContent"><p>Getting here from there.</p><h3 
id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><a 
shape="rect" href="version-notes-2323.html">Version Notes 2.3.23</a></li><li><a 
shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></li><li><a 
shape="rect" href="version-notes-23163.html">Version Notes 
2.3.16.3</a></li><li><a shape="rect" href="version-notes-23162.html">Version 
Notes 2.3.16.2</a></li><li><a shape="rect" 
href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a 
shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a 
shape="rect" href="version-notes-23153.html">Version Notes 
2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version 
Notes 2.3.15.2</a></li><li><a shape="rect" 
href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a 
shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a 
shape="rect" href="version-notes
 -23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" 
href="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a 
shape="rect" href="version-notes-23141.html">Version Notes 
2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version 
Notes 2.3.14</a></li><li><a shape="rect" 
href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a 
shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a 
shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a 
shape="rect" href="version-notes-2341.html">Version Notes 
2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 
2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 
2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 
2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version 
Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version 
Notes 2.3.1
 </a></li></ul><h3 id="MigrationGuide-VersionNotes2.2.x">Version Notes 
2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 
2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 
2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 
2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 
2.2.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.1.x">Version Notes 
2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 
2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 
2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 
2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 
2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 
2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 
2.1.3</a></li><li><a shape="rect" href="version-notes-212.html"
 >Version Notes 2.1.2</a></li><li><a shape="rect" 
 >href="version-notes-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" 
 >href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 
 >id="MigrationGuide-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a 
 >shape="rect" href="release-notes-2014.html">Release Notes 
 >2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release 
 >Notes 2.0.13</a></li><li><a shape="rect" 
 >href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a 
 >shape="rect" href="release-notes-20112.html">Release Notes 
 >2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release 
 >Notes 2.0.11.1</a></li><li><a shape="rect" 
 >href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a 
 >shape="rect" href="release-notes-2010.html">Release Notes 
 >2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release 
 >Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release 
 >Notes 2.0.8</a></li><li><a shape="r
 ect" href="release-notes-207.html">Release Notes 2.0.7</a></li><li><a 
shape="rect" href="release-notes-206.html">Release Notes 2.0.6</a></li><li><a 
shape="rect" href="release-notes-205.html">Release Notes 2.0.5</a></li><li><a 
shape="rect" href="release-notes-204.html">Release Notes 2.0.4</a></li><li><a 
shape="rect" href="release-notes-203.html">Release Notes 2.0.3</a></li><li><a 
shape="rect" href="release-notes-202.html">Release Notes 2.0.2</a></li><li><a 
shape="rect" href="release-notes-201.html">Release Notes 2.0.1</a></li><li><a 
shape="rect" href="release-notes-200.html">Release Notes 2.0.0</a></li></ul><h3 
id="MigrationGuide-Struts1toStruts2">Struts 1 to Struts 2</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 
alike? How are they differe
 nt?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Various issues (and hopefully 
their solutions!) encountered during migrations to Struts 
2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" href="migration-strategies.html">Migration 
Strategies</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Steps and overall strategies for migrating Struts 1 
applications to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" href="migration-tools.html">Migration 
Tools</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Development tools to help aid the migration 
process.</p></td></tr></tbody></table></div><h4 
id="MigrationGuide-Tutorials">Tutorials</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
  class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://www.infoq.com/news/migrating-struts2"; rel="nofollow">Migrating 
Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 
2006)</p></td></tr></tbody></table></div><h4 
id="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://struts.apache.org/roadmap.html#new";>Roadmap FAQ</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 
2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" class="external-link" 
href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html";
 rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Don Brown's summary of events</p></td></tr
 ></tbody></table></div><h3 id="MigrationGuide-Webwork2.2toStruts2">Webwork 2.2 
 >to Struts 2</h3><div class="table-wrap"><table 
 >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
 >class="confluenceTh"><p><a shape="rect" 
 >href="key-changes-from-webwork-2.html">Key Changes From WebWork 
 >2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has 
 >been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th 
 >colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
 >href="webwork-2-migration-strategies.html">WebWork 2 Migration 
 >Strategies</a></p></th><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 
 >applications to Struts 2.</p></td></tr></tbody></table></div><h2 
 >id="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" 
 >href="where-do-we-get-the-latest-version-the-framework.html">Where do we get 
 >the latest version the framework</a>?</li><li><a shape="rect" 
 >href="what-are-some-of-the-frameworks-
 best-features.html">What are some of the framework's best 
features</a>?</li><li><a shape="rect" 
href="what-is-the-actioncontext.html">What is the 
ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" 
href="contributors-guide.html">Contributors Guide</a></h2></div>
         </div>
 
                     <div class="tabletitle">

Modified: websites/production/struts/content/docs/plugins.html
==============================================================================
--- websites/production/struts/content/docs/plugins.html (original)
+++ websites/production/struts/content/docs/plugins.html Fri Apr  3 05:49:56 
2015
@@ -154,7 +154,7 @@ under the License.
         configuration and the actual validation (since 2.1)</td></tr><tr><td 
colspan="1" rowspan="1">com.opensymphony.xwork2.util.ValueStackFactory</td><td 
colspan="1" rowspan="1">struts.valueStackFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates value stacks 
(since 2.1)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.reflection.ReflectionProvider</td><td 
colspan="1" rowspan="1">struts.reflectionProvider</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Provides reflection 
services, key place to plug in a custom expression language (since 
2.1)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.reflection.ReflectionContextFactory</td><td 
colspan="1" rowspan="1">struts.reflectionContextFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates reflection 
context maps used for reflection and expression language operations (since 
2.1)</td></tr><tr><td colspan="1"
  rowspan="1">com.opensymphony.xwork2.config.PackageProvider</td><td 
colspan="1" rowspan="1">N/A</td><td colspan="1" rowspan="1">singleton</td><td 
colspan="1" rowspan="1">All beans registered as PackageProvider implementations 
will be automatically included in configuration building (since 
2.1)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.util.PatternMatcher</td><td colspan="1" 
rowspan="1">struts.patternMatcher</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Matches patterns, such as 
action names, generally used in configuration (since 2.1)</td></tr><tr><td 
colspan="1" 
rowspan="1">org.apache.struts2.views.dispatcher.DefaultStaticContentLoader</td><td
 colspan="1" rowspan="1">struts.staticContentLoader</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Loads static resources 
(since 2.1)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.XWorkConverter</td><td 
colspan="1" rowspan="1">strut
 s.xworkConverter</td><td colspan="1" rowspan="1">singleton</td><td colspan="1" 
rowspan="1">Handles conversion logic and allows to load custom converters per 
class or per action</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.TextProvider</td><td colspan="1" 
rowspan="1">struts.xworkTextProvider</td><td colspan="1" 
rowspan="1">default</td><td colspan="1" rowspan="1">Allows provide custom 
TextProvider for whole application</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.LocaleProvider</td><td colspan="1" 
rowspan="1">struts.localeProvider</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Allows provide custom 
TextProvider for whole application</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.components.UrlRenderer</td><td colspan="1" 
rowspan="1">struts.urlRenderer</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Allows provide custom 
implementation of environment specific URL rendering/creating
  class</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.UnknownHandlerManager</td><td colspan="1" 
rowspan="1">struts.unknownHandlerManager</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Implementation of this 
interface allows handle logic of unknown Actions, Methods or 
Results</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.views.util.UrlHelper</td><td colspan="1" 
rowspan="1">struts.view.urlHelper</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Helper class used with 
URLRenderer to provide exact logic for building URLs</td></tr><tr><td 
colspan="1" rowspan="1">com.opensymphony.xwork2.FileManagerFactory</td><td 
colspan="1" rowspan="1">struts.fileManagerFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">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></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.CollectionConverter</td><td 
colspan="1" rowspan="1">struts.converter.collection</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Converter used to convert 
any object to Collection and back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.ArrayConverter</td><td 
colspan="1" rowspan="1">struts.converter.array</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Converter used to convert 
any object to Array and back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.DateConverter</td><td 
colspan="1" rowspan="1">struts.converter.date</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Converter used to convert 
any object to Date and back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.NumberConverter</td><td 
colspan="1" rowspan="1">struts.conv
 erter.number</td><td colspan="1" rowspan="1">singleton</td><td colspan="1" 
rowspan="1">Converter used to convert any object to Number and 
back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.StringConverter</td><td 
colspan="1" rowspan="1">struts.converter.string</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Converter used to convert 
any object to String and back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td><td
 colspan="1" rowspan="1">struts.conversion.properties.processor</td><td 
colspan="1" rowspan="1">singleton</td><td colspan="1" rowspan="1">Process 
Properties to create converters</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td><td
 colspan="1" rowspan="1">struts.converter.file.processor</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Process 
<class>-conversion.propertie
 s file create converters</class></td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor</td><td
 colspan="1" rowspan="1">struts.converter.annotation.processor</td><td 
colspan="1" rowspan="1">singleton</td><td colspan="1" rowspan="1">Process 
TypeConversion annotation to create converters</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.TypeConverterCreator</td><td 
colspan="1" rowspan="1">struts.converter.creator</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates user 
converters</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.TypeConverterHolder</td><td 
colspan="1" rowspan="1">struts.converter.holder</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Holds user converters' 
instances</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.util.TextParser</td><td colspan="1" 
rowspan="1">struts.expression.parser</td><td co
 lspan="1" rowspan="1">singleton</td><td colspan="1" rowspan="1">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 colspan="1" 
rowspan="1">com.opensymphony.xwork2.ExcludedPatternsChecker</td><td colspan="1" 
rowspan="1">struts.excludedPatterns.checker</td><td colspan="1" 
rowspan="1">request</td><td colspan="1" rowspan="1">Used across different 
interceptors to check if given string matches one of the excluded 
patterns</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.AcceptedPatternsChecker</td><td colspan="1" 
rowspan="1">struts.acceptedPatterns.checker</td><td colspan="1" 
rowspan="1">request</td><td colspan="1" rowspan="1">Used across different 
interceptors to check if given string matches one of the accepted 
patterns</td></tr></table></p>
+        implementation what kind of opening char to use (#, $, %, 
etc)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.ExcludedPatternsChecker</td><td colspan="1" 
rowspan="1">struts.excludedPatterns.checker</td><td colspan="1" 
rowspan="1">request</td><td colspan="1" rowspan="1">Used across different 
interceptors to check if given string matches one of the excluded 
patterns</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.AcceptedPatternsChecker</td><td colspan="1" 
rowspan="1">struts.acceptedPatterns.checker</td><td colspan="1" 
rowspan="1">request</td><td colspan="1" rowspan="1">Used across different 
interceptors to check if given string matches one of the accepted 
patterns</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.util.ContentTypeMatcher</td><td colspan="1" 
rowspan="1">struts.contentTypeMatcher</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Matches content type of 
uploaded files (since 2.3.22)</td></tr></t
 able></p>
 <h2 id="Plugins-PluginExamples">Plugin Examples</h2><p>Let's look at two 
similar but different plugins bundled with the core distribution.</p><h3 
id="Plugins-Sitemeshplugin">Sitemesh plugin</h3><p><a shape="rect" 
class="external-link" href="http://opensymphony.com/sitemesh/"; 
rel="nofollow">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>sitemesh-plugin.jar</code> contains several classes, a standard JAR 
manifest, and a plugin configuration file.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[ + META-INF/
    + manifest.mf

Modified: websites/production/struts/content/docs/struts-defaultxml.html
==============================================================================
--- websites/production/struts/content/docs/struts-defaultxml.html (original)
+++ websites/production/struts/content/docs/struts-defaultxml.html Fri Apr  3 
05:49:56 2015
@@ -228,6 +228,8 @@ under the License.
     &lt;bean type=&quot;com.opensymphony.xwork2.util.PatternMatcher&quot; 
name=&quot;namedVariable&quot; 
class=&quot;com.opensymphony.xwork2.util.NamedVariablePatternMatcher&quot;/&gt;
     &lt;bean type=&quot;com.opensymphony.xwork2.util.PatternMatcher&quot; 
name=&quot;regex&quot; 
class=&quot;org.apache.struts2.util.RegexPatternMatcher&quot;/&gt;
 
+    &lt;bean type=&quot;org.apache.struts2.util.ContentTypeMatcher&quot; 
name=&quot;struts&quot; 
class=&quot;org.apache.struts2.util.DefaultContentTypeMatcher&quot;/&gt;
+
     &lt;bean 
type=&quot;org.apache.struts2.dispatcher.mapper.ActionMapper&quot; 
name=&quot;struts&quot; 
class=&quot;org.apache.struts2.dispatcher.mapper.DefaultActionMapper&quot; /&gt;
     &lt;bean 
type=&quot;org.apache.struts2.dispatcher.mapper.ActionMapper&quot; 
name=&quot;composite&quot; 
class=&quot;org.apache.struts2.dispatcher.mapper.CompositeActionMapper&quot; 
/&gt;
     &lt;bean 
type=&quot;org.apache.struts2.dispatcher.mapper.ActionMapper&quot; 
name=&quot;restful&quot; 
class=&quot;org.apache.struts2.dispatcher.mapper.RestfulActionMapper&quot; /&gt;

Modified: websites/production/struts/content/docs/type-conversion.html
==============================================================================
--- websites/production/struts/content/docs/type-conversion.html (original)
+++ websites/production/struts/content/docs/type-conversion.html Fri Apr  3 
05:49:56 2015
@@ -141,11 +141,11 @@ under the License.
             <div id="ConfluenceContent"><p>Routine type conversion in the 
framework is transparent. Generally, all you need to do is ensure that HTML 
inputs have names that can be used in <a shape="rect" href="ognl.html">OGNL</a> 
expressions. (HTML inputs are form elements and other GET/POST parameters.)</p>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1422602079907 {padding: 0px;}
-div.rbtoc1422602079907 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1422602079907 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1428039172740 {padding: 0px;}
+div.rbtoc1428039172740 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1428039172740 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1422602079907">
+/*]]>*/</style><div class="toc-macro rbtoc1428039172740">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a 
shape="rect" href="#TypeConversion-BuiltinTypeConversionSupport">Built in Type 
Conversion Support</a></li><li><span class="TOCOutline">2</span> <a 
shape="rect" href="#TypeConversion-RelationshiptoParameterNames">Relationship 
to Parameter Names</a></li><li><span class="TOCOutline">3</span> <a 
shape="rect" href="#TypeConversion-CreatingaTypeConverter">Creating a Type 
Converter</a></li><li><span class="TOCOutline">4</span> <a shape="rect" 
href="#TypeConversion-ApplyingaTypeConvertertoanAction">Applying a Type 
Converter to an Action</a></li><li><span class="TOCOutline">5</span> <a 
shape="rect" 
href="#TypeConversion-ApplyingaTypeConvertertoabeanormodel">Applying a Type 
Converter to a bean or model</a></li><li><span class="TOCOutline">6</span> <a 
shape="rect" 
href="#TypeConversion-ApplyingaTypeConverterforanapplication">Applying a Type 
Converter for an application</a></li><li><span class="TOCOutline">7</span> <a 
shape="r
 ect" href="#TypeConversion-ASimpleExample">A Simple Example</a></li><li><span 
class="TOCOutline">8</span> <a shape="rect" 
href="#TypeConversion-AdvancedTypeConversion">Advanced Type Conversion</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">8.1</span> <a 
shape="rect" href="#TypeConversion-NullPropertyHandling">Null Property 
Handling</a></li><li><span class="TOCOutline">8.2</span> <a shape="rect" 
href="#TypeConversion-CollectionandMapSupport">Collection and Map Support</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">8.2.1</span> <a 
shape="rect" 
href="#TypeConversion-Indexingacollectionbyapropertyofthatcollection">Indexing 
a collection by a property of that collection</a></li></ul>

Modified: websites/production/struts/content/docs/validation.html
==============================================================================
--- websites/production/struts/content/docs/validation.html (original)
+++ websites/production/struts/content/docs/validation.html Fri Apr  3 05:49:56 
2015
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>Struts 2 validation is configured 
via XML or annotations. Manual validation in the action is also possible, and 
may be combined with XML and annotation-driven validation.</p><p>Validation 
also depends on both the <code>validation</code> and <code>workflow</code> 
interceptors (both are included in the default interceptor stack). The 
<code>validation</code> interceptor does the validation itself and creates a 
list of field-specific errors. The <code>workflow</code> interceptor checks for 
the presence of validation errors: if any are found, it returns the "input" 
result (by default), taking the user back to the form which contained the 
validation errors.</p><p>If we're using the default settings <em>and</em> our 
action doesn't have an "input" result defined <em>and</em> there are validation 
(or, incidentally, type conversion) errors, we'll get an error message back 
telling us there's no "input" result defined for the action.</p><p><strong>CONT
 ENTS</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1422602216085 {padding: 0px;}
-div.rbtoc1422602216085 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1422602216085 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1428039262982 {padding: 0px;}
+div.rbtoc1428039262982 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1428039262982 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1422602216085">
+/*]]>*/</style></p><div class="toc-macro rbtoc1428039262982">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a 
shape="rect" href="#Validation-UsingAnnotations">Using 
Annotations</a></li><li><span class="TOCOutline">2</span> <a shape="rect" 
href="#Validation-Examples">Examples</a></li><li><span 
class="TOCOutline">3</span> <a shape="rect" 
href="#Validation-BundledValidators">Bundled Validators</a></li><li><span 
class="TOCOutline">4</span> <a shape="rect" 
href="#Validation-RegisteringValidators">Registering 
Validators</a></li><li><span class="TOCOutline">5</span> <a shape="rect" 
href="#Validation-TurningonValidation">Turning on Validation</a></li><li><span 
class="TOCOutline">6</span> <a shape="rect" 
href="#Validation-ValidatorScopes">Validator Scopes</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">6.1</span> <a 
shape="rect" href="#Validation-Notes">Notes</a></li></ul>
 </li><li><span class="TOCOutline">7</span> <a shape="rect" 
href="#Validation-DefiningValidationRules">Defining Validation 
Rules</a></li><li><span class="TOCOutline">8</span> <a shape="rect" 
href="#Validation-LocalizingandParameterizingMessages">Localizing and 
Parameterizing Messages</a></li><li><span class="TOCOutline">9</span> <a 
shape="rect" href="#Validation-ValidatorFlavor">Validator 
Flavor</a></li><li><span class="TOCOutline">10</span> <a shape="rect" 
href="#Validation-Non-FieldValidatorVsField-Validatorvalidatortypes">Non-Field 
Validator Vs Field-Validator</a></li><li><span class="TOCOutline">11</span> <a 
shape="rect" href="#Validation-Short-CircuitingValidator">Short-Circuiting 
Validator</a></li><li><span class="TOCOutline">12</span> <a shape="rect" 
href="#Validation-HowValidatorsofanActionareFound">How Validators of an Action 
are Found</a></li><li><span class="TOCOutline">13</span> <a shape="rect" 
href="#Validation-Writingcustomvalidators">Writing custom validators</a></li><
 li><span class="TOCOutline">14</span> <a shape="rect" 
href="#Validation-Resources">Resources</a></li><li><span 
class="TOCOutline">15</span> <a shape="rect" href="#Validation-Next:">Next: 
Localization</a></li></ul>

Added: websites/production/struts/content/docs/version-notes-2323.html
==============================================================================
--- websites/production/struts/content/docs/version-notes-2323.html (added)
+++ websites/production/struts/content/docs/version-notes-2323.html Fri Apr  3 
05:49:56 2015
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License. 
+-->
+<html>
+<head>
+    <link type="text/css" rel="stylesheet" 
href="https://struts.apache.org/css/default.css";>
+    <style type="text/css">
+        .dp-highlighter {
+            width:95% !important;
+        }
+    </style>
+    <style type="text/css">
+        .footer {
+            background-image:      
url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+            background-repeat:     repeat-x;
+            background-position:   left top;
+            padding-top:           4px;
+            color:                 #666;
+        }
+    </style>
+    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
+    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
+    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' 
type='text/javascript'></script>
+    <script type="text/javascript">
+        SyntaxHighlighter.defaults['toolbar'] = false;
+        SyntaxHighlighter.all();
+    </script>
+    <script type="text/javascript" language="javascript">
+        var hide = null;
+        var show = null;
+        var children = null;
+
+        function init() {
+            /* Search form initialization */
+            var form = document.forms['search'];
+            if (form != null) {
+                form.elements['domains'].value = location.hostname;
+                form.elements['sitesearch'].value = location.hostname;
+            }
+
+            /* Children initialization */
+            hide = document.getElementById('hide');
+            show = document.getElementById('show');
+            children = document.all != null ?
+                    document.all['children'] :
+                    document.getElementById('children');
+            if (children != null) {
+                children.style.display = 'none';
+                show.style.display = 'inline';
+                hide.style.display = 'none';
+            }
+        }
+
+        function showChildren() {
+            children.style.display = 'block';
+            show.style.display = 'none';
+            hide.style.display = 'inline';
+        }
+
+        function hideChildren() {
+            children.style.display = 'none';
+            show.style.display = 'inline';
+            hide.style.display = 'none';
+        }
+    </script>
+    <title>Version Notes 2.3.23</title>
+</head>
+<body onload="init()">
+<table border="0" cellpadding="2" cellspacing="0" width="100%">
+    <tr class="topBar">
+        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a 
href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a 
href="migration-guide.html">Migration Guide</a>&nbsp;&gt;&nbsp;<a 
href="version-notes-2323.html">Version Notes 2.3.23</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="https://www.google.com/search"; 
method="get">
+                <input type="hidden" name="ie" value="UTF-8" />
+                <input type="hidden" name="oe" value="UTF-8" />
+                <input type="hidden" name="domains" value="" />
+                <input type="hidden" name="sitesearch" value="" />
+                <input type="text" name="q" maxlength="255" value="" />
+                <input type="submit" name="btnG" value="Google Search" />
+            </form>
+        </td>
+    </tr>
+</table>
+
+<div id="PageContent">
+    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
+        <!-- We'll enable this once we figure out how to access (and save) the 
logo resource -->
+        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; 
margin: 4px 4px 4px 10px;" border="0"-->
+        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 
2 Documentation</div>
+        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">Version 
Notes 2.3.23</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=50857454";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Edit Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=50857454";>Edit
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Browse Space"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>Browse 
Space</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=50857454";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=50857454";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=50857454";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add News"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=50857454";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><p><img class="emoticon emoticon-tick" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png";
 data-emoticon-name="tick" alt="(tick)"> These are the notes for the Struts 
2.3.23 distribution.</p><p><img class="emoticon emoticon-tick" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png";
 data-emoticon-name="tick" alt="(tick)"> For prior notes in this release 
series, see <a shape="rect" href="version-notes-2320.html">Version Notes 
2.3.20</a></p><ul><li>If you are a Maven user, you might want to get started 
using the <a shape="rect" href="struts-2-maven-archetypes.html">Maven 
Archetype</a>.</li><li>Another quick-start entry point is the 
<strong>blank</strong> application. Rename and deploy the WAR as a starting 
point for your own development.</li></ul><div class="code pane
 l pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Maven Dependency</b></div><div 
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.struts&lt;/groupId&gt;
+  &lt;artifactId&gt;struts2-core&lt;/artifactId&gt;
+  &lt;version&gt;2.3.23&lt;/version&gt;
+&lt;/dependency&gt;
+]]></script>
+</div></div><p>You can also use Struts Archetype Catalog like below</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Struts Archetype 
Catalog</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: text; gutter: false" 
type="syntaxhighlighter"><![CDATA[mvn archetype:generate 
-DarchetypeCatalog=http://struts.apache.org/]]></script>
+</div></div><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Staging 
Repository</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;repositories&gt;
+  &lt;repository&gt;
+    &lt;id&gt;apache.nexus&lt;/id&gt;
+    &lt;name&gt;ASF Nexus Staging&lt;/name&gt;
+    
&lt;url&gt;https://repository.apache.org/content/groups/staging/&lt;/url&gt;
+  &lt;/repository&gt;
+&lt;/repositories&gt;]]></script>
+</div></div><h2 id="VersionNotes2.3.23-InternalChanges">Internal 
Changes</h2><ul><li>fixed flow in&#160;<code>DefaultActionInvocation</code> and 
when using the&#160;<a shape="rect" href="convention-plugin.html">Convention 
Plugin</a>, see&#160;<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4433";>WW-4433</a></li><li>defined
 new plugin to support Java 8, check&#160;<a shape="rect" 
href="java-8-support-plugin.html">Java 8 Support Plugin</a> and see <a 
shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4435";>WW-4435</a></li><li>fixed 
problem with&#160;<code>style</code> attribute, see <a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4430";>WW-4430</a></li><li>fixed 
problem with converting values from&#160;<code>ActionContext</code>, see <a 
shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4427";>WW-4427</a></li><li>converters
 are again applied to values c
 oming from the context, see&#160;<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4427";>WW-4427</a></li><li><code>struts.ognl.allowStaticMethodAccess</code>
 works again, see&#160;<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4429";>WW-4429</a></li><li>fixed 
memory leak in CDI plugin, see&#160;<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4441";>WW-4441</a></li><li>fixed 
problem with hidden field which silently drops 'label' attribute, see&#160;<a 
shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4447";>WW-4447</a></li><li>fixed 
parameters encoding in <code>ServletRedirectAction</code>&#160;before checking 
for valid URI, see&#160;<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4448"; style="text-decoration: 
underline;">WW-4448</a></li><li><code>css_xhtml</code>&#160;hidden input adding 
table row markup, see&
 #160;<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4454";>WW-4454</a></li><li>and 
many other improvements, please check the <a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329280&amp;projectId=12311041";>version
 notes</a></li></ul><p>&#160;</p>    <div class="aui-message warning shadowed 
information-macro">
+                            <span class="aui-icon icon-warning">Icon</span>
+                <div class="message-content">
+                            <p>Please read information about new <a 
shape="rect" href="security.html#Security-Internalsecuritymechanism">internal 
security mechanism</a> introduced with the previous version and extended in 
this version!</p>
+                    </div>
+    </div>
+<h3 id="VersionNotes2.3.23-IssueDetail">Issue Detail</h3><ul><li><a 
shape="rect" class="external-link" 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329859&amp;projectId=12311041";>JIRA
 Release Notes 2.3.23</a></li></ul><h3 id="VersionNotes2.3.23-IssueList">Issue 
List</h3><ul><li><a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/issues/?filter=12330045";>Struts 2.3.23 
DONE</a></li><li><a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/issues/?filter=12318399";>Struts 2.3.x 
TODO</a></li></ul><h3 id="VersionNotes2.3.23-Otherresources">Other 
resources</h3><ul><li><a shape="rect" class="external-link" 
href="http://www.mail-archive.com/commits%40struts.apache.org/"; 
rel="nofollow">Commit Logs</a></li><li><a shape="rect" class="external-link" 
href="https://git-wip-us.apache.org/repos/asf?p=struts.git;a=tree;h=refs/heads/develop;hb=develop";>Source
 Code Repository</a></li></ul><div><span style="font-size: 24.0px;line-heig
 ht: 30.0px;"><br clear="none"></span></div><div><span style="font-size: 
24.0px;line-height: 30.0px;background-color: rgb(245,245,245);"><br 
clear="none"></span></div></div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>


Reply via email to