struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lukaszlen...@apache.org
Subject svn commit: r929145 [1/3] - in /websites/production/struts/content: development/2.x/docs/ release/2.3.x/docs/
Date Fri, 14 Nov 2014 07:44:00 GMT
Author: lukaszlenart
Date: Fri Nov 14 07:43:54 2014
New Revision: 929145

Log:
Updates production

Added:
    websites/production/struts/content/development/2.x/docs/version-notes-2319.html
    websites/production/struts/content/release/2.3.x/docs/version-notes-2319.html
Modified:
    websites/production/struts/content/development/2.x/docs/building-struts-2-normal-release.html
    websites/production/struts/content/development/2.x/docs/model-driven.html
    websites/production/struts/content/development/2.x/docs/rest-plugin.html
    websites/production/struts/content/development/2.x/docs/security.html
    websites/production/struts/content/release/2.3.x/docs/actionmapper.html
    websites/production/struts/content/release/2.3.x/docs/building-struts-2-normal-release.html
    websites/production/struts/content/release/2.3.x/docs/file-upload.html
    websites/production/struts/content/release/2.3.x/docs/guides.html
    websites/production/struts/content/release/2.3.x/docs/interceptors.html
    websites/production/struts/content/release/2.3.x/docs/migration-guide.html
    websites/production/struts/content/release/2.3.x/docs/model-driven.html
    websites/production/struts/content/release/2.3.x/docs/rest-plugin.html
    websites/production/struts/content/release/2.3.x/docs/security.html
    websites/production/struts/content/release/2.3.x/docs/sitegraph-plugin.html
    websites/production/struts/content/release/2.3.x/docs/spring-plugin.html
    websites/production/struts/content/release/2.3.x/docs/type-conversion.html
    websites/production/struts/content/release/2.3.x/docs/validation.html
    websites/production/struts/content/release/2.3.x/docs/version-notes-2318.html

Modified: websites/production/struts/content/development/2.x/docs/building-struts-2-normal-release.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/building-struts-2-normal-release.html (original)
+++ websites/production/struts/content/development/2.x/docs/building-struts-2-normal-release.html Fri Nov 14 07:43:54 2014
@@ -139,33 +139,39 @@ 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.rbtoc1411293680771 {padding: 0px;}
-div.rbtoc1411293680771 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1411293680771 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415950672619 {padding: 0px;}
+div.rbtoc1415950672619 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1415950672619 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1411293680771">
+/*]]>*/</style></p><div class="toc-macro rbtoc1415950672619">
 <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-Redeploythedraftdocs(Optional)">Redeploy the draft 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
 mvn package]]></script>
 </div></div><p>If build will fail try again - don't use&#160;<code>clean</code>, the exporter is going to update only outdated pages. After successful export, commit updated files into&#160;<code>struts-production</code></p><h3 id="BuildingStruts2-Normalrelease-Besureyourlocalcopyisup-to-date">Be sure your local copy is up-to-date</h3><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[git checkout develop
-git pull
-git fetch origin --prune]]></script>
-</div></div><h3 id="BuildingStruts2-Normalrelease-Createareleasebranch">Create a release branch</h3><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[git fetch origin --prune
+git checkout develop
+git pull]]></script>
+</div></div>    <div class="aui-message warning shadowed information-macro">
+                            <span class="aui-icon icon-warning">Icon</span>
+                <div class="message-content">
+                            <p>Please remember to keep BOM subproject in sync - <code>&lt;struts-version.version&gt;X.X.X&lt;/struts-version.version&gt;</code> - must be the same as the parent pom.</p>
+                    </div>
+    </div>
+<h3 id="BuildingStruts2-Normalrelease-Createareleasebranch">Create a release branch</h3><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[git flow release start X.X.X.X
 git flow release publish X.X.X.X]]></script>
-</div></div><p>Now you should be on&#160;<code>release/X.X.X.X</code> branch (<code>git status</code>&#160;supposed to confirm that). You must push changes to remote repo as the Release plugins will push changes to remote as well.</p><h3 id="BuildingStruts2-Normalrelease-Preparerelease"><span style="line-height: 1.5625;">Prepare release</span></h3><p>Tag the release by using the "release:prepare" goal of Maven:</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[mvn release:prepare -DautoVersionSubmodules=true -Dusername=yourSvnUsername -Dpassword=yourSvnPassword
+</div></div><p>Now you should be on&#160;<code>release/X.X.X.X</code> branch (<code>git status</code>&#160;supposed to confirm that). You must push changes to remote repo as the Release plugins will push changes to remote as well (it's already done after publishing release).</p><h3 id="BuildingStruts2-Normalrelease-Preparerelease"><span style="line-height: 1.5625;">Prepare release</span></h3><p>Tag the release by using the "release:prepare" goal of Maven:</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[mvn release:prepare -DautoVersionSubmodules=true
 ]]></script>
 </div></div><p>For a <a shape="rect" class="external-link" href="http://maven.apache.org/plugins/maven-release-plugin/usage.html">dry run</a>, add <code>-DdryRun=true</code>. If you do a dry run, use <code>mvn release:clean</code> to clean up after you have looked at the output.</p><p>When prompted for the SCM tag name, follow this pattern: STRUTS_2_3_[PATCH_VERSION]</p>    <div class="aui-message warning shadowed information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
                 <div class="message-content">
-                            <p>If you get an error message, try to re-run <code>mvn release:prepare -Dusername=yourSvnUsername -Dpassword=yourSvnPassword -DautoVersionSubmodules=true</code> command again, <code>-Dresume</code> flag is set to true by default and the plugin will resume the release process from where it failed before.</p>
+                            <p>If you get an error message, try to re-run <code>mvn release:prepare -DautoVersionSubmodules=true</code> command again, <code>-Dresume</code> flag is set to true by default and the plugin will resume the release process from where it failed before.</p>
                     </div>
     </div>
 <p>Follow the link to get&#160;<a shape="rect" class="external-link" href="http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html">more information</a>&#160;about performed operation by release plugin.</p><h3 id="BuildingStruts2-Normalrelease-Performtherelease">Perform the release</h3><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[mvn release:perform -Dusername=yourSvnUsername
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[mvn release:perform
 ]]></script>
 </div></div><p>Follow the link to get&#160;<a shape="rect" class="external-link" href="http://maven.apache.org/plugins/maven-release-plugin/examples/perform-release.html">more information</a>&#160;about performed operation by release plugin.&#160;<span style="line-height: 1.4285715;">After this step the artifacts will be hosted by </span><a shape="rect" class="external-link" href="http://repository.apache.org/" style="line-height: 1.4285715;">Nexus</a>.</p><p>If you need to run perform again, (or in a different box), do:</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[git checkout STRUTS_2_3_[PATCH_VERSION]
