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 2016/04/21 16:34:52 UTC

svn commit: r986256 [3/3] - in /websites/production/struts/content: ./ docs/

Added: websites/production/struts/content/docs/version-notes-23281.html
==============================================================================
--- websites/production/struts/content/docs/version-notes-23281.html (added)
+++ websites/production/struts/content/docs/version-notes-23281.html Thu Apr 21 14:34:51 2016
@@ -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.28.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-23281.html">Version Notes 2.3.28.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.28.1</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=62693268">
+                <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=62693268">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=62693268">
+                <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=62693268">Add Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=62693268">
+                <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=62693268">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.28.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-2328.html">Version Notes 2.3.28</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><li>There is huge number of examples you can a
 lso use as a starting point for you application&#160;<a shape="rect" class="external-link" href="https://github.com/apache/struts-examples" rel="nofollow">here</a></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.28.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.28.1-InternalChanges">Internal Changes</h2><ul><li><img class="emoticon emoticon-warning" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/warning.png" data-emoticon-name="warning" alt="(warning)">&#160;Possible RCE vulnerability in <code>XSLTResult</code> was fixed, read more details in&#160;<a shape="rect" href="s2-031.html">S2-031</a></li><li><img class="emoticon emoticon-warning" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/warning.png" data-emoticon-name="warning" alt="(warning)">&#160;Prevents execution of chained expressions based on new <code>isSequence</code> flag introduce in appropriated OGNL versions, it's related to&#160;<a shape="rect" href="s2-032.html">S2-032</a><br clear="none"><br clear="none"></li></ul><div class="confluence-information-macro confluence-information-macro-note"><spa
 n class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This release contains fixes related to <a shape="rect" href="s2-031.html">S2-031</a> and <a shape="rect" href="s2-032.html">S2-032</a> security bulletins, please read them carefully!</p></div></div><h3 id="VersionNotes2.3.28.1-IssueDetail">Issue Detail</h3><ul><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12333842&amp;projectId=12311041">JIRA Release Notes 2.3.28</a></li></ul><h3 id="VersionNotes2.3.28.1-IssueList">Issue List</h3><ul><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/issues/?filter=12335472">Struts 2.3.28 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.28.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/download.html
==============================================================================
--- websites/production/struts/content/download.html (original)
+++ websites/production/struts/content/download.html Thu Apr 21 14:34:51 2016
@@ -177,27 +177,27 @@
 <h1>Full Releases</h1>
 <a name="struts-ga"></a>
 
-<a name="struts2328"></a>
-<h2>Struts 2.3.28</h2>
+<a name="struts23281"></a>
+<h2>Struts 2.3.28.1</h2>
 
 <p>
-  <a href="http://struts.apache.org/">Apache Struts 2.3.28</a> is an elegant, extensible
+  <a href="http://struts.apache.org/">Apache Struts 2.3.28.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.28 is the "best available" version of Struts in the 2.3 series.
+  Struts 2.3.28.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-2328.html">Version Notes</a>
+    <a href="http://struts.apache.org/docs/version-notes-23281.html">Version Notes</a>
   </li>
 
   <li>Full Distribution:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.28/struts-2.3.28-all.zip">struts-2.3.28-all.zip</a> (65MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-all.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-all.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.28.1/struts-2.3.28.1-all.zip">struts-2.3.28.1-all.zip</a> (65MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-all.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-all.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -205,9 +205,9 @@
   <li>Example Applications:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.28/struts-2.3.28-apps.zip">struts-2.3.28-apps.zip</a> (35MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-apps.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-apps.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.28.1/struts-2.3.28.1-apps.zip">struts-2.3.28.1-apps.zip</a> (35MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-apps.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-apps.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -215,9 +215,9 @@
   <li>Essential Dependencies Only:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.28/struts-2.3.28-min-lib.zip">struts-2.3.28-min-lib.zip</a> (4MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-min-lib.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-min-lib.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.28.1/struts-2.3.28.1-min-lib.zip">struts-2.3.28.1-min-lib.zip</a> (4MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-min-lib.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-min-lib.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -225,9 +225,9 @@
   <li>All Dependencies:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.28/struts-2.3.28-lib.zip">struts-2.3.28-lib.zip</a> (19MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-lib.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-lib.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.28.1/struts-2.3.28.1-lib.zip">struts-2.3.28.1-lib.zip</a> (19MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-lib.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-lib.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -235,9 +235,9 @@
   <li>Documentation:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.28/struts-2.3.28-docs.zip">struts-2.3.28-docs.zip</a> (13MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-docs.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-docs.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.28.1/struts-2.3.28.1-docs.zip">struts-2.3.28.1-docs.zip</a> (13MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-docs.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-docs.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -245,9 +245,9 @@
   <li>Source:
     <ul>
       <li>
-        <a href="[preferred]/struts/2.3.28/struts-2.3.28-src.zip">struts-2.3.28-src.zip</a> (7MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-src.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.3.28-src.zip.md5">MD5</a>]
+        <a href="[preferred]/struts/2.3.28.1/struts-2.3.28.1-src.zip">struts-2.3.28.1-src.zip</a> (7MB)
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-src.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-src.zip.md5">MD5</a>]
       </li>
     </ul>
   </li>
@@ -274,8 +274,8 @@
     <ul>
       <li>
         <a href="[preferred]/struts/2.5-BETA3/struts-2.5-BETA3-all.zip">struts-2.5-BETA3-all.zip</a> (65MB)
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.5-BETA3-all.zip.asc">PGP</a>]
-        [<a href="http://www.apache.org/dist/struts/2.3.28/struts-2.5-BETA3-all.zip.md5">MD5</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.5-BETA3-all.zip.asc">PGP</a>]
+        [<a href="http://www.apache.org/dist/struts/2.3.28.1/struts-2.5-BETA3-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 Apr 21 14:34:51 2016
@@ -137,7 +137,7 @@
     <ul>
       <li>
         <a href="http://struts.apache.org/download.cgi#struts-ga">
-          Struts 2.3.28
+          Struts 2.3.28.1
         </a> ("best available")
       </li>
     </ul>
@@ -222,10 +222,38 @@
 <tbody>
 <tr>
   <td class="no-wrap">
+    Struts 2.3.24.3
+  </td>
+  <td class="no-wrap">19 April 2016</td>
+  <td>
+    <a href="/docs/s2-030.html">S2-030</a>,
+    <a href="/docs/s2-028.html">S2-028</a>
+  </td>
+  <td>
+    <a href="/docs/version-notes-23243.html">Version notes</a>
+  </td>
+</tr>
+<tr>
+  <td class="no-wrap">
+    Struts 2.3.20.3
+  </td>
+  <td class="no-wrap">19 April 2016</td>
+  <td>
+    <a href="/docs/s2-030.html">S2-030</a>,
+    <a href="/docs/s2-028.html">S2-028</a>
+  </td>
+  <td>
+    <a href="/docs/version-notes-23203.html">Version notes</a>
+  </td>
+</tr>
+<tr>
+  <td class="no-wrap">
     Struts 2.3.24.1
   </td>
   <td class="no-wrap">24 September 2015</td>
   <td>
+    <a href="/docs/s2-032.html">S2-032</a>,
+    <a href="/docs/s2-031.html">S2-031</a>,
     <a href="/docs/s2-030.html">S2-030</a>,
     <a href="/docs/s2-029.html">S2-029</a>,
     <a href="/docs/s2-028.html">S2-028</a>
@@ -240,6 +268,8 @@
   </td>
   <td class="no-wrap">7 May 2015</td>
   <td>
+    <a href="/docs/s2-032.html">S2-032</a>,
+    <a href="/docs/s2-031.html">S2-031</a>,
     <a href="/docs/s2-030.html">S2-030</a>,
     <a href="/docs/s2-029.html">S2-029</a>,
     <a href="/docs/s2-028.html">S2-028</a>,
@@ -255,6 +285,8 @@
   </td>
   <td class="no-wrap">6 May 2015</td>
   <td>
+    <a href="/docs/s2-032.html">S2-032</a>,
+    <a href="/docs/s2-031.html">S2-031</a>,
     <a href="/docs/s2-030.html">S2-030</a>,
     <a href="/docs/s2-029.html">S2-029</a>,
     <a href="/docs/s2-028.html">S2-028</a>,
@@ -270,6 +302,8 @@
   </td>
   <td class="no-wrap">7 December 2014</td>
   <td>
+    <a href="/docs/s2-032.html">S2-032</a>,
+    <a href="/docs/s2-031.html">S2-031</a>,
     <a href="/docs/s2-030.html">S2-030</a>,
     <a href="/docs/s2-029.html">S2-029</a>,
     <a href="/docs/s2-028.html">S2-028</a>,

Modified: websites/production/struts/content/helping.html
==============================================================================
--- websites/production/struts/content/helping.html (original)
+++ websites/production/struts/content/helping.html Thu Apr 21 14:34:51 2016
@@ -171,9 +171,8 @@
   or documentation from the main repository. You can then change your copy, and create the patch using a simple
   <a href="http://git-scm.com/">Git</a> command, like this:</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>    git diff Main.java &gt;&gt; patchfile.txt
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>    git diff Main.java &gt;&gt; patchfile.txt
+</code></pre>
 </div>
 
 <p>Then, create a <a href="#issues">JIRA issue</a>about the change, and attach the patch file.</p>

Modified: websites/production/struts/content/index.html
==============================================================================
--- websites/production/struts/content/index.html (original)
+++ websites/production/struts/content/index.html Thu Apr 21 14:34:51 2016
@@ -125,7 +125,7 @@
       extensible using a plugin architecture, and ships with plugins to support
       REST, AJAX and JSON.
     </p>
-    <a href="/download.cgi#struts2328" class="btn btn-primary btn-large">
+    <a href="/download.cgi#struts23281" 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.28 GA</h2>
+        <h2>Struts 2.3.28.1 GA</h2>
         <p>
-          Apache Struts 2.3.28 GA has been released<br/>on 18 march 2016.
+          Apache Struts 2.3.28.1 GA has been released<br/>on 19 april 2016.
         </p>
-        Read more in <a href="announce.html#a20160318">Announcement</a> or in
-        <a href="/docs/version-notes-2328.html">Version notes</a>
+        Read more in <a href="announce.html#a20160419">Announcement</a> or in
+        <a href="/docs/version-notes-23281.html">Version notes</a>
       </div>
       <div class="column col-md-4">
         <h2>Google's Patch Reward program</h2>
@@ -163,24 +163,24 @@
     </div>
     <div class="row">
       <div class="column col-md-4">
-        <h2>Security Bulletin S2-028</h2>
+        <h2>Apache Struts 2.3.20.3 & 2.3.24.3</h2>
         <p>
-          A new security bulletin was published, please carefully read the
-          <a href="/docs/s2-028.html">Announcement</a>
+          We have released two older versions of Apache Struts which contain the latest security fixes.
+          Please read announcement for <a href="announce.html#a20160419-1">2.3.20.3 & 2.3.24.3</a>
         </p>
       </div>
       <div class="column col-md-4">
-        <h2>Security Bulletin S2-029</h2>
+        <h2>Security Bulletin S2-031</h2>
         <p>
           A new security bulletin was published, please carefully read the
-          <a href="/docs/s2-029.html">Announcement</a>
+          <a href="/docs/s2-031.html">Announcement</a>
         </p>
       </div>
       <div class="column col-md-4">
-        <h2>Security Bulletin S2-030</h2>
+        <h2>Security Bulletin S2-032</h2>
         <p>
           A new security bulletin was published, please carefully read the
-          <a href="/docs/s2-030.html">Announcement</a>
+          <a href="/docs/s2-032.html">Announcement</a>
         </p>
       </div>
     </div>

Modified: websites/production/struts/content/kickstart.html
==============================================================================
--- websites/production/struts/content/kickstart.html (original)
+++ websites/production/struts/content/kickstart.html Thu Apr 21 14:34:51 2016
@@ -312,9 +312,7 @@
 </ul>
 
 <p>Not a usenet group, but the Apache Struts User list can be accessed with your favorite newsgroup reader from
-  the <a href="http://news.gmane.org/">GMane News Site</a>. Subscribe to groups <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>gmane.comp.jakarta.struts.user<span class="w">
-</span></pre></td></tr></tbody></table>
-</code>
+  the <a href="http://news.gmane.org/">GMane News Site</a>. Subscribe to groups <code class="highlighter-rouge">gmane.comp.jakarta.struts.user</code>
   for the user list.</p>
 
 <ul>

Modified: websites/production/struts/content/primer.html
==============================================================================
--- websites/production/struts/content/primer.html (original)
+++ websites/production/struts/content/primer.html Thu Apr 21 14:34:51 2016
@@ -309,9 +309,7 @@ several requests to be somewhat difficul
 
 <p>To alleviate this difficulty, the servlet API provides a programmatic
 concept called a <em>session</em>, represented as an object that
-implements the <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>javax.servlet.http.HttpSession<span class="w">
-</span></pre></td></tr></tbody></table>
-</code>
+implements the <code class="highlighter-rouge">javax.servlet.http.HttpSession</code>
 interface. The servlet container will use one of two techniques
 (cookies or URL rewriting) to ensure that the next request from the
 same user will include the <em>session id</em>

Modified: websites/production/struts/content/releases.html
==============================================================================
--- websites/production/struts/content/releases.html (original)
+++ websites/production/struts/content/releases.html Thu Apr 21 14:34:51 2016
@@ -199,29 +199,17 @@ control alerts. Trimming trailing spaces
   <li>Specify imported classes (do not use <em>.*</em>).</li>
   <li>Write all if/else statements as full blocks with each clause within braces, unless the entire statement fits
 on the same line.</li>
-  <li>Use <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>FIXME:<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> and <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>TODO:<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> tokens to mark follow up notes in code. You may also
+  <li>Use <code class="highlighter-rouge">FIXME:</code> and <code class="highlighter-rouge">TODO:</code> tokens to mark follow up notes in code. You may also
 include your Apache username and the date.</li>
-  <li>Omit <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>@author<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> tags.</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>@since<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> to document changes between Struts versions, as in <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>@since Struts 2.1.<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
+  <li>Omit <code class="highlighter-rouge">@author</code> tags.</li>
+  <li><code class="highlighter-rouge">@since</code> to document changes between Struts versions, as in <code class="highlighter-rouge">@since Struts 2.1.</code></li>
   <li>Wrap lines of code and JavaDoc at column 78. You can include a “comment rule” in the source to help with
 this.</li>
   <li>Please do your best to provide high-quality Javadocs for all source code elements. Package overviews
 (aka “Developer Guides”) are also encouraged.</li>
   <li>When working on a bugfix, please first write a test case that proves the bug exists, and then use the test
 to prove the bug is fixed. =:0)</li>
-  <li>When working on an enhancement, please feel free to use test-driven design and write the test first <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>&lt;head-slap/&gt;<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
+  <li>When working on an enhancement, please feel free to use test-driven design and write the test first <code class="highlighter-rouge">&lt;head-slap/&gt;</code></li>
   <li>As files are updated from year to year, the copyright on each file should be extended to include the current
 year. <em>You do not need to change the copyright year unless you change the file.</em>  Every source file should
 include the ASF copyright notice and current Apache License and copyright.</li>

Modified: websites/production/struts/content/security.html
==============================================================================
--- websites/production/struts/content/security.html (original)
+++ websites/production/struts/content/security.html Thu Apr 21 14:34:51 2016
@@ -129,11 +129,8 @@ before disclosing them in a public forum
 <p>We cannot accept regular bug reports or other queries at this address, we ask that you use our
 <a href="https://issues.apache.org/jira/browse/WW">issue tracker (JIRA)</a> for those.</p>
 
-<p><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2</pre></td><td class="code"><pre>All mail sent to this address that does not relate to security problems in the Apache
-Struts source code will be ignored<span class="w">
-</span></pre></td></tr></tbody></table>
-</code>.</p>
+<p><code class="highlighter-rouge">All mail sent to this address that does not relate to security problems in the Apache
+Struts source code will be ignored</code>.</p>
 
 <p>Note that all networked servers are subject to denial of service attacks, and we cannot promise magic
 workarounds to generic problems (such as a client streaming lots of data to your server, or re-requesting

Modified: websites/production/struts/content/submitting-patches.html
==============================================================================
--- websites/production/struts/content/submitting-patches.html (original)
+++ websites/production/struts/content/submitting-patches.html Thu Apr 21 14:34:51 2016
@@ -137,31 +137,26 @@
 
 <p>Now you can clone Struts repository locally</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>git clone https://git-wip-us.apache.org/repos/asf/struts.git    
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>git clone https://git-wip-us.apache.org/repos/asf/struts.git    
+</code></pre>
 </div>
 
 <p>After cloning the repository locally you must initialize git-flow:</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre> git flow init -d
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code> git flow init -d
+</code></pre>
 </div>
 
 <p>and done!</p>
 
-<p>Please remember that <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>master<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> branch cannot be modified directly from now on!</p>
+<p>Please remember that <code class="highlighter-rouge">master</code> branch cannot be modified directly from now on!</p>
 
 <h2 id="non-committers">Non-committers</h2>
 
 <p>If you aren’t a committer you must use this link below or mirror at GitHub</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>git clone git://git.apache.org/struts.git struts-copy
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>git clone git://git.apache.org/struts.git struts-copy
+</code></pre>
 </div>
 
 <h2 id="security-patches">Security patches</h2>
@@ -184,16 +179,12 @@ of Struts Comitters group.</p>
 go ahead and create one just right now! Please remember to setup
 <a href="https://help.github.com/articles/generating-ssh-keys">SSH keys</a> and test them!</p>
 
-<p>When ready go to <a href="https://github.com/apache/struts">https://github.com/apache/struts</a> and click <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>Fork<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> button
+<p>When ready go to <a href="https://github.com/apache/struts">https://github.com/apache/struts</a> and click <code class="highlighter-rouge">Fork</code> button
 in top right corner. This will fork Apache Struts repository and will create your private (but public) repository
 with the source code.</p>
 
 <p>Next step is to clone your repo locally, information how to do this you will find on right sidebar of your repo
-under <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>SSH clone URL<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> headline.</p>
+under <code class="highlighter-rouge">SSH clone URL</code> headline.</p>
 
 <p>Now you are ready to work with Apache Struts code base. Perform your changes, commit them and
 next push to GitHub! Remember: commit in Git is different than commit in Subversion!</p>
@@ -203,14 +194,10 @@ mirror - <a href="https://github.com/apa
 <a href="https://github.com/apache/struts/pulls">Pull request</a> and hit
 <a href="https://github.com/apache/struts/compare/">New Pull Request</a> button.</p>
 
-<p>If not already selected, click on <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>compare across forks.<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> Right now you must select from the dropdowns on right
+<p>If not already selected, click on <code class="highlighter-rouge">compare across forks.</code> Right now you must select from the dropdowns on right
 your fork and branch to compare the differences with Apache Struts develop branch.</p>
 
-<p>Finally hit <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>Create Pull Request<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> button and you are done!</p>
+<p>Finally hit <code class="highlighter-rouge">Create Pull Request</code> button and you are done!</p>
 
 <h3 id="how-to-merge-pull-requests">How to merge Pull Requests</h3>
 
@@ -219,69 +206,50 @@ is read-only, we (committers) have limit
 
 <p>To merge PR please add GitHub as a new remote to your local copy</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>git remote add github git@github.com:apache/struts.git
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>git remote add github git@github.com:apache/struts.git
+</code></pre>
 </div>
 
 <p>then you can fetch the PR localy and put it under a branch</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>git fetch github pull/28/head:some-branch    
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>git fetch github pull/28/head:some-branch    
+</code></pre>
 </div>
 
 <p>where</p>
 
 <ul>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>github<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> is remote name</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>28<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> is Pull Request id (https://github.com/apache/struts/pull/28)</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>some-branch<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> local branch name, it can be the same as used to create the PR</li>
+  <li><code class="highlighter-rouge">github</code> is remote name</li>
+  <li><code class="highlighter-rouge">28</code> is Pull Request id (https://github.com/apache/struts/pull/28)</li>
+  <li><code class="highlighter-rouge">some-branch</code> local branch name, it can be the same as used to create the PR</li>
 </ul>
 
 <p>now you can switch to this branch and test, review it</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>git checkout some-branch
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>git checkout some-branch
+</code></pre>
 </div>
 
-<p>after reviewing, switch back to the <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>develop<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> branch and merge</p>
+<p>after reviewing, switch back to the <code class="highlighter-rouge">develop</code> branch and merge</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2</pre></td><td class="code"><pre>git checkout develop
+<div class="highlighter-rouge"><pre class="highlight"><code>git checkout develop
 git merge some-branch -m "WW-XXXX Merges #28 which resolves ..."
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
 </div>
 
-<p>using <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>-m<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> you can define your own merge message, it’s a good way to link merge commit with ticket in JIRA</p>
+<p>using <code class="highlighter-rouge">-m</code> you can define your own merge message, it’s a good way to link merge commit with ticket in JIRA</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>git branch -d some-branch
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>git branch -d some-branch
+</code></pre>
 </div>
 
 <p>remove the branch as it isn’t needed anymore</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>git push
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>git push
+</code></pre>
 </div>
 
-<p>after pushing changes, <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>asfbot<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> will close the PR at GitHub.</p>
+<p>after pushing changes, <code class="highlighter-rouge">asfbot</code> will close the PR at GitHub.</p>
 
 <h2 id="further-reading">Further reading</h2>