Author: lukaszlenart Date: Thu Apr 18 09:33:52 2013 New Revision: 858925 Log: Updates draft docs
Added: websites/production/struts/content/development/2.x/docs/struts-next.html Modified: websites/production/struts/content/development/2.x/docs/actionmapper.html websites/production/struts/content/development/2.x/docs/building-struts-2-fast-track-release.html websites/production/struts/content/development/2.x/docs/home.html websites/production/struts/content/development/2.x/docs/index.html websites/production/struts/content/development/2.x/docs/logging.html websites/production/struts/content/development/2.x/docs/security-bulletins.html Modified: websites/production/struts/content/development/2.x/docs/actionmapper.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/actionmapper.html (original) +++ websites/production/struts/content/development/2.x/docs/actionmapper.html Thu Apr 18 09:33:52 2013 @@ -123,7 +123,29 @@ under the License. <DIV class="pagecontent"> <DIV class="wiki-content"> - + <DIV> +<UL> + <LI><A href="#ActionMapper-Description">Description</A></LI> + <LI><A href="#ActionMapper-DefaultActionMapper">DefaultActionMapper</A></LI> +<UL> + <LI><A href="#ActionMapper-Methodprefix">Method prefix</A></LI> + <LI><A href="#ActionMapper-Actionprefix">Action prefix</A></LI> + <LI><A href="#ActionMapper-Redirectprefix">Redirect prefix</A></LI> + <LI><A href="#ActionMapper-Redirectactionprefix">Redirect-action prefix</A></LI> +</UL> + <LI><A href="#ActionMapper-CustomActionMapper">Custom ActionMapper</A></LI> + <LI><A href="#ActionMapper-CompositeActionMapper">CompositeActionMapper</A></LI> + <LI><A href="#ActionMapper-PrefixBasedActionMapper">PrefixBasedActionMapper</A></LI> + <LI><A href="#ActionMapper-ActionMapperandActionMappingobjects">ActionMapper and ActionMapping objects</A></LI> +<UL> + <LI><A href="#ActionMapper-Customize">Customize</A></LI> +</UL> + <LI><A href="#ActionMapper-Next%253AActionProxy%2526ActionProxyFactory">Next: Action Proxy & ActionProxy Factory</A></LI> +</UL></DIV> + +<H2><A name="ActionMapper-Description"></A>Description</H2> + + <P>The ActionMapper interface provides a mapping between HTTP requests and action invocation requests and vice-versa. <P> When given an HttpServletRequest, the ActionMapper may return null if no action invocation request matches, @@ -259,43 +281,30 @@ struts.properties. <H2><A name="ActionMapper-CompositeActionMapper"></A>CompositeActionMapper</H2> -<P>A composite action mapper that is capable of delegating to a series of ActionMapper if the former -failed to obtained a valid ActionMapping or uri. -<P> -It is configured through struts.properties. -<P> -For example, with the following entries in struts.properties -<P> -<PRE> -<bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="struts" - class="org.apache.struts2.dispatcher.mapper.CompositeActionMapper" /> -<constant name="struts.mapper.composite" - value="org.apache.struts2.dispatcher.mapper.DefaultActionMapper,org.apache.struts2.dispatcher.mapper.RestfulActionMapper,org.apache.struts2.dispatcher.mapper.Restful2ActionMapper" /> +<P>A composite action mapper that is capable of delegating to a series of <A href="" title="ActionMapper">ActionMapper</A> if the former failed to obtained a valid <A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=ActionMapping&linkCreation=true&fromPageId=14128" class="createlink">ActionMapping</A> or uri.</P> + +<P>It is configured through <A href="strutsxml.html" title="struts.xml">struts.xml</A>. For example, with the following entries in struts.xml</P> + +<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> +<PRE class="code-xml"> +<SPAN class="code-tag"><constant name=<SPAN class="code-quote">"struts.mapper.class"</SPAN> value=<SPAN class="code-quote">"composite"</SPAN> /></SPAN> +<SPAN class="code-tag"><constant name=<SPAN class="code-quote">"struts.mapper.composite"</SPAN> value=<SPAN class="code-quote">"struts,restful,restful2"</SPAN> /></SPAN> </PRE> -<P> -When {@link CompositeActionMapper#getMapping(HttpServletRequest, ConfigurationManager)} or -CompositeActionMapper#getUriFromActionMapping(ActionMapping) is invoked, -CompositeActionMapper would go through these ActionMappers in sequence -starting from ActionMapper identified by 'struts.mapper.composite.1', followed by -'struts.mapper.composite.2' and finally 'struts.mapper.composite.3' (in this case) until either -one of the ActionMapper return a valid result (not null) or it runs out of ActionMapper -in which case it will just return null for both -{@link CompositeActionMapper#getMapping(HttpServletRequest, ConfigurationManager)} and -CompositeActionMapper#getUriFromActionMapping(ActionMapping) methods. -<P></P> +</DIV></DIV> -<P>For example with the following in struts-*.xml :- -<PRE> - <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="struts" - class="org.apache.struts2.dispatcher.mapper.CompositeActionMapper" /> - <constant name="struts.mapper.composite" - value="org.apache.struts2.dispatcher.mapper.DefaultActionMapper,foo.bar.MyActionMapper,foo.bar.MyAnotherActionMapper" /> +<P>When <TT>CompositeActionMapper#getMapping(HttpServletRequest, ConfigurationManager)</TT> or <TT>CompositeActionMapper#getUriFromActionMapping(ActionMapping)</TT> is invoked, <TT>CompositeActionMapper</TT> would go through these <A href="" title="ActionMapper">ActionMapper</A>s in sequence starting from <A href="" title="ActionMapper">ActionMapper</A> identified by <TT>struts.mapper.composite.1</TT>, followed by<BR> +<TT>struts.mapper.composite.2</TT> and finally <TT>struts.mapper.composite.3</TT> (in this case) until either one of the <A href="" title="ActionMapper">ActionMapper</A> return a valid result (not null) or it runs out of <A href="" title="ActionMapper">ActionMapper</A> in which case it will just return null for both <TT>CompositeActionMapper#getMapping(HttpServletRequest, ConfigurationManager)</TT> and<BR> +<TT>CompositeActionMapper#getUriFromActionMapping(ActionMapping)</TT> methods.</P> + +<P>For example with the following in struts.xml:</P> +<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> +<PRE class="code-xml"> +<SPAN class="code-tag"><constant name=<SPAN class="code-quote">"struts.mapper.class"</SPAN> value=<SPAN class="code-quote">"composite"</SPAN> /></SPAN> +<SPAN class="code-tag"><constant name=<SPAN class="code-quote">"struts.mapper.composite"</SPAN> value=<SPAN class="code-quote">"struts,restful"</SPAN> /></SPAN> </PRE> -<P> -<CODE>CompositeActionMapper</CODE> will be configured with 3 ActionMapper, namely -"DefaultActionMapper", "MyActionMapper" and "MyAnotherActionMapper". -<CODE>CompositeActionMapper</CODE> would consult each of them in order described above.</P> +</DIV></DIV> +<P><TT>CompositeActionMapper</TT> will be configured with 2 ActionMapper, namely "struts" which is <TT>org.apache.struts2.dispatcher.mapper.DefaultActionMapper</TT> and "restful" which is <TT>org.apache.struts2.dispatcher.mapper.RestfulActionMapperRestfulActionMapper</TT>. <TT>CompositeActionMapper</TT> would consult each of them in order described above.</P> <H2><A name="ActionMapper-PrefixBasedActionMapper"></A>PrefixBasedActionMapper</H2> @@ -336,12 +345,12 @@ PrefixBasedActionMapper#getUriFromAction <DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> <PRE class="code-java"> <SPAN class="code-keyword">public</SPAN> class MyCustomActionMapper <SPAN class="code-keyword">implements</SPAN> ActionMapper { - <SPAN class="code-keyword">public</SPAN> ActionMapping getMapping(HttpServletRequest request, + <SPAN class="code-keyword">public</SPAN> ActionMapping getMapping(HttpServletRequest request, ConfigurationManager configManager) { .... } - <SPAN class="code-keyword">public</SPAN> <SPAN class="code-object">String</SPAN> getUriFromActionMapping(ActionMapping mapping) { + <SPAN class="code-keyword">public</SPAN> <SPAN class="code-object">String</SPAN> getUriFromActionMapping(ActionMapping mapping) { .... } } @@ -351,7 +360,6 @@ PrefixBasedActionMapper#getUriFromAction <P><IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/lightbulb_on.gif" height="16" width="16" align="absmiddle" alt="" border="0"> See also: <A href="restfulactionmapper.html" title="RestfulActionMapper">RestfulActionMapper</A></P> <H2><A name="ActionMapper-Next%3AActionProxy%26ActionProxyFactory"></A>Next: <A href="action-proxy-actionproxy-factory.html" title="Action Proxy & ActionProxy Factory">Action Proxy & ActionProxy Factory</A></H2> - </DIV> <DIV class="tabletitle"> Modified: websites/production/struts/content/development/2.x/docs/building-struts-2-fast-track-release.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/building-struts-2-fast-track-release.html (original) +++ websites/production/struts/content/development/2.x/docs/building-struts-2-fast-track-release.html Thu Apr 18 09:33:52 2013 @@ -125,11 +125,11 @@ under the License. <DIV class="wiki-content"> <H1><A name="BuildingStruts2-Fasttrackrelease-Content"></A>Content</H1> <STYLE type="text/css">/*<![CDATA[*/ -div.rbtoc1327103875776 {margin-left: 0px;padding: 0px;} -div.rbtoc1327103875776 ul {list-style: none;margin-left: 0px;} -div.rbtoc1327103875776 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1366277363932 {margin-left: 0px;padding: 0px;} +div.rbtoc1366277363932 ul {list-style: none;margin-left: 0px;} +div.rbtoc1366277363932 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</STYLE><DIV class="rbtoc1327103875776"> +/*]]>*/</STYLE><DIV class="rbtoc1366277363932"> <UL> <LI><SPAN class="TOCOutline">1</SPAN> <A href="#BuildingStruts2-Fasttrackrelease-BuildingSteps%2528Struts%2529">Building Steps (Struts)</A></LI> <UL> @@ -159,8 +159,13 @@ div.rbtoc1327103875776 li {margin-left: <H3><A name="BuildingStruts2-Fasttrackrelease-Gettingready"></A>Getting ready</H3> <OL> - <LI>When a serious security issue arises, we should try to create a <TT>STRUTS_#_#_#_X</TT> branch from the last GA release (from tag), and apply to that branch only<BR> -the security patch.</LI> + <LI>When a serious security issue arises, we should try to create a <TT>STRUTS_#_#_#_X</TT> branch from the last GA release (from tag). +<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> +<PRE class="code-java"> +svn copy https:<SPAN class="code-comment">//svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_#_#_# https://svn.apache.org/repos/asf/struts/struts2/branches/STRUTS_#_#_#_X -m <SPAN class="code-quote">"Creating <SPAN class="code-keyword">new</SPAN> branch"</SPAN></SPAN> +</PRE> +</DIV></DIV></LI> + <LI>Apply to that branch only the security patch</LI> <LI>If the patch first applies to some other dependency, implore the other group to do the same, to avoid side-effects from other changes.</LI> <LI>Release the upcoming version in JIRA (under Administration/Manage Releases) and tag the release date</LI> <LI>Create DONE and TODO filters for the new version, share with all, and remove obsolete TODO filter</LI> Modified: websites/production/struts/content/development/2.x/docs/home.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/home.html (original) +++ websites/production/struts/content/development/2.x/docs/home.html Thu Apr 18 09:33:52 2013 @@ -138,7 +138,7 @@ under the License. <DIV class="panelMacro"><TABLE class="tipMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD>Have a suggestion, correction, or improvement? <A href="http://cwiki.apache.org/confluence/display/WW/Home" class="external-link" rel="nofollow">Log in</A> and leave a comment on the appropriate page or file a ticket against the Struts 2 documentation. <A href="contributors-guide.html" title="Contributors Guide">We're always looking for help!</A></TD></TR></TABLE></DIV> -<P>We've started planning the next version of Struts aka Struts 3 which will break backward compatibility, if you want to join please add your two cents <A href="struts-3.html" title="Struts 3">here</A>.</P> +<DIV class="panelMacro"><TABLE class="noteMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD>We've started planning the next version of Struts aka Struts 3 (or 2.5) which will break backward compatibility, if you want to join please add your two cents <A href="struts-next.html" title="Struts Next">here</A>.</TD></TR></TABLE></DIV> <H2><A name="Home-GettingStarted"></A>Getting Started</H2> @@ -215,7 +215,7 @@ under the License. <A href="other-resources.html" title="Other Resources">Other Resources</A> <SPAN class="smalltext">(Apache Struts 2 Documentation)</SPAN> <BR> - <A href="struts-3.html" title="Struts 3">Struts 3</A> + <A href="struts-next.html" title="Struts Next">Struts Next</A> <SPAN class="smalltext">(Apache Struts 2 Documentation)</SPAN> <BR> </DIV> Modified: websites/production/struts/content/development/2.x/docs/index.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/index.html (original) +++ websites/production/struts/content/development/2.x/docs/index.html Thu Apr 18 09:33:52 2013 @@ -138,7 +138,7 @@ under the License. <DIV class="panelMacro"><TABLE class="tipMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD>Have a suggestion, correction, or improvement? <A href="http://cwiki.apache.org/confluence/display/WW/Home" class="external-link" rel="nofollow">Log in</A> and leave a comment on the appropriate page or file a ticket against the Struts 2 documentation. <A href="contributors-guide.html" title="Contributors Guide">We're always looking for help!</A></TD></TR></TABLE></DIV> -<P>We've started planning the next version of Struts aka Struts 3 which will break backward compatibility, if you want to join please add your two cents <A href="struts-3.html" title="Struts 3">here</A>.</P> +<DIV class="panelMacro"><TABLE class="noteMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD>We've started planning the next version of Struts aka Struts 3 (or 2.5) which will break backward compatibility, if you want to join please add your two cents <A href="struts-next.html" title="Struts Next">here</A>.</TD></TR></TABLE></DIV> <H2><A name="Home-GettingStarted"></A>Getting Started</H2> @@ -215,7 +215,7 @@ under the License. <A href="other-resources.html" title="Other Resources">Other Resources</A> <SPAN class="smalltext">(Apache Struts 2 Documentation)</SPAN> <BR> - <A href="struts-3.html" title="Struts 3">Struts 3</A> + <A href="struts-next.html" title="Struts Next">Struts Next</A> <SPAN class="smalltext">(Apache Struts 2 Documentation)</SPAN> <BR> </DIV> Modified: websites/production/struts/content/development/2.x/docs/logging.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/logging.html (original) +++ websites/production/struts/content/development/2.x/docs/logging.html Thu Apr 18 09:33:52 2013 @@ -127,10 +127,10 @@ under the License. <P>XWork provides its own layer to support logging - it allows to use many different implementations.</P> -<P>Currently XWork provides support for following libraries:</P> +<P>Currently XWork provides support for the following libraries (in that order base on classpath discovery):</P> <UL class="alternate" type="square"> + <LI>Commons Logging</LI> <LI>SLF4J</LI> - <LI>commons-logging</LI> <LI>JDK Logger</LI> </UL> Modified: websites/production/struts/content/development/2.x/docs/security-bulletins.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/security-bulletins.html (original) +++ websites/production/struts/content/development/2.x/docs/security-bulletins.html Thu Apr 18 09:33:52 2013 @@ -125,7 +125,7 @@ under the License. <DIV class="wiki-content"> <P>The following security bulletins are available:</P> -<UL><LI><A href="s2-001.html" title="S2-001">S2-001</A> — <SPAN class="smalltext">Remote code exploit on form validation error</SPAN></LI><LI><A href="s2-002.html" title="S2-002">S2-002</A> — <SPAN class="smalltext">Cross site scripting (XSS) vulnerability on <s:url> and <s:a> tags</SPAN></LI><LI><A href="s2-003.html" title="S2-003">S2-003</A> — <SPAN class="smalltext">XWork ParameterInterceptors bypass allows OGNL statement execution</SPAN></LI><LI><A href="s2-004.html" title="S2-004">S2-004</A> — <SPAN class="smalltext">Directory traversal vulnerability while serving static content</SPAN></LI><LI><A href="s2-005.html" title="S2-005">S2-005</A> — <SPAN class="smalltext">XWork ParameterInterceptors bypass allows remote command execution</SPAN></LI><LI><A href="s2-006.html" title="S2-006">S2-006</A> — <SPAN class="smalltext">Multiple Cross-Site Scripting (XSS) in XWork generated error pages</SPAN></LI><LI><A href="s2-007.html" t itle="S2-007">S2-007</A> — <SPAN class="smalltext">User input is evaluated as an OGNL expression when there's a conversion error</SPAN></LI><LI><A href="s2-008.html" title="S2-008">S2-008</A> — <SPAN class="smalltext">Multiple critical vulnerabilities in Struts2</SPAN></LI><LI><A href="s2-009.html" title="S2-009">S2-009</A> — <SPAN class="smalltext">ParameterInterceptor vulnerability allows remote command execution</SPAN></LI><LI><A href="s2-010.html" title="S2-010">S2-010</A> — <SPAN class="smalltext">When using Struts 2 token mechanism for CSRF protection, token check may be bypassed by misusing known session attributes</SPAN></LI><LI><A href="s2-011.html" title="S2-011">S2-011</A> — <SPAN class="smalltext">Long request parameter names might significantly promote the effectiveness of DOS attacks</SPAN></LI></UL> +<UL><LI><A href="s2-001.html" title="S2-001">S2-001</A> — <SPAN class="smalltext">Remote code exploit on form validation error</SPAN></LI><LI><A href="s2-002.html" title="S2-002">S2-002</A> — <SPAN class="smalltext">Cross site scripting (XSS) vulnerability on <s:url> and <s:a> tags</SPAN></LI><LI><A href="s2-003.html" title="S2-003">S2-003</A> — <SPAN class="smalltext">XWork ParameterInterceptors bypass allows OGNL statement execution</SPAN></LI><LI><A href="s2-004.html" title="S2-004">S2-004</A> — <SPAN class="smalltext">Directory traversal vulnerability while serving static content</SPAN></LI><LI><A href="s2-005.html" title="S2-005">S2-005</A> — <SPAN class="smalltext">XWork ParameterInterceptors bypass allows remote command execution</SPAN></LI><LI><A href="s2-006.html" title="S2-006">S2-006</A> — <SPAN class="smalltext">Multiple Cross-Site Scripting (XSS) in XWork generated error pages</SPAN></LI><LI><A href="s2-007.html" t itle="S2-007">S2-007</A> — <SPAN class="smalltext">User input is evaluated as an OGNL expression when there's a conversion error</SPAN></LI><LI><A href="s2-008.html" title="S2-008">S2-008</A> — <SPAN class="smalltext">Multiple critical vulnerabilities in Struts2</SPAN></LI><LI><A href="s2-009.html" title="S2-009">S2-009</A> — <SPAN class="smalltext">ParameterInterceptor vulnerability allows remote command execution</SPAN></LI><LI><A href="s2-010.html" title="S2-010">S2-010</A> — <SPAN class="smalltext">When using Struts 2 token mechanism for CSRF protection, token check may be bypassed by misusing known session attributes</SPAN></LI><LI><A href="s2-011.html" title="S2-011">S2-011</A> — <SPAN class="smalltext">Long request parameter names might significantly promote the effectiveness of DOS attacks</SPAN></LI><LI><A href="https://cwiki.apache.org/confluence/display/WW/S2-012" title="S2-012">S2-012</A> — <SPAN class="smalltext">Showcase app vulnerability allows remote command execution</SPAN></LI><LI><A href="https://cwiki.apache.org/confluence/display/WW/S2-013" title="S2-013">S2-013</A> — <SPAN class="smalltext">A vulnerability, present in the <EM>includeParams</EM> attribute of the <EM>URL</EM> and <EM>Anchor</EM> Tag, allows remote command execution</SPAN></LI></UL> </DIV> <DIV class="tabletitle"> @@ -169,6 +169,12 @@ under the License. <A href="s2-011.html" title="S2-011">S2-011</A> <SPAN class="smalltext">(Apache Struts 2 Documentation)</SPAN> <BR> + <A href="https://cwiki.apache.org/confluence/display/WW/S2-012" title="S2-012">S2-012</A> + <SPAN class="smalltext">(Apache Struts 2 Documentation)</SPAN> + <BR> + <A href="https://cwiki.apache.org/confluence/display/WW/S2-013" title="S2-013">S2-013</A> + <SPAN class="smalltext">(Apache Struts 2 Documentation)</SPAN> + <BR> </DIV> </DIV> Added: websites/production/struts/content/development/2.x/docs/struts-next.html ============================================================================== --- websites/production/struts/content/development/2.x/docs/struts-next.html (added) +++ websites/production/struts/content/development/2.x/docs/struts-next.html Thu Apr 18 09:33:52 2013 @@ -0,0 +1,194 @@ + +<!-- +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. +--> + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<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> + <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>Struts Next</TITLE> + <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></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" title="Apache Struts 2 Documentation">Apache Struts 2 Documentation</A> > <A href="home.html" title="Home">Home</A> > <A href="" title="Struts Next">Struts Next</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">Struts Next</DIV> + + <DIV class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;"> + <A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=27832363"> + <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=27832363">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=27832363"> + <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=27832363">Add Page</A> + + <A href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=27832363"> + <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=27832363">Add News</A> + </DIV> + </DIV> + + <DIV class="pagecontent"> + <DIV class="wiki-content"> + <H3><A name="StrutsNext-Whatshouldbeimproved%2Fchanged"></A>What should be improved / changed</H3> + +<P><A href="https://issues.apache.org/jira/browse/WW/fixforversion/12319158" class="external-link" rel="nofollow">Issues</A> connected with the new version <BR> +<A href="https://builds.apache.org/view/S-Z/view/Struts/job/Struts3/" class="external-link" rel="nofollow">Build</A> of the latest version</P> + +<UL> + <LI>Use Git instead Svn + <UL> + <LI>Use Git flow to manage the repo and development process + <UL> + <LI><A href="http://nvie.com/posts/a-successful-git-branching-model/" class="external-link" rel="nofollow">http://nvie.com/posts/a-successful-git-branching-model/</A></LI> + <LI><A href="https://github.com/nvie/gitflow" class="external-link" rel="nofollow">https://github.com/nvie/gitflow</A></LI> + <LI><A href="http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/" class="external-link" rel="nofollow">http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/</A></LI> + </UL> + </LI> + </UL> + </LI> + <LI>Switch to Java 1.6</LI> + <LI>Update "internal" injection to use current Guice.</LI> + <LI>Refactorings for further extensibility based on questions on the list, on CodeRanch, and Stack Overflow + <UL> + <LI>JR plugin refactoring. Allow compiled reports as classpath resources.</LI> + </UL> + </LI> + <LI>Refactor conversion of primitives (and wrappers) in XWork</LI> + <LI>Switch to <A href="http://commons.apache.org/ognl" class="external-link" rel="nofollow">OGNL 4.0</A>.</LI> + <LI>Adopt <A href="http://www.slf4j.org/" class="external-link" rel="nofollow">slf4j</A> as new logging framework: this allows developers to plug-in any logging framework they want.</LI> + <LI>Consider renaming packages to org.apache.struts3</LI> + <LI>Remove deprecated Plugins + <UL> + <LI>Codebehind</LI> + <LI>Dojo</LI> + </UL> + </LI> + <LI>Normalize property name camel-casing (foo.bar.BazPlugh to foo.bar.bazPlugh)</LI> + <LI>Check possible usage of Tiles Auto Tag (<A href="http://tiles.apache.org/tiles-autotag/" class="external-link" rel="nofollow">http://tiles.apache.org/tiles-autotag/</A>) instead of Struts Annotations</LI> +</UL> + + +<P>Plan for Struts 2.5</P> +<OL> + <LI>Request Git repo from INFRA</LI> + <LI>Import project</LI> + <LI>Remove deprecated plugins</LI> + <LI>Drop support for Struts 1 (remove plugin)</LI> + <LI>Remove deprecated APIs</LI> + <LI>Switch to Java 1.6</LI> + <LI>Prepare the first release</LI> +</OL> + + +<P>Plan for Struts 3</P> +<OL> + <LI>Rename XWork packages to org.apache.struts.xwork</LI> + <LI>Rename Struts 2 packages to org.apache.struts</LI> +</OL> + + </DIV> + + + </DIV> + </DIV> + <DIV class="footer"> + Generated by + <A href="http://www.atlassian.com/confluence/">Atlassian Confluence</A> (Version: 3.4.9 Build: 2042 Feb 14, 2011) + <A href="http://could.it/autoexport/">Auto Export Plugin</A> (Version: 1.0.0-dkulp) + </DIV> + </BODY> +</HTML> \ No newline at end of file