@@ -214,7 +220,13 @@ rm *.asc.sha1
 </div></div><p>This will remove the branch from the remote, now we can merge once more the release branch (when on <code>develop</code>) and remove it</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[git merge --no-ff release/X.X.X.X
 git branch -d release/X.X.X.X]]></script>
-</div></div><p>Now both&#160;<code>master</code> and&#160;<code>develop</code> branches should be up to date with the changes introduced by the release.</p><h3 id="BuildingStruts2-Normalrelease-Voteonit">Vote on it</h3><p>Post a release/quality vote to the dev list (and <strong>only</strong> the dev list). The example mail is on <a shape="rect" href="sample-announcements.html">Sample announcements</a> page. <br clear="none"> If the vote result is for an ASF release (i.e. not test build), update site, announce. If the vote result is for GA, push to central.</p><h3 id="BuildingStruts2-Normalrelease-Copyfiles">Copy files</h3><p>After the vote, if the distribution is being mirrored (there was a favourable release vote) copy the Sources and Binaries:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Now both&#160;<code>master</code> and&#160;<code>develop</code> branches should be up to date with the changes introduced by the release.</p>    <div class="aui-message warning shadowed information-macro">
+                            <span class="aui-icon icon-warning">Icon</span>
+                <div class="message-content">
+                            <p>Do not remove the tag! It clearly indicates what was planned and it can be used as a history marker. Always used the next version number, do not redeploy the same version as it breaks Maven's policy and you will have to manually clean up Maven repository.</p>
+                    </div>
+    </div>
+<h3 id="BuildingStruts2-Normalrelease-Voteonit">Vote on it</h3><p>Post a release/quality vote to the dev list (and <strong>only</strong> the dev list). The example mail is on <a shape="rect" href="sample-announcements.html">Sample announcements</a> page. <br clear="none"> If the vote result is for an ASF release (i.e. not test build), update site, announce. If the vote result is for GA, push to central.</p><h3 id="BuildingStruts2-Normalrelease-Copyfiles">Copy files</h3><p>After the vote, if the distribution is being mirrored (there was a favourable release vote) copy the Sources and Binaries:</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[ssh people.apache.org
 cd /www/people.apache.org/builds/struts/$VERSION
 cp struts-$VERSION-src.*  /www/www.apache.org/dist/struts/source

Modified: websites/production/struts/content/development/2.x/docs/model-driven.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/model-driven.html (original)
+++ websites/production/struts/content/development/2.x/docs/model-driven.html Fri Nov 14 07:43:54 2014
@@ -138,18 +138,8 @@ under the License. 
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Struts 2 does not have "forms" like Struts 1 did. In Struts 2 request parameters are bound directly to fields in the actions class, and this class is placed on top of the stack when the action is executed. </p>
-
-<p>If an action  class implements the interface <code>com.opensymphony.xwork2.ModelDriven</code> then it needs to return an object from the <code>getModel()</code> method. Struts will then populate the fields of this object with the request parameters, and this object will be placed on top of the stack once the action is executed. Validation will also be performed on this model object, instead of the action. </p>
-
-<h2 id="ModelDriven-Interceptor">Interceptor</h2>
-<p>To use <code>ModelDriven</code> actions, make sure that the <a shape="rect" href="model-driven-interceptor.html">Model Driven Interceptor</a> is applied to your action. This interceptor is part of the default interceptor stack <code>defaultStack</code> so it is applied to all actions by default. </p>
-
-<h2 id="ModelDriven-Example">Example</h2>
-<p>Action class:</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[
-public class ModelDrivenAction implements ModelDriven { 
+            <div id="ConfluenceContent"><p>Struts 2 does not have "forms" like Struts 1 did. In Struts 2 request parameters are bound directly to fields in the actions class, and this class is placed on top of the stack when the action is executed.</p><p>If an action class implements the interface <code>com.opensymphony.xwork2.ModelDriven</code> then it needs to return an object from the <code>getModel()</code> method. Struts will then populate the fields of this object with the request parameters, and this object will be placed on top of the stack once the action is executed. Validation will also be performed on this model object, instead of the action. Please read about&#160;<a shape="rect" href="visitorfieldvalidator-annotation.html">VisitorFieldValidator Annotation</a> which can help you validate model's fields.</p><h2 id="ModelDriven-Interceptor">Interceptor</h2><p>To use <code>ModelDriven</code> actions, make sure that the <a shape="rect" href="model-driven-interceptor.html">M
 odel Driven Interceptor</a> is applied to your action. This interceptor is part of the default interceptor stack <code>defaultStack</code> so it is applied to all actions by default.</p><h2 id="ModelDriven-Example">Example</h2><p>Action class:</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[public class ModelDrivenAction implements ModelDriven { 
     public String execute() throws Exception {
         return SUCCESS;
     }
@@ -159,11 +149,8 @@ public class ModelDrivenAction implement
     }
 }
 ]]></script>
-</div></div>
-<p>Gangster class (model):</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[
-public class Gangster implements Serializable {
+</div></div><p>Gangster class (model):</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[public class Gangster implements Serializable {
     private String name;
     private int age;
     private String description;
@@ -195,11 +182,8 @@ public class Gangster implements Seriali
     }
 }
 ]]></script>
-</div></div>
-<p>JSP for creating a Gangster:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: html; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;s:form action=&quot;modelDrivenResult&quot; method=&quot;POST&quot; namespace=&quot;/modelDriven&quot;&gt;   
+</div></div><p>JSP for creating a Gangster:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: html; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;s:form action=&quot;modelDrivenResult&quot; method=&quot;POST&quot; namespace=&quot;/modelDriven&quot;&gt;   
     &lt;s:textfield label=&quot;Gangster Name&quot; name=&quot;name&quot; /&gt;
     &lt;s:textfield label=&quot;Gangster Age&quot;  name=&quot;age&quot; /&gt;
     &lt;s:checkbox  label=&quot;Gangster Busted Before&quot; name=&quot;bustedBefore&quot; /&gt;

Modified: websites/production/struts/content/development/2.x/docs/rest-plugin.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/rest-plugin.html (original)
+++ websites/production/struts/content/development/2.x/docs/rest-plugin.html Fri Nov 14 07:43:54 2014
@@ -145,11 +145,11 @@ under the License. 
                     </div>
     </div>
 <p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1405758685177 {padding: 0px;}
-div.rbtoc1405758685177 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1405758685177 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415950670950 {padding: 0px;}
+div.rbtoc1415950670950 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1415950670950 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1405758685177">
+/*]]>*/</style></p><div class="toc-macro rbtoc1415950670950">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#RESTPlugin-Overview">Overview</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#RESTPlugin-Features">Features</a></li><li><span class="TOCOutline">1.2</span> <a shape="rect" href="#RESTPlugin-MappingRESTURLstoStruts2Actions">Mapping REST URLs to Struts 2 Actions</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.2.1</span> <a shape="rect" href="#RESTPlugin-RESTfulURLMappingLogic">RESTful URL Mapping Logic</a></li></ul>
@@ -161,7 +161,7 @@ div.rbtoc1405758685177 li {margin-left: 
 </li></ul>
 </li><li><span class="TOCOutline">2.2</span> <a shape="rect" href="#RESTPlugin-WriteYourControllerActions">Write Your Controller Actions</a></li></ul>
 </li><li><span class="TOCOutline">3</span> <a shape="rect" href="#RESTPlugin-AdvancedTopics">Advanced Topics</a>
-<ul class="toc-indentation"><li><span class="TOCOutline">3.1</span> <a shape="rect" href="#RESTPlugin-CustomContentTypeHandlers">Custom ContentTypeHandlers</a></li><li><span class="TOCOutline">3.2</span> <a shape="rect" href="#RESTPlugin-Settings">Settings</a></li></ul>
+<ul class="toc-indentation"><li><span class="TOCOutline">3.1</span> <a shape="rect" href="#RESTPlugin-CustomContentTypeHandlers">Custom ContentTypeHandlers</a></li><li><span class="TOCOutline">3.2</span> <a shape="rect" href="#RESTPlugin-UseJacksonframeworkasJSONContentTypeHandler">Use Jackson framework as JSON ContentTypeHandler</a></li><li><span class="TOCOutline">3.3</span> <a shape="rect" href="#RESTPlugin-Settings">Settings</a></li></ul>
 </li><li><span class="TOCOutline">4</span> <a shape="rect" href="#RESTPlugin-Resources">Resources</a></li><li><span class="TOCOutline">5</span> <a shape="rect" href="#RESTPlugin-VersionHistory">Version History</a></li></ul>
 </div><h2 id="RESTPlugin-Overview">Overview</h2><p>The REST Pluginprovides high level support for the implementation of RESTful resource based web applicationsThe REST plugin can cooperate with the <a shape="rect" href="convention-plugin.html">Convention Plugin</a> to support a zero configuration approach to declaring your actions and results, but you can always use the REST plugin with XML style configuration if you like.</p><p>If you prefer to see a working code example, instead of reading through an explanation, you can download the <a shape="rect" class="external-link" href="http://struts.apache.org/2.x/index.html">struts2 sample apps</a> and check out the <code>struts2-rest-showcase</code> application, a complete WAR file, that demonstrates a simple REST web program.</p><h3 id="RESTPlugin-Features">Features</h3><ul><li>Ruby on Rails REST-style URLs</li><li>Zero XML config when used with Convention Plugin</li><li>Built-in serialization and deserialization support for XML and JSO
 N</li><li>Automatic error handling</li><li>Type-safe configuration of the HTTP response</li><li>Automatic conditional GET support</li></ul><h3 id="RESTPlugin-MappingRESTURLstoStruts2Actions">Mapping REST URLs to Struts 2 Actions</h3><p>The main functionality of the REST plugin lies in the interpretation of incoming request URL's according the RESTful rules. In the Struts 2 framework, this 'mapping' of request URL's to Actions is handled by in implementation of the <a shape="rect" class="external-link" href="http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/dispatcher/mapper/ActionMapper.html"><code>ActionMapper</code></a> interface. Out of the box, Struts 2 uses the <a shape="rect" class="external-link" href="http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.html"><code>DefaultActionMapper</code></a> to map URL's to Actions via the logic you are probably already familiar with.</p>    <div class="aui-message 
 warning shadowed information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
@@ -268,7 +268,25 @@ public class OrdersController implements
 </div></div><p>Then, tell the REST Plugin to override the handler for the desired extension with yours. In <code>struts.properties</code>, it would look like this:</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[struts.rest.handlerOverride.xml=myXml
 ]]></script>
-</div></div><h3 id="RESTPlugin-Settings">Settings</h3><p>The following settings can be customized. See the <a shape="rect" class="external-link" href="http://cwiki.apache.org/confluence/display/WW/Configuration+Files">developer guide</a>.<br clear="none"> For more configuration options see the <a shape="rect" href="convention-plugin.html">Convention Plugin Documentation</a></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Setting</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Possible Values</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.handlerOverride.EXTENSION</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The alias for the <code>ContentTypeHandler</code> implementation that handles the EXTENSION val
 ue</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>N/A</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any declared alias for a <code>ContentTypeHandler</code> implementation</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.defaultExtension</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The default extension to use when none is explicitly specified in the request</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>xhtml</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any extension</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.validationFailureStatusCode</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP status code to return on validation failure</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>400</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any HTTP status code as 
 an integer</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.namespace</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Optional parameter to specify namespace for REST services</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>/</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>eg. /rest</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.content.restrictToGET</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Optional parameter, if set to true blocks returning content from any other methods than GET, if set to false, the content can be returned for any kind of method</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>eg. put struts.rest.content.restrictToGET = false in struts.properties</p></td></tr></tbody></table></div><h2 id="RESTPlugin-Resources">Resource
 s</h2><ul><li><a shape="rect" class="external-link" href="http://www.b-simple.de/documents" rel="nofollow">http://www.b-simple.de/documents</a> - Short RESTful Rails tutorial (PDF, multiple languages)</li><li><a shape="rect" class="external-link" href="http://www.amazon.com/RESTful-Web-Services-Leonard-Richardson/dp/0596529260" rel="nofollow">RESTful Web Services</a> - Highly recommend book from O'Reilly</li><li><a shape="rect" class="external-link" href="http://raibledesigns.com/rd/entry/go_light_with_apache_struts" rel="nofollow">Go Light with Apache Struts 2 and REST</a> - Presentation by Don Brown at ApacheCon US 2008</li></ul><h2 id="RESTPlugin-VersionHistory">Version History</h2><p>From Struts 2.1.1+</p></div>
+</div></div><h3 id="RESTPlugin-UseJacksonframeworkasJSONContentTypeHandler">Use Jackson framework as JSON ContentTypeHandler</h3><p>The default JSON Content Handler is build on top of the <a shape="rect" class="external-link" href="http://json-lib.sourceforge.net/" rel="nofollow">JSON-lib</a>. If you prefer to use the <a shape="rect" class="external-link" href="http://jackson.codehaus.org/" rel="nofollow">Jackson framework</a> for JSON serialisation, you can configure the JacksonLibHandler as Content Handler for your json requests.&#160;</p><p>First you need to add the jackson dependency to your web application by downloading the jar file and put it under WEB-INF/lib or by adding following xml snippet to your dependencies section in the pom.xml when you are using maven as build system.</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;dependency&gt;
+    &lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt;
+    &lt;artifactId&gt;jackson-jaxrs&lt;/artifactId&gt;
+    &lt;version&gt;1.9.13&lt;/version&gt;
+&lt;/dependency&gt;
+]]></script>
+</div></div><p>Now you can overwrite the Content Handler with the Jackson Content Handler in the struts.xml:</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;bean type=&quot;org.apache.struts2.rest.handler.ContentTypeHandler&quot; name=&quot;jackson&quot; class=&quot;org.apache.struts2.rest.handler.JacksonLibHandler&quot;/&gt;
+&lt;constant name=&quot;struts.rest.handlerOverride.json&quot; value=&quot;jackson&quot;/&gt;
+
+&lt;!-- Set to false if the json content can be returned for any kind of http method --&gt;
+&lt;constant name=&quot;struts.rest.content.restrictToGET&quot; value=&quot;false&quot;/&gt; 
+
+&lt;!-- Set encoding to UTF-8, default is ISO-8859-1 --&gt;
+&lt;constant name=&quot;struts.i18n.encoding&quot; value=&quot;UTF-8&quot;/&gt; 
+
+]]></script>
+</div></div><p>&#160;</p><h3 id="RESTPlugin-Settings">Settings</h3><p>The following settings can be customized. See the <a shape="rect" class="external-link" href="http://cwiki.apache.org/confluence/display/WW/Configuration+Files">developer guide</a>.<br clear="none"> For more configuration options see the <a shape="rect" href="convention-plugin.html">Convention Plugin Documentation</a></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Setting</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Possible Values</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.handlerOverride.EXTENSION</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The alias for the <code>ContentTypeHandler</code> implementation that handles the 
 EXTENSION value</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>N/A</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any declared alias for a <code>ContentTypeHandler</code> implementation</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.defaultExtension</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The default extension to use when none is explicitly specified in the request</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>xhtml</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any extension</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.validationFailureStatusCode</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP status code to return on validation failure</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>400</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any HTTP st
 atus code as an integer</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.namespace</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Optional parameter to specify namespace for REST services</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>/</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>eg. /rest</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>struts.rest.content.restrictToGET</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Optional parameter, if set to true blocks returning content from any other methods than GET, if set to false, the content can be returned for any kind of method</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>eg. put struts.rest.content.restrictToGET = false in struts.properties</p></td></tr></tbody></table></div><h2 id="RESTPlugin-Resour
 ces">Resources</h2><ul><li><a shape="rect" class="external-link" href="http://www.b-simple.de/documents" rel="nofollow">http://www.b-simple.de/documents</a> - Short RESTful Rails tutorial (PDF, multiple languages)</li><li><a shape="rect" class="external-link" href="http://www.amazon.com/RESTful-Web-Services-Leonard-Richardson/dp/0596529260" rel="nofollow">RESTful Web Services</a> - Highly recommend book from O'Reilly</li><li><a shape="rect" class="external-link" href="http://raibledesigns.com/rd/entry/go_light_with_apache_struts" rel="nofollow">Go Light with Apache Struts 2 and REST</a> - Presentation by Don Brown at ApacheCon US 2008</li></ul><h2 id="RESTPlugin-VersionHistory">Version History</h2><p>From Struts 2.1.1+</p></div>
         </div>
 
         

Modified: websites/production/struts/content/development/2.x/docs/security.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/security.html (original)
+++ websites/production/struts/content/development/2.x/docs/security.html Fri Nov 14 07:43:54 2014
@@ -138,7 +138,18 @@ under the License. 
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h3 id="Security-Securitytips">Security tips</h3><p>The Apache Struts 2 doesn't provide any security mechanism - it is just a pure web framework. Below are few tips you should consider during application development with the Apache Struts 2.</p><h4 id="Security-RestrictaccesstotheConfigBrowser">Restrict access to the Config Browser</h4><p><a shape="rect" href="config-browser-plugin.html">Config Browser Plugin</a>&#160;exposes internal configuration and should be used only during development phase. If you must use it on production site, we strictly recommend restricting access to it - you can use &#160;Basic Authentication or any other security mechanism (e.g. <a shape="rect" class="external-link" href="http://shiro.apache.org/">Apache Shiro</a>)</p><h4 id="Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix different access levels in the same namespace</h4><p>Very often access to different resources is controlled based on URL p
 atterns, see snippet below. Because of that you cannot mix actions with different security levels in the same namespace. Always group actions in one namespace by security level.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+            <div id="ConfluenceContent"><h3 id="Security-/*&lt;![CDATA[*/div.rbtoc1415950673266{padding:0px;}div.rbtoc1415950673266ul{list-style:disc;margin-left:0px;}div.rbtoc1415950673266li{margin-left:0px;padding-left:0px;}/*]]&gt;*/SecuritytipsRestrictaccesstotheConfigBrowserDon'tmixdifferentaccesslevels"><style type="text/css">/*<![CDATA[*/
+div.rbtoc1415950673266 {padding: 0px;}
+div.rbtoc1415950673266 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1415950673266 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></h3><div class="toc-macro rbtoc1415950673266">
+<ul class="toc-indentation"><li><a shape="rect" href="#Security-Securitytips">Security tips</a>
+<ul class="toc-indentation"><li><a shape="rect" href="#Security-RestrictaccesstotheConfigBrowser">Restrict access to the Config Browser</a></li><li><a shape="rect" href="#Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix different access levels in the same namespace</a></li></ul>
+</li><li><a shape="rect" href="#Security-Internalsecuritymechanism">Internal security mechanism</a>
+<ul class="toc-indentation"><li><a shape="rect" href="#Security-OGNLisusedtocallaction'smethods">OGNL is used to call action's methods</a></li></ul>
+</li></ul>
+</div><h3 id="Security-Securitytips">Security tips</h3><p>The Apache Struts 2 doesn't provide any security mechanism - it is just a pure web framework. Below are few tips you should consider during application development with the Apache Struts 2.</p><h4 id="Security-RestrictaccesstotheConfigBrowser">Restrict access to the Config Browser</h4><p><a shape="rect" href="config-browser-plugin.html">Config Browser Plugin</a>&#160;exposes internal configuration and should be used only during development phase. If you must use it on production site, we strictly recommend restricting access to it - you can use &#160;Basic Authentication or any other security mechanism (e.g. <a shape="rect" class="external-link" href="http://shiro.apache.org/">Apache Shiro</a>)</p><h4 id="Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix different access levels in the same namespace</h4><p>Very often access to different resources is controlled based on URL patterns, see snippet below. Becaus
 e of that you cannot mix actions with different security levels in the same namespace. Always group actions in one namespace by security level.</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;security-constraint&gt;
         &lt;web-resource-collection&gt;
             &lt;web-resource-name&gt;admin&lt;/web-resource-name&gt;
@@ -149,7 +160,52 @@ under the License. 
         &lt;/auth-constraint&gt;
     &lt;/security-constraint&gt;
 ]]></script>
-</div></div></div>
+</div></div><h3 id="Security-Internalsecuritymechanism">Internal security mechanism</h3><p>The Apache Struts 2 contains internal security manager which blocks access to particular classes and Java packages - it's a OGNL-wide mechanism which means it affects any aspect of the framework ie. incoming parameters, expressions used in JSPs, etc.</p><p>The defaults are 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;constant name=&quot;struts.excludedClasses&quot;
+              value=&quot;
+                java.lang.Object,
+                java.lang.Runtime,
+                java.lang.System,
+                java.lang.Class,
+                java.lang.ClassLoader,
+                java.lang.Shutdown,
+                ognl.OgnlContext,
+                ognl.MemberAccess,
+                ognl.ClassResolver,
+                ognl.TypeConverter,
+                com.opensymphony.xwork2.ActionContext&quot; /&gt;
+    &lt;!-- this must be valid regex, each &#39;.&#39; in package name must be escaped! --&gt;
+    &lt;constant name=&quot;struts.excludedPackageNamePatterns&quot; value=&quot;^java\.lang\..*,^ognl.*,^javax.*&quot; /&gt;]]></script>
+</div></div><p>Any expression or target which evaluates to one of these will be blocked and you see a WARN in logs:</p><div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>[WARNING] Target class [class example.MyBean] or declaring class of member type [public example.MyBean()] are excluded!</pre>
+</div></div><p>In that case&#160;<code>new MyBean()</code> was used to create a new instance of class (inside JSP) - it's blocked because&#160;<code>target</code> of such expression is evaluated to&#160;<code>java.lang.Class</code></p>    <div class="aui-message warning shadowed information-macro">
+                            <span class="aui-icon icon-warning">Icon</span>
+                <div class="message-content">
+                            <p>It is possible to redefine the above constants in <code>struts.xml</code> but try to avoid this and rather change design of your application!</p>
+                    </div>
+    </div>
+<h4 id="Security-OGNLisusedtocallaction'smethods">OGNL is used to call action's methods</h4><p>This can impact actions which have large inheritance hierarchy and use the same method's name throughout the hierarchy, this was reported as an issue <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4405">WW-4405</a>. See the example below:</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[public class RealAction extends BaseAction {  
+    @Action(&quot;save&quot;)
+    public String save() throws Exception {
+        super.save();
+        return SUCCESS;
+    }
+}    
+ 
+public class BaseAction extends AbstractAction {
+    public String save() throws Exception {
+        save(Double.MAX_VALUE);
+        return SUCCESS;
+    }
+}
+ 
+public abstract class AbstractAction extends ActionSupport {
+    protected void save(Double val) {
+        // some logic
+    }
+}]]></script>
+</div></div><p>In such case OGNL cannot properly map which method to call when request is coming. This is do the OGNL limitation. To solve the problem don't use the same method's names through the hierarchy, you can simply change the action's method from&#160;<code>save()</code> to&#160;<code>saveAction()</code>&#160;and leaving annotation as is to allow&#160;<span style="line-height: 1.4285715;">call this action via&#160;</span><code style="line-height: 1.4285715;">/save.action</code><span style="line-height: 1.4285715;"> request.</span></p></div>
         </div>
 
         

Added: websites/production/struts/content/development/2.x/docs/version-notes-2319.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/version-notes-2319.html (added)
+++ websites/production/struts/content/development/2.x/docs/version-notes-2319.html Fri Nov 14 07:43:54 2014
@@ -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='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
+    <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
+    <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
+    <script src="http://struts.apache.org/highlighter/js/shBrushPlain.js" type="text/javascript"></script>
+    <script src="http://struts.apache.org/highlighter/js/shBrushXml.js" type="text/javascript"></script>
+    <script src="http://struts.apache.org/highlighter/js/shBrushJava.js" type="text/javascript"></script>
+    <script src="http://struts.apache.org/highlighter/js/shBrushJScript.js" type="text/javascript"></script>
+    <script src="http://struts.apache.org/highlighter/js/shBrushGroovy.js" type="text/javascript"></script>
+    <script src="http://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.19</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-2319.html">Version Notes 2.3.19</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="http://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.19</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=40506670">
+                <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=40506670">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=40506670">
+                <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=40506670">Add Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=40506670">
+                <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=40506670">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.19 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-23161.html">Version Notes 2.3.16.1</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 p
 anel 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.19&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.19-InternalChanges">Internal Changes</h2><ul><li><img class="emoticon emoticon-warning" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/warning.png" data-emoticon-name="warning" alt="(warning)"> Merged security fixes from version 2.3.16.1,&#160;2.3.16.2,&#160;2.3.16.3</li><li><img class="emoticon emoticon-warning" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/warning.png" data-emoticon-name="warning" alt="(warning)">&#160;Extended existing security mechanism to block access to given Java packages and Classes, see <a shape="rect" class="external-link" href="https://github.com/apache/struts/pull/11" rel="nofollow">#11</a>&#160;or read&#160;<a shape="rect" href="security.html#Security-Internalsecuritymechanism">Internal security mechanism</a></li><li>Collection Parameters for Redir
 ectResults, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4224">WW-4224</a></li><li>Make ParametersInterceptor supports chinese in hash key by default, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4250">WW-4250</a></li><li>themes.properties can be loaded using ServletContext allows to put <code>template</code> folder under WEB-INF or on classpath, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4260">WW-4260</a></li><li><span>New tag datetextfield, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-3493">WW-3493</a></span></li><li><span>Only valid Ognl expressions are cached, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4146">WW-4146</a></span></li><li><span>CustomTextProvider can be used for validation errors of model driven actions, <a shape="rect" class="external-link" href="https://issues.apa
 che.org/jira/browse/WW-4202">WW-4202</a></span></li><li><span>datetimepicker's label fixed, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4254">WW-4254</a></span></li><li><span>PropertiesJudge<span>&#160;removed and properties are checked in&#160;<code>SecurityMemberAccess</code></span></span>, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4257">WW-4257</a></li><li>resource reloading works in IBM JVM, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4266">WW-4266</a></li><li>default reloading settings were removed from&#160;<code>default.properties</code>, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4267">WW-4267</a></li><li><img class="emoticon emoticon-warning" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/warning.png" data-emoticon-name="warn
 ing" alt="(warning)">&#160;commons-fileupload library upgraded to version 1.3.1 to fix potential security vulnerability, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4286">WW-4286</a></li><li>The&#160;<code>scheme</code> attribute accepts expressions in&#160;<code>s:url</code> tag, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4024">WW-4024</a></li><li>Solves problem with infinite loop in&#160;<code>FastByteArrayOutputStream</code>, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4383">WW-4383</a></li><li><code>LocalizedTextUtil</code> supports many&#160;<code>ClassLoaders</code>, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4379">WW-4379</a></li><li>Bill of Materials pom was introduced, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4326">WW-4326</a></li><li><code>debug=browser|console</code
 > was migrated to jQuery, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4322">WW-4322</a></li><li><code>struts_dojo.js</code> was fixed, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4349">WW-4349</a></li><li>interface&#160;<code>org/apache/struts2/views/TagLibrary</code> was restored and marked as&#160;<code>@Depreacted</code>, <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4255">WW-4255</a></li><li>and many other small improvements, please see the release notes</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 this version, it can have impact on your application!</p>
+                    </div>
+    </div>
+<p>&#160;</p><h3 id="VersionNotes2.3.19-IssueDetail">Issue Detail</h3><ul><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311041&amp;version=12319176">JIRA Release Notes 2.3.19</a></li></ul><h3 id="VersionNotes2.3.19-IssueList">Issue List</h3><ul><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/issues/?filter=12326872">Struts 2.3.19 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.19-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-height: 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>
\ No newline at end of file

Modified: websites/production/struts/content/release/2.3.x/docs/actionmapper.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/actionmapper.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/actionmapper.html Fri Nov 14 07:43:54 2014
@@ -139,11 +139,11 @@ under the License. 
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1405758432629 {padding: 0px;}
-div.rbtoc1405758432629 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1405758432629 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1411292178688 {padding: 0px;}
+div.rbtoc1411292178688 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1411292178688 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1405758432629">
+/*]]>*/</style><div class="toc-macro rbtoc1411292178688">
 <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/release/2.3.x/docs/building-struts-2-normal-release.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/building-struts-2-normal-release.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/building-struts-2-normal-release.html Fri Nov 14 07:43:54 2014
@@ -139,34 +139,39 @@ 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.rbtoc1405758786455 {padding: 0px;}
-div.rbtoc1405758786455 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1405758786455 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415950672619 {padding: 0px;}
+div.rbtoc1415950672619 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1415950672619 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1405758786455">
-<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-(Optional)-UpdateSecurityBulletins">(Optional) - Update Security Bulletins</a></li><li><span class="TOCOutline">16</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Updatesite">Update site</a></li><li><span class="TOCOutline">17</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Redeploythedraftdocs(Optional)">Redeploy the draft docs (Optional)</a></li><li><span class="TOCOutline">18</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Postannouncements">Post announcements</a></li></ul>
+/*]]>*/</style></p><div class="toc-macro rbtoc1415950672619">
+<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-Redeploythedraftdocs(Optional)">Redeploy the draft 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
 mvn package]]></script>
 </div></div><p>If build will fail try again - don't use&#160;<code>clean</code>, the exporter is going to update only outdated pages. After successful export, commit updated files into&#160;<code>struts-production</code></p><h3 id="BuildingStruts2-Normalrelease-Besureyourlocalcopyisup-to-date">Be sure your local copy is up-to-date</h3><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[git checkout develop
-git pull
-
-git fetch origin --prune]]></script>
-</div></div><h3 id="BuildingStruts2-Normalrelease-Createareleasebranch">Create a release branch</h3><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[git fetch origin --prune
+git checkout develop
+git pull]]></script>
+</div></div>    <div class="aui-message warning shadowed information-macro">
+                            <span class="aui-icon icon-warning">Icon</span>
+                <div class="message-content">
+                            <p>Please remember to keep BOM subproject in sync - <code>&lt;struts-version.version&gt;X.X.X&lt;/struts-version.version&gt;</code> - must be the same as the parent pom.</p>
+                    </div>
+    </div>
+<h3 id="BuildingStruts2-Normalrelease-Createareleasebranch">Create a release branch</h3><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[git flow release start X.X.X.X
 git flow release publish X.X.X.X]]></script>
-</div></div><p>Now you should be on&#160;<code>release/X.X.X.X</code> branch (<code>git status</code>&#160;supposes confirm that). You must push changes to remote repo as the Release plugins will push changes to remote as well.</p><h3 id="BuildingStruts2-Normalrelease-Preparerelease"><span style="line-height: 1.5625;">Prepare release</span></h3><p>Tag the release by using the "release:prepare" goal of Maven:</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[mvn release:prepare -DautoVersionSubmodules=true -Dusername=yourSvnUsername -Dpassword=yourSvnPassword
+</div></div><p>Now you should be on&#160;<code>release/X.X.X.X</code> branch (<code>git status</code>&#160;supposed to confirm that). You must push changes to remote repo as the Release plugins will push changes to remote as well (it's already done after publishing release).</p><h3 id="BuildingStruts2-Normalrelease-Preparerelease"><span style="line-height: 1.5625;">Prepare release</span></h3><p>Tag the release by using the "release:prepare" goal of Maven:</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[mvn release:prepare -DautoVersionSubmodules=true
 ]]></script>
 </div></div><p>For a <a shape="rect" class="external-link" href="http://maven.apache.org/plugins/maven-release-plugin/usage.html">dry run</a>, add <code>-DdryRun=true</code>. If you do a dry run, use <code>mvn release:clean</code> to clean up after you have looked at the output.</p><p>When prompted for the SCM tag name, follow this pattern: STRUTS_2_3_[PATCH_VERSION]</p>    <div class="aui-message warning shadowed information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
                 <div class="message-content">
-                            <p>If you get an error message, try to re-run <code>mvn release:prepare -Dusername=yourSvnUsername -Dpassword=yourSvnPassword -DautoVersionSubmodules=true</code> command again, <code>-Dresume</code> flag is set to true by default and the plugin will resume the release process from where it failed before.</p>
+                            <p>If you get an error message, try to re-run <code>mvn release:prepare -DautoVersionSubmodules=true</code> command again, <code>-Dresume</code> flag is set to true by default and the plugin will resume the release process from where it failed before.</p>
                     </div>
     </div>
 <p>Follow the link to get&#160;<a shape="rect" class="external-link" href="http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html">more information</a>&#160;about performed operation by release plugin.</p><h3 id="BuildingStruts2-Normalrelease-Performtherelease">Perform the release</h3><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[mvn release:perform -Dusername=yourSvnUsername
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[mvn release:perform
 ]]></script>
 </div></div><p>Follow the link to get&#160;<a shape="rect" class="external-link" href="http://maven.apache.org/plugins/maven-release-plugin/examples/perform-release.html">more information</a>&#160;about performed operation by release plugin.&#160;<span style="line-height: 1.4285715;">After this step the artifacts will be hosted by </span><a shape="rect" class="external-link" href="http://repository.apache.org/" style="line-height: 1.4285715;">Nexus</a>.</p><p>If you need to run perform again, (or in a different box), do:</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[git checkout STRUTS_2_3_[PATCH_VERSION]
@@ -215,7 +220,13 @@ rm *.asc.sha1
 </div></div><p>This will remove the branch from the remote, now we can merge once more the release branch (when on <code>develop</code>) and remove it</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[git merge --no-ff release/X.X.X.X
 git branch -d release/X.X.X.X]]></script>
-</div></div><p>Now both&#160;<code>master</code> and&#160;<code>develop</code> branches should be up to date with the changes introduced by the release.</p><h3 id="BuildingStruts2-Normalrelease-Voteonit">Vote on it</h3><p>Post a release/quality vote to the dev list (and <strong>only</strong> the dev list). The example mail is on <a shape="rect" href="sample-announcements.html">Sample announcements</a> page. <br clear="none"> If the vote result is for an ASF release (i.e. not test build), update site, announce. If the vote result is for GA, push to central.</p><h3 id="BuildingStruts2-Normalrelease-Copyfiles">Copy files</h3><p>After the vote, if the distribution is being mirrored (there was a favourable release vote) copy the Sources and Binaries:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Now both&#160;<code>master</code> and&#160;<code>develop</code> branches should be up to date with the changes introduced by the release.</p>    <div class="aui-message warning shadowed information-macro">
+                            <span class="aui-icon icon-warning">Icon</span>
+                <div class="message-content">
+                            <p>Do not remove the tag! It clearly indicates what was planned and it can be used as a history marker. Always used the next version number, do not redeploy the same version as it breaks Maven's policy and you will have to manually clean up Maven repository.</p>
+                    </div>
+    </div>
+<h3 id="BuildingStruts2-Normalrelease-Voteonit">Vote on it</h3><p>Post a release/quality vote to the dev list (and <strong>only</strong> the dev list). The example mail is on <a shape="rect" href="sample-announcements.html">Sample announcements</a> page. <br clear="none"> If the vote result is for an ASF release (i.e. not test build), update site, announce. If the vote result is for GA, push to central.</p><h3 id="BuildingStruts2-Normalrelease-Copyfiles">Copy files</h3><p>After the vote, if the distribution is being mirrored (there was a favourable release vote) copy the Sources and Binaries:</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[ssh people.apache.org
 cd /www/people.apache.org/builds/struts/$VERSION
 cp struts-$VERSION-src.*  /www/www.apache.org/dist/struts/source
@@ -227,12 +238,22 @@ cp struts-$VERSION-all.* /www/www.apache
 <pre>cd /www/www.apache.org/dist/struts/
 find . -type f -name "struts-2.3.x*" -exec rm -f {} \;
 </pre>
-</div></div><p>where <code>x</code> is the previous version to remove (or one more previous to keep current and one version back).</p><h3 id="BuildingStruts2-Normalrelease-Waitforrsync">Wait for rsync</h3><p>Wait 24 hours before proceeding.</p><h3 id="BuildingStruts2-Normalrelease-(Optional)-UpdateSecurityBulletins">(Optional) - Update Security Bulletins</h3><p>If the release will fix a - hopefully yet undisclosed - security issue, it's now time to update the <a shape="rect" href="security-bulletins.html">Security Bulletins</a> page and add a new announcement. For a template, just check former announcements</p><h3 id="BuildingStruts2-Normalrelease-Updatesite"><span style="line-height: 1.5625;">Update site</span></h3><ul><li><p>Check out site src code</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>where <code>x</code> is the previous version to remove (or one more previous to keep current and one version back).</p><h3 id="BuildingStruts2-Normalrelease-Waitforrsync">Wait for rsync</h3><p>Wait 24 hours before proceeding.</p><h3 id="BuildingStruts2-Normalrelease-Updatesite"><span style="line-height: 1.5625;">Update site</span></h3><ul><li><p>Check out site src 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[svn co https://svn.apache.org/repos/asf/struts/site/ struts-site
 ]]></script>
 </div></div></li><li>If a new DTD was defined, add it to&#160;<code>source/dtds</code></li><li>Update current version and release date in&#160;<code>struts-site/_config.yml</code></li><li>Update page source files<ul><li>struts-site/source/announce.md (if applicable, refer also to corresponding security bulletin)</li><li>struts-site/source/downloads.html (Prior Releases section)</li><li>struts-site/source/index.html (some parts will updated automatically with values defined in&#160;<code>_config.yml</code>)</li></ul></li><li>Generate site with Jekyll<ul><li><code>jekyll build</code></li><li>with <code>jekyll serve -w</code> you can check the generated site at http://localhost:4000</li></ul></li><li><p>Commit the changes and the generated content</p></li></ul><p>Now the changes must be deployed to production which is basically a separated Subversion repository, you check it out with command below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelC
 ontent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[svn co https://svn.apache.org/repos/infra/websites/production/struts/content struts-production]]></script>
-</div></div><p>It's a good idea to keep that working copy to be used with future releases. Right now copy content of&#160;<code>struts-site/content</code> to&#160;<code>struts-production</code>, then commit changes. Next step is to update exported wiki pages. With current approach the pages are kept in&#160;<code>struts-production/release/2.X.x/docs</code> where&#160;<code>X</code> is the current branch (ie. 2.3.x, 2.2.x and so on). Simply remove the whole content from under&#160;<code>/docs</code> and update it with docs from assembly (you can download one from Maven repository or copy generated during release process which supposes to be in&#160;<code>struts/assembly/target/cwiki</code>). And commit changes.</p><h3 id="BuildingStruts2-Normalrelease-Redeploythedraftdocs(Optional)"><span style="line-height: 1.5625;">Redeploy the draft docs (Optional)</span></h3><p>Make public available all the pages that could leak confidential information about the vulnerability. Wait or manually e
 xport the space in Confluence. Build snapshot locally and copy <code>assembly/target/assembly/out/struts2-#.#.#-SNAPSHOT-docs.zip</code> to <code>people.apache.org</code> and update <code>/www/struts.apache.org/2.x/docs</code></p><h3 id="BuildingStruts2-Normalrelease-Postannouncements"><span style="line-height: 1.5625;">Post announcements</span></h3><p>We leave this as the last step, once the artifacts have had time to sync up on the mirrors. Target it to: <code>user@struts.a.o</code> and <code>announcements@struts.a.o</code>, samples are available at <a shape="rect" href="sample-announcements.html">Sample announcements</a> page</p></div>
+</div></div><p>It's a good idea to keep that working copy to be used with future releases. Right now copy content of&#160;<code>struts-site/content</code> to&#160;<code>struts-production</code>, then commit changes. Next step is to update exported wiki pages. With current approach the pages are kept in&#160;<code>struts-production/release/2.X.x/docs</code> where&#160;<code>X</code> is the current branch (ie. 2.3.x, 2.2.x and so on). Simply remove the whole content from under&#160;<code>/docs</code> and update it with docs from assembly (you can download one from Maven repository or copy generated during release process which supposes to be in&#160;<code>struts/assembly/target/cwiki</code>). And commit changes.</p><h3 id="BuildingStruts2-Normalrelease-Redeploythedraftdocs(Optional)"><span style="line-height: 1.5625;">Redeploy the draft docs (Optional)</span></h3><ul style="list-style-type: square;"><li><p>Checkout source of the website and export Confluence pages</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[svn co https://svn.apache.org/repos/asf/struts/site/trunk struts-site
+cd struts-site
+mvn package]]></script>
+</div></div><p>Now the whole Confluence space is exported to&#160;<code>target/cwiki/WW/docs/</code></p></li><li><p>Checkout copy of production website</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[svn co https://svn.apache.org/repos/infra/websites/production/struts/content/ struts-production]]></script>
+</div></div><p>(you can checkout just a subtree, but it's better to checkout the whole repo especially when you want to update also the main web page)</p></li><li><p>Update production</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[cp -r struts-site/target/cwiki/WW/docs/* struts-production/development/2.x/docs/
+cd struts-production
+svn commit &quot;Updates production&quot;]]></script>
+</div></div></li></ul><h3 id="BuildingStruts2-Normalrelease-Postannouncements"><span style="line-height: 1.5625;">Post announcements</span></h3><p>We leave this as the last step, once the artifacts have had time to sync up on the mirrors. Target it to: <code>user@struts.a.o</code> and <code>announcements@struts.a.o</code>, samples are available at <a shape="rect" href="sample-announcements.html">Sample announcements</a> page</p></div>
         </div>
 
         

Modified: websites/production/struts/content/release/2.3.x/docs/file-upload.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/file-upload.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/file-upload.html Fri Nov 14 07:43:54 2014
@@ -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.rbtoc1406303008504 {padding: 0px;}
-div.rbtoc1406303008504 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1406303008504 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1411292312450 {padding: 0px;}
+div.rbtoc1411292312450 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1411292312450 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1406303008504">
+/*]]>*/</style></p><div class="toc-macro rbtoc1411292312450">
 <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>



Mime
View raw message