You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2013/04/18 11:33:52 UTC
svn commit: r858925 - in
/websites/production/struts/content/development/2.x/docs: actionmapper.html
building-struts-2-fast-track-release.html home.html index.html logging.html
security-bulletins.html struts-next.html
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