Author: lukaszlenart Date: Fri Nov 21 09:30:05 2014 New Revision: 929961 Log: Updates production
Added: websites/production/struts/content/development/2.x/docs/version-notes-2320.html websites/production/struts/content/release/2.3.x/docs/version-notes-2320.html Modified: websites/production/struts/content/development/2.x/docs/building-struts-2-normal-release.html websites/production/struts/content/development/2.x/docs/migration-guide.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/migration-guide.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 21 09:30:05 2014 @@ -139,11 +139,11 @@ under the License. <div class="pagecontent"> <div class="wiki-content"> <div id="ConfluenceContent"><h1 id="BuildingStruts2-Normalrelease-Content">Content</h1><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1415950672619 {padding: 0px;} -div.rbtoc1415950672619 ul {list-style: none;margin-left: 0px;} -div.rbtoc1415950672619 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1416562007401 {padding: 0px;} +div.rbtoc1416562007401 ul {list-style: none;margin-left: 0px;} +div.rbtoc1416562007401 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1415950672619"> +/*]]>*/</style></p><div class="toc-macro rbtoc1416562007401"> <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 <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 <code>/docs</code></li></ol><h3 id="BuildingStruts2-Normalrelease-UpdateDraftDocswhenneeded">Update Draft Docs when needed</h3><p>Checkout <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 @@ -186,34 +186,53 @@ mvn javadoc:javadoc deploy --no-plugin-u <h3 id="BuildingStruts2-Normalrelease-Movetheassemblies">Move the assemblies</h3><p>To simplify testing, the assemblies have to be moved to the <code>/www/people.apache.org/builds/struts/$VERSION</code> dir.</p><p>After closing repository in Nexus, check if the release files are available from staging repository as bellow:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[https://repository.apache.org/content/groups/staging/org/apache/struts/struts2-assembly/$VERSION/ ]]></script> -</div></div><p>In order to move the assemblies login to people.apache.org and execute the following code:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> -<script class="theme: Default; brush: plain; gutter: false" type="syntaxhighlighter"><![CDATA[#!/bin/sh -# create the destination directory +</div></div><p>In order to move the assemblies login to people.apache.org and execute the following code:</p><p><span style="font-family: monospace;"><span style="white-space: pre-wrap;background-color: rgb(255,255,255);"><br clear="none"></span></span></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[#!/bin/sh + +#create the destination directory +echo "Creating working dir $VERSION" mkdir $VERSION cd $VERSION + # get the distro +echo "Getting distro $VERSION" wget -erobots=off -nv -l 1 --accept=zip,md5,sha1,asc -r --no-check-certificate -nd -nH https://repository.apache.org/content/groups/staging/org/apache/struts/struts2-assembly/$VERSION # rename files +echo "Renaming files" for f in *2-assembly*.zip* do mv $f `echo $f | sed s/2-assembly//g` done # remove unneeded files +echo "Removing unneeded files" for f in struts2-assembly-*.pom* do rm $f done # remove unneeded hashes +echo "Removing unneeded files" rm *.asc.md5 rm *.asc.sha1 -]]></script> -</div></div><p>After that move the assemblies directory to the builds destination with</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[mv $VERSION /www/people.apache.org/builds/struts/]]></script> -</div></div><h3 id="BuildingStruts2-Normalrelease-Announceavailability">Announce availability</h3><p>Send a short e-mail to dev@struts.a.o informing about the new packages and to give people enough time to test the distribution (actual bits). Wait around a week before posting Vote. If no show-stoppers reported, start a vote thread for build quality designation.</p><h3 id="BuildingStruts2-Normalrelease-Cleanuprepository">Clean up repository</h3><p>It doesn't matter if the bits will be accepted or not, development continues <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/smile.png" data-emoticon-name="smile" alt="(smile)"> Switch to <code>release/X.X.X.X</code> branch and execute the below command:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +cd .. +Â +# checking in new version +echo "Pushing test version $VERSION" +svn --no-auth-cache co --depth empty https://dist.apache.org/repos/dist/dev/struts/ struts-dev +mv $VERSION struts-dev/ +cd struts-dev +svn add --force ./ +svn --no-auth-cache commit -m "Updates test release $VERSION" +cd .. + +# cleaning up +rm -r struts-dev + +echo "Done!"]]></script> +</div></div><p>After this step artifacts are available for test here <a shape="rect" class="external-link" href="https://dist.apache.org/repos/dist/dev/struts/">https://dist.apache.org/repos/dist/dev/struts/</a></p><h3 id="BuildingStruts2-Normalrelease-Announceavailability"><span style="font-size: 16.0px;line-height: 1.5625;">Announce availability</span></h3><p>Send a short e-mail to dev@struts.a.o informing about the new packages and to give people enough time to test the distribution (actual bits). Wait around a week before posting Vote. If no show-stoppers reported, start a vote thread for build quality designation.</p><h3 id="BuildingStruts2-Normalrelease-Cleanuprepository">Clean up repository</h3><p>It doesn't matter if the bits will be accepted or not, development continues <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/smile.png" data-emoticon-n ame="smile" alt="(smile)"> Switch to <code>release/X.X.X.X</code> branch and execute the below command:</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 flow release finish -n X.X.X.X]]></script> </div></div><p><code>-n</code> option is need to avoid tagging the release, the Maven Release plugin did that already. If the release branch was published to the remote it won't be deleted locally, it must be done manually after removing branch from the remote:</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 push --delete origin release/X.X.X.X]]></script> Modified: websites/production/struts/content/development/2.x/docs/migration-guide.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/migration-guide.html (original) +++ websites/production/struts/content/development/2.x/docs/migration-guide.html Fri Nov 21 09:30:05 2014 @@ -125,7 +125,7 @@ under the License. <div class="pagecontent"> <div class="wiki-content"> - <div id="ConfluenceContent"><p>Getting here from there.</p><h3 id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><p><a shape="rect" href="version-notes-2319.html">Version Notes 2.3.19</a></p></li><li><p><a shape="rect" href="version-notes-23163.html">Version Notes 2.3.16.3</a></p></li><li><a shape="rect" href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version Notes 2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" hr ef="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version Notes 2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a shape="rect" href="version-notes-2341.html">Version Notes 2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version Notes 2.3.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.2.x">Version No tes 2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 2.2.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.1.x">Version Notes 2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a shape="rect" href="version-not es-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 id="MigrationGuide-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a shape="rect" href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" href="release-notes-20112.html">Release Notes 2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release Notes 2.0.11.1</a></li><li><a shape="rect" href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release Notes 2.0.7</a></li><li ><a shape="rect" href="release-notes-206.html">Release Notes >2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release Notes >2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release Notes >2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release Notes >2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release Notes >2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release Notes >2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release Notes >2.0.0</a></li></ul><h3 id="MigrationGuide-Struts1toStruts2">Struts 1 to >Struts 2</h3><div class="table-wrap"><table >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" >class="confluenceTh"><p><a shape="rect" >href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td >colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 >alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" >class="confluence Th"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Various issues (and hopefully their solutions!) encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-strategies.html">Migration Strategies</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration process.</p></td></tr></tbody></table></div><h4 id="MigrationGuide-Tutorials">Tutorials</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" hre f="http://www.infoq.com/news/migrating-struts2" rel="nofollow">Migrating Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 2006)</p></td></tr></tbody></table></div><h4 id="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://struts.apache.org/roadmap.html#new">Roadmap FAQ</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html" rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Don Brown's summary of events</p></td></tr></tbody></table></div><h3 id="MigrationGuide-Webwork2.2toStruts2" >Webwork 2.2 to Struts 2</h3><div class="table-wrap"><table >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" >class="confluenceTh"><p><a shape="rect" >href="key-changes-from-webwork-2.html">Key Changes From WebWork >2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has >been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th >colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" >href="webwork-2-migration-strategies.html">WebWork 2 Migration >Strategies</a></p></th><td colspan="1" rowspan="1" >class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 >applications to Struts 2.</p></td></tr></tbody></table></div><h2 >id="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" >href="where-do-we-get-the-latest-version-the-framework.html">Where do we get >the latest version the framework</a>?</li><li><a shape="rect" >href="what-are-some-of-the-frameworks-best-features.html">What are some of >the framework's best features </a>?</li><li><a shape="rect" href="what-is-the-actioncontext.html">What is the ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" href="contributors-guide.html">Contributors Guide</a></h2></div> + <div id="ConfluenceContent"><p>Getting here from there.</p><h3 id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><p><a shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></p></li><li><p><a shape="rect" href="version-notes-23163.html">Version Notes 2.3.16.3</a></p></li><li><a shape="rect" href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version Notes 2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" hr ef="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version Notes 2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a shape="rect" href="version-notes-2341.html">Version Notes 2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version Notes 2.3.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.2.x">Version No tes 2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 2.2.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.1.x">Version Notes 2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a shape="rect" href="version-not es-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 id="MigrationGuide-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a shape="rect" href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" href="release-notes-20112.html">Release Notes 2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release Notes 2.0.11.1</a></li><li><a shape="rect" href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release Notes 2.0.7</a></li><li ><a shape="rect" href="release-notes-206.html">Release Notes >2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release Notes >2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release Notes >2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release Notes >2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release Notes >2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release Notes >2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release Notes >2.0.0</a></li></ul><h3 id="MigrationGuide-Struts1toStruts2">Struts 1 to >Struts 2</h3><div class="table-wrap"><table >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" >class="confluenceTh"><p><a shape="rect" >href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td >colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 >alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" >class="confluence Th"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Various issues (and hopefully their solutions!) encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-strategies.html">Migration Strategies</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration process.</p></td></tr></tbody></table></div><h4 id="MigrationGuide-Tutorials">Tutorials</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" hre f="http://www.infoq.com/news/migrating-struts2" rel="nofollow">Migrating Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 2006)</p></td></tr></tbody></table></div><h4 id="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://struts.apache.org/roadmap.html#new">Roadmap FAQ</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html" rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Don Brown's summary of events</p></td></tr></tbody></table></div><h3 id="MigrationGuide-Webwork2.2toStruts2" >Webwork 2.2 to Struts 2</h3><div class="table-wrap"><table >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" >class="confluenceTh"><p><a shape="rect" >href="key-changes-from-webwork-2.html">Key Changes From WebWork >2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has >been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th >colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" >href="webwork-2-migration-strategies.html">WebWork 2 Migration >Strategies</a></p></th><td colspan="1" rowspan="1" >class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 >applications to Struts 2.</p></td></tr></tbody></table></div><h2 >id="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" >href="where-do-we-get-the-latest-version-the-framework.html">Where do we get >the latest version the framework</a>?</li><li><a shape="rect" >href="what-are-some-of-the-frameworks-best-features.html">What are some of >the framework's best features </a>?</li><li><a shape="rect" href="what-is-the-actioncontext.html">What is the ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" href="contributors-guide.html">Contributors Guide</a></h2></div> </div> <div class="tabletitle"> Added: websites/production/struts/content/development/2.x/docs/version-notes-2320.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/version-notes-2320.html (added) +++ websites/production/struts/content/development/2.x/docs/version-notes-2320.html Fri Nov 21 09:30:05 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.20</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> + <a href="home.html">Home</a> > <a href="guides.html">Guides</a> > <a href="migration-guide.html">Migration Guide</a> > <a href="version-notes-2320.html">Version Notes 2.3.20</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.20</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> + + <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> + + <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> + + <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.20 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[<dependency> + <groupId>org.apache.struts</groupId> + <artifactId>struts2-core</artifactId> + <version>2.3.20</version> +</dependency> +]]></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[<repositories> + <repository> + <id>apache.nexus</id> + <name>ASF Nexus Staging</name> + <url>https://repository.apache.org/content/groups/staging/</url> + </repository> +</repositories>]]></script> +</div></div><h2 id="VersionNotes2.3.20-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, 2.3.16.2, 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)"> 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> or read <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> removed and properties are checked in <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 <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)"> 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 <code>scheme</code> attribute accepts expressions in <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 <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 <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 <code>org/apache/struts2/views/TagLibrary</code> > was restored and marked as <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> </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> </p><h3 id="VersionNotes2.3.20-IssueDetail">Issue Detail</h3><ul><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311041&version=12319176">JIRA Release Notes 2.3.20</a></li></ul><h3 id="VersionNotes2.3.20-IssueList">Issue List</h3><ul><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/issues/?filter=12326872">Struts 2.3.20 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.20-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/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 21 09:30:05 2014 @@ -139,11 +139,11 @@ under the License. <div class="pagecontent"> <div class="wiki-content"> <div id="ConfluenceContent"><h1 id="BuildingStruts2-Normalrelease-Content">Content</h1><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1415950672619 {padding: 0px;} -div.rbtoc1415950672619 ul {list-style: none;margin-left: 0px;} -div.rbtoc1415950672619 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1416562007401 {padding: 0px;} +div.rbtoc1416562007401 ul {list-style: none;margin-left: 0px;} +div.rbtoc1416562007401 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1415950672619"> +/*]]>*/</style></p><div class="toc-macro rbtoc1416562007401"> <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 <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 <code>/docs</code></li></ol><h3 id="BuildingStruts2-Normalrelease-UpdateDraftDocswhenneeded">Update Draft Docs when needed</h3><p>Checkout <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 @@ -186,34 +186,53 @@ mvn javadoc:javadoc deploy --no-plugin-u <h3 id="BuildingStruts2-Normalrelease-Movetheassemblies">Move the assemblies</h3><p>To simplify testing, the assemblies have to be moved to the <code>/www/people.apache.org/builds/struts/$VERSION</code> dir.</p><p>After closing repository in Nexus, check if the release files are available from staging repository as bellow:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[https://repository.apache.org/content/groups/staging/org/apache/struts/struts2-assembly/$VERSION/ ]]></script> -</div></div><p>In order to move the assemblies login to people.apache.org and execute the following code:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> -<script class="theme: Default; brush: plain; gutter: false" type="syntaxhighlighter"><![CDATA[#!/bin/sh -# create the destination directory +</div></div><p>In order to move the assemblies login to people.apache.org and execute the following code:</p><p><span style="font-family: monospace;"><span style="white-space: pre-wrap;background-color: rgb(255,255,255);"><br clear="none"></span></span></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[#!/bin/sh + +#create the destination directory +echo "Creating working dir $VERSION" mkdir $VERSION cd $VERSION + # get the distro +echo "Getting distro $VERSION" wget -erobots=off -nv -l 1 --accept=zip,md5,sha1,asc -r --no-check-certificate -nd -nH https://repository.apache.org/content/groups/staging/org/apache/struts/struts2-assembly/$VERSION # rename files +echo "Renaming files" for f in *2-assembly*.zip* do mv $f `echo $f | sed s/2-assembly//g` done # remove unneeded files +echo "Removing unneeded files" for f in struts2-assembly-*.pom* do rm $f done # remove unneeded hashes +echo "Removing unneeded files" rm *.asc.md5 rm *.asc.sha1 -]]></script> -</div></div><p>After that move the assemblies directory to the builds destination with</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[mv $VERSION /www/people.apache.org/builds/struts/]]></script> -</div></div><h3 id="BuildingStruts2-Normalrelease-Announceavailability">Announce availability</h3><p>Send a short e-mail to dev@struts.a.o informing about the new packages and to give people enough time to test the distribution (actual bits). Wait around a week before posting Vote. If no show-stoppers reported, start a vote thread for build quality designation.</p><h3 id="BuildingStruts2-Normalrelease-Cleanuprepository">Clean up repository</h3><p>It doesn't matter if the bits will be accepted or not, development continues <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/smile.png" data-emoticon-name="smile" alt="(smile)"> Switch to <code>release/X.X.X.X</code> branch and execute the below command:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +cd .. +Â +# checking in new version +echo "Pushing test version $VERSION" +svn --no-auth-cache co --depth empty https://dist.apache.org/repos/dist/dev/struts/ struts-dev +mv $VERSION struts-dev/ +cd struts-dev +svn add --force ./ +svn --no-auth-cache commit -m "Updates test release $VERSION" +cd .. + +# cleaning up +rm -r struts-dev + +echo "Done!"]]></script> +</div></div><p>After this step artifacts are available for test here <a shape="rect" class="external-link" href="https://dist.apache.org/repos/dist/dev/struts/">https://dist.apache.org/repos/dist/dev/struts/</a></p><h3 id="BuildingStruts2-Normalrelease-Announceavailability"><span style="font-size: 16.0px;line-height: 1.5625;">Announce availability</span></h3><p>Send a short e-mail to dev@struts.a.o informing about the new packages and to give people enough time to test the distribution (actual bits). Wait around a week before posting Vote. If no show-stoppers reported, start a vote thread for build quality designation.</p><h3 id="BuildingStruts2-Normalrelease-Cleanuprepository">Clean up repository</h3><p>It doesn't matter if the bits will be accepted or not, development continues <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/smile.png" data-emoticon-n ame="smile" alt="(smile)"> Switch to <code>release/X.X.X.X</code> branch and execute the below command:</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 flow release finish -n X.X.X.X]]></script> </div></div><p><code>-n</code> option is need to avoid tagging the release, the Maven Release plugin did that already. If the release branch was published to the remote it won't be deleted locally, it must be done manually after removing branch from the remote:</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 push --delete origin release/X.X.X.X]]></script> Modified: websites/production/struts/content/release/2.3.x/docs/migration-guide.html ============================================================================== --- websites/production/struts/content/release/2.3.x/docs/migration-guide.html (original) +++ websites/production/struts/content/release/2.3.x/docs/migration-guide.html Fri Nov 21 09:30:05 2014 @@ -125,7 +125,7 @@ under the License. <div class="pagecontent"> <div class="wiki-content"> - <div id="ConfluenceContent"><p>Getting here from there.</p><h3 id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><p><a shape="rect" href="version-notes-2319.html">Version Notes 2.3.19</a></p></li><li><p><a shape="rect" href="version-notes-23163.html">Version Notes 2.3.16.3</a></p></li><li><a shape="rect" href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version Notes 2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" hr ef="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version Notes 2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a shape="rect" href="version-notes-2341.html">Version Notes 2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version Notes 2.3.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.2.x">Version No tes 2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 2.2.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.1.x">Version Notes 2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a shape="rect" href="version-not es-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 id="MigrationGuide-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a shape="rect" href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" href="release-notes-20112.html">Release Notes 2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release Notes 2.0.11.1</a></li><li><a shape="rect" href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release Notes 2.0.7</a></li><li ><a shape="rect" href="release-notes-206.html">Release Notes >2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release Notes >2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release Notes >2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release Notes >2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release Notes >2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release Notes >2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release Notes >2.0.0</a></li></ul><h3 id="MigrationGuide-Struts1toStruts2">Struts 1 to >Struts 2</h3><div class="table-wrap"><table >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" >class="confluenceTh"><p><a shape="rect" >href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td >colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 >alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" >class="confluence Th"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Various issues (and hopefully their solutions!) encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-strategies.html">Migration Strategies</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration process.</p></td></tr></tbody></table></div><h4 id="MigrationGuide-Tutorials">Tutorials</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" hre f="http://www.infoq.com/news/migrating-struts2" rel="nofollow">Migrating Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 2006)</p></td></tr></tbody></table></div><h4 id="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://struts.apache.org/roadmap.html#new">Roadmap FAQ</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html" rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Don Brown's summary of events</p></td></tr></tbody></table></div><h3 id="MigrationGuide-Webwork2.2toStruts2" >Webwork 2.2 to Struts 2</h3><div class="table-wrap"><table >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" >class="confluenceTh"><p><a shape="rect" >href="key-changes-from-webwork-2.html">Key Changes From WebWork >2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has >been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th >colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" >href="webwork-2-migration-strategies.html">WebWork 2 Migration >Strategies</a></p></th><td colspan="1" rowspan="1" >class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 >applications to Struts 2.</p></td></tr></tbody></table></div><h2 >id="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" >href="where-do-we-get-the-latest-version-the-framework.html">Where do we get >the latest version the framework</a>?</li><li><a shape="rect" >href="what-are-some-of-the-frameworks-best-features.html">What are some of >the framework's best features </a>?</li><li><a shape="rect" href="what-is-the-actioncontext.html">What is the ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" href="contributors-guide.html">Contributors Guide</a></h2></div> + <div id="ConfluenceContent"><p>Getting here from there.</p><h3 id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><p><a shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></p></li><li><p><a shape="rect" href="version-notes-23163.html">Version Notes 2.3.16.3</a></p></li><li><a shape="rect" href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version Notes 2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" hr ef="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version Notes 2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a shape="rect" href="version-notes-2341.html">Version Notes 2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version Notes 2.3.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.2.x">Version No tes 2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 2.2.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.1.x">Version Notes 2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a shape="rect" href="version-not es-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 id="MigrationGuide-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a shape="rect" href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" href="release-notes-20112.html">Release Notes 2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release Notes 2.0.11.1</a></li><li><a shape="rect" href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release Notes 2.0.7</a></li><li ><a shape="rect" href="release-notes-206.html">Release Notes >2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release Notes >2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release Notes >2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release Notes >2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release Notes >2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release Notes >2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release Notes >2.0.0</a></li></ul><h3 id="MigrationGuide-Struts1toStruts2">Struts 1 to >Struts 2</h3><div class="table-wrap"><table >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" >class="confluenceTh"><p><a shape="rect" >href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td >colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 >alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" >class="confluence Th"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Various issues (and hopefully their solutions!) encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-strategies.html">Migration Strategies</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration process.</p></td></tr></tbody></table></div><h4 id="MigrationGuide-Tutorials">Tutorials</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" hre f="http://www.infoq.com/news/migrating-struts2" rel="nofollow">Migrating Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 2006)</p></td></tr></tbody></table></div><h4 id="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://struts.apache.org/roadmap.html#new">Roadmap FAQ</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html" rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Don Brown's summary of events</p></td></tr></tbody></table></div><h3 id="MigrationGuide-Webwork2.2toStruts2" >Webwork 2.2 to Struts 2</h3><div class="table-wrap"><table >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" >class="confluenceTh"><p><a shape="rect" >href="key-changes-from-webwork-2.html">Key Changes From WebWork >2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has >been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th >colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" >href="webwork-2-migration-strategies.html">WebWork 2 Migration >Strategies</a></p></th><td colspan="1" rowspan="1" >class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 >applications to Struts 2.</p></td></tr></tbody></table></div><h2 >id="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" >href="where-do-we-get-the-latest-version-the-framework.html">Where do we get >the latest version the framework</a>?</li><li><a shape="rect" >href="what-are-some-of-the-frameworks-best-features.html">What are some of >the framework's best features </a>?</li><li><a shape="rect" href="what-is-the-actioncontext.html">What is the ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" href="contributors-guide.html">Contributors Guide</a></h2></div> </div> <div class="tabletitle">