You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2015/09/24 20:29:31 UTC

svn commit: r966663 [2/2] - in /websites/production/struts/content: ./ docs/

Modified: websites/production/struts/content/docs/struts-next.html
==============================================================================
--- websites/production/struts/content/docs/struts-next.html (original)
+++ websites/production/struts/content/docs/struts-next.html Thu Sep 24 18:29:30 2015
@@ -125,31 +125,23 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h3 id="StrutsNext-/*&lt;![CDATA[*/div.rbtoc1440489345560{padding:0px;}div.rbtoc1440489345560ul{list-style:disc;margin-left:0px;}div.rbtoc1440489345560li{margin-left:0px;padding-left:0px;}/*]]&gt;*/#StrutsNext-Whatshouldbeimproved/changed#StrutsNext-Whatshouldbeimprove"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1440489345560 {padding: 0px;}
-div.rbtoc1440489345560 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1440489345560 li {margin-left: 0px;padding-left: 0px;}
+            <div id="ConfluenceContent"><h3 id="StrutsNext-/*&lt;![CDATA[*/div.rbtoc1443119323812{padding:0px;}div.rbtoc1443119323812ul{list-style:disc;margin-left:0px;}div.rbtoc1443119323812li{margin-left:0px;padding-left:0px;}/*]]&gt;*/#StrutsNext-Whatshouldbeimproved/changed#StrutsNext-Whatshouldbeimprove"><style type="text/css">/*<![CDATA[*/
+div.rbtoc1443119323812 {padding: 0px;}
+div.rbtoc1443119323812 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1443119323812 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></h3><div class="toc-macro rbtoc1440489345560">
+/*]]>*/</style></h3><div class="toc-macro rbtoc1443119323812">
 <ul class="toc-indentation"><li><a shape="rect" href="#StrutsNext-"></a></li></ul>
 <ul><li><a shape="rect" href="#StrutsNext-Whatshouldbeimproved/changed">What should be improved / changed</a></li><li><a shape="rect" href="#StrutsNext-DevelopmentplanofStruts3">Development plan of Struts 3</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#StrutsNext-M1(akaStruts2.5)">M1 (aka Struts 2.5)</a></li><li><a shape="rect" href="#StrutsNext-M2(alphaStruts3)">M2 (alpha Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M3(alphaStruts3)">M3 (alpha Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M4(beta1Struts3)">M4 (beta 1 Struts 3)</a></li></ul>
 </li><li><a shape="rect" href="#StrutsNext-Cleanupwebsite">Cleanup website</a></li><li><a shape="rect" href="#StrutsNext-Undiscussedideas">Undiscussed ideas</a></li></ul>
 </div><h1 id="StrutsNext-Whatshouldbeimproved/changed">What should be improved / changed</h1><p><a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW/fixforversion/12319158">Issues</a> connected with the new version <br clear="none"> <a shape="rect" class="external-link" href="https://builds.apache.org/view/S-Z/view/Struts/job/Struts3/">Build</a> of the latest version</p><ul><li>Use Git instead Svn&#160;<img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"></li><li>Switch to Java 7&#160;<img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"></li><li>Update "internal" injection to use current Guice version<ul><li>Consider usage of <a shape="rect" class
 ="external-link" href="http://onami.apache.org/">http://onami.apache.org/</a></li></ul></li><li>Refactorings for further extensibility based on questions on the list, on CodeRanch, and Stack Overflow<ul><li>JR plugin refactoring. Allow compiled reports as classpath resources.</li></ul></li><li>Refactor conversion of primitives (and wrappers) in XWork</li><li>Switch to <a shape="rect" class="external-link" href="http://commons.apache.org/ognl">OGNL 4.0</a>.</li><li>Consider renaming packages to org.apache.struts3</li><li>Remove deprecated Plugins&#160;<img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"><ul><li>Codebehind</li><li>Dojo</li><li>Struts1 ?</li></ul></li><li>Normalize property name camel-casing (foo.bar.BazPlugh to foo.bar.bazPlugh)</li><li>Check possible usage of Tiles Auto Tag (<a shape="rect" class="external-link" hr
 ef="http://tiles.apache.org/tiles-autotag/">http://tiles.apache.org/tiles-autotag/</a>) instead of Struts Annotations</li><li>Convention plugin should be the "normal" way of using Struts</li><li>Plugin to map websocket requests to Struts actions</li><li>API to customize property finding via arbitrary request parameter names ("a" -&gt; getFoo())<ul><li>Happily breaks apart the 1:1 relationship between property paths and HTTP parameter names</li><li>Will be useful for obfuscation (doesn't expose java model)</li><li>Can be used to shorten request payload (smaller names)</li><li>Can be taken advantage by HDIV</li></ul></li><li>Themes cleanup<ul><li>Support HTML 5 features and Single Page Application development paradigm</li><li>Must output valid markup</li><li>Should be compatible with bootstrap, bootstrap validator, and other major UI platforms</li></ul></li></ul><h1 id="StrutsNext-DevelopmentplanofStruts3">Development plan of Struts 3</h1><h2 id="StrutsNext-M1(akaStruts2.5)">M1 (aka S
 truts 2.5)</h2><ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li class="checked" data-inline-task-id="3">Request Git repo from INFRA</li><li class="checked" data-inline-task-id="4"><span style="line-height: 1.4285715;">Import project</span></li><li class="checked" data-inline-task-id="31">Remove deprecated plugins - moved to <a shape="rect" class="external-link" href="https://git1-us-west.apache.org/repos/asf?p=struts-archive.git">struts-archive.git </a>repo<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li class="checked" data-inline-task-id="16">we need place for deprecated stuff (to move the source code to) - new project "struts-archive"</li><li class="checked" data-inline-task-id="17">drop support for Struts 1 (remove plugin)</li><li class="checked" data-inline-task-id="18">dojo plugin</li><li class="checked" data-inline-task-id="19">codebehind plugin</li><li class="checked" data-inline-task-id="20">jsf plugin</li></ul>
 
