Author: bayard Date: Fri Mar 23 23:30:50 2007 New Revision: 521984 URL: http://svn.apache.org/viewvc?view=rev&rev=521984 Log: Merging -r505116:519563 https://svn.apache.org/repos/asf/struts/struts1/branches/STRUTS_1_3_BRANCH/ into trunk as per STR-3018
Added: struts/struts1/trunk/src/site/xdoc/userGuide/release-notes-1_3_6.xml - copied unchanged from r519563, struts/struts1/branches/STRUTS_1_3_BRANCH/src/site/xdoc/userGuide/release-notes-1_3_6.xml struts/struts1/trunk/src/site/xdoc/userGuide/release-notes-1_3_7.xml - copied unchanged from r519563, struts/struts1/branches/STRUTS_1_3_BRANCH/src/site/xdoc/userGuide/release-notes-1_3_7.xml Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/action/ActionRedirect.java struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java struts/struts1/trunk/core/src/test/java/org/apache/struts/action/TestActionRedirect.java struts/struts1/trunk/faces/pom.xml struts/struts1/trunk/faces/src/main/resources/META-INF/tld/struts-faces.tld struts/struts1/trunk/src/site/xdoc/userGuide/index.xml struts/struts1/trunk/src/site/xdoc/userGuide/release-notes.xml struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/LinkTag.java Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/action/ActionRedirect.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/main/java/org/apache/struts/action/ActionRedirect.java?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/core/src/main/java/org/apache/struts/action/ActionRedirect.java (original) +++ struts/struts1/trunk/core/src/main/java/org/apache/struts/action/ActionRedirect.java Fri Mar 23 23:30:50 2007 @@ -131,7 +131,7 @@ setName(baseConfig.getName()); setPath(baseConfig.getPath()); setModule(baseConfig.getModule()); - setRedirect(baseConfig.getRedirect()); + setRedirect(true); inheritProperties(baseConfig); initializeParameters(); } Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java (original) +++ struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java Fri Mar 23 23:30:50 2007 @@ -65,8 +65,7 @@ action = (Action) actions.get(type); if (action == null) { - log.info("Initialize action of type: " + type); - action = (Action) ClassUtils.getApplicationInstance(type); + action = createAction(context, type); actions.put(type, action); } } @@ -79,5 +78,23 @@ } return (action); + } + + + /** + * <p>Invoked by <code>getAction</code> when the <code>Action</code> + * actually has to be created. If the instance is already created and + * cached, this method will not be called. </p> + * + * @param context The <code>Context</code> for this request + * @param type Name of class to instantiate + * @return Instantiated Action class + * @throws Exception if there are any problems instantiating the Action + * class. + * @since Struts 1.3.7 + */ + protected Action createAction(ActionContext context, String type) throws Exception { + log.info("Initialize action of type: " + type); + return (Action) ClassUtils.getApplicationInstance(type); } } Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java (original) +++ struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java Fri Mar 23 23:30:50 2007 @@ -46,20 +46,20 @@ // For prefix matching, match on the path info path = (String) request.getAttribute(Constants.INCLUDE_PATH_INFO); - if (path == null) { + if ((path == null) || (path.length() == 0)) { path = request.getPathInfo(); } // For extension matching, match on the servlet path - if (path == null) { + if ((path == null) || (path.length() == 0)) { path = (String) request.getAttribute(Constants.INCLUDE_SERVLET_PATH); - if (path == null) { + if ((path == null) || (path.length() == 0)) { path = request.getServletPath(); } - if (path == null) { + if ((path == null) || (path.length() == 0)) { throw new IllegalArgumentException( "No path information in request"); } Modified: struts/struts1/trunk/core/src/test/java/org/apache/struts/action/TestActionRedirect.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/test/java/org/apache/struts/action/TestActionRedirect.java?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/core/src/test/java/org/apache/struts/action/TestActionRedirect.java (original) +++ struts/struts1/trunk/core/src/test/java/org/apache/struts/action/TestActionRedirect.java Fri Mar 23 23:30:50 2007 @@ -104,7 +104,7 @@ /** * Test creating an ActionRedirect which copies its configuration from an - * existing ActionForward. + * existing ActionForward (except for the "redirect" property). */ public void testActionRedirectFromExistingForward() { ActionForward forward = new ActionForward("/path.do?param=param1"); @@ -123,7 +123,7 @@ ar.getOriginalPath()); assertEquals("Incorrect or missing property", "value", ar.getProperty("key")); - assertTrue("Original had redirect to false", !ar.getRedirect()); + assertTrue("Original had redirect to false", ar.getRedirect()); } /** Modified: struts/struts1/trunk/faces/pom.xml URL: http://svn.apache.org/viewvc/struts/struts1/trunk/faces/pom.xml?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/faces/pom.xml (original) +++ struts/struts1/trunk/faces/pom.xml Fri Mar 23 23:30:50 2007 @@ -81,6 +81,13 @@ <dependency> <groupId>javax.servlet</groupId> + <artifactId>jsp-api</artifactId> + <version>2.0</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.3</version> <scope>provided</scope> @@ -118,6 +125,7 @@ <plugins> <!-- STR-2979: Faces build causes NPE with maven-taglib-plugin +--> <plugin> <groupId>net.sourceforge.maven-taglib</groupId> <artifactId>maven-taglib-plugin</artifactId> @@ -125,7 +133,6 @@ <taglib.src.dir>${basedir}/src/main/resources/META-INF/tld</taglib.src.dir> </configuration> </plugin> - --> </plugins> </reporting> Modified: struts/struts1/trunk/faces/src/main/resources/META-INF/tld/struts-faces.tld URL: http://svn.apache.org/viewvc/struts/struts1/trunk/faces/src/main/resources/META-INF/tld/struts-faces.tld?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/faces/src/main/resources/META-INF/tld/struts-faces.tld (original) +++ struts/struts1/trunk/faces/src/main/resources/META-INF/tld/struts-faces.tld Fri Mar 23 23:30:50 2007 @@ -19,7 +19,7 @@ --> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> - <tlib-version>0.1</tlib-version> + <tlib-version>1.3</tlib-version> <jsp-version>1.2</jsp-version> <short-name>Struts-Faces</short-name> <uri>http://struts.apache.org/tags-faces</uri> Modified: struts/struts1/trunk/src/site/xdoc/userGuide/index.xml URL: http://svn.apache.org/viewvc/struts/struts1/trunk/src/site/xdoc/userGuide/index.xml?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/src/site/xdoc/userGuide/index.xml (original) +++ struts/struts1/trunk/src/site/xdoc/userGuide/index.xml Fri Mar 23 23:30:50 2007 @@ -313,6 +313,18 @@ <a href="release-notes.html">6.1 Release Notes</a> <ul> <li> + <a href="release-notes-1_3_7.html">Release + Notes 1.3.7</a> <i>(Beta)</i> + </li> + <li> + <a href="release-notes-1_3_6.html">Release + Notes 1.3.6</a> <i>(Test Build)</i> + </li> + <li> + <a href="release-notes-1_3_5.html">Release + Notes 1.3.5</a> + </li> + <li> <a href="release-notes-1_3_3.html">Release Notes 1.3.3</a> <i>(Test Build)</i> </li> Modified: struts/struts1/trunk/src/site/xdoc/userGuide/release-notes.xml URL: http://svn.apache.org/viewvc/struts/struts1/trunk/src/site/xdoc/userGuide/release-notes.xml?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/src/site/xdoc/userGuide/release-notes.xml (original) +++ struts/struts1/trunk/src/site/xdoc/userGuide/release-notes.xml Fri Mar 23 23:30:50 2007 @@ -23,26 +23,23 @@ <document> <properties> - <title>Release Notes (since 1.3.5)</title> + <title>Release Notes (since 1.3.7)</title> </properties> <body> - <section name="6.1 Release Notes - Version 1.3.6"> - - <blockquote><p><em> - "I've had nothing yet, so I can't take more." - </em></p><p><em> - "You mean you can't take less. It's very easy to take more than - nothing." - </em></p></blockquote> + <section name="6.1 Release Notes - Version 1.3.8"> <a name="release_notes"/> <subsection name="Introduction"> <p> This section contains release notes for changes that have - taken place to Struts, - since the - <a href="release-notes-1_3_5.html">Version 1.3.5</a> - distribution. + taken place to Struts since the last public release, but + there have been two intermediate test distributions since. Please + read the previous release notes to understand all issues + that crescendo at this version: + <blockquote> + <a href="release-notes-1_3_7.html">Version 1.3.7</a><br/> + <a href="release-notes-1_3_6.html">Version 1.3.6</a><br/> + </blockquote> To keep up-to-date on all changes to the framework, subscribe to the (commits at struts.apache.org) list. @@ -67,183 +64,17 @@ </subsection> - <a name="dependencies"/> - <subsection name="Dependencies"> - <p> - The following dependencies have changed: - </p> - <ul> - <li><strong>Validator 1.3.1</strong> - - <a href="http://jakarta.apache.org/commons/validator/">Commons Validator</a> - has been upgraded to - <a href="http://jakarta.apache.org/commons/validator/changes-report.html">Version 1.3.1</a> - - as well as a number of bugfixes, compressed versions of the JavaScript routines are provided - which can be configured using the new <code>validator-rules-compressed.xml</code> config file. - </li> - <li><strong>Digester 1.8</strong> - - <a href="http://jakarta.apache.org/commons/digester/">Commons Digester</a> - has been upgraded to - <a href="http://jakarta.apache.org/commons/digester/commons-digester-1.8/RELEASE-NOTES.txt">Version 1.8</a> - to fix issue <a href="http://issues.apache.org/jira/browse/DIGESTER-29">DIGESTER-29</a>. - </li> - </ul> - </subsection> - <a name="Highlight"/> - <subsection name="Highlights of Changes"> - <p> - The purpose of this section is to highlight the new - features since the - <a href="release-notes-1_3_5.html">Version 1.3.5 distribution.</a> - For more detail, see the Project Info reports for each - component, - which include a list of external dependencies. - </p> - <p> - You can also access to the Apache Struts source repository and - change logs directly through both - <a href="http://svn.apache.org/viewcvs.cgi/struts/struts1/trunk/?root=Apache-SVN"> - web browser</a> - and - <a href="http://www.apache.org/dev/version-control.html"> - Subversion client</a> - interfaces. - </p> - - <h4>Action ID</h4> - <p>An action mapping may now may be given an identifier by the new <code>actionId</code> - property which uniquely identifies the mapping within a module:</p> - -<pre> -<action path="/person/view" type="..." input="..."> - <set-property property="actionId" value="viewPersonAction" /> - <forward name="success" path="person.jsp" /> -</action> -</pre> - - <p>Just as the <code>TilesRequestProcessor</code> could recognize a tile definition - and resolve it to the intended JSP, so does Struts now have built-in - recognition for URIs that begin with an <code>actionId</code> and will automatically - translate forwards. Both these forwards below will be resolved internally - to <code>/person/view.do</code> (with parameters included): - </p> - -<pre> -<forward name="success" path="viewPersonAction" /> -<forward name="success" path="viewPersonAction?fruit=banana&color=yellow" /> -</pre> - - <p>You can effectively eliminate all URI management throughout the Struts configuration - files <b>and</b> within JSP. The tag libraries are also updated to recognize the - <code>actionId</code>:</p> - -<pre> -<html:form action="savePersonAction">...</html:form> -<html:link action="viewPersonAction">...</html:link> -</pre> - - <p>Note: It is good practice to name the <code>actionId</code> as <em>entityAction</em> - to distinguish the identifier from, perhaps, a Tiles definition named <em>entityPage</em>.</p> - - <h4>Internationalization (I18N) Tag Properties</h4> - - <p>Struts tag libraries now include the HTML I18N properties. This allows sites that - specialize in internationalization to specify both bi-directional text and language - at the tag level:</p> - -<pre> -<html:link action="viewPersonAction" dir="ltor" lang="es"/>vea a persona</html:link> -</pre> - - <h4>Dynamic Link Parameters</h4> - - <p>The Struts <code><html:link></code>, <code><html:frame></code>, - <code><html:rewrite></code> tag libaries now allow their bodies to nest the new - <code><html:param></code> tag. This is useful when it is awkward (or inappropriate) - to pass in existing parameters as a <code>Map</code>, which is still supported and will - be appened to any present <code><html:param></code> tags:</p> - -<pre> -<html:link action="viewPersonAction"> - View Profile of A Struts Developer - <html:param name="id" value="1" /> - <html:param name="name" value="Ted Husted" /> -</html:link> -</pre> - - <h4>Property MessageResources Modes</h4> - <p><code>PropertyMessageResources</code> now has a <i>compatibility mode</i> - option which allows it to be configured to operate in modes compatible with - either <i>JSTL</i> or <code>PropertyResourceBundle</code> (as well as the - <i>backwardly compatible</i> default mode). To use the new modes configure - the the message resources in the <code>struts-config.xml</code> in the - following way (<strong>note</strong> the use of the <strong>key</strong> attribute - in <code><set-property></code>): </p> - -<pre> -<message-resources parameter="...."> - <set-property key="mode" value="JSTL"/> // JSTL mode -</message-resources> - -<message-resources parameter="...."> - <set-property key="mode" value="resource"/> // PropertyResourceBundle mode -</message-resources> -</pre> - -<h3>Issue Tracking</h3> + <subsection name="Issue Tracking"> <h4>Bug</h4> <ul> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2894'>STR-2894</a>] - The <form-bean> type attribute should be optional</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2903'>STR-2903</a>] - MappingDispatchAction throws an error when mapping.getParameter returns null</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2916'>STR-2916</a>] - Arbitrary properties don't get copied when creating ActionRedirect objects based on an existing ForwardConfig</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2917'>STR-2917</a>] - ForwardConfig inheritance doesn't work when trying to inherit global forwards</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2920'>STR-2920</a>] - Broken link to "MessageResources" in user guide</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2922'>STR-2922</a>] - Broken Link in User Guide</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2932'>STR-2932</a>] - html:option tag does not apply any filtering to escape HTML-sensitive characters</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2935'>STR-2935</a>] - Tiles resource chain-config.xml missing RemovedCachedMessages and SetOriginalURI</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2936'>STR-2936</a>] - Incorrect validator name floatRange used in maxlength error</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2955'>STR-2955</a>] - extending action does not pick up the correct validate attribute</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2966'>STR-2966</a>] - s:commandLink doesn't work with Apache Trinidad or Oracle's ADF Faces</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2967'>STR-2967</a>] - html:image takes a "module-aware" path but does not allow module to be specified</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2971'>STR-2971</a>] - one of validator.Resources.getActionMessage method does not respect message's "bundle" attribute</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2972'>STR-2972</a>] - LazyValidatorForm cannot be saved in the session</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2973'>STR-2973</a>] - multiple lifecycle (FIXME in code)</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2977'>STR-2977</a>] - ELFormTagBeanInfo wrongly references ELTextTag</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2985'>STR-2985</a>] - Validate language and country according to RFC2616 in HtmlTag</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2987'>STR-2987</a>] - Scripting Mailreader: cannot log out</li> -</ul> - -<h4>Improvement</h4> -<ul> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2077'>STR-2077</a>] - Provide a <code>PropertyResourceBundle</code> compatibility option for PropertyMessageResources</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2925'>STR-2925</a>] - Provide a <i>JSTL</i> compatibility option for PropertyMessageResources</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2839'>STR-2839</a>] - Create aggregated Javadocs</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2951'>STR-2951</a>] - Various documentation improvements</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2952'>STR-2952</a>] - Maven build and infrastructure improvements</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2958'>STR-2958</a>] - ClassNotFoundExceptions are swallowed by FormPropertyConfig</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2980'>STR-2980</a>] - Typo in documentation: "indefinately"</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2981'>STR-2981</a>] - Adjust AbstractAuthorizeAction to allow custom code to throw its own UnauthorizedActionException</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2982'>STR-2982</a>] - Complete JavaDoc package summaries</li> +<li>[<a href='https://issues.apache.org/struts/browse/STR-3009'>STR-3009</a>] - ActionRedirect from ForwardConfig not redirecting properly?</li> +<li>[<a href='https://issues.apache.org/struts/browse/STR-3010'>STR-3010</a>] - Faces Example2 webapp references older DTD version in struts-config.xml which doesn't have the cancellable attribute</li> +<li>[<a href='https://issues.apache.org/struts/browse/STR-3011'>STR-3011</a>] - EL Example webapp has a number of errors</li> +<li>[<a href='https://issues.apache.org/struts/browse/STR-3012'>STR-3012</a>] - User guide does not have links to 1.3.5, 1.3.6, 1.3.7 release notes</li> </ul> - -<h4>New Feature</h4> -<ul> -<li>[<a href='http://issues.apache.org/struts/browse/STR-746'>STR-746</a>] - Add <html:param> for multiple parameters</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-1559'>STR-1559</a>] - Need Bidirectional support for RtoL languages in html:html tag</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2864'>STR-2864</a>] - Add actionId attribute to action mapping</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2983'>STR-2983</a>] - Provide a new <i>compressed</i> version of the validator-rules.xml (requires <a href='http://jakarta.apache.org/commons/validator/'>Commons Validator 1.3.1</a>)</li> -</ul> - -<h4>Task</h4> -<ul> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2942'>STR-2942</a>] - Use the DTDDoc plugin to generate HTML formatted DTD documentation</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2944'>STR-2944</a>] - Update the dtds whenever the top-level site is published</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2968'>STR-2968</a>] - ASF Source Header and Copyright Notice Policy</li> -<li>[<a href='http://issues.apache.org/struts/browse/STR-2978'>STR-2978</a>] - Struts 1.3.6 omnibus</li> -</ul> - - </subsection> +</subsection> <subsection> <p class="right">Next: Modified: struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/LinkTag.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/LinkTag.java?view=diff&rev=521984&r1=521983&r2=521984 ============================================================================== --- struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/LinkTag.java (original) +++ struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/LinkTag.java Fri Mar 23 23:30:50 2007 @@ -388,7 +388,7 @@ paramName = null; paramProperty = null; paramScope = null; - parameters = null; + parameters.clear(); property = null; scope = null; target = null;