+</li><li class="checked" data-inline-task-id="32">Remove deprecated APIs<ol><li>if it cannot be removed, mark to be removed during work on 3.0</li></ol></li><li class="checked" data-inline-task-id="33">Switch to Java 7</li><li class="checked" data-inline-task-id="34">Merge XWork code into Struts Core (without renaming packages)</li><li class="checked" data-inline-task-id="39">Prepare the first beta release</li><li class="checked" data-inline-task-id="36">Mark current logging layer as&#160;<code>@deprecated</code>&#160;and use Log4j2 as default one</li><li class="checked" data-inline-task-id="37">Add plugin to support bean validation<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li class="checked" data-inline-task-id="44">Implement plugin</li><li class="checked" data-inline-task-id="45">Add showcase example</li><li class="checked" data-inline-task-id="46">Add documentation to wiki</li></ul>
 
+</li><li class="checked" data-inline-task-id="38">Upgrade spring plugins spring version to 4.x&#160;</li><li class="checked" data-inline-task-id="48">Move struts2 blank, jboss-blank and mailreader app to struts2-examples</li><li data-inline-task-id="35">Switch to strict DMI by default - allow only defined methods to be accessible via DMI - user can always change that list</li><li data-inline-task-id="49">prepare second beta</li><li data-inline-task-id="50">drop support for "top" object</li><li data-inline-task-id="40">Cleanup website<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li data-inline-task-id="8">new user guide totally developed out of Confluence - people will be able to contribute to it via GitHub</li><li data-inline-task-id="9">Confluence (wiki) used only to explain more detailed given aspect of the framework (ie.: how to implement your own converter in details)</li><li class="checked" data-inline-task-id="10">keep just one version of the doc (no mo
 re release/2.3.x, release/2.2.x and so on - Google indexes everything and people are confused)</li></ul>
 
-</li><li class="checked" data-inline-task-id="32">Remove deprecated APIs<ol><li>if it cannot be removed, mark to be removed during work on 3.0</li></ol></li><li class="checked" data-inline-task-id="33">Switch to Java 7</li><li class="checked" data-inline-task-id="34">Merge XWork code into Struts Core (without renaming packages)</li><li data-inline-task-id="35">Switch to strict DMI by default - allow only defined methods to be accessible via DMI - user can always change that list</li><li class="checked" data-inline-task-id="36">Mark current logging layer as&#160;<code>@deprecated</code>&#160;and use Log4j2 as default one</li><li class="checked" data-inline-task-id="37">Add plugin to support bean validation<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li class="checked" data-inline-task-id="44">Implement plugin</li><li class="checked" data-inline-task-id="45">Add showcase example</li><li class="checked" data-inline-task-id="46">Add documentation to wiki</li></u
 l>
-
-
-
-</li><li class="checked" data-inline-task-id="38">Upgrade spring plugins spring version to 4.x&#160;</li><li class="checked" data-inline-task-id="48">Move struts2 blank, jboss-blank and mailreader app to struts2-examples</li><li data-inline-task-id="39">Prepare the first release</li><li data-inline-task-id="40">Cleanup website<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li data-inline-task-id="8">new user guide totally developed out of Confluence - people will be able to contribute to it via GitHub</li><li data-inline-task-id="9">Confluence (wiki) used only to explain more detailed given aspect of the framework (ie.: how to implement your own converter in details)</li><li class="checked" data-inline-task-id="10">keep just one version of the doc (no more release/2.3.x, release/2.2.x and so on - Google indexes everything and people are confused)</li></ul>
-
-
-
-</li></ul>
-
-
+</li><li data-inline-task-id="51">prepare the last beta</li></ul>
 
 <h2 id="StrutsNext-M2(alphaStruts3)">M2 (alpha Struts 3)</h2><ol><li>Finish merging XWork code base (rename packages)</li><li>Rename Struts 2 packages to org.apache.struts3</li><li>Switch to OGNL 4<ol><li>we must release it first</li><li>also we need better API interfaces to allow integrate Struts with other EL engines, ie.: MVEL - right now the whole conversion layer is hardly tied with OGNL</li></ol></li><li>Switch to Servlet Specification 3.0<ol><li>drop&#160;<span style="color: rgb(34,34,34);">embedded JSP plugin</span></li></ol></li></ol><h2 id="StrutsNext-M3(alphaStruts3)">M3 (alpha Struts 3)</h2><ol><li>Divide core into api and spi</li></ol><h2 id="StrutsNext-M4(beta1Struts3)">M4 (beta 1 Struts 3)</h2><ol><li>move plugins to separated project<ol><li>disconnect plugins release cycle from core release</li></ol></li></ol><h1 id="StrutsNext-Cleanupwebsite">Cleanup website</h1><p>There should be just one project website - Apache Struts. Right now there is the main website - Apache
  Struts project, subsite Apache Struts 1 and another subsite Apache Struts 2. After announcing EOL of Struts 1, we basically supporting just one version or rather branch - Apache Struts 2 which should be at some point converted just into Apache Struts (version 2.5, version 3.0, version 3.1, etc.).</p><p>With that in mind we should have just one website to manage the project.</p><h1 id="StrutsNext-Undiscussedideas">Undiscussed ideas</h1><ul><li>JSR 371 support (<a shape="rect" class="external-link" href="https://jcp.org/en/jsr/detail?id=371" rel="nofollow">https://jcp.org/en/jsr/detail?id=371</a>)</li><li>Better support for modern webframeworks like AngularJS (@grobmeier)</li><li>Make use of slf4j and probably log4j2 (@grobmeier) - support for slf4j is already there, thanks to Johannes, check <a shape="rect" href="logging.html">Logging</a></li><li>Provide alternatives to java property file translations (@grobmeier)</li><li>Replace css and xhtml theme with an new html5 theme. (@jogep)
 </li><li>Extract XML configuration to dedicated plugin - XWork will provide only configuration via code, then user can decide which configuration to use - code, XML, convention, DB?</li><li>Should plugins move out of the Struts release cycle so they can independently released? (@pbenedict)</li><li>Turn all request and response processing into interceptors (perhaps introduce a "system stack" to complement a "user stack" to simplify configuration) (@pbenedict)</li></ul></div>
         </div>

Added: websites/production/struts/content/docs/version-notes-23241.html
==============================================================================
--- websites/production/struts/content/docs/version-notes-23241.html (added)
+++ websites/production/struts/content/docs/version-notes-23241.html Thu Sep 24 18:29:30 2015
@@ -0,0 +1,168 @@
+<!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.24.1</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-23241.html">Version Notes 2.3.24.1</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.24.1</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=61320191">
+                <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=61320191">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=61320191">
+                <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=61320191">Add Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=61320191">
+                <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=61320191">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/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"> These are the notes for the Struts 2.3.24.1 distribution.</p><p><img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.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-2324.html">Version Notes 2.3.24</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 panel 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">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&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.24.1&lt;/version&gt;
+&lt;/dependency&gt;
+</pre>
+</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">
+<pre class="brush: text; gutter: false; theme: Default" style="font-size:12px;">mvn archetype:generate -DarchetypeCatalog=http://struts.apache.org/</pre>
+</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">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&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;</pre>
+</div></div><h2 id="VersionNotes2.3.24.1-InternalChanges">Internal Changes</h2><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This release contains fix related to <a shape="rect" href="s2-026.html">S2-026</a> security bulletin, please read it carefully!</p></div></div><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Please read information in <a shape="rect" href="security.html">Security guideline</a> to better secure your application!</p></div></div><h3 id="VersionNotes2.3.24.1-IssueDetail">Issue Detail</h3><h3 id="VersionNotes2.3.24.1-IssueList">Issue List</h3><ul><li><a shape="rect" class="external-link" href="https://issues.apach
 e.org/jira/issues/?filter=12330045">Struts 2.3.24 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.24.1-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>

Modified: websites/production/struts/content/docs/webxml.html
==============================================================================
--- websites/production/struts/content/docs/webxml.html (original)
+++ websites/production/struts/content/docs/webxml.html Thu Sep 24 18:29:30 2015
@@ -138,37 +138,15 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>The <code>web.xml</code> web application descriptor file represents the core of the Java web application, so it is appropriate that it is also part of the core of the Struts framework.  In the <code>web.xml</code> file, Struts defines its FilterDispatcher, the Servlet Filter class that initializes the Struts framework and handles all requests.  This filter can contain initialization parameters that affect what, if any, additional configuration files are loaded and how the framework should behave.</p>
-
-<p>In addition to the FilterDispatcher, Struts also provides an ActionContextCleanUp class that handles special cleanup tasks when other filters, such as those used by Sitemesh, need access to an initialized Struts framework.</p>
-
-<h2 id="web.xml-KeyInitializationParameters">Key Initialization Parameters</h2>
-
-<p></p><p></p>
-<ul></ul><p></p>
-<ul><li><b>config</b> - a comma-delimited list of XML configuration files to load.</li></ul><p></p>
-<ul><li><b>actionPackages</b> - a comma-delimited list of Java packages to scan for Actions.</li></ul><p></p>
-<ul><li><b>configProviders</b> - a comma-delimited list of Java classes that implement the
-ConfigurationProvider interface that should be used for building the Configuration.</li></ul><p></p>
-<ul><li><b>loggerFactory</b> - The class name of the LoggerFactory implementation.</li></ul><p></p>
-<ul><li><b>*</b> - any other parameters are treated as framework constants.</li></ul><p></p>
-
-<p></p>
-
-<h2 id="web.xml-SimpleExample">Simple Example</h2>
-
-<p>Configuring <code>web.xml</code> for the framework is a matter of adding a filter and filter-mapping.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>FilterDispatcher Example (web.xml)</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;web-app id=&quot;WebApp_9&quot; version=&quot;2.4&quot; 
-	xmlns=&quot;http://java.sun.com/xml/ns/j2ee&quot; 
-	xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; 
-	xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;&gt;
+            <div id="ConfluenceContent"><p>The <code>web.xml</code> web application descriptor file represents the core of the Java web application, so it is appropriate that it is also part of the core of the Struts framework. In the <code>web.xml</code> file, Struts defines its FilterDispatcher, the Servlet Filter class that initializes the Struts framework and handles all requests. This filter can contain initialization parameters that affect what, if any, additional configuration files are loaded and how the framework should behave.</p><p>In addition to the FilterDispatcher, Struts also provides an ActionContextCleanUp class that handles special cleanup tasks when other filters, such as those used by Sitemesh, need access to an initialized Struts framework.</p><h2 id="web.xml-SimpleExample">Simple Example</h2><p>Configuring <code>web.xml</code> for the framework is a matter of adding a filter and filter-mapping.</p><div class="code panel pdl" style="border-width: 1px;"><div clas
 s="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>FilterDispatcher Example (web.xml)</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;web-app id="WebApp_9" version="2.4" 
+	xmlns="http://java.sun.com/xml/ns/j2ee" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;
 
     &lt;filter&gt;
         &lt;filter-name&gt;struts2&lt;/filter-name&gt;
-        &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
+        &lt;filter-class&gt;org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
         &lt;init-param&gt;
         	&lt;param-name&gt;actionPackages&lt;/param-name&gt;
         	&lt;param-value&gt;com.mycompany.myapp.actions&lt;/param-value&gt;
@@ -183,62 +161,23 @@ ConfigurationProvider interface that sho
     &lt;!-- ... --&gt;
 
 &lt;/web-app&gt;
-]]></script>
-</div></div>
-
-    <div class="aui-message warning shadowed information-macro">
-                    <p class="title">Changed Filter Structure in Struts &gt;= 2.1.3</p>
-                            <span class="aui-icon icon-warning">Icon</span>
-                <div class="message-content">
-                            
-<p>To split up the the dispatcher phases, FilterDispatcher is deprecated since Struts 2.1.3. If working with older versions, you need to use</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[
-    ...
+</pre>
+</div></div><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Changed Filter Structure in Struts &gt;= 2.1.3</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>To split up the the dispatcher phases, FilterDispatcher is deprecated since Struts 2.1.3. If working with older versions, you need to use</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">    ...
     &lt;filter&gt;
         &lt;filter-name&gt;struts2&lt;/filter-name&gt;
         &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;
     ...
-]]></script>
-</div></div>
-<p>See <a shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a> for an example on when to use seperate Filters for prepare and execution phase</p>
-                    </div>
-    </div>
-
-
-    <div class="aui-message warning shadowed information-macro">
-                    <p class="title">Why the Filter is mapped with /* and how to configure explicit exclusions (since 2.1.7)</p>
-                            <span class="aui-icon icon-warning">Icon</span>
-                <div class="message-content">
-                            
-<p>  In the example above we've mapped the Struts 2 dispatcher to <code>/*</code>, so Struts 2 has a crack at all incoming requests. This is because Struts 2 serves static content from its jar files, including Dojo JavaScript files (if using S2.0, or the Dojo plugin in S2.1+) and FreeMarker templates for the Struts 2 tags that produce HTML.</p>
-
-<p>  If we change the filter mapping to something else, for example <code>/*.html</code>, we must take this in to account and extract the content that would normally be served from the Struts 2 jar files, or some other solution.</p>
-
-<p>  Since Struts 2.1.7, you are able to provide a comma seperated list of patterns for which when matching against the<br clear="none">
-request URL the Filter will just pass by. This is done via the configuration option struts.action.excludePattern, for example in your 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;struts&gt;
-    &lt;constant name=&quot;struts.action.excludePattern&quot; value=&quot;.*unfiltered.*,.*\\.nofilter&quot;/&gt;
+</pre>
+</div></div><p>See <a shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a> for an example on when to use seperate Filters for prepare and execution phase</p></div></div><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Why the Filter is mapped with /* and how to configure explicit exclusions (since 2.1.7)</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>In the example above we've mapped the Struts 2 dispatcher to <code>/*</code>, so Struts 2 has a crack at all incoming requests. This is because Struts 2 serves static content from its jar files, including Dojo JavaScript files (if using S2.0, or the Dojo plugin in S2.1+) and FreeMarker templates for the Struts 2 tags that produce HTML.</p><p>If we change the filter mapping to something else, for example <code>/*.html</code>, we must take this in to account and extract the content t
 hat would normally be served from the Struts 2 jar files, or some other solution.</p><p>Since Struts 2.1.7, you are able to provide a comma seperated list of patterns for which when matching against the<br clear="none"> request URL the Filter will just pass by. This is done via the configuration option struts.action.excludePattern, for example in your struts.xml</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;struts&gt;
+    &lt;constant name="struts.action.excludePattern" value=".*unfiltered.*,.*\\.nofilter"/&gt;
     ...
 
 &lt;/struts&gt;
-]]></script>
-</div></div>
-                    </div>
-    </div>
-
-
-<h2 id="web.xml-TaglibExample">Taglib Example </h2>
-
-<p>Typically, configuring a taglib is neither required nor recommended. The taglib is included in <code>struts-core.jar</code>, and the container will discover it automatically.</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)">  If, for some reason, a taglib configuration is needed within web.xml, extract the TLD file from the <code>struts-core.jar</code> <code>META-INF</code> folder, and add a <code>taglib</code> element to the <code>web.xml</code>.</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;!-- ... --&gt;
+</pre>
+</div></div></div></div><h2 id="web.xml-TaglibExample">Taglib Example</h2><p>Typically, configuring a taglib is neither required nor recommended. The taglib is included in <code>struts-core.jar</code>, and the container will discover it automatically.</p><p><img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"> If, for some reason, a taglib configuration is needed within web.xml, extract the TLD file from the <code>struts-core.jar</code> <code>META-INF</code> folder, and add a <code>taglib</code> element to the <code>web.xml</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">    &lt;!-- ... --&gt;
     &lt;/welcome-file-list&gt;
 
     &lt;taglib&gt;
@@ -246,44 +185,28 @@ request URL the Filter will just pass by
        &lt;taglib-location&gt;/WEB-INF/struts-tags.tld&lt;/taglib-location&gt;
     &lt;/taglib&gt;
 &lt;/web-app&gt;
-]]></script>
-</div></div>
-
-<h2 id="web.xml-CustomFileManagerandFileManagerFactoryimplementations">Custom FileManager and FileManagerFactory implementations</h2>
-
-<p>If there is a need to support an App Server's specific file system (eg. VFS in JBoss), you can implement your own version of FileManager. But it must be registered at "the beginning" to support bootstrap of the whole framework.</p>
-
-<p>To register your own FileManger you can do it with &lt;init-param/&gt; as below:</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;filter&gt;
+</pre>
+</div></div><h2 id="web.xml-CustomFileManagerandFileManagerFactoryimplementations">Custom FileManager and FileManagerFactory implementations</h2><p>If there is a need to support an App Server's specific file system (eg. VFS in JBoss), you can implement your own version of FileManager. But it must be registered at "the beginning" to support bootstrap of the whole framework.</p><p>To register your own FileManger you can do it with &lt;init-param/&gt; as below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;filter&gt;
      &lt;filter-name&gt;struts2&lt;/filter-name&gt;
-     &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
+     &lt;filter-class&gt;org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
      &lt;init-param&gt;
          &lt;param-name&gt;struts.fileManager&lt;/param-name&gt;
          &lt;param-value&gt;com.company.MyFileManager&lt;/param-value&gt;
      &lt;/init-param&gt;
 &lt;/filter&gt;
-]]></script>
-</div></div>
-
-<p>You can as well register your own FileManagerFactory with &lt;init-param/&gt;, see example:</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;filter&gt;
+</pre>
+</div></div><p>You can as well register your own FileManagerFactory with &lt;init-param/&gt;, see example:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;filter&gt;
      &lt;filter-name&gt;struts2&lt;/filter-name&gt;
-     &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
+     &lt;filter-class&gt;org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
      &lt;init-param&gt;
          &lt;param-name&gt;struts.fileManagerFactory&lt;/param-name&gt;
          &lt;param-value&gt;com.company.MyFileManagerFactory&lt;/param-value&gt;
      &lt;/init-param&gt;
 &lt;/filter&gt;
-]]></script>
-</div></div>
-
-<p>Take a look on default implementations - DefaultFileManager.java and DefaultFileManagerFactory.java to understand how and why.</p></div>
+</pre>
+</div></div><p>Take a look on default implementations - DefaultFileManager.java and DefaultFileManagerFactory.java to understand how and why.</p></div>
         </div>
 
         

Modified: websites/production/struts/content/download.html
==============================================================================
--- websites/production/struts/content/download.html (original)
+++ websites/production/struts/content/download.html Thu Sep 24 18:29:30 2015
@@ -177,27 +177,27 @@
 <h1>Full Releases</h1>
 <a name="struts-ga"></a>
 
-<a name="struts2324"></a>
-<h2>Struts 2.3.24</h2>
+<a name="struts2324.1"></a>
+<h2>Struts 2.3.24.1</h2>
 
 <p>
-  <a href="http://struts.apache.org/">Apache Struts 2.3.24</a> is an elegant, extensible
+  <a href="http://struts.apache.org/">Apache Struts 2.3.24.1</a> is an elegant, extensible
   framework for creating enterprise-ready Java web applications. It is available in a full distribution,
   or as separate library, source, example and documentation distributions.
-  Struts 2.3.24 is the "best available" version of Struts in the 2.3 series.
+  Struts 2.3.24.1 is the "best available" version of Struts in the 2.3 series.
 </p>
 
 <ul>
   <li>
-    <a href="http://struts.apache.org/docs/version-notes-2324.html">Version Notes</a>
+    <a href="http://struts.apache.org/docs/version-notes-2324.1.html">Version Notes</a>
   </li>
 
   <li>Full Distribution:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.24/struts-2.3.24-all.zip">struts-2.3.24-all.zip</a> (65MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-all.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-all.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.24.1/struts-2.3.24.1-all.zip">struts-2.3.24.1-all.zip</a> (65MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-all.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-all.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -205,18 +205,18 @@
   <li>Example Applications:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.24/struts-2.3.24-apps.zip">struts-2.3.24-apps.zip</a> (35MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-apps.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-apps.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.24.1/struts-2.3.24.1-apps.zip">struts-2.3.24.1-apps.zip</a> (35MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-apps.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-apps.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
   <li>Essential Dependencies Only:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.24/struts-2.3.24-lib.zip">struts-2.3.24-lib.zip</a> (19MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-lib.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-lib.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.24.1/struts-2.3.24.1-lib.zip">struts-2.3.24.1-lib.zip</a> (19MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-lib.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-lib.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -224,18 +224,18 @@
   <li>Documentation:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.24/struts-2.3.24-docs.zip">struts-2.3.24-docs.zip</a> (13MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-docs.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-docs.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.24.1/struts-2.3.24.1-docs.zip">struts-2.3.24.1-docs.zip</a> (13MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-docs.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-docs.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
   <li>Source:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.24/struts-2.3.24-src.zip">struts-2.3.24-src.zip</a> (7MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-src.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.3.24-src.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.24.1/struts-2.3.24.1-src.zip">struts-2.3.24.1-src.zip</a> (7MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-src.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.3.24.1-src.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -262,8 +262,8 @@
     <ul>
       <li>
         <a href="[preferred]/struts/2.5-BETA1/struts-2.5-BETA1-all.zip">struts-2.5-BETA1-all.zip</a> (65MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.5-BETA1-all.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.24/struts-2.5-BETA1-all.zip.md5">MD5</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.5-BETA1-all.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.24.1/struts-2.5-BETA1-all.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>

Modified: websites/production/struts/content/downloads.html
==============================================================================
--- websites/production/struts/content/downloads.html (original)
+++ websites/production/struts/content/downloads.html Thu Sep 24 18:29:30 2015
@@ -137,7 +137,7 @@
     <ul>
       <li>
         <a href="http://struts.apache.org/download.cgi#struts-ga">
-          Struts 2.3.24
+          Struts 2.3.24.1
         </a> ("best available")
       </li>
     </ul>

Modified: websites/production/struts/content/index.html
==============================================================================
--- websites/production/struts/content/index.html (original)
+++ websites/production/struts/content/index.html Thu Sep 24 18:29:30 2015
@@ -125,7 +125,7 @@
       extensible using a plugin architecture, and ships with plugins to support
       REST, AJAX and JSON.
     </p>
-    <a href="/download.cgi#struts2324" class="btn btn-primary btn-large">
+    <a href="/download.cgi#struts2324.1" class="btn btn-primary btn-large">
       <img src="img/download-icon.svg"> Download
     </a>
     <a href="primer.html" class="btn btn-info btn-large">
@@ -137,12 +137,12 @@
   <div class="col-md-12">
     <div class="row">
       <div class="column col-md-4">
-        <h2>Struts 2.3.24 GA</h2>
+        <h2>Struts 2.3.24.1 GA</h2>
         <p>
-          Apache Struts 2.3.24 GA has been released<br/>on 7 may 2015.
+          Apache Struts 2.3.24.1 GA has been released<br/>on 24 september 2015.
         </p>
-        Read more in <a href="announce.html#a20150507">Announcement</a> or in
-        <a href="/docs/version-notes-2324.html">Version notes</a>
+        Read more in <a href="announce.html#a20150924">Announcement</a> or in
+        <a href="/docs/version-notes-2324.1.html">Version notes</a>
       </div>
       <div class="column col-md-4">
         <h2>Google's Patch Reward program</h2>