cvs commit: jakarta-struts/contrib/struts-faces/web/example/WEB-INF struts-config.xml web.xml
craigmcc2004/03/07 16:40:49 Modified:contrib/struts-faces README.txt contrib/struts-faces/src/conf faces-config.xml struts-faces.xml contrib/struts-faces/src/example/org/apache/struts/webapp/example ApplicationResources.properties FacesPlugIn.java LinkSubscriptionTag.java RegistrationBacking.java SubscriptionForm.java contrib/struts-faces/src/java/org/apache/struts/faces/application ActionListenerImpl.java FacesRequestProcessor.java FacesTilesRequestProcessor.java PropertyResolverImpl.java contrib/struts-faces/src/java/org/apache/struts/faces/renderer AbstractRenderer.java BaseRenderer.java FormRenderer.java contrib/struts-faces/src/java/org/apache/struts/faces/taglib AbstractFacesTag.java BaseTag.java ErrorsTag.java FormTag.java HtmlTag.java MessageTag.java StylesheetTag.java SubviewTag.java WriteTag.java contrib/struts-faces/web/example index.jsp logon.jsp mainMenu.jsp registration.jsp stylesheet.css subscription.jsp contrib/struts-faces/web/example/WEB-INF struts-config.xml web.xml Added: contrib/struts-faces/src/java/org/apache/struts/faces/util MessagesMap.java StrutsContext.java Removed: contrib/struts-faces/src/java/org/apache/struts/faces/application ViewHandlerImpl.java contrib/struts-faces/src/java/org/apache/struts/faces/taglib LifecycleListener.java Log: Initial checkin of what will be Version 0.5 of the Struts-Faces Integration Library. This library is compatible with the final release of JavaServer Faces 1.0. The included README.txt file describes all of the changes. The second example (src/example2 and web/example2) has not been upgraded yet; that will occur shortly. Revision ChangesPath 1.7 +72 -21jakarta-struts/contrib/struts-faces/README.txt http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/README.txt.diff?r1=1.6r2=1.7 1.3 +30 -9 jakarta-struts/contrib/struts-faces/src/conf/faces-config.xml http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/conf/faces-config.xml.diff?r1=1.2r2=1.3 1.5 +38 -0 jakarta-struts/contrib/struts-faces/src/conf/struts-faces.xml http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/conf/struts-faces.xml.diff?r1=1.4r2=1.5 1.2 +16 -11 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/ApplicationResources.properties http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/ApplicationResources.properties.diff?r1=1.1r2=1.2 1.3 +7 -6 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/FacesPlugIn.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/FacesPlugIn.java.diff?r1=1.2r2=1.3 1.5 +8 -6 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionTag.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionTag.java.diff?r1=1.4r2=1.5 1.2 +82 -9 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/RegistrationBacking.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/RegistrationBacking.java.diff?r1=1.1r2=1.2 1.2 +27 -4 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/SubscriptionForm.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/SubscriptionForm.java.diff?r1=1.1r2=1.2 1.6 +45 -22 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/ActionListenerImpl.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/ActionListenerImpl.java.diff?r1=1.5r2=1.6 1.7 +275 -6 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/FacesRequestProcessor.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/FacesRequestProcessor.java.diff?r1=1.6r2=1.7 1.3 +273 -4 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/taglib LoadMessagesTag.java
craigmcc2004/03/07 16:42:15 Added: contrib/struts-faces/src/java/org/apache/struts/faces/taglib LoadMessagesTag.java Log: Forgot to add one source file. Revision ChangesPath 1.1 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/taglib/LoadMessagesTag.java Index: LoadMessagesTag.java === /* * $Header: /home/cvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/taglib/LoadMessagesTag.java,v 1.1 2004/03/08 00:42:15 craigmcc Exp $ * $Revision: 1.1 $ * $Date: 2004/03/08 00:42:15 $ * * * * The Apache Software License, Version 1.1 * * Copyright (c) 2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Struts, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * */ package org.apache.struts.faces.taglib; import java.util.Locale; import javax.faces.component.UIViewRoot; import javax.faces.context.FacesContext; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.TagSupport; import org.apache.struts.Globals; import org.apache.struts.faces.util.MessagesMap; import org.apache.struts.util.MessageResources; /** * pTag that exposes a specified codeMessageResources/code instance * as codeMap/code, so that the embedded messages may be retrieved via * value binding expressions./p */ public class LoadMessagesTag extends TagSupport { // -- Tag Attributes /** * pThe name of the codeMessageResources/code to expose, or * codenull/code for the default codeMessageResources/code * for this application module./p */ private String messages = null; public void setMessages(String messages) { this.messages = messages; } /** * pThe request attribute key under which a codeMap/code * will be exposed./p */ private String var = null; public void setVar(String var) { this.var = var; } // - Tag Methods /** * pExpose a codeMap/code wrapping the specified * codeMessageResources/code instance, for the codeLocale/code * specified in the view root component of the current
cvs commit: jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2 FacesPlugIn.java LinkSubscriptionTag.java LoggedOff.java LoggedOn.java RegistrationBacking.java
craigmcc2004/03/07 17:03:37 Modified:contrib/struts-faces build.properties.sample contrib/struts-faces/src/example2/org/apache/struts/webapp/example2 FacesPlugIn.java LinkSubscriptionTag.java LoggedOff.java LoggedOn.java RegistrationBacking.java Log: Clean up compile errors in the second example webapp. It still won't run. Revision ChangesPath 1.5 +3 -3 jakarta-struts/contrib/struts-faces/build.properties.sample Index: build.properties.sample === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/build.properties.sample,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- build.properties.sample 28 Dec 2003 22:03:27 - 1.4 +++ build.properties.sample 8 Mar 2004 01:03:37 - 1.5 @@ -25,8 +25,8 @@ # (JWSDP) Version 1.2 or later installation directory jwsdp.home=/usr/local/jwsdp-1.2 -# The absolute or relative pathname of the JavaServer Faces Beta Distribution -# Directory +# The absolute or relative pathname of the JavaServer Faces Final Release +# Distribution Directory jsf.home=/usr/local/jsf-1_0 # The absolute or relative pathname of the JSP Standard Tag Library 1.0 or later 1.2 +7 -6 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/FacesPlugIn.java Index: FacesPlugIn.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/FacesPlugIn.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FacesPlugIn.java 31 Dec 2003 07:17:48 - 1.1 +++ FacesPlugIn.java 8 Mar 2004 01:03:37 - 1.2 @@ -106,9 +106,10 @@ RenderKitFactory factory = (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY); RenderKit renderKit = -factory.getRenderKit(RenderKitFactory.DEFAULT_RENDER_KIT); +factory.getRenderKit(null, RenderKitFactory.HTML_BASIC_RENDER_KIT); renderKit.addRenderer -(LinkSubscription, +(javax.faces.Output, + org.apache.struts.webapp.example.LinkSubscription, new LinkSubscriptionRenderer()); } 1.2 +6 -6 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/LinkSubscriptionTag.java Index: LinkSubscriptionTag.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/LinkSubscriptionTag.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LinkSubscriptionTag.java 31 Dec 2003 07:17:48 - 1.1 +++ LinkSubscriptionTag.java 8 Mar 2004 01:03:37 - 1.2 @@ -151,7 +151,7 @@ if (name != null) { if (isValueReference(name)) { ValueBinding vb = -context.getApplication().createValueBinding(name); +getFacesContext().getApplication().createValueBinding(name); component.setValueBinding(name, vb); } else { component.getAttributes().put(name, name); @@ -160,7 +160,7 @@ if (page != null) { if (isValueReference(page)) { ValueBinding vb = -context.getApplication().createValueBinding(page); +getFacesContext().getApplication().createValueBinding(page); component.setValueBinding(page, vb); } else { component.getAttributes().put(page, page); 1.2 +3 -3 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/LoggedOff.java Index: LoggedOff.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/LoggedOff.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LoggedOff.java31 Dec 2003 07:17:48 - 1.1 +++ LoggedOff.java8 Mar 2004 01:03:37 - 1.2 @@ -132,7 +132,7 @@ private void forward(FacesContext context, String url) { try { -context.getExternalContext().dispatchMessage(url); +context.getExternalContext().dispatch(url); } catch (IOException e) { throw new FacesException(e); } finally { 1.2 +3 -3 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/LoggedOn.java Index
cvs commit: jakarta-struts/contrib/struts-faces/web/example2/WEB-INF struts-config.xml
craigmcc2004/03/07 17:13:01 Modified:contrib/struts-faces/web/example/WEB-INF struts-config.xml contrib/struts-faces/web/example2/WEB-INF struts-config.xml Removed: contrib/struts-faces/src/example/org/apache/struts/webapp/example FacesPlugIn.java LinkSubscriptionRenderer.java contrib/struts-faces/src/example2/org/apache/struts/webapp/example2 FacesPlugIn.java LinkSubscriptionRenderer.java Log: Remove obsolete integration files; the standard command buttons work fine. Revision ChangesPath 1.5 +0 -3 jakarta-struts/contrib/struts-faces/web/example/WEB-INF/struts-config.xml Index: struts-config.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/web/example/WEB-INF/struts-config.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- struts-config.xml 8 Mar 2004 00:40:49 - 1.4 +++ struts-config.xml 8 Mar 2004 01:13:01 - 1.5 @@ -167,7 +167,4 @@ /WEB-INF/validation.xml/ /plug-in - plug-in className=org.apache.struts.webapp.example.FacesPlugIn/ - - /struts-config 1.2 +0 -3 jakarta-struts/contrib/struts-faces/web/example2/WEB-INF/struts-config.xml Index: struts-config.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/web/example2/WEB-INF/struts-config.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- struts-config.xml 31 Dec 2003 07:17:49 - 1.1 +++ struts-config.xml 8 Mar 2004 01:13:01 - 1.2 @@ -180,7 +180,4 @@ /WEB-INF/validation.xml/ /plug-in - plug-in className=org.apache.struts.webapp.example2.FacesPlugIn/ - - /struts-config - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/web/example2/WEB-INF struts-config.xml tiles-defs.xml web.xml
craigmcc2004/03/07 18:40:57 Modified:contrib/struts-faces/web/example2 layout.jsp loggedoff.jsp loggedon.jsp logon.jsp mainMenu.jsp registration.jsp subscription.jsp contrib/struts-faces/web/example2/WEB-INF struts-config.xml tiles-defs.xml web.xml Log: First round fixup of the example2 (Tiles based) example application. Works at least through the display of the Edit Registration page. Revision ChangesPath 1.2 +2 -1 jakarta-struts/contrib/struts-faces/web/example2/layout.jsp Index: layout.jsp === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/web/example2/layout.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- layout.jsp31 Dec 2003 07:17:48 - 1.1 +++ layout.jsp8 Mar 2004 02:40:57 - 1.2 @@ -6,7 +6,8 @@ %@ taglib prefix=t uri=/WEB-INF/struts-tiles.tld % f:view - s:html locale=true + s:loadMessages var=messages/ + s:html locale=true head titles:message key=layout.title//title s:stylesheet path=/stylesheet.css/ 1.2 +13 -13jakarta-struts/contrib/struts-faces/web/example2/loggedoff.jsp Index: loggedoff.jsp === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/web/example2/loggedoff.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- loggedoff.jsp 31 Dec 2003 07:17:49 - 1.1 +++ loggedoff.jsp 8 Mar 2004 02:40:57 - 1.2 @@ -3,17 +3,17 @@ %@ taglib prefix=h uri=http://java.sun.com/jsf/html; % %@ taglib prefix=s uri=http://jakarta.apache.org/struts/tags-faces; % %@ taglib prefix=t uri=/WEB-INF/struts-tiles.tld % -h:form id=loggedoff - h:panel_grid columns=1 -h:command_link id=register - action=#{loggedOff.register} - immediate=true -s:message key=loggedoff.register/ -/h:command_link -h:command_link id=logon - action=#{loggedOff.logon} - immediate=true -s:message key=loggedoff.logon/ -/h:command_link - /h:panel_grid +h:formid=loggedoff + h:panelGridcolumns=1 +h:commandLink id=register + action=#{loggedOff.register} +immediate=true + s:message key=loggedoff.register/ +/h:commandLink +h:commandLink id=logon + action=#{loggedOff.logon} +immediate=true + s:message key=loggedoff.logon/ +/h:commandLink + /h:panelGrid /h:form 1.2 +8 -8 jakarta-struts/contrib/struts-faces/web/example2/loggedon.jsp Index: loggedon.jsp === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/web/example2/loggedon.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- loggedon.jsp 31 Dec 2003 07:17:49 - 1.1 +++ loggedon.jsp 8 Mar 2004 02:40:57 - 1.2 @@ -3,12 +3,12 @@ %@ taglib prefix=h uri=http://java.sun.com/jsf/html; % %@ taglib prefix=s uri=http://jakarta.apache.org/struts/tags-faces; % %@ taglib prefix=t uri=/WEB-INF/struts-tiles.tld % -h:form id=loggedon - h:panel_grid columns=1 -h:command_link id=logoff - action=#{loggedOn.logoff} - immediate=true - s:messagekey=loggedon.logoff/ -/h:command_link - /h:panel_grid +h:formid=loggedon + h:panelGridcolumns=1 +h:commandLink id=logoff + action=#{loggedOn.logoff} +immediate=true + s:message key=loggedon.logoff/ +/h:commandLink + /h:panelGrid /h:form 1.2 +38 -35jakarta-struts/contrib/struts-faces/web/example2/logon.jsp Index: logon.jsp === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/web/example2/logon.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- logon.jsp 31 Dec 2003 07:17:49 - 1.1 +++ logon.jsp 8 Mar 2004 02:40:57 - 1.2 @@ -5,53 +5,56 @@ s:errors/ -s:form action=/logon focus=username - onsubmit=return validateLogonForm(this); - - h:panel_grid - columns=2 -styleClass=form-background - headerClass=form-header - columnClasses=form-prompt,form-field - footerClass=form-footer +s:formaction=/logon +focus=username + onsubmit=return validateLogonForm(this); + + h:panelGridcolumns=2
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/util MessagesMap.java StrutsContext.java
craigmcc2004/03/07 18:49:55 Modified:contrib/struts-faces/src/example/org/apache/struts/webapp/example ApplicationMapping.java CheckLogonTag.java Constants.java EditRegistrationAction.java EditSubscriptionAction.java ExpiredPasswordException.java LinkSubscriptionTag.java LinkUserTag.java LogoffAction.java LogonAction.java LogonForm.java RegistrationBacking.java RegistrationForm.java SaveRegistrationAction.java SaveSubscriptionAction.java Subscription.java SubscriptionForm.java User.java UserDatabase.java contrib/struts-faces/src/example/org/apache/struts/webapp/example/memory MemoryDatabasePlugIn.java MemorySubscription.java MemoryUser.java MemoryUserDatabase.java contrib/struts-faces/src/example2/org/apache/struts/webapp/example2 ApplicationMapping.java CheckLogonTag.java Constants.java EditRegistrationAction.java EditSubscriptionAction.java ExpiredPasswordException.java LinkSubscriptionTag.java LinkUserTag.java LoggedOff.java LoggedOn.java LogoffAction.java LogonAction.java LogonForm.java RegistrationBacking.java RegistrationForm.java SaveRegistrationAction.java SaveSubscriptionAction.java Subscription.java SubscriptionForm.java User.java UserDatabase.java contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/memory MemoryDatabasePlugIn.java MemorySubscription.java MemoryUser.java MemoryUserDatabase.java contrib/struts-faces/src/java/org/apache/struts/faces Constants.java contrib/struts-faces/src/java/org/apache/struts/faces/application ActionListenerImpl.java FacesRequestProcessor.java FacesTilesRequestProcessor.java PropertyResolverImpl.java contrib/struts-faces/src/java/org/apache/struts/faces/component FormComponent.java contrib/struts-faces/src/java/org/apache/struts/faces/renderer AbstractRenderer.java BaseRenderer.java ErrorsRenderer.java FormRenderer.java HtmlRenderer.java MessageRenderer.java StylesheetRenderer.java WriteRenderer.java contrib/struts-faces/src/java/org/apache/struts/faces/taglib AbstractFacesTag.java BaseTag.java ErrorsTag.java FormTag.java HtmlTag.java JavascriptValidatorTag.java LoadMessagesTag.java MessageTag.java StylesheetTag.java SubviewTag.java WriteTag.java contrib/struts-faces/src/java/org/apache/struts/faces/util MessagesMap.java StrutsContext.java Log: ASL 2.0 (from automated Java tool in committers/relicense). Revision ChangesPath 1.2 +14 -59 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/ApplicationMapping.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/ApplicationMapping.java.diff?r1=1.1r2=1.2 1.3 +14 -59 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/CheckLogonTag.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/CheckLogonTag.java.diff?r1=1.2r2=1.3 1.2 +14 -59 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/Constants.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/Constants.java.diff?r1=1.1r2=1.2 1.2 +14 -59 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/EditRegistrationAction.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/EditRegistrationAction.java.diff?r1=1.1r2=1.2 1.2 +14 -59 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/EditSubscriptionAction.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/EditSubscriptionAction.java.diff?r1=1.1r2=1.2 1.3 +13 -58 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts
cvs commit: jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/util ClassUtils.java
craigmcc2004/03/07 18:50:54 Modified:contrib/struts-chain/src/java/org/apache/struts/chain AbstractAuthorizeAction.java AbstractExceptionHandler.java AbstractExecuteAction.java AbstractPerformForward.java AbstractPerformInclude.java AbstractPopulateActionForm.java AbstractRequestNoCache.java AbstractSelectAction.java AbstractSelectForward.java AbstractSelectInput.java AbstractSelectLocale.java AbstractSelectModule.java AbstractSetContentType.java AbstractValidateActionForm.java Constants.java CreateAction.java CreateActionForm.java ExceptionCatcher.java SelectInclude.java UnauthorizedActionException.java contrib/struts-chain/src/java/org/apache/struts/chain/legacy CatalogConfiguratorPlugIn.java ComposableRequestProcessor.java contrib/struts-chain/src/java/org/apache/struts/chain/servlet AuthorizeAction.java ExceptionHandler.java ExecuteAction.java PerformForward.java PerformInclude.java PopulateActionForm.java RequestNoCache.java SelectAction.java SelectForward.java SelectInput.java SelectLocale.java SelectModule.java SetContentType.java ValidateActionForm.java contrib/struts-chain/src/java/org/apache/struts/chain/util ClassUtils.java Log: ASL v2.0 license (using automated tool in committers/relicense). Revision ChangesPath 1.3 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractAuthorizeAction.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractAuthorizeAction.java.diff?r1=1.2r2=1.3 1.4 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExceptionHandler.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExceptionHandler.java.diff?r1=1.3r2=1.4 1.4 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExecuteAction.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExecuteAction.java.diff?r1=1.3r2=1.4 1.4 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPerformForward.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPerformForward.java.diff?r1=1.3r2=1.4 1.3 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPerformInclude.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPerformInclude.java.diff?r1=1.2r2=1.3 1.4 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPopulateActionForm.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPopulateActionForm.java.diff?r1=1.3r2=1.4 1.2 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractRequestNoCache.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractRequestNoCache.java.diff?r1=1.1r2=1.2 1.4 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectAction.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectAction.java.diff?r1=1.3r2=1.4 1.3 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectForward.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectForward.java.diff?r1=1.2r2=1.3 1.4 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectInput.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectInput.java.diff?r1=1.3r2=1.4 1.3 +14 -59 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectLocale.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectLocale.java.diff?r1=1.2r2=1.3 1.3 +14 -59
cvs commit: jakarta-struts/contrib/struts-chain/web/example/WEB-INF struts-config.xml
craigmcc2004/03/07 19:10:48 Modified:contrib/struts-chain LICENSE.txt build.xml project.xml contrib/struts-chain/src/conf chain-config.xml contrib/struts-chain/web/example/WEB-INF struts-config.xml Added: contrib/struts-chain NOTICE.txt Log: Manual changes for Apache License (version 2.0) for struts-chain. Revision ChangesPath 1.2 +197 -60 jakarta-struts/contrib/struts-chain/LICENSE.txt Index: LICENSE.txt === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/LICENSE.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LICENSE.txt 11 Aug 2003 04:55:34 - 1.1 +++ LICENSE.txt 8 Mar 2004 03:10:47 - 1.2 @@ -1,65 +1,202 @@ -/* - * $Header$ - * $Revision$ - * $Date$ - * - * - * - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999-2001 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - *notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - *notice, this list of conditions and the following disclaimer in - *the documentation and/or other materials provided with the - *distribution. - * - * 3. The end-user documentation included with the redistribution, if - *any, must include the following acknowlegement: - * This product includes software developed by the - *Apache Software Foundation (http://www.apache.org/). - *Alternately, this acknowlegement may appear in the software itself, - *if and wherever such third-party acknowlegements normally appear. - * - * 4. The names The Jakarta Project, Struts, and Apache Software - *Foundation must not be used to endorse or promote products derived - *from this software without prior written permission. For written - *permission, please contact [EMAIL PROTECTED] - * - * 5. Products derived from this software may not be called Apache - *nor may Apache appear in their names without prior written - *permission of the Apache Group. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * http://www.apache.org/. - * - */ + Apache License + Version 2.0, January 2004 +http://www.apache.org/licenses/ + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + 1. Definitions. + License shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + Licensor shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + Legal Entity shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + control means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + You (or Your) shall mean an individual or Legal Entity + exercising permissions granted by this License. + + Source form shall mean the preferred form for making modifications
cvs commit: jakarta-struts/contrib/struts-chain build.properties.sample
craigmcc2004/03/07 19:15:16 Modified:contrib/struts-chain build.properties.sample Log: Forgot one file. Revision ChangesPath 1.5 +20 -3 jakarta-struts/contrib/struts-chain/build.properties.sample Index: build.properties.sample === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/build.properties.sample,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- build.properties.sample 19 Jan 2004 22:22:02 - 1.4 +++ build.properties.sample 8 Mar 2004 03:15:16 - 1.5 @@ -1,6 +1,22 @@ # build.properties.sample # --- # +# == +# Copyright 2002,2004 The Apache Software Foundation. +# +# Licensed 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. +# == +# # This file contains example property settings that you would use to customzie # your build environment to build the Chain of Responsibility Library from # source code. To use this file, make a copy of it in build.properties and @@ -8,8 +24,9 @@ # # $Id$ # -### In order to build with Tomcat integration you must have the catalina-ant.jar in your CLASSPATH -### this is located under the jakarta-tomcat/server/lib directory +# In order to build with Tomcat integration you must have the catalina-ant.jar +# in your CLASSPATH. This file is located under the jakarta-tomcat/server/lib +# directory. # The absolute or relative pathname of the directory containing your - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/web/example2/WEB-INF action.xml app.tld database.xml faces-config.xml struts-config.xml tiles-defs.xml validation.xml web.xml
craigmcc2003/12/30 23:17:49 Modified:contrib/struts-faces README.txt build.xml contrib/struts-faces/src/conf struts-faces.xml contrib/struts-faces/src/java/org/apache/struts/faces/taglib JavascriptValidatorTag.java LifecycleListener.java Added: contrib/struts-faces/src/example2/org/apache/struts/webapp/example2 ApplicationMapping.java ApplicationResources.properties ApplicationResources_ja.properties ApplicationResources_ru.properties CheckLogonTag.java Constants.java EditRegistrationAction.java EditSubscriptionAction.java ExpiredPasswordException.java FacesPlugIn.java LinkSubscriptionRenderer.java LinkSubscriptionTag.java LinkUserTag.java LoggedOff.java LoggedOn.java LogoffAction.java LogonAction.java LogonForm.java RegistrationBacking.java RegistrationForm.java SaveRegistrationAction.java SaveSubscriptionAction.java Subscription.java SubscriptionForm.java User.java UserDatabase.java contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/memory MemoryDatabasePlugIn.java MemorySubscription.java MemoryUser.java MemoryUserDatabase.java contrib/struts-faces/src/java/org/apache/struts/faces/application FacesTilesRequestProcessor.java ViewHandlerImpl.java contrib/struts-faces/src/java/org/apache/struts/faces/taglib SubviewTag.java contrib/struts-faces/web/example2 blank.jsp changePassword.jsp footer.jsp header.jsp index.jsp layout.jsp layout1.jsp loggedoff.jsp loggedon.jsp logon.jsp mainMenu.jsp menu.jsp registration.jsp staticJavascript.jsp struts-power.gif stylesheet.css subscription.jsp tour.htm welcome.jsp contrib/struts-faces/web/example2/WEB-INF action.xml app.tld database.xml faces-config.xml struts-config.xml tiles-defs.xml validation.xml web.xml Log: Commit the initial adjustments to the Struts-Faces Integration Library sources to support Tiles, plus a *partially* completed Tilesization of the canonical Struts example app to demonstrate that the Tiles-based approach works successfully. This code is *definitely* not ready for prime time yet; however, active assistance in debugging the remaining problems is definitely solicited. Revision ChangesPath 1.6 +25 -14jakarta-struts/contrib/struts-faces/README.txt http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/README.txt.diff?r1=1.5r2=1.6 1.8 +132 -4jakarta-struts/contrib/struts-faces/build.xml http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/build.xml.diff?r1=1.7r2=1.8 1.4 +26 -0 jakarta-struts/contrib/struts-faces/src/conf/struts-faces.xml http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/conf/struts-faces.xml.diff?r1=1.3r2=1.4 1.1 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/ApplicationMapping.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/ApplicationMapping.java?rev=1.1 1.1 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/ApplicationResources.properties http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/ApplicationResources.properties?rev=1.1 1.1 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/ApplicationResources_ja.properties http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/ApplicationResources_ja.properties?rev=1.1 1.1 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/ApplicationResources_ru.properties http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/ApplicationResources_ru.properties?rev=1.1 1.1 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/CheckLogonTag.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2
cvs commit: jakarta-struts/contrib/struts-faces/web/example/WEB-INF struts-config.xml
craigmcc2003/12/29 14:45:52 Modified:contrib/struts-faces README.txt contrib/struts-faces/src/java/org/apache/struts/faces/application ActionListenerImpl.java contrib/struts-faces/src/java/org/apache/struts/faces/taglib LifecycleListener.java contrib/struts-faces/web/example/WEB-INF struts-config.xml Log: Modify the way that an application is configured to use the struts-faces integration library such that you must explicitly identify the request processor class to use in a controller element in struts-config.xml. This will pave the way for integration with Tiles, as well as support the use of the integration library in Struts apps with multiple sub-app modules. Revision ChangesPath 1.5 +19 -2 jakarta-struts/contrib/struts-faces/README.txt Index: README.txt === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/README.txt,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- README.txt24 Dec 2003 04:47:55 - 1.4 +++ README.txt29 Dec 2003 22:45:52 - 1.5 @@ -159,7 +159,7 @@ application -- Integrate with ActionListener, custom PropertyResolver, - custom RequestProcessor + custom RequestProcessor(s) component -- Custom JavaServer Faces component implementations (only Form for now) @@ -209,6 +209,7 @@ http://java.sun.com/j2se/ + Install a Servlet Container: --- @@ -453,6 +454,17 @@ library counterparts, and the expression language syntax is the same as that used for value reference expressions. +* Modify your struts-config.xml file to include identification of the custom + request processor implementation class to be used, by adding the following + element in the appropriate location (typically just before any existing + message-resources and plug-in elements): + +controller + set-property property=processorClass + value=org.apache.struts.faces.application.FacesRequestProcessor/ +/controller + + * For each JSP page that you have modified to use JavaServer Faces components instead of traditional Struts tags, modify any forward elements in your webapp's struts-config.xml file to include /faces @@ -478,6 +490,11 @@ immediate=false (which is the default value) that are nested inside a Struts-Faces s:form tag will be forwarded through the normal Struts request processing lifecycle. + +* If your application contains cancel buttons rendered by the html:cancel + tag, you should replace them with an h:command_button that has an + id attribute set to cancel in order for this button to be recognized + by Struts as a cancel button. * If your application itself provides additional UIComponent and/or Renderer implementations, you must register them with the default 1.4 +58 -7 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/ActionListenerImpl.java Index: ActionListenerImpl.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/ActionListenerImpl.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ActionListenerImpl.java 24 Dec 2003 03:21:01 - 1.3 +++ ActionListenerImpl.java 29 Dec 2003 22:45:52 - 1.4 @@ -80,6 +80,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts.Globals; +import org.apache.struts.action.ActionServlet; import org.apache.struts.action.RequestProcessor; import org.apache.struts.config.ModuleConfig; import org.apache.struts.faces.Constants; @@ -186,9 +187,8 @@ log.trace(Assigned to module with prefix ' + moduleConfig.getPrefix() + '); } -RequestProcessor processor = (RequestProcessor) -servletContext.getAttribute -(Globals.REQUEST_PROCESSOR_KEY + moduleConfig.getPrefix()); +RequestProcessor processor = +getRequestProcessor(moduleConfig, servletContext); if (log.isTraceEnabled()) { log.trace(Invoking request processor instance + processor); } @@ -205,5 +205,56 @@ // -- Protected Methods + +/** + * pLook up and return the codeRequestProcessor/code
cvs commit: jakarta-struts/contrib/struts-faces/web/example2 - New directory
craigmcc2003/12/29 15:13:09 jakarta-struts/contrib/struts-faces/web/example2 - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/web/example2/WEB-INF - New directory
craigmcc2003/12/29 15:13:17 jakarta-struts/contrib/struts-faces/web/example2/WEB-INF - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example2 - New directory
craigmcc2003/12/29 15:13:36 jakarta-struts/contrib/struts-faces/src/example2 - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example2/org - New directory
craigmcc2003/12/29 15:13:46 jakarta-struts/contrib/struts-faces/src/example2/org - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example2/org/apache - New directory
craigmcc2003/12/29 15:13:55 jakarta-struts/contrib/struts-faces/src/example2/org/apache - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts - New directory
craigmcc2003/12/29 15:14:07 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp - New directory
craigmcc2003/12/29 15:14:16 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2 - New directory
craigmcc2003/12/29 15:14:24 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2 - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/memory - New directory
craigmcc2003/12/29 15:30:14 jakarta-struts/contrib/struts-faces/src/example2/org/apache/struts/webapp/example2/memory - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application FacesRequestProcessor.java
craigmcc2003/12/28 14:03:28 Modified:contrib/struts-faces build.properties.sample build.xml contrib/struts-faces/src/java/org/apache/struts/faces/application FacesRequestProcessor.java Log: Tweak the build scripts and sample properties for refined prerequisites. Remove now-obsolete code from the FacesRequestProcessor class, in prep for refining how the Faces environment gets itself initialized. Revision ChangesPath 1.4 +14 -16jakarta-struts/contrib/struts-faces/build.properties.sample Index: build.properties.sample === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/build.properties.sample,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- build.properties.sample 24 Dec 2003 03:21:01 - 1.3 +++ build.properties.sample 28 Dec 2003 22:03:27 - 1.4 @@ -13,8 +13,8 @@ # Uncomment the following property setting to build web applications that will # include all of the required libraries, and therefore run on containers other -# than the Java Web Services Developer Pack (JWSDP) 1.2 Release, which makes -# many of these libraries available to web applications already +# than the Java Web Services Developer Pack (JWSDP) 1.2 or later, which makes +# many of these libraries available to web applications already. # build.standalone=true @@ -22,13 +22,17 @@ # -- DEPENDENCY HOME DIRECTORIES -- # The absolute or relative pathname of the Java Web Services Developer Pack -# (JWSDP) Version 1.2 installation directory +# (JWSDP) Version 1.2 or later installation directory jwsdp.home=/usr/local/jwsdp-1.2 # The absolute or relative pathname of the JavaServer Faces Beta Distribution # Directory jsf.home=/usr/local/jsf-1_0 +# The absolute or relative pathname of the JSP Standard Tag Library 1.0 or later +# distribution directory +jstl.home=${jwsdp.home}/jstl + # The absolute or relative pathname of the Struts 1.1 (or later) # Distribution Directory struts.home=/usr/local/jakarta-struts-1.1 @@ -37,16 +41,13 @@ # -- DEPENDENCY LIBRARY PATHS - # The absolute or relative pathname of the Commons Beanutils Library -commons-beanutils.jar=${jwsdp.home}/jwsdp-shared/lib/commons-beanutils.jar +commons-beanutils.jar=${struts.home}/lib/commons-beanutils.jar # The absolute or relative pathname of the Commons Collections Library -commons-collections.jar=${jwsdp.home}/jwsdp-shared/lib/commons-collections.jar - -# The absolute or relative pathname of the Commons DBCP Library -commons-dbcp.jar=${jwsdp.home}/common/lib/commons-dbcp.jar +commons-collections.jar=${struts.home}/lib/commons-collections.jar # The absolute or relative pathname of the Commons Digester Library -commons-digester.jar=${jwsdp.home}/jwsdp-shared/lib/commons-digester.jar +commons-digester.jar=${struts.home}/lib/commons-digester.jar # The absolute or relative pathname of the Commons FileUpload Library commons-fileupload.jar=${struts.home}/lib/commons-fileupload.jar @@ -55,10 +56,7 @@ commons-lang.jar=${struts.home}/lib/commons-lang.jar # The absolute or relative pathname of the Commons Logging Library -commons-logging.jar=${jwsdp.home}/jwsdp-shared/lib/commons-logging.jar - -# The absolute or relative pathname of the Commons Pool Library -commons-pool.jar=${jwsdp.home}/common/lib/commons-pool.jar +commons-logging.jar=${struts.home}/lib/commons-logging.jar # The absolute or relative pathname of the Commons Validator Library commons-validator.jar=${struts.home}/lib/commons-validator.jar @@ -76,7 +74,7 @@ # The absolute or relative pathname of the JSP Standard Tag Library # (JSTL) API Classes -jstl.jar=${jsf-impl.home}/lib/jstl.jar +jstl.jar=${jstl.home}/lib/jstl.jar # The absolute or relative pathname of the Servlet 2.4 API Classes # (or a combined Servlet 2.3 / JSP 1.2 API classes JAR file) @@ -84,7 +82,7 @@ # The absolute or relative pathname of the JSP Standard Tag Library # (JSTL) RI Classes -standard.jar=${jsf-impl.home}/lib/standard.jar +standard.jar=${jstl.home}/lib/standard.jar # The absolute or relative pathname of the Struts Runtime Library struts.jar=${struts.home}/lib/struts.jar 1.7 +13 -22jakarta-struts/contrib/struts-faces/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/build.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- build.xml 24 Dec 2003 03:21:01 - 1.6 +++ build.xml 28 Dec 2003 22:03:27 - 1.7 @@ -13,35 +13,32 @@ !-- Dependency home
cvs commit: jakarta-struts/contrib/struts-faces/web/example/WEB-INF faces-config.xml struts-config.xml
craigmcc2003/12/23 19:21:02 Modified:contrib/struts-faces build.properties.sample build.xml contrib/struts-faces/src/conf struts-faces.xml contrib/struts-faces/src/example/org/apache/struts/webapp/example LinkSubscriptionRenderer.java LinkSubscriptionTag.java LinkUserTag.java SaveSubscriptionAction.java contrib/struts-faces/src/java/org/apache/struts/faces/application ActionListenerImpl.java FacesRequestProcessor.java contrib/struts-faces/src/java/org/apache/struts/faces/component FormComponent.java contrib/struts-faces/src/java/org/apache/struts/faces/renderer AbstractRenderer.java BaseRenderer.java ErrorsRenderer.java FormRenderer.java HtmlRenderer.java MessageRenderer.java StylesheetRenderer.java WriteRenderer.java contrib/struts-faces/src/java/org/apache/struts/faces/taglib AbstractFacesTag.java BaseTag.java ErrorsTag.java FormTag.java HtmlTag.java LifecycleListener.java MessageTag.java StylesheetTag.java WriteTag.java contrib/struts-faces/web/example logon.jsp mainMenu.jsp registration.jsp subscription.jsp contrib/struts-faces/web/example/WEB-INF struts-config.xml Added: contrib/struts-faces/src/example/org/apache/struts/webapp/example RegistrationBacking.java contrib/struts-faces/src/java/org/apache/struts/faces/taglib JavascriptValidatorTag.java contrib/struts-faces/web/example/WEB-INF faces-config.xml Removed: contrib/struts-faces/src/java/org/apache/struts/faces/taglib OutputBodyTag.java Log: Initial check-in to bring the struts-faces integration library up to date with the beta release of JavaServer Faces 1.0. So far, interoperation with the Validation framework operates correctly, but a little more work is needed on working with Tiles. Revision ChangesPath 1.3 +9 -9 jakarta-struts/contrib/struts-faces/build.properties.sample http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/build.properties.sample.diff?r1=1.2r2=1.3 1.6 +8 -7 jakarta-struts/contrib/struts-faces/build.xml http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/build.xml.diff?r1=1.5r2=1.6 1.3 +13 -58jakarta-struts/contrib/struts-faces/src/conf/struts-faces.xml http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/conf/struts-faces.xml.diff?r1=1.2r2=1.3 1.4 +15 -17 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionRenderer.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionRenderer.java.diff?r1=1.3r2=1.4 1.4 +26 -15 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionTag.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionTag.java.diff?r1=1.3r2=1.4 1.3 +5 -5 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkUserTag.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkUserTag.java.diff?r1=1.2r2=1.3 1.3 +9 -5 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/SaveSubscriptionAction.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/SaveSubscriptionAction.java.diff?r1=1.2r2=1.3 1.1 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/RegistrationBacking.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/RegistrationBacking.java?rev=1.1 1.3 +51 -18 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/ActionListenerImpl.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/ActionListenerImpl.java.diff?r1=1.2r2=1.3 1.4 +39 -28 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/FacesRequestProcessor.java http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/FacesRequestProcessor.java.diff?r1=1.3r2=1.4 1.4 +65 -21 jakarta-struts/contrib/struts-faces/src/java/org
cvs commit: jakarta-struts/contrib/struts-faces README.txt
craigmcc2003/12/23 20:47:55 Modified:contrib/struts-faces README.txt Log: First round of updates to the README.txt file for recent changes. Revision ChangesPath 1.4 +91 -54jakarta-struts/contrib/struts-faces/README.txt Index: README.txt === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/README.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- README.txt27 Nov 2003 23:01:22 - 1.3 +++ README.txt24 Dec 2003 04:47:55 - 1.4 @@ -13,7 +13,7 @@ to use JavaServer Faces tags, as well as tags from the JSP Standard Tag Library (JSTL), version 1.0 or later. -Note that this software is based on the Early Access 4 release of +Note that this software is based on the Beta release of JavaServer Faces technology, and is itself very new. Therefore, it is appropriate only for evaluation and learning, and not yet appropriate for production application deployments. @@ -29,8 +29,28 @@ NEW AND REVISED FEATURES: -This release of the Struts-Faces Integration Library (Version 0.4) has the -following new features relative to the previous (0.3) release: +This release of the Struts-Faces Integration Library (Version 0.5) has the +following new features relative to the previous (0.4) release: + +* It is now possible to mix pure JavaServer Faces pages, and those + using the struts-faces integration library, in the same webapp. Previously, + it was required to use only Stuts-based handlers for form submts. + +* All attributes of the component tags in the Struts-Faces integration library + have been value binding enabled, meaning you can use value binding + expressions (#{...}) to calculate attribute values dynamically. + +This release of the Struts-Faces Integration Library (Version 0.5) has the +following revised features relative to the previous (0.4) release: + +* The focus attribute on the s:form tag should work properly + in all cases now. + +* Integration with the Validator Framework should work properly + in all cases now. + +The previous release of the Struts-Faces Integration Library (Version 0.4) +had the following new features relative to the previous (0.3) release: * Value reference expressions in valueRef attributes of UI component tags can now recognize and support the properties of DynaBeans directly, thanks @@ -38,8 +58,8 @@ JavaServer Faces 1.0ea4. For backwards compatibility, the .map pseudo-property on DynaActionForm and its subclasses is still recognized. -This release of the Struts-Faces Integration Library (Version 0.4) has the -following revised features relative to the previous (0.3) release: +The previous release of the Struts-Faces Integration Library (Version 0.4) +had the following revised features relative to the previous (0.3) release: * In all UI tags for input and output components, the modelReference attribute has been replaced with valueRef, for consistency with @@ -185,58 +205,69 @@ The Struts-Faces integration library requires a Java Development Kit (not the Java Runtime Environment), version 1.3 or later. It was tested against -Sun's JDK 1.4.1_01 release, available at: +Sun's JDK 1.4.2 release, available at: http://java.sun.com/j2se/ -Install the Java Web Services Developer Pack 1.2ea Release: --- - -The JavaServer Faces reference implementation EA4 release is included in the -overall Java Web Services Developer Pack (1.2ea) release that may be downloaded -from: - -http://java.sun.com/webservices/webservicespack.html - -Follow the directions on this page to execute the included installer, which -will install the JWSDP release into a convenient directory. You should select -the configuration option to install the included Tomcat servlet and JSP -container. +Install a Servlet Container: +--- -The JavaServer Faces release is located in the jsf subdirectory of this -distribution. It has also been integrated into the servlet container that -is provided by the JWSDP, along with several example applications that -illustrate the use of JavaServer Faces APIs and tag libraries. +The JavaServer Faces reference implementation beta release has been tested +against Tomcat 5.0.16, but should run in any container that supports the +Servlet 2.3 and JSP 1.2 specifications. + +If you attempt to run the example program in a servlet container that has a +version of JavaServer Faces installed already (such as the Java Web Services +Developer Pack, version 1.2 or 1.3), you must take one of the following two +actions before you can successfully use the new Struts-Faces Integration Library
cvs commit: jakarta-struts/doc/resources archives.xml consultants.xml powered.xml sigs.xml
craigmcc2003/11/11 13:23:32 Modified:contrib/struts-faces build.xml doc learning.xml using.xml doc/faqs kickstart.xml doc/news news_2001.xml news_2002_q2.xml news_2002_q3.xml news_2002_q4.xml news_2003_q1.xml news_2003_q2.xml news_2003_q3.xml doc/resources archives.xml consultants.xml powered.xml sigs.xml Log: Vic Cekvenich of BaseBeans.com has made it clear in public postings that he is ashamed of using Struts, and has engaged in an attack on the proper behavior of the Apache Software Foundation's Board of Directors. In these circumstances, it would be hypocritical for BaseBeans to benefit from the free advertising value of being visible on the Struts web site. Help them out of this conundrum by removing such references. Revision ChangesPath 1.4 +131 -4jakarta-struts/contrib/struts-faces/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/build.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- build.xml 9 Aug 2003 19:29:30 - 1.3 +++ build.xml 11 Nov 2003 21:23:32 - 1.4 @@ -88,6 +88,7 @@ property name=username value=tomcat/ property name=example.path value=/struts-faces/ + property name=stf.path value=/struts-tiles-faces/ !-- = LIBRARY: Maintenance = -- @@ -312,7 +313,7 @@ !-- = EXAMPLE: Tomcat Integration = -- - target name=install depends=example.compile + target name=example.install depends=example.compile description=Install example webapp on Tomcat install url=${url} username=${username} password=${password} path=${example.path} @@ -320,24 +321,142 @@ /target - target name=reload depends=example.compile + target name=example.reload depends=example.compile description=Reload example webapp on Tomcat reload url=${url} username=${username} password=${password} path=${example.path}/ /target - target name=remove + target name=example.remove description=Remove example webapp from Tomcat remove url=${url} username=${username} password=${password} path=${example.path}/ /target + !-- = STF: Create Webapp -- + + + target name=stf.prepare depends=library + +echo message= ${project.name} STF Webapp -/ +mkdir dir=${build.home}/webapps/ +mkdir dir=${build.home}/webapps/stf/ + + /target + + + target name=stf.static depends=stf.prepare + +!-- Copy static web resources -- +copytodir=${build.home}/webapps/stf + fileset dir=web/stf/ +/copy + +!-- Copy required configuration files -- +copytodir=${build.home}/webapps/stf/WEB-INF + fileset dir=${struts.home}/lib +include name=*.tld/ +include name=valid*.xml/ + /fileset +/copy + +!-- Copy required library JAR files -- +mkdir dir=${build.home}/webapps/stf/WEB-INF/lib/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${build.home}/lib/struts-faces.jar/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-beanutils.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-collections.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-digester.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-fileupload.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-lang.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-logging.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-validator.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${struts.jar}/ + + /target + + + target name=stf.libraries depends=stf.static +if=build.standalone + +!-- Copy libraries required for standalone use only -- +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-dbcp.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${commons-pool.jar}/ +copytodir=${build.home}/webapps/stf/WEB-INF/lib + file=${jsf-api.jar}/ +copytodir
cvs commit: jakarta-struts/contrib/struts-faces build.xml
craigmcc2003/11/11 13:33:47 Modified:contrib/struts-faces build.xml Log: Oops, this update is not ready to check in yet. Revision ChangesPath 1.5 +4 -131jakarta-struts/contrib/struts-faces/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/build.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- build.xml 11 Nov 2003 21:23:32 - 1.4 +++ build.xml 11 Nov 2003 21:33:47 - 1.5 @@ -88,7 +88,6 @@ property name=username value=tomcat/ property name=example.path value=/struts-faces/ - property name=stf.path value=/struts-tiles-faces/ !-- = LIBRARY: Maintenance = -- @@ -313,7 +312,7 @@ !-- = EXAMPLE: Tomcat Integration = -- - target name=example.install depends=example.compile + target name=install depends=example.compile description=Install example webapp on Tomcat install url=${url} username=${username} password=${password} path=${example.path} @@ -321,142 +320,24 @@ /target - target name=example.reload depends=example.compile + target name=reload depends=example.compile description=Reload example webapp on Tomcat reload url=${url} username=${username} password=${password} path=${example.path}/ /target - target name=example.remove + target name=remove description=Remove example webapp from Tomcat remove url=${url} username=${username} password=${password} path=${example.path}/ /target - !-- = STF: Create Webapp -- - - - target name=stf.prepare depends=library - -echo message= ${project.name} STF Webapp -/ -mkdir dir=${build.home}/webapps/ -mkdir dir=${build.home}/webapps/stf/ - - /target - - - target name=stf.static depends=stf.prepare - -!-- Copy static web resources -- -copytodir=${build.home}/webapps/stf - fileset dir=web/stf/ -/copy - -!-- Copy required configuration files -- -copytodir=${build.home}/webapps/stf/WEB-INF - fileset dir=${struts.home}/lib -include name=*.tld/ -include name=valid*.xml/ - /fileset -/copy - -!-- Copy required library JAR files -- -mkdir dir=${build.home}/webapps/stf/WEB-INF/lib/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${build.home}/lib/struts-faces.jar/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-beanutils.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-collections.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-digester.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-fileupload.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-lang.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-logging.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-validator.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${struts.jar}/ - - /target - - - target name=stf.libraries depends=stf.static -if=build.standalone - -!-- Copy libraries required for standalone use only -- -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-dbcp.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${commons-pool.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${jsf-api.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${jsf-ri.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${jstl.jar}/ -copytodir=${build.home}/webapps/stf/WEB-INF/lib - file=${standard.jar}/ - - /target - - - target name=stf.compile depends=stf.libraries - -!-- Compile Java Sources -- -mkdir dir=${build.home}/webapps/stf/WEB-INF/classes/ -javac srcdir=src/stf - destdir=${build.home}/webapps/stf/WEB-INF/classes - debug=${compile.debug} - deprecation=${compile.deprecation} - optimize=${compile.optimize} - classpath refid=classpath / -/javac
cvs commit: jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain AbstractExecuteAction.java AbstractSelectInput.java AbstractValidateActionForm.java Constants.java CreateAction.java
craigmcc2003/10/09 21:26:16 Modified:contrib/struts-chain/src/conf chain-config.xml contrib/struts-chain/src/java/org/apache/struts/chain AbstractExecuteAction.java AbstractSelectInput.java AbstractValidateActionForm.java Constants.java CreateAction.java Log: As discussed on STRUTS-DEV, flatten the standard request processing chain so that validation failures store a success/failure state in the Context, which is then used by the SelectInput, CreateAction, and ExecuteAction commands to determine whether they should actually be performed or not. At the moment, the processing chain for exception handling is still modelled as a branch, because it seems likely that users will want to customize this path without wanting to mess with the normal lifecycle. Revision ChangesPath 1.5 +7 -25 jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml Index: chain-config.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- chain-config.xml 31 Aug 2003 22:42:45 - 1.4 +++ chain-config.xml 10 Oct 2003 04:26:16 - 1.5 @@ -135,8 +135,12 @@ !-- Validate the ActionForm for this request -- command - className=org.apache.struts.chain.servlet.ValidateActionForm - failureCommand=servlet-validation-failure/ + className=org.apache.struts.chain.servlet.ValidateActionForm/ + + + !-- Select the appropriate ForwardConfig for return to input page -- + command + className=org.apache.struts.chain.servlet.SelectInput/ !-- Create (if needed) the Action for this request -- @@ -173,28 +177,6 @@ !-- Execute the configured exception handler (if any) -- command className=org.apache.struts.chain.servlet.ExceptionHandler/ - - !-- Follow the returned ForwardConfig (if any) -- - command - className=org.apache.struts.chain.servlet.PerformForward/ - -/chain - - -!-- == Servlet Validation Failure Chain === -- - -chain name=servlet-validation-failure - - !-- - This chain is designed to be invoked (by o.a.s.c.ValidateActionForm) - if a validation failure occurs. The standard behavior is to obey - the input property of the current ActionConfig, and forward back - to the input page. - -- - - !-- Select the appropriate ForwardConfig for return to input page -- - command - className=org.apache.struts.chain.servlet.SelectInput/ !-- Follow the returned ForwardConfig (if any) -- command 1.3 +35 -4 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExecuteAction.java Index: AbstractExecuteAction.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExecuteAction.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AbstractExecuteAction.java29 Sep 2003 06:55:07 - 1.2 +++ AbstractExecuteAction.java10 Oct 2003 04:26:16 - 1.3 @@ -89,6 +89,7 @@ private String actionConfigKey = Constants.ACTION_CONFIG_KEY; private String actionFormKey = Constants.ACTION_FORM_KEY; private String forwardConfigKey = Constants.FORWARD_CONFIG_KEY; +private String validKey = Constants.VALID_KEY; // -- Properties @@ -198,6 +199,30 @@ } +/** + * pReturn the context attribute key under which the + * validity flag for this request is stored./p + */ +public String getValidKey() { + +return (this.validKey); + +} + + +/** + * pSet the context attribute key under which the + * validity flag for this request is stored./p + * + * @param validKey The new context attribute key + */ +public void setValidKey(String validKey) { + +this.validKey = validKey; + +} + + // -- Public Methods @@ -213,6 +238,12 @@ * @return codefalse/code so that processing continues */ public boolean execute(Context context) throws Exception { + +// Skip processing if the current request is not valid +Boolean valid = (Boolean) context.get(getValidKey()); +if ((valid == null) || !valid.booleanValue()) { +return (false
cvs commit: jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet ExceptionHandler.java SelectAction.java
craigmcc2003/09/28 23:55:08 Modified:contrib/struts-chain/src/java/org/apache/struts/chain AbstractExceptionHandler.java AbstractExecuteAction.java AbstractPerformForward.java AbstractPopulateActionForm.java AbstractSelectAction.java AbstractSelectInput.java AbstractSelectLocale.java AbstractSelectModule.java AbstractValidateActionForm.java CreateAction.java CreateActionForm.java ExceptionCatcher.java contrib/struts-chain/src/java/org/apache/struts/chain/legacy ComposableRequestProcessor.java contrib/struts-chain/src/java/org/apache/struts/chain/servlet ExceptionHandler.java SelectAction.java Log: Correct compile errors due to the has-a Map to is-a Map transition in jaarta-commons-sandbox/chain. Revision ChangesPath 1.2 +8 -8 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExceptionHandler.java Index: AbstractExceptionHandler.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExceptionHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AbstractExceptionHandler.java 31 Aug 2003 21:53:00 - 1.1 +++ AbstractExceptionHandler.java 29 Sep 2003 06:55:07 - 1.2 @@ -220,7 +220,7 @@ // Look up the exception that was thrown Exception exception = (Exception) -context.getAttributes().get(getExceptionKey()); +context.get(getExceptionKey()); if (exception == null) { log.warn(No Exception found under key ' + getExceptionKey() + '); @@ -230,9 +230,9 @@ // Look up the local or global exception handler configuration ExceptionConfig exceptionConfig = null; ActionConfig actionConfig = (ActionConfig) -context.getAttributes().get(getActionConfigKey()); +context.get(getActionConfigKey()); ModuleConfig moduleConfig = (ModuleConfig) -context.getAttributes().get(getModuleConfigKey()); +context.get(getModuleConfigKey()); if (actionConfig != null) { exceptionConfig = actionConfig.findExceptionConfig(exception.getClass().getName()); @@ -250,7 +250,7 @@ handle(context, exception, exceptionConfig, actionConfig, moduleConfig); if (forwardConfig != null) { -context.getAttributes().put(getForwardConfigKey(), forwardConfig); +context.put(getForwardConfigKey(), forwardConfig); return (false); } else { return (true); 1.2 +8 -8 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExecuteAction.java Index: AbstractExecuteAction.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExecuteAction.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AbstractExecuteAction.java11 Aug 2003 04:55:34 - 1.1 +++ AbstractExecuteAction.java29 Sep 2003 06:55:07 - 1.2 @@ -216,19 +216,19 @@ // Acquire the resources we will need to send to the Action Action action = (Action) -context.getAttributes().get(getActionKey()); +context.get(getActionKey()); if (action == null) { return (false); } ActionConfig actionConfig = (ActionConfig) -context.getAttributes().get(getActionConfigKey()); +context.get(getActionConfigKey()); ActionForm actionForm = (ActionForm) -context.getAttributes().get(getActionFormKey()); +context.get(getActionFormKey()); // Execute the Action for this request, caching returned ActionForward ForwardConfig forwardConfig = execute(context, action, actionConfig, actionForm); -context.getAttributes().put(getForwardConfigKey(), forwardConfig); +context.put(getForwardConfigKey(), forwardConfig); return (false); 1.2 +5 -5 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPerformForward.java Index: AbstractPerformForward.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPerformForward.java,v
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/renderer BaseRenderer.java
craigmcc2003/09/20 16:34:35 Modified:contrib/struts-faces/src/conf faces-config.xml contrib/struts-faces/src/java/org/apache/struts/faces/renderer BaseRenderer.java Log: Modify the rendered base URL to end with the / after the context path. This means that all relative URLs will be resolved against the document root directory for the web application. Submitted by: Srikanth Shenoy srikanth at srikanth.org Nithin Mallya nithin at mallya.org Revision ChangesPath 1.2 +0 -4 jakarta-struts/contrib/struts-faces/src/conf/faces-config.xml Index: faces-config.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/conf/faces-config.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- faces-config.xml 4 Jun 2003 17:38:13 - 1.1 +++ faces-config.xml 20 Sep 2003 23:34:35 - 1.2 @@ -1,9 +1,5 @@ ?xml version=1.0? -!-- - Copyright 2003 Sun Microsystems, Inc. All rights reserved. - SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. --- !DOCTYPE faces-config PUBLIC -//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN 1.4 +5 -15 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/renderer/BaseRenderer.java Index: BaseRenderer.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/renderer/BaseRenderer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BaseRenderer.java 27 Jul 2003 06:43:16 - 1.3 +++ BaseRenderer.java 20 Sep 2003 23:34:35 - 1.4 @@ -134,17 +134,7 @@ } if (request.getContextPath() != null) { writer.write(request.getContextPath()); -} -String servletPath = request.getServletPath(); -if (servletPath != null) { -if (servletPath.startsWith(/faces)) { -writer.write(servletPath.substring(6)); -} else { -writer.write(servletPath); -} -} -if (request.getPathInfo() != null) { -writer.write(request.getPathInfo()); +writer.write(/); } writer.write(\); String target = (String) component.getAttribute(target); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/renderer BaseRenderer.java
craigmcc2003/09/20 17:41:56 Modified:contrib/struts-faces/src/java/org/apache/struts/faces/renderer BaseRenderer.java Log: Revert the previous change. Unfortunately, it would create an incompatibility with html:base that would make conversions of existing Struts-based apps harder. Revision ChangesPath 1.5 +11 -1 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/renderer/BaseRenderer.java Index: BaseRenderer.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/renderer/BaseRenderer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- BaseRenderer.java 20 Sep 2003 23:34:35 - 1.4 +++ BaseRenderer.java 21 Sep 2003 00:41:56 - 1.5 @@ -134,7 +134,17 @@ } if (request.getContextPath() != null) { writer.write(request.getContextPath()); -writer.write(/); +} +String servletPath = request.getServletPath(); +if (servletPath != null) { +if (servletPath.startsWith(/faces)) { +writer.write(servletPath.substring(6)); +} else { +writer.write(servletPath); +} +} +if (request.getPathInfo() != null) { +writer.write(request.getPathInfo()); } writer.write(\); String target = (String) component.getAttribute(target); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application FacesRequestProcessor.java
craigmcc2003/09/20 19:30:12 Modified:contrib/struts-faces/src/java/org/apache/struts/faces/application FacesRequestProcessor.java Log: Emulate the if the response is already committed, do an include instead of a forward behavior of TilesRequestProcesor. Revision ChangesPath 1.3 +9 -5 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/FacesRequestProcessor.java Index: FacesRequestProcessor.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application/FacesRequestProcessor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- FacesRequestProcessor.java4 Jun 2003 17:38:13 - 1.2 +++ FacesRequestProcessor.java21 Sep 2003 02:30:11 - 1.3 @@ -137,7 +137,11 @@ if ((context != null) !uri.startsWith(/faces/)) { selectTree(context, uri); } else { -super.doForward(uri, request, response); +if (response.isCommitted()) { +doInclude(uri, request, response); +} else { +super.doForward(uri, request, response); +} if (context != null) { context.responseComplete(); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-chain/web/example/WEB-INF struts-config.xml web.xml
craigmcc2003/08/30 16:18:56 Modified:contrib/struts-chain build.xml contrib/struts-chain/src/conf chain-config.xml contrib/struts-chain/src/java/org/apache/struts/chain Constants.java contrib/struts-chain/src/java/org/apache/struts/chain/legacy CatalogConfiguratorPlugIn.java ComposableRequestProcessor.java Added: contrib/struts-chain/web/example/WEB-INF struts-config.xml Removed: contrib/struts-chain/web/example/WEB-INF web.xml Log: Tweaks to ComposableRequestProcessor and CatalogConfiguratorPlugIn so that the canonical Struts example application works successfully with it (at least to a first order of approximation -- not every detail has been checked). The src/conf/chain-config.xml resource now documents the correspondence between the standard methods of RequestProcessor versus the Command implementations that perform those tasks in this environment. This will also serve as a checklist of what isn't implemeneted yet, so please keep it up to date if you add in some of the missing features. Revision ChangesPath 1.3 +16 -31jakarta-struts/contrib/struts-chain/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/build.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- build.xml 11 Aug 2003 06:13:07 - 1.2 +++ build.xml 30 Aug 2003 23:18:56 - 1.3 @@ -131,6 +131,10 @@ copy tofile=${build.home}/classes/META-INF/LICENSE.txt file=LICENSE.txt/ +!-- Copy standard chain configuration file -- +copytodir=${build.home}/classes/org/apache/struts/chain + file=src/conf/chain-config.xml/ + /target @@ -177,52 +181,32 @@ target name=example.static depends=example.prepare + +!-- Copy example webapp from standard build -- copytodir=${build.home}/webapps/example - fileset dir=web/example/ + fileset dir=../../target/example/ /copy -!-- Copy required configuration files -- -!-- -copy todir=${build.home}/webapps/example/WEB-INF - filesetdir=${build.home}/conf -include name=*.tld/ - /fileset - filesetdir=${struts.home}/lib -include name=*.tld/ -include name=valid*.xml/ - /fileset +!-- Copy override files from our local directory -- +copytodir=${build.home}/webapps/example overwrite=true + fileset dir=web/example/ /copy --- -!-- Copy required library JAR files -- +!-- Copy additional library JAR files -- mkdirdir=${build.home}/webapps/example/WEB-INF/lib/ -copy todir=${build.home}/webapps/example/WEB-INF/lib - filesetdir=${build.home}/lib -include name=struts-chain.jar/ - /fileset -/copy -copy todir=${build.home}/webapps/example/WEB-INF/lib - filesetdir=${struts.home}/lib -include name=commons-*.jar/ -include name=struts.jar/ - /fileset -/copy copy todir=${build.home}/webapps/example/WEB-INF/lib file=${commons-chain.jar}/ -!-- copy todir=${build.home}/webapps/example/WEB-INF/lib - file=${jstl.jar}/ -copy todir=${build.home}/webapps/example/WEB-INF/lib - file=${standard.jar}/ --- + file=${build.home}/lib/struts-chain.jar/ /target target name=example.compile depends=example.static + +!-- mkdir dir=${build.home}/webapps/example/WEB-INF/classes/ -!-- Compile Java Sources -- javac srcdir=src/example destdir=${build.home}/webapps/example/WEB-INF/classes debug=${compile.debug} @@ -231,12 +215,13 @@ classpath refid=classpath / /javac -!-- Copy non-Java Sources -- copytodir=${build.home}/webapps/example/WEB-INF/classes fileset dir=src/example exclude name=**/*.java/ /fileset /copy + +-- /target 1.2 +49 -1 jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml Index: chain-config.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- chain-config.xml 11 Aug 2003 04:55:34 - 1.1 +++ chain-config.xml 30 Aug 2003 23:18:56 - 1.2 @@ -50,6 +50,54 @@ chain name=servlet-standard + !-- + This chain attempts to emulate (most of) the standard request
cvs commit: jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet ExceptionHandler.java
craigmcc2003/08/31 14:53:00 Modified:contrib/struts-chain/src/conf chain-config.xml contrib/struts-chain/src/java/org/apache/struts/chain Constants.java contrib/struts-chain/src/java/org/apache/struts/chain/legacy CatalogConfiguratorPlugIn.java ComposableRequestProcessor.java Added: contrib/struts-chain/src/java/org/apache/struts/chain AbstractExceptionHandler.java ExceptionCatcher.java contrib/struts-chain/src/java/org/apache/struts/chain/servlet ExceptionHandler.java Log: Add an exception catcher early in the standard command chain that implements the usual Struts 1.1 behavior (calling an ExceptionHandler and optionally forwarding based on the result). This necessitated a modification to the API of the postprocess() method in org.apache.commons.chain.Filter, so you'll need to refresh your version of commons-chain to 20030901 or later as well. Revision ChangesPath 1.3 +33 -3 jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml Index: chain-config.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- chain-config.xml 30 Aug 2003 23:18:56 - 1.2 +++ chain-config.xml 31 Aug 2003 21:53:00 - 1.3 @@ -62,7 +62,7 @@ processPath SelectAction (which also does processMapping) - processExceptionNOT SUPPORTED YET + processExceptionExceptionCatcher / ExceptionHandler processLocale SelectLocale @@ -107,6 +107,12 @@ optional=true/ + !-- Establish exception handling filter -- + command + className=org.apache.struts.chain.ExceptionCatcher + exceptionCommand=servlet-exception/ + + !-- Identify the Locale for this request -- command className=org.apache.struts.chain.servlet.SelectLocale/ @@ -153,7 +159,31 @@ className=org.apache.struts.chain.servlet.PerformForward/ - /chain +/chain + + +!-- == Servlet Exception Handler Chain -- + +chain name=servlet-exception + + !-- +This chain is designed to be invoked (by o.a.s.c.ExceptionCatcher) +if an unhandled exception is thrown by any subsequent command +in a processing chain (including the one that invokes a Struts +action). The standard definition of this chain supports the +exception mapping of Struts 1.1, but can be replaced in order +to handle exceptions differently. + -- + + !-- Execute the configured exception handler (if any) -- + command + className=org.apache.struts.chain.servlet.ExceptionHandler/ + + !-- Follow the returned ActionForward (if any) -- + command + className=org.apache.struts.chain.servlet.PerformForward/ + +/chain /chains 1.3 +19 -4 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/Constants.java Index: Constants.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/Constants.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Constants.java30 Aug 2003 23:18:56 - 1.2 +++ Constants.java31 Aug 2003 21:53:00 - 1.3 @@ -112,6 +112,21 @@ /** + * pThe default context attribute under which our + * codeCatalog/code will be stored./p + */ +public static final String CATALOG_KEY = catalog; + + +/** + * pThe default context attribute under which an + * codeException/code will be stored before passing + * it to an exception handler chain./p + */ +public static final String EXCEPTION_KEY = exception; + + +/** * pThe default context attribute under which the * codeForwardConfig/code for the current request * will be stored./p @@ -158,7 +173,7 @@ * pThe context attribute under which the codeCatalog/code containing * our defined command chains has been stored./p */ -public static final String CATALOG_KEY = +public static final String CATALOG_ATTR = org.apache.struts.chain.CATALOG; 1.1 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExceptionHandler.java Index: AbstractExceptionHandler.java
cvs commit: jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet SelectInput.java ValidateActionForm.java
craigmcc2003/08/31 15:42:45 Modified:contrib/struts-chain/src/conf chain-config.xml contrib/struts-chain/src/java/org/apache/struts/chain AbstractValidateActionForm.java contrib/struts-chain/src/java/org/apache/struts/chain/servlet ValidateActionForm.java Added: contrib/struts-chain/src/java/org/apache/struts/chain AbstractSelectInput.java contrib/struts-chain/src/java/org/apache/struts/chain/servlet SelectInput.java Log: Use the delegate to a named command design pattern for validation failures like we do for exception handling, instead of a conditionally executed child chain. Revision ChangesPath 1.4 +29 -12jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml Index: chain-config.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- chain-config.xml 31 Aug 2003 21:53:00 - 1.3 +++ chain-config.xml 31 Aug 2003 22:42:45 - 1.4 @@ -84,7 +84,7 @@ processPopulate PopulateActionForm - processValidate ValidateActionForm + processValidate ValidateActionForm / SelectInput processForward NOT SUPPORTED YET @@ -134,14 +134,9 @@ !-- Validate the ActionForm for this request -- - chain - className=org.apache.struts.chain.servlet.ValidateActionForm - -!-- Nested chain executed on validation failure only -- -command - className=org.apache.struts.chain.servlet.PerformForward/ - - /chain + command + className=org.apache.struts.chain.servlet.ValidateActionForm + failureCommand=servlet-validation-failure/ !-- Create (if needed) the Action for this request -- @@ -154,7 +149,7 @@ className=org.apache.struts.chain.servlet.ExecuteAction/ - !-- Follow the returned ActionForward (if any) -- + !-- Follow the returned ForwardConfig (if any) -- command className=org.apache.struts.chain.servlet.PerformForward/ @@ -179,7 +174,29 @@ command className=org.apache.struts.chain.servlet.ExceptionHandler/ - !-- Follow the returned ActionForward (if any) -- + !-- Follow the returned ForwardConfig (if any) -- + command + className=org.apache.struts.chain.servlet.PerformForward/ + +/chain + + +!-- == Servlet Validation Failure Chain === -- + +chain name=servlet-validation-failure + + !-- + This chain is designed to be invoked (by o.a.s.c.ValidateActionForm) + if a validation failure occurs. The standard behavior is to obey + the input property of the current ActionConfig, and forward back + to the input page. + -- + + !-- Select the appropriate ForwardConfig for return to input page -- + command + className=org.apache.struts.chain.servlet.SelectInput/ + + !-- Follow the returned ForwardConfig (if any) -- command className=org.apache.struts.chain.servlet.PerformForward/ 1.2 +60 -47 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractValidateActionForm.java Index: AbstractValidateActionForm.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractValidateActionForm.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AbstractValidateActionForm.java 11 Aug 2003 04:55:34 - 1.1 +++ AbstractValidateActionForm.java 31 Aug 2003 22:42:45 - 1.2 @@ -62,33 +62,31 @@ package org.apache.struts.chain; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.chain.Catalog; +import org.apache.commons.chain.Command; import org.apache.commons.chain.Context; import org.apache.commons.chain.impl.ChainBase; import org.apache.commons.chain.web.WebContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.struts.Globals; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.chain.Constants; import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ForwardConfig; -import
cvs commit: jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/legacy - New directory
craigmcc2003/08/30 14:25:56 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/legacy - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/legacy CatalogConfiguratorPlugIn.java ComposableRequestProcessor.java
craigmcc2003/08/30 15:01:24 Added: contrib/struts-chain/src/java/org/apache/struts/chain/legacy CatalogConfiguratorPlugIn.java ComposableRequestProcessor.java Log: Add a ComposableRequestProcessor.java class contributed by Greg Reddin. I split off configuration of the chains into a separate PlugIn so that an individual applicaton can easily configure command chains without having to modify existing Struts configuration machinery. Revision ChangesPath 1.1 jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/legacy/CatalogConfiguratorPlugIn.java Index: CatalogConfiguratorPlugIn.java === /* * $Header: /home/cvs/jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/legacy/CatalogConfiguratorPlugIn.java,v 1.1 2003/08/30 22:01:24 craigmcc Exp $ * $Revision: 1.1 $ * $Date: 2003/08/30 22:01:24 $ * * * * The Apache Software License, Version 1.1 * * Copyright (c) 1999-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Struts, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * */ package org.apache.struts.chain.legacy; import java.net.URL; import javax.servlet.ServletException; import org.apache.struts.action.ActionServlet; import org.apache.struts.action.PlugIn; import org.apache.struts.chain.Constants; import org.apache.struts.config.ModuleConfig; import org.apache.commons.chain.Catalog; import org.apache.commons.chain.config.ConfigParser; import org.apache.commons.chain.impl.CatalogBase; /** * pstrongCatalogConfiguratorPlugIn/strong looks up the current * codeCatalog/code stored under the codeConstants.CATALOG_KEY/code * context attribute (creating an empty one if necessary), and adds new * chain definitions from one of the following two sources (only one of these * properties should be configured for a particular instance of this * PlugIn) based on the property that was configured:/p * ul * listrongpath/strong - Context-relative path to a web application * resource that contains chain definitions./li * listrongresource/strong - Absolute resource path to a class loader * resource that should be in a JAR file under code/WEB-INF/lib/code, * or a separate file under code/WEB-INF/classes/code
cvs commit: jakarta-struts/contrib/struts-chain - Imported sources
craigmcc2003/08/10 21:55:35 Log: Initial check-in of a library that decomposes the Struts 1.1 request procoessor, using the newly checked in Commons Sandbox project called chain supporting the Chain of Responsibility pattern. None of this code has been tested at all yet ... it should be considered incomplete and conceptual, but it also serves as a proof of concept that decomposing RequestProcessor seems pretty feasible. Nightly builds of jakarta-commons-sandbox/chain should show up as of tonight at http://jakarta.apache.org/builds/jakarta-commons/nightly/chain/. If this idea works out in practice, I'm going to propose an architecture based on the chain concept to be the fundamental architecture of Struts 2.0. Among other things, it lets you build the Cocoon concept of a site map with Java classes rather than XSLT transformations being the key element to creating and modifying dynamic content. In addition, the jakarta-commons-sandbox/chain package is useful in its own right to compose complex processing pipelines from simple (individually unit testable) command pattern classes with very simple interfaces. Status: Vendor Tag: jakarta-struts-chain Release Tags: start N jakarta-struts/contrib/struts-chain/build.properties.sample N jakarta-struts/contrib/struts-chain/LICENSE.txt N jakarta-struts/contrib/struts-chain/README.txt N jakarta-struts/contrib/struts-chain/build.xml N jakarta-struts/contrib/struts-chain/src/conf/MANIFEST.MF N jakarta-struts/contrib/struts-chain/src/conf/chain-config.xml N jakarta-struts/contrib/struts-chain/src/example/overview.html N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectAction.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectModule.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractValidateActionForm.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/CreateActionForm.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPopulateActionForm.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/Constants.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/CreateAction.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExecuteAction.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractPerformForward.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectLocale.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet/SelectLocale.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet/SelectAction.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet/SelectModule.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet/ValidateActionForm.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet/PopulateActionForm.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet/ExecuteAction.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/servlet/PerformForward.java N jakarta-struts/contrib/struts-chain/src/java/org/apache/struts/chain/util/ClassUtils.java N jakarta-struts/contrib/struts-chain/web/example/WEB-INF/web.xml No conflicts created by this import - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-el build.xml
craigmcc2003/08/09 18:21:43 Modified:contrib/struts-el build.xml Log: Modify the build.xml for struts-el to have a hard-coded reference to the struts.jar in the parent Struts source tree (i.e. output of ant dist). This makes it possible to compile struts-el even when the user has a ${user.home}/build.properties file that defines a struts.jar property (as I do, because I *use* Struts in lots of different packages). Revision ChangesPath 1.18 +3 -3 jakarta-struts/contrib/struts-el/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-el/build.xml,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- build.xml 9 Aug 2003 19:29:30 - 1.17 +++ build.xml 10 Aug 2003 01:21:43 - 1.18 @@ -158,7 +158,7 @@ pathelement location=${commons-validator.jar}/ pathelement location=${jdbc20ext.jar}/ pathelement location=${servlet.jar}/ - pathelement location=${struts.jar}/ + pathelement location=../../dist/lib/struts.jar/ pathelement location=${struts-el.jar}/ pathelement location=${jstl.jar}/ pathelement location=${jstl-standard.jar}/ @@ -193,7 +193,7 @@ target name=prepare.library depends=init mkdir dir=${build.home}/library/classes/META-INF/ mkdir dir=${build.home}/library/classes/META-INF/tlds/ - copy file=${struts.jar} tofile=${build.home}/library/struts.jar/ + copy file=../../dist/lib/struts.jar tofile=${build.home}/library/struts.jar/ copy file=${jstl.jar} tofile=${build.home}/library/jstl.jar/ copy file=${jstl-standard.jar} tofile=${build.home}/library/standard.jar/ @@ -277,7 +277,7 @@ mkdir dir=${build.home}/documentation/api/ javadoc sourcepath=${src.share.dir} destdir=${build.home}/documentation/api - classpath=${servlet.jar}:${jdbc20ext.jar}:${struts.jar}:${jstl.jar}:${jstl-standard.jar} + classpath=${servlet.jar}:${jdbc20ext.jar}:../../dist/lib/struts.jar:${jstl.jar}:${jstl-standard.jar} packagenames=org.apache.strutsel.* author=true private=true use=true version=true - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/tag-doc build.xml
craigmcc2003/08/09 12:29:30 Modified:.build.xml contrib/struts-el build.xml contrib/struts-el/src/share/org/apache/strutsel/taglib/html ELFormTag.java ELHtmlTag.java ELJavascriptValidatorTag.java contrib/struts-faces build.xml contrib/struts-legacy build.xml contrib/tag-doc build.xml Log: Correct loading order of properties files to go from most local (current directory) to most global (${user.home}/build.properties). Since Ant follows a first definition wins strategy, this makes the most sense for our convention of allowing local overrides of global values. It also means that I can now do an ant dist in the top level directory with only one thing in my build.properties file (jdk.version=1.4), so this should fix the nightly builds as well (verifying that is my next step). Also fixed some compile errors in struts-el -- I don't know how that code could have compiled for anyone. Could someone more familiar with that library make sure I did the changes correctly? Revision ChangesPath 1.118 +5 -2 jakarta-struts/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/build.xml,v retrieving revision 1.117 retrieving revision 1.118 diff -u -r1.117 -r1.118 --- build.xml 8 Aug 2003 06:00:55 - 1.117 +++ build.xml 9 Aug 2003 19:29:30 - 1.118 @@ -113,9 +113,9 @@ -- !-- Load local and user build preferences -- -property file=${user.home}/build.properties/ -property file=../build.properties/ property file=build.properties/ +property file=../build.properties/ +property file=${user.home}/build.properties/ !-- Default values for unspecified properties -- property name=catalina.home value=../jakarta-tomcat-4.0/build/ @@ -204,6 +204,9 @@ !-- Web directory -- property name=web.dir value=web/ + +!-- Pointer to struts-legacy.jar -- +property name=struts-legacy.jar value=${basedir}/contrib/struts-legacy/dist/struts-legacy.jar/ !-- Compilation Classpath -- path id=compile.classpath 1.17 +4 -4 jakarta-struts/contrib/struts-el/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-el/build.xml,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- build.xml 13 Jun 2003 03:22:14 - 1.16 +++ build.xml 9 Aug 2003 19:29:30 - 1.17 @@ -51,10 +51,10 @@ -- !-- Load local and user build preferences -- - property file=${user.home}/build.properties/ - property file=../../../build.properties/ - property file=../../build.properties/ property file=build.properties/ + property file=../../build.properties/ + property file=../../../build.properties/ + property file=${user.home}/build.properties/ !-- Default values for unspecified properties -- property name=jdbc20ext.jar value=../jdbc2_0-stdext.jar/ @@ -219,7 +219,7 @@ -- copy todir=${build.home}/library fileset dir=${jstl.home}/tld includes=*.tld/ - fileset dir=${struts.home}/dist/lib includes=*.tld/ + fileset dir=../../dist/lib includes=*.tld/ /copy /target 1.9 +7 -7 jakarta-struts/contrib/struts-el/src/share/org/apache/strutsel/taglib/html/ELFormTag.java Index: ELFormTag.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-el/src/share/org/apache/strutsel/taglib/html/ELFormTag.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ELFormTag.java26 Jul 2003 05:48:02 - 1.8 +++ ELFormTag.java9 Aug 2003 19:29:30 - 1.9 @@ -386,9 +386,9 @@ this, pageContext)) != null) setScope(string); -if ((bool = EvalHelper.evalBoolean(scriptLanguage, getScriptLanguageExpr(), - this, pageContext)) != null) -setScriptLanguage(bool.booleanValue()); +if ((string = EvalHelper.evalString(scriptLanguage, getScriptLanguageExpr(), +this, pageContext)) != null) +setScriptLanguageExpr(string); if ((string = EvalHelper.evalString(style, getStyleExpr(), this, pageContext)) != null) 1.8 +7 -7 jakarta-struts/contrib/struts-el/src/share/org/apache/strutsel/taglib/html/ELHtmlTag.java Index: ELHtmlTag.java === RCS file: /home/cvs/jakarta-struts
cvs commit: jakarta-struts/contrib/struts-faces/web/example/WEB-INF web.xml
craigmcc2003/06/04 10:37:02 Modified:contrib/struts-faces/web/example logon.jsp registration.jsp subscription.jsp contrib/struts-faces/web/example/WEB-INF web.xml Log: Update the web portion of the Struts-Faces example app for the new EA4 release of JavaServer Faces. Revision ChangesPath 1.2 +2 -2 jakarta-struts/contrib/struts-faces/web/example/logon.jsp Index: logon.jsp === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/web/example/logon.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- logon.jsp 7 Mar 2003 03:22:45 - 1.1 +++ logon.jsp 4 Jun 2003 17:37:02 - 1.2 @@ -39,14 +39,14 @@ /h:output_label h:input_text id=username size=16 - modelReference=logonForm.map.username/ +valueRef=logonForm.username/ h:output_label for=password s:message key=prompt.password/ /h:output_label h:input_secret id=password size=16 -modelReference=logonForm.map.password/ + valueRef=logonForm.password/ h:command_button id=submit type=SUBMIT commandClass=command-single 1.2 +34 -28jakarta-struts/contrib/struts-faces/web/example/registration.jsp Index: registration.jsp === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/web/example/registration.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- registration.jsp 7 Mar 2003 03:22:45 - 1.1 +++ registration.jsp 4 Jun 2003 17:37:02 - 1.2 @@ -35,7 +35,7 @@ s:form action=/saveRegistration focus=username onsubmit=return validateRegistrationForm(this); - h:input_hidden id=action modelReference=registrationForm.action/ + h:input_hidden id=action valueRef=registrationForm.action/ h:panel_grid columns=2 @@ -71,14 +71,14 @@ c:choose c:when test=${registrationForm.action == 'Create'} h:input_text id=username size=16 -modelReference=registrationForm.username/ +valueRef=registrationForm.username/ /c:when c:when test=${registrationForm.action == 'Edit'} h:panel_group id=usernameGroup s:write filter=true - modelReference=registrationForm.username/ + valueRef=registrationForm.username/ h:input_hidden id=username -modelReference=registrationForm.username/ +valueRef=registrationForm.username/ /h:panel_group /c:when c:otherwise @@ -92,35 +92,35 @@ /h:output_label h:input_text id=password -size=16 modelReference=registrationForm.password/ +size=16 valueRef=registrationForm.password/ h:output_label for=password2 s:message key=prompt.password2/ /h:output_label h:input_text id=password2 -size=16 modelReference=registrationForm.password2/ +size=16 valueRef=registrationForm.password2/ h:output_label for=fullName s:message key=prompt.fullName/ /h:output_label h:input_text id=fullName -size=50 modelReference=registrationForm.fullName/ +size=50 valueRef=registrationForm.fullName/ h:output_label for=fromAddress s:message key=prompt.fromAddress/ /h:output_label h:input_text id=fromAddress -size=50 modelReference=registrationForm.fromAddress/ +size=50 valueRef=registrationForm.fromAddress/ h:output_label for=replyToAddress s:message key=prompt.replyToAddress/ /h:output_label h:input_text id=replyToAddress -size=50 modelReference=registrationForm.replyToAddress/ +size=50 valueRef=registrationForm.replyToAddress/ h:command_button id=submit type=SUBMIT commandName=submit commandClass=command-single @@ -160,29 +160,35 @@ %-- List Data --% h:panel_data id=data var=subscription - modelReference=user.subscriptions - h:output_text id=subhost modelReference=subscription.host/ - h:output_text id=subusername modelReference=subscription.username/ - h:output_text id=subtype modelReference=subscription.type/ - h:output_text id=subconn modelReference=subscription.autoConnect/ - s:body id=subactions -a:linkSubscription page=/editSubscription.do?action=Delete - s:message key=registration.deleteSubscription - styleClass=command-multiple/ -/a:linkSubscription
cvs commit: jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example LinkSubscriptionRenderer.java LinkSubscriptionTag.java
craigmcc2003/06/04 10:37:36 Modified:contrib/struts-faces/src/example/org/apache/struts/webapp/example LinkSubscriptionRenderer.java LinkSubscriptionTag.java Log: Update the example app sources for the new EA4 release of JavaServer Faces. Revision ChangesPath 1.2 +14 -6 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionRenderer.java Index: LinkSubscriptionRenderer.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionRenderer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LinkSubscriptionRenderer.java 7 Mar 2003 03:22:42 - 1.1 +++ LinkSubscriptionRenderer.java 4 Jun 2003 17:37:36 - 1.2 @@ -64,10 +64,14 @@ import java.io.IOException; import javax.faces.FacesException; +import javax.faces.FactoryFinder; +import javax.faces.application.Application; +import javax.faces.application.ApplicationFactory; import javax.faces.component.UIComponent; import javax.faces.component.UIOutput; import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter; +import javax.faces.el.ValueBinding; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; @@ -119,17 +123,21 @@ ResponseWriter writer = context.getResponseWriter(); HttpServletRequest request = (HttpServletRequest) -context.getServletRequest(); +context.getExternalContext().getRequest(); HttpServletResponse response = (HttpServletResponse) -context.getServletResponse(); +context.getExternalContext().getResponse(); String name = (String) component.getAttribute(name); String page = (String) component.getAttribute(page); // Generate the URL to be encoded StringBuffer url = new StringBuffer(request.getContextPath()); url.append(page); +ApplicationFactory factory = (ApplicationFactory) +FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY); +Application application = factory.getApplication(); +ValueBinding binding = application.getValueBinding(name); Subscription subscription = (Subscription) -context.getModelValue(name); +binding.getValue(context); if (subscription == null) { throw new FacesException (No subscription under attribute ' + name + '); 1.2 +9 -11 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionTag.java Index: LinkSubscriptionTag.java === RCS file: /home/cvs/jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/LinkSubscriptionTag.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LinkSubscriptionTag.java 7 Mar 2003 03:22:42 - 1.1 +++ LinkSubscriptionTag.java 4 Jun 2003 17:37:36 - 1.2 @@ -65,9 +65,7 @@ import java.io.IOException; import javax.faces.component.UIComponent; -import javax.faces.component.UIOutput; -import javax.faces.webapp.FacesTag; -import javax.servlet.jsp.JspException; +import javax.faces.webapp.UIComponentTag; /** @@ -78,7 +76,7 @@ * @version $Revision$ $Date$ */ -public class LinkSubscriptionTag extends FacesTag { +public class LinkSubscriptionTag extends UIComponentTag { // - Attributes @@ -108,11 +106,11 @@ /** - * pCreate a new component for this tag./p + * Return the component type for this tag./p */ -public UIComponent createComponent() { +public String getComponentType() { -return (new UIOutput()); +return (Output); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/doc/news index.xml
craigmcc2003/03/18 21:02:03 Modified:doc/news index.xml Log: Add a news article about the Struts-Faces integration library. Revision ChangesPath 1.21 +47 -0 jakarta-struts/doc/news/index.xml Index: index.xml === RCS file: /home/cvs/jakarta-struts/doc/news/index.xml,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- index.xml 23 Feb 2003 09:08:42 - 1.20 +++ index.xml 19 Mar 2003 05:02:03 - 1.21 @@ -112,6 +112,53 @@ hr size=1 noshade=/ -- +h3a name=20030318/a18 Mar 2003 - Struts-Faces Integration Library Available/h3 + +p + The emStruts-Faces Integration Library/em is an add-on library + that supports the use of + a href=http://java.sun.com/j2ee/javaserverfaces/;JavaServer Faces/a + user interface technology in a Struts-based web application, in place of + the Struts custom tag libraries. As a proof of concept, it also + includes the canonical struts-example example web application, + converted to use JavaServer Faces Tags, as well as tags from the JSP + Standard Tag Library (JSTL), version 1.0. +/p + +p + The source code for this library is in the + codecontrib/struts-faces/code directory of the Struts CVS repository, + and nightly builds are available at: +/p + +p + a href=http://jakarta.apache.org/builds/jakarta-struts/nightly/struts-faces/; +http://jakarta.apache.org/builds/jakarta-struts/nightly/struts-faces//a +/p + +p + This library is EA quality code, and is not going to be integrated into + standard Struts releases until it has matured further, and until + JavaServer Faces goes to 1.0 final release status. The library requires + a Struts 1.1 nightly build (20030216 or later), or the upcoming 1.1 RC2 + or 1.1 final releases. It also requires the EA3 version of the + JavaServer Faces reference implementation, available via: +/p + +p + a href=http://java.sun.com/j2ee/javaserverfaces/download.html; + http://java.sun.com/j2ee/javaserverfaces/download.html/a +/p + +p + The Struts-Faces integration download includes source code for the + library (useful to see how the integration was accomplished, and also + to learn how to build custom JavaServer Faces component and renderer + classes), as well as an extensive codeREADME.txt/code that documents + how to utilize the library in your own applications. +/p + + h3a name=20030223/a23 Feb 2003 - Struts 1.1 Release Candidate 1 Released/h3 p The Struts team is proud to announce the release of Struts 1.1 Release - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/web/test/test/org/apache/struts/taglib/html TestBaseTag.jsp TestButtonTag1.jsp TestButtonTag2.jsp TestCancelTag1.jsp TestCancelTag2.jsp TestCheckboxTag1.jsp TestCheckboxTag2.jsp TestCheckboxTag3.jsp TestCheckboxTag4.jsp TestErrorsTag1.jsp TestErrorsTag2.jsp TestFileTag1.jsp TestFileTag2.jsp TestHiddenTag1.jsp TestHiddenTag2.jsp TestHtmlTag.jsp TestImageTag1.jsp TestImageTag2.jsp TestImageTag3.jsp TestImageTag4.jsp
craigmcc2003/03/10 09:29:53 Modified:web/test/test/org/apache/struts/taglib/html TestBaseTag.jsp TestButtonTag1.jsp TestButtonTag2.jsp TestCancelTag1.jsp TestCancelTag2.jsp TestCheckboxTag1.jsp TestCheckboxTag2.jsp TestCheckboxTag3.jsp TestCheckboxTag4.jsp TestErrorsTag1.jsp TestErrorsTag2.jsp TestFileTag1.jsp TestFileTag2.jsp TestHiddenTag1.jsp TestHiddenTag2.jsp TestHtmlTag.jsp TestImageTag1.jsp TestImageTag2.jsp TestImageTag3.jsp TestImageTag4.jsp Log: Make the Cactus tests run successfully under Tomcat 4.0.6, when running the test.tomcat.40 target. The problem is a bug in Tomcat 4.0.6, where the JSP page compiler incorrectly does an implicit import org.apache.jasper.runtime.* in the generated code for each page. Unfortunately, that makes the class name JspException ambiguous. I corrected this by fully qualifying the exception class we really want (javax.servlet.jsp.JspException), which runs on 4.0 and 4.1. I have't tried these on 3.3 yet -- that will be later. Revision ChangesPath 1.3 +2 -2 jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestBaseTag.jsp Index: TestBaseTag.jsp === RCS file: /home/cvs/jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestBaseTag.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- TestBaseTag.jsp 7 Mar 2003 05:27:19 - 1.2 +++ TestBaseTag.jsp 10 Mar 2003 17:29:52 - 1.3 @@ -52,7 +52,7 @@ String compareTo = ; if (pageContext.getAttribute(EXPECTED_RESULTS) == null){ -throw new JspException(No tests on this page were called. Please verify that you've setup the tests correctly.); +throw new javax.servlet.jsp.JspException(No tests on this page were called. Please verify that you've setup the tests correctly.); }else{ expected=pageContext.getAttribute(TEST_RESULTS).toString(); } @@ -61,4 +61,4 @@ } Assert.assertEquals(compareTo, expected); -% \ No newline at end of file +% 1.3 +2 -2 jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestButtonTag1.jsp Index: TestButtonTag1.jsp === RCS file: /home/cvs/jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestButtonTag1.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- TestButtonTag1.jsp7 Mar 2003 05:27:19 - 1.2 +++ TestButtonTag1.jsp10 Mar 2003 17:29:52 - 1.3 @@ -235,7 +235,7 @@ String compareTo = ; if (pageContext.getAttribute(EXPECTED_RESULTS) == null){ -throw new JspException(No tests on this page were called. Please verify that you've setup the tests correctly.); +throw new javax.servlet.jsp.JspException(No tests on this page were called. Please verify that you've setup the tests correctly.); }else{ expected=pageContext.getAttribute(TEST_RESULTS).toString(); } @@ -244,4 +244,4 @@ } Assert.assertEquals(compareTo, expected); -% \ No newline at end of file +% 1.4 +2 -2 jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestButtonTag2.jsp Index: TestButtonTag2.jsp === RCS file: /home/cvs/jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestButtonTag2.jsp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TestButtonTag2.jsp7 Mar 2003 05:27:19 - 1.3 +++ TestButtonTag2.jsp10 Mar 2003 17:29:52 - 1.4 @@ -201,7 +201,7 @@ String compareTo = ; if (pageContext.getAttribute(EXPECTED_RESULTS) == null){ -throw new JspException(No tests on this page were called. Please verify that you've setup the tests correctly.); +throw new javax.servlet.jsp.JspException(No tests on this page were called. Please verify that you've setup the tests correctly.); }else{ expected=pageContext.getAttribute(TEST_RESULTS).toString(); } @@ -210,4 +210,4 @@ } Assert.assertEquals(compareTo, expected); -% \ No newline at end of file +% 1.3 +2 -2 jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestCancelTag1.jsp Index: TestCancelTag1.jsp === RCS file: /home/cvs/jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestCancelTag1.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- TestCancelTag1.jsp7 Mar 2003 05:27:19 - 1.2 +++ TestCancelTag1.jsp
cvs commit: jakarta-struts/src/share/org/apache/struts/taglib/html ErrorsTag.java
craigmcc2003/03/09 17:03:02 Modified:src/share/org/apache/struts/taglib/html ErrorsTag.java Log: Render a platform-independent line ending instead of hard coded \r\n. This should have no visual effect, but it allows the TestErrorsTag1 test suite to pass on a Linux server. Feel free to revert if this causes problems with the test under Windows. Revision ChangesPath 1.20 +13 -7 jakarta-struts/src/share/org/apache/struts/taglib/html/ErrorsTag.java Index: ErrorsTag.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ErrorsTag.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- ErrorsTag.java8 Dec 2002 06:54:51 - 1.19 +++ ErrorsTag.java10 Mar 2003 01:03:02 - 1.20 @@ -128,6 +128,12 @@ /** + * The line ending string. + */ +protected static String lineEnd = System.getProperty(line.separator); + + +/** * The session attribute key for our locale. */ protected String locale = Globals.LOCALE_KEY; @@ -227,7 +233,7 @@ message = RequestUtils.message(pageContext, bundle, locale, errors.header); results.append(message); -results.append(\r\n); +results.append(lineEnd); } headerDone = true; } @@ -241,7 +247,7 @@ report.getValues()); if (message != null) { results.append(message); -results.append(\r\n); +results.append(lineEnd); } if (suffixPresent) { message = RequestUtils.message(pageContext, bundle, @@ -253,7 +259,7 @@ message = RequestUtils.message(pageContext, bundle, locale, errors.footer); results.append(message); -results.append(\r\n); +results.append(lineEnd); } // Print the results to our output writer - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/web/test/test/org/apache/struts/taglib/html TestFormTag1.jsp
craigmcc2003/03/09 17:57:31 Modified:src/share/org/apache/struts/taglib/html FormTag.java JavascriptValidatorTag.java web/test/test/org/apache/struts/taglib/html TestFormTag1.jsp Log: Clean up the JavaScript code generation to not use string concatenation, and make the line-end generation platform independent so that Cactus tests can pass on Linux. Revision ChangesPath 1.45 +46 -21 jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java Index: FormTag.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- FormTag.java 8 Mar 2003 19:23:49 - 1.44 +++ FormTag.java 10 Mar 2003 01:57:30 - 1.45 @@ -125,6 +125,11 @@ protected String focusIndex = null; /** + * The line ending string. + */ +protected static String lineEnd = System.getProperty(line.separator); + +/** * The ActionMapping defining where we will be submitting this form */ protected ActionMapping mapping = null; @@ -629,35 +634,56 @@ // Render JavaScript to set the input focus if required if (this.focus != null) { -results.append(\r\n); + +results.append(lineEnd); results.append(this.getJsStartElement()); // xhtml script content shouldn't use the browser hiding trick if (!this.isXhtml()) { -results.append( !--\r\n); +results.append( !--); +results.append(lineEnd); } // Construct the control name that will receive focus. // This does not include any index. -String focusControl = -document.forms[\ + beanName + \].elements[\ + this.focus + \]; +StringBuffer focusControl = new StringBuffer(document.forms[\); +focusControl.append(beanName); +focusControl.append(\].elements[\); +focusControl.append(this.focus); +focusControl.append(\]); + +results.append( var focusControl = ); +results.append(focusControl.toString()); +results.append(;); +results.append(lineEnd); +results.append(lineEnd); -results.append( var focusControl = + focusControl + ;\r\n\r\n); - -results.append( if (focusControl.type != \hidden\) {\r\n); +results.append( if (focusControl.type != \hidden\) {); +results.append(lineEnd); // Construct the index if needed and insert into focus statement String index = ; if (this.focusIndex != null) { -index = [ + this.focusIndex + ]; +StringBuffer sb = new StringBuffer([); +sb.append(this.focusIndex); +sb.append(]); +index = sb.toString(); } -results.append( focusControl + index + .focus();\r\n } \r\n); +results.append( focusControl); +results.append(index); +results.append(.focus();); +results.append(lineEnd); + +results.append( }); +results.append(lineEnd); if (!this.isXhtml()) { -results.append( // --\r\n); +results.append( // --); +results.append(lineEnd); } -results.append(/script\r\n); +results.append(/script); +results.append(lineEnd); } // Print this value to our output writer @@ -763,14 +789,13 @@ * Returns the starting javascript element formatted for xhtml if needed. */ private String getJsStartElement() { -String start = script type=\text/javascript\; - +StringBuffer sb = new StringBuffer(script type=\text/javascript\); if (!this.isXhtml()) { -start += language=\JavaScript\; +sb.append( language=\JavaScript\); } -start += \r\n; - -return start; +sb.append(); +sb.append(lineEnd); +return sb.toString(); } /** 1.24 +9 -4 jakarta-struts/src/share/org/apache/struts/taglib/html/JavascriptValidatorTag.java Index: JavascriptValidatorTag.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/JavascriptValidatorTag.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24
cvs commit: jakarta-struts/contrib/struts-el build-tests.xml
craigmcc2003/03/09 18:43:31 Modified:contrib/struts-el build-tests.xml Log: Avoid fatal error if someone actually tries the test.junit target. Revision ChangesPath 1.5 +2 -0 jakarta-struts/contrib/struts-el/build-tests.xml Index: build-tests.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-el/build-tests.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- build-tests.xml 7 Feb 2003 22:13:06 - 1.4 +++ build-tests.xml 10 Mar 2003 02:43:31 - 1.5 @@ -458,7 +458,9 @@ formatter type=plain usefile=false/ !-- Tests for org.apache.struts.action -- +!-- test name=org.apache.struts.action./ +-- !-- Tests for org.apache.struts.util -- batchtest fork=yes - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces - New directory
craigmcc2003/03/06 19:16:27 jakarta-struts/contrib/struts-faces - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/web - New directory
craigmcc2003/03/06 19:16:57 jakarta-struts/contrib/struts-faces/web - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/web/example - New directory
craigmcc2003/03/06 19:17:04 jakarta-struts/contrib/struts-faces/web/example - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/web/example/WEB-INF - New directory
craigmcc2003/03/06 19:17:47 jakarta-struts/contrib/struts-faces/web/example/WEB-INF - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src - New directory
craigmcc2003/03/06 19:18:05 jakarta-struts/contrib/struts-faces/src - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/conf - New directory
craigmcc2003/03/06 19:18:11 jakarta-struts/contrib/struts-faces/src/conf - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example - New directory
craigmcc2003/03/06 19:18:29 jakarta-struts/contrib/struts-faces/src/example - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example/org - New directory
craigmcc2003/03/06 19:18:36 jakarta-struts/contrib/struts-faces/src/example/org - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example/org/apache - New directory
craigmcc2003/03/06 19:18:41 jakarta-struts/contrib/struts-faces/src/example/org/apache - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example/org/apache/struts - New directory
craigmcc2003/03/06 19:18:47 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp - New directory
craigmcc2003/03/06 19:18:53 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example - New directory
craigmcc2003/03/06 19:18:59 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/memory - New directory
craigmcc2003/03/06 19:19:19 jakarta-struts/contrib/struts-faces/src/example/org/apache/struts/webapp/example/memory - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java - New directory
craigmcc2003/03/06 19:19:43 jakarta-struts/contrib/struts-faces/src/java - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org - New directory
craigmcc2003/03/06 19:19:50 jakarta-struts/contrib/struts-faces/src/java/org - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache - New directory
craigmcc2003/03/06 19:19:57 jakarta-struts/contrib/struts-faces/src/java/org/apache - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts - New directory
craigmcc2003/03/06 19:20:04 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces - New directory
craigmcc2003/03/06 19:20:09 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application - New directory
craigmcc2003/03/06 19:20:22 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/application - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/component - New directory
craigmcc2003/03/06 19:20:34 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/component - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/taglib - New directory
craigmcc2003/03/06 19:21:06 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/taglib - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/util - New directory
craigmcc2003/03/06 19:21:25 jakarta-struts/contrib/struts-faces/src/java/org/apache/struts/faces/util - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts build.properties.sample build.xml
craigmcc2003/03/05 20:20:49 Modified:.build.properties.sample build.xml Log: Make it possible to build Struts against the Servlet 2.4 and JSP 2.0 APIs, where the JSP classes have been pulled out into their own JAR file (jsp.jar). On an earlier platform, you can leave the jsp.jar property unset and things will continue to operate as they have before. Revision ChangesPath 1.32 +6 -1 jakarta-struts/build.properties.sample Index: build.properties.sample === RCS file: /home/cvs/jakarta-struts/build.properties.sample,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- build.properties.sample 28 Feb 2003 06:42:20 - 1.31 +++ build.properties.sample 6 Mar 2003 04:20:49 - 1.32 @@ -78,6 +78,11 @@ # http://java.sun.com/products/jdbc/download.html jdbc20ext.jar=../../../Java/Programs/sun/jdbc2_0-stdext.jar +# The JAR file containing the JSP API classes to compile against if you are +# using JSP 2.0 or later (where these classes are separated from servlet.jar). +# If you are using JSP 1.1 or 1.2, leave this property unset +#jsp.jar=${apache.home}/jakarta-servletapi/lib/jsp.jar + # The JAR file containing the Servlet API classes to compile against (either # version 2.2 or 2.3) servlet.jar=${apache.home}/jakarta-servletapi/lib/servlet.jar 1.102 +9 -1 jakarta-struts/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/build.xml,v retrieving revision 1.101 retrieving revision 1.102 diff -u -r1.101 -r1.102 --- build.xml 28 Feb 2003 06:42:20 - 1.101 +++ build.xml 6 Mar 2003 04:20:49 - 1.102 @@ -75,6 +75,13 @@ jdbc20ext.jar (required). The path to the JAR file for the JDBC 2.0 Optional Package APIs. +jsp.jar (optional). the path to the JSP API + classes to compile against, if you are + using JSP 2.0 where these classes have + been separated from servlet.jar. If you + are using JSP 1.1 or 1.2, leave this + property unset. + servlet.jar (required). The path to the Servlet API classes to compile against (currently, either version 2.2 or 2.3 supported). @@ -195,6 +202,7 @@ pathelement location=${commons-validator.jar}/ pathelement location=${jakarta-oro.jar}/ pathelement location=${jdbc20ext.jar}/ + pathelement location=${jsp.jar}/ pathelement location=${servlet.jar}/ pathelement location=${xerces.jar}/ /path @@ -319,7 +327,7 @@ mkdir dir=${build.home}/documentation/api/ javadoc sourcepath=${src.share.dir} destdir=${build.home}/documentation/api -classpath=${servlet.jar}:${jdbc20ext.jar} +classpath=${servlet.jar}:${jsp.jar}:${jdbc20ext.jar} packagenames=org.apache.struts.* author=true private=true - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/web/example subscription.jsp
craigmcc2003/02/16 16:31:45 Modified:src/example/org/apache/struts/webapp/example/memory MemoryDatabasePlugIn.java web/example subscription.jsp Log: Eliminate the scriptlet used to set up the server types collection (shoulda done this a *long* time ago). Revision ChangesPath 1.8 +32 -4 jakarta-struts/src/example/org/apache/struts/webapp/example/memory/MemoryDatabasePlugIn.java Index: MemoryDatabasePlugIn.java === RCS file: /home/cvs/jakarta-struts/src/example/org/apache/struts/webapp/example/memory/MemoryDatabasePlugIn.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- MemoryDatabasePlugIn.java 11 Jan 2003 03:08:23 - 1.7 +++ MemoryDatabasePlugIn.java 17 Feb 2003 00:31:45 - 1.8 @@ -68,12 +68,14 @@ import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; +import java.util.ArrayList; import javax.servlet.ServletException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts.action.ActionServlet; import org.apache.struts.action.PlugIn; import org.apache.struts.config.ModuleConfig; +import org.apache.struts.util.LabelValueBean; import org.apache.struts.webapp.example.Constants; /** @@ -207,10 +209,36 @@ servlet.getServletContext().setAttribute(Constants.DATABASE_KEY, database); +// Setup and cache other required data +setupCache(servlet, config); + } // - Public Methods + + +// -- Protected Methods + + +/** + * pCache commonly required data as servlet context attributes./p + * + * @param servlet The codeActionServlet/code instance running + * this webapp + * @param config The codeModuleConfig/code for this application module + */ +protected void setupCache(ActionServlet servlet, ModuleConfig config) { + +// Set up list of server types under serverTypes +ArrayList serverTypes = new ArrayList(); +serverTypes.add(new LabelValueBean(IMAP Protocol, imap)); +serverTypes.add(new LabelValueBean(POP3 Protocol, pop3)); +servlet.getServletContext().setAttribute(serverTypes, serverTypes); + +} + + // Private Methods 1.30 +0 -8 jakarta-struts/web/example/subscription.jsp Index: subscription.jsp === RCS file: /home/cvs/jakarta-struts/web/example/subscription.jsp,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- subscription.jsp 14 Jul 2002 01:35:18 - 1.29 +++ subscription.jsp 17 Feb 2003 00:31:45 - 1.30 @@ -5,14 +5,6 @@ %@ taglib uri=/WEB-INF/struts-logic.tld prefix=logic % app:checkLogon/ -%-- In real life, these would be loaded from a database --% -% - java.util.ArrayList list = new java.util.ArrayList(); - list.add(new org.apache.struts.util.LabelValueBean(IMAP Protocol, imap)); - list.add(new org.apache.struts.util.LabelValueBean(POP3 Protocol, pop3)); - pageContext.setAttribute(serverTypes, list); -% - html:html head logic:equal name=subscriptionForm property=action - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/src/share/org/apache/struts/action Action.java RequestProcessor.java
craigmcc2003/02/15 18:51:32 Modified:src/share/org/apache/struts Globals.java src/share/org/apache/struts/action Action.java RequestProcessor.java Log: Refactor the way that a cancelled request is detected so that it is not hard-wired to the request parameter name created by the standard Struts CancelTag key. This behavior is totally backwards compatible. This change makes it possible for customized request processors for UI environments other than the standard Struts tags to easily indicate that the request has been cancelled, after recognizing whatever request parameter it wants to for this purpose. (Yes, my use case is for a cancel button generated from a JavaServer Faces command button :-). Revision ChangesPath 1.5 +14 -4 jakarta-struts/src/share/org/apache/struts/Globals.java Index: Globals.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/Globals.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Globals.java 16 Nov 2002 06:03:06 - 1.4 +++ Globals.java 16 Feb 2003 02:51:32 - 1.5 @@ -114,6 +114,16 @@ /** + * pThe request attributes key under which a boolean codetrue/code + * value should be stored if this request was cancelled./p + * + * @since Struts 1.1 + */ +public static final String CANCEL_KEY = +org.apache.struts.action.CANCEL; + + +/** * pThe base of the context attributes key under which our * codeModuleConfig/code data structure will be stored. This * will be suffixed with the actual module prefix (including the 1.55 +13 -12jakarta-struts/src/share/org/apache/struts/action/Action.java Index: Action.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/Action.java,v retrieving revision 1.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- Action.java 29 Dec 2002 22:09:40 - 1.54 +++ Action.java 16 Feb 2003 02:51:32 - 1.55 @@ -620,22 +620,23 @@ /** - * Returns codetrue/code if the current form's cancel button was - * pressed. This method will check if the cancel button generated by - * strongCancelTag/strong was pressed by the user in the - * current request. If true, validation performed by an - * strongActionForm/strong validate() method will have been - * skipped by the controller servlet. + * pReturns codetrue/code if the current form's cancel button was + * pressed. This method will check if the codeGlobals.CANCEL_KEY/code + * request attribute has been set, which normally occurs if the cancel + * button generated by strongCancelTag/strong was pressed by the user + * in the current request. If codetrue/code, validation performed + * by an strongActionForm/strong's codevalidate()/code method + * will have been skipped by the controller servlet./p * * @param request The servlet request we are processing * @see org.apache.struts.taglib.html.CancelTag */ protected boolean isCancelled(HttpServletRequest request) { -return ((request.getParameter(Constants.CANCEL_PROPERTY) != null) || -(request.getParameter(Constants.CANCEL_PROPERTY_X) != null)); +return (request.getAttribute(Globals.CANCEL_KEY) != null); } + /** * Return codetrue/code if there is a transaction token stored in 1.26 +23 -13 jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java Index: RequestProcessor.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- RequestProcessor.java 5 Feb 2003 05:30:13 - 1.25 +++ RequestProcessor.java 16 Feb 2003 02:51:32 - 1.26 @@ -781,7 +781,10 @@ /** * Populate the properties of the specified ActionForm instance from - * the request parameters included with this request. + * the request parameters included with this request. In addition, + * request attribute codeGlobals.CANCEL_KEY/code will be set if + * the request was submitted with a button created by + * codeCancelTag/code. * * @param request The servlet request we are processing * @param response The servlet response we are creating @@ -813,6 +816,12 @@ RequestUtils.populate(form, mapping.getPrefix(), mapping.getSuffix(), request
cvs commit: jakarta-struts/contrib/struts-el build.xml
craigmcc2003/02/10 21:37:59 Modified:.build.xml contrib/struts-el build.xml Log: Remove the JDBC 2.0 Optional Package JAR (jdbc2_0-stdext.jar) from the Struts binary distribution. It is still a compile-time dependency to build Struts (or applications using javax.sql classes) on a pre-1.4 JDK, but the app server or servlet container you will be running on will have this JAR installed already if it supports data sources. As of the 20030211 nightly build, therefore, Struts binary distributions are 100% Apache Code. Revision ChangesPath 1.97 +2 -0 jakarta-struts/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/build.xml,v retrieving revision 1.96 retrieving revision 1.97 diff -u -r1.96 -r1.97 --- build.xml 22 Jan 2003 06:46:28 - 1.96 +++ build.xml 11 Feb 2003 05:37:59 - 1.97 @@ -259,8 +259,10 @@ tofile=${build.home}/library/commons-validator.jar/ copy file=${jakarta-oro.jar} tofile=${build.home}/library/jakarta-oro.jar/ +!-- Compile-time dependency only copy file=${jdbc20ext.jar} tofile=${build.home}/library/jdbc2_0-stdext.jar/ +-- /target !-- 1.11 +2 -0 jakarta-struts/contrib/struts-el/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/contrib/struts-el/build.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- build.xml 4 Feb 2003 04:16:14 - 1.10 +++ build.xml 11 Feb 2003 05:37:59 - 1.11 @@ -216,8 +216,10 @@ tofile=${build.home}/library/commons-validator.jar/ copy file=${jakarta-oro.jar} tofile=${build.home}/library/jakarta-oro.jar/ +!-- Compile-time dependency only copy file=${jdbc20ext.jar} tofile=${build.home}/library/jdbc2_0-stdext.jar/ +-- copy todir=${build.home}/library fileset dir=${jstl.home}/tld includes=*.tld/ fileset dir=${struts.home}/lib includes=*.tld/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/src/test/org/apache/struts/util TestRequestUtils.java
craigmcc2003/02/08 13:01:52 Modified:src/test/org/apache/struts/mock TestMockBase.java src/test/org/apache/struts/util TestRequestUtils.java Log: As part of the investigation of Bugzilla ticket #16603, create unit tests that validate the current behavior of RequestUtils.forwardURL() -- in other words, practice what I've started preaching about test first design. I think I've got 100% coverage on the functional behavior of this method, and have found no functional flaws yet. Now, on to pageURL(). PR: 16603 Submitted by: Malik Recoing Revision ChangesPath 1.10 +140 -4jakarta-struts/src/test/org/apache/struts/mock/TestMockBase.java Index: TestMockBase.java === RCS file: /home/cvs/jakarta-struts/src/test/org/apache/struts/mock/TestMockBase.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- TestMockBase.java 24 Dec 2002 18:49:52 - 1.9 +++ TestMockBase.java 8 Feb 2003 21:01:52 - 1.10 @@ -72,7 +72,9 @@ import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.config.ApplicationConfig; +import org.apache.struts.config.ControllerConfig; import org.apache.struts.config.FormPropertyConfig; +import org.apache.struts.config.ForwardConfig; @@ -116,6 +118,7 @@ protected ApplicationConfig appConfig = null; protected ApplicationConfig appConfig2 = null; +protected ApplicationConfig appConfig3 = null; protected MockServletConfig config = null; protected MockServletContext context = null; protected MockPageContext page = null; @@ -144,6 +147,7 @@ // Set up application configurations for our supported modules setUpDefaultApp(); setUpSecondApp(); +setUpThirdApp(); // NOTE - we do not initialize the request attribute // for the selected module so that fallbacks to the @@ -256,6 +260,43 @@ mapping.setType(org.apache.struts.mock.MockAction); appConfig.addActionConfig(mapping); +// Configure global forward declarations +appConfig.addForwardConfig +(new ForwardConfig(moduleForward, + /module/forward, + false, // No redirect + false)); // Not context relative + +appConfig.addForwardConfig +(new ForwardConfig(moduleRedirect, + /module/redirect, + true,// Redirect + false)); // Not context relative + +appConfig.addForwardConfig +(new ForwardConfig(contextForward, + /context/forward, + false, // No redirect + true)); // Context relative + +appConfig.addForwardConfig +(new ForwardConfig(contextRedirect, + /context/redirect, + true,// Redirect + true)); // Context relative + +appConfig.addForwardConfig +(new ForwardConfig(moduleNoslash, + module/noslash, + false, // No redirect + false)); // Not context relative + +appConfig.addForwardConfig +(new ForwardConfig(contextNoslash, + context/noslash, + false, // No redirect + true)); // Not context relative + } @@ -325,11 +366,106 @@ mapping.setType(org.apache.struts.mock.MockAction); appConfig2.addActionConfig(mapping); +// Configure global forward declarations +appConfig2.addForwardConfig +(new ForwardConfig(moduleForward, + /module/forward, + false, // No redirect + false)); // Not context relative + +appConfig2.addForwardConfig +(new ForwardConfig(moduleRedirect, + /module/redirect, + true,// Redirect + false)); // Not context relative + +appConfig2.addForwardConfig +(new ForwardConfig(contextForward, + /context/forward, + false, // No redirect + true)); // Context relative + +appConfig2.addForwardConfig +(new ForwardConfig(contextRedirect
cvs commit: jakarta-struts/src/share/org/apache/struts/util RequestUtils.java
craigmcc2003/02/08 13:20:20 Modified:src/share/org/apache/struts/util RequestUtils.java Log: Formally document the behavior of forwardURL() so that people will know what to expect (and what we test for). No functionality changes. Revision ChangesPath 1.83 +38 -8 jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java Index: RequestUtils.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v retrieving revision 1.82 retrieving revision 1.83 diff -u -r1.82 -r1.83 --- RequestUtils.java 7 Feb 2003 05:25:23 - 1.82 +++ RequestUtils.java 8 Feb 2003 21:20:19 - 1.83 @@ -1350,10 +1350,40 @@ } /** - * Return the context-relative URL that corresponds to the specified - * {@link ForwardConfig}, relative to the module associated - * with the current {@link ModuleConfig}. The forward path is - * gracefully prefixed with a '/' according to the boolean. + * pReturn the context-relative URL that corresponds to the specified + * {@link ForwardConfig}, calculated based on the properties of the + * {@link ForwardConfig} instance as follows:/p + * ul + * liIf the codecontextRelative/code property is set, it is + * assumed that the codepath/code property contains a path + * that is already context-relative: + * ul + * liIf the codepath/code property value starts with a slash, + * it is returned unmodified./li + * liIf the codepath/code property value does not start + * with a slash, a slash is prepended./li + * /ul/li + * liAcquire the codeforwardPattern/code property from the + * codeControllerConfig/code for the application module used + * to process this request. If no pattern was configured, default + * to a pattern of code$M$P/code, which is compatible with the + * hard-coded mapping behavior in Struts 1.0./li + * liProcess the acquired codeforwardPattern/code, performing the + * following substitutions: + * ul + * listrong$M/strong - Replaced by the module prefix for the + * application module processing this request./li + * listrong$P/strong - Replaced by the codepath/code + * property of the specified {@link ForwardConfig}, prepended + * with a slash if it does not start with one./li + * listrong$$/strong - Replaced by a single dollar sign + * character./li + * listrong$x/strong (where x is any charater not listed + * above) - Silently omit these two characters from the result + * value. (This has the side effect of causing all other + * $+letter combinations to be reserved.)/li + * /ul/li + * /ul * * @param request The servlet request we are processing * @param forward ForwardConfig to be evaluated - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/src/test/org/apache/struts/util TestRequestUtils.java
craigmcc2003/02/08 14:12:09 Modified:src/share/org/apache/struts/util RequestUtils.java src/test/org/apache/struts/util TestRequestUtils.java Log: Unit tests for the current behavior of RequestUtils.pageURL(). We deliberately do *not* do slash prepending here -- the input value must start with a slash. (Doing '/' prepending in forwardURL() was a bad idea IMHO, but apparently it was needed for Tiles, and now it's too late). Revision ChangesPath 1.84 +6 -5 jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java Index: RequestUtils.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v retrieving revision 1.83 retrieving revision 1.84 diff -u -r1.83 -r1.84 --- RequestUtils.java 8 Feb 2003 21:20:19 - 1.83 +++ RequestUtils.java 8 Feb 2003 22:12:09 - 1.84 @@ -1458,7 +1458,8 @@ * * @param request The servlet request we are processing * @param page The module-relative URL to be substituted in - * to the codepagePattern/code pattern for the current module. + * to the codepagePattern/code pattern for the current module + * (strongMUST/strong start with a slash) * @return context-relative URL * @since Struts 1.1b2 */ 1.17 +64 -4 jakarta-struts/src/test/org/apache/struts/util/TestRequestUtils.java Index: TestRequestUtils.java === RCS file: /home/cvs/jakarta-struts/src/test/org/apache/struts/util/TestRequestUtils.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- TestRequestUtils.java 8 Feb 2003 21:01:52 - 1.16 +++ TestRequestUtils.java 8 Feb 2003 22:12:09 - 1.17 @@ -1403,6 +1403,66 @@ } +// -- pageURL() + + +// Default module (default pagePattern) +public void testPageURL1() { + +request.setAttribute(Action.APPLICATION_KEY, appConfig); +request.setPathElements(/myapp, /action.do, null, null); +String page = null; +String result = null; + +// Straight substitution +page = /mypages/index.jsp; +result = RequestUtils.pageURL(request, page); +assertNotNull(straight sub found, result); +assertEquals(straight sub value, + /mypages/index.jsp, result); + + +} + + +// Second module (default pagePattern) +public void testPageURL2() { + +request.setAttribute(Action.APPLICATION_KEY, appConfig2); +request.setPathElements(/myapp, /2/action.do, null, null); +String page = null; +String result = null; + +// Straight substitution +page = /mypages/index.jsp; +result = RequestUtils.pageURL(request, page); +assertNotNull(straight sub found, result); +assertEquals(straight sub value, + /2/mypages/index.jsp, result); + + +} + + +// Third module (custom pagePattern) +public void testPageURL3() { + +request.setAttribute(Action.APPLICATION_KEY, appConfig3); +request.setPathElements(/myapp, /3/action.do, null, null); +String page = null; +String result = null; + +// Straight substitution +page = /mypages/index.jsp; +result = RequestUtils.pageURL(request, page); +assertNotNull(straight sub found, result); +assertEquals(straight sub value, + /paging/3/mypages/index.jsp, result); + + +} + + // --- requestURL() - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/src/share/org/apache/struts/util RequestUtils.java
craigmcc2003/02/08 15:31:30 Modified:conf/share struts-config_1_1.dtd src/share/org/apache/struts/action ExceptionHandler.java src/share/org/apache/struts/config ExceptionConfig.java src/share/org/apache/struts/util RequestUtils.java Log: There was a discrepancy between the description of the path parameter on an exception element between the DTD (which said module relative) and the ExceptionConfig class (which said context relative). Making it module relative is the right answer, so correct the documentation discrepancy and the behavior of ExceptionHandler when it configures an ActionForward to be processed. A side effect of this change is that the included path will be processed through any forwardPattern property you have set on the controller element. Revision ChangesPath 1.37 +11 -5 jakarta-struts/conf/share/struts-config_1_1.dtd Index: struts-config_1_1.dtd === RCS file: /home/cvs/jakarta-struts/conf/share/struts-config_1_1.dtd,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- struts-config_1_1.dtd 7 Feb 2003 07:00:49 - 1.36 +++ struts-config_1_1.dtd 8 Feb 2003 23:31:29 - 1.37 @@ -374,13 +374,19 @@ forward Module-relative path of the servlet or other resource that will process this request, instead of the Action class - specified by type. Exactly one of forward, include, - or type must be specified. + specified by type. The specified path will be processed + through the forwardPattern attribute that is configured + on the controller element for this application module. + Exactly one of forward, include, or type must be + specified. include Module-relative path of the servlet or other resource that will process this request, instead of the Action class - specified by type. Exactly one of forward, include, or - type must be specified. + specified by type. The specified path will be processed + through the includePattern attribute that is configured + on the controller element for this application module. + Exactly one of forward, include, or type must be + specified. input Module-relative path of the action or other resource to which control should be returned if a validation error is 1.16 +1 -2 jakarta-struts/src/share/org/apache/struts/action/ExceptionHandler.java Index: ExceptionHandler.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/ExceptionHandler.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- ExceptionHandler.java 7 Jan 2003 06:32:25 - 1.15 +++ ExceptionHandler.java 8 Feb 2003 23:31:29 - 1.16 @@ -101,9 +101,8 @@ // or from the form input if (ae.getPath() != null) { forward = new ActionForward(ae.getPath()); -forward.setContextRelative(true); } else { -forward = mapping.getInputForward(); +forward = mapping.getInputForward(); } // Figure out the error 1.6 +5 -5 jakarta-struts/src/share/org/apache/struts/config/ExceptionConfig.java Index: ExceptionConfig.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/config/ExceptionConfig.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ExceptionConfig.java 9 Jul 2002 23:57:37 - 1.5 +++ ExceptionConfig.java 8 Feb 2003 23:31:29 - 1.6 @@ -147,7 +147,7 @@ /** - * The context-relative path of the resource to forward to if this + * The module-relative path of the resource to forward to if this * exception occurs during an codeAction/code. */ protected String path = null; 1.85 +6 -5 jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java Index: RequestUtils.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v retrieving revision 1.84 retrieving revision 1.85 diff -u -r1.84 -r1.85 --- RequestUtils.java 8 Feb 2003 22:12:09 - 1.84 +++ RequestUtils.java 8 Feb 2003 23:31:30 -
cvs commit: jakarta-struts/src/share/org/apache/struts/util RequestUtils.java
craigmcc2003/02/08 15:34:38 Modified:src/share/org/apache/struts/util RequestUtils.java Log: Forgot a closing /p. Revision ChangesPath 1.86 +5 -5 jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java Index: RequestUtils.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v retrieving revision 1.85 retrieving revision 1.86 diff -u -r1.85 -r1.86 --- RequestUtils.java 8 Feb 2003 23:31:30 - 1.85 +++ RequestUtils.java 8 Feb 2003 23:34:37 - 1.86 @@ -1455,7 +1455,7 @@ * pReturn the context-relative URL that corresponds to the specified * codepage/code attribute value, calculated based on the * codepagePattern/code property of the current module's - * {@link ModuleConfig}. + * {@link ModuleConfig}./p * * @param request The servlet request we are processing * @param page The module-relative URL to be substituted in - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/conf/share struts-config_1_1.dtd
craigmcc2003/02/08 15:41:59 Modified:conf/share struts-config_1_1.dtd Log: Oops ... make the description of how the forward and include attributes match what the current behavior actually is, rather than what they might get changed to. Revision ChangesPath 1.38 +4 -4 jakarta-struts/conf/share/struts-config_1_1.dtd Index: struts-config_1_1.dtd === RCS file: /home/cvs/jakarta-struts/conf/share/struts-config_1_1.dtd,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- struts-config_1_1.dtd 8 Feb 2003 23:31:29 - 1.37 +++ struts-config_1_1.dtd 8 Feb 2003 23:41:59 - 1.38 @@ -374,7 +374,7 @@ forward Module-relative path of the servlet or other resource that will process this request, instead of the Action class - specified by type. The specified path will be processed + specified by type. The path WILL NOT be processed through the forwardPattern attribute that is configured on the controller element for this application module. Exactly one of forward, include, or type must be @@ -382,8 +382,8 @@ include Module-relative path of the servlet or other resource that will process this request, instead of the Action class - specified by type. The specified path will be processed - through the includePattern attribute that is configured + specified by type. The path WILL NOT be processed + through the forwardPattern attribute that is configured on the controller element for this application module. Exactly one of forward, include, or type must be specified. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/conf/test/tomcat41 server.xml
craigmcc2003/02/06 17:20:14 Modified:.build-tests.xml conf/test/tomcat40 server.xml conf/test/tomcat41 server.xml Log: Change port numbers (8005-9005 and 8080-9090) on the Tomcat 4.0 and 4.1 tests, so that the existence of a running Tomcat on the default ports does not interfere with being able to run them. Revision ChangesPath 1.14 +2 -2 jakarta-struts/build-tests.xml Index: build-tests.xml === RCS file: /home/cvs/jakarta-struts/build-tests.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- build-tests.xml 27 Dec 2002 11:03:55 - 1.13 +++ build-tests.xml 7 Feb 2003 01:20:13 - 1.14 @@ -462,7 +462,7 @@ The servlet engine is automatically stopped if the tests fail for any reason.-- -runservertests testURL=http://localhost:8080/test; +runservertests testURL=http://localhost:9090/test; startTarget=start.tomcat.40 stopTarget=stop.tomcat.40 testTarget=run.test/ @@ -545,7 +545,7 @@ The servlet engine is automatically stopped if the tests fail for any reason.-- -runservertests testURL=http://localhost:8080/test; +runservertests testURL=http://localhost:9090/test; startTarget=start.tomcat.41 stopTarget=stop.tomcat.41 testTarget=run.test/ 1.3 +2 -2 jakarta-struts/conf/test/tomcat40/server.xml Index: server.xml === RCS file: /home/cvs/jakarta-struts/conf/test/tomcat40/server.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- server.xml16 Jun 2002 04:02:38 - 1.2 +++ server.xml7 Feb 2003 01:20:14 - 1.3 @@ -1,9 +1,9 @@ -Server port=8005 shutdown=SHUTDOWN debug=0 +Server port=9005 shutdown=SHUTDOWN debug=0 Service name=Tomcat-Standalone Connector className=org.apache.catalina.connector.http.HttpConnector - port=8080 minProcessors=5 maxProcessors=75 + port=9090 minProcessors=5 maxProcessors=75 acceptCount=10 debug=0/ Engine name=Standalone defaultHost=localhost debug=0 1.2 +2 -2 jakarta-struts/conf/test/tomcat41/server.xml Index: server.xml === RCS file: /home/cvs/jakarta-struts/conf/test/tomcat41/server.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- server.xml16 Jun 2002 04:02:38 - 1.1 +++ server.xml7 Feb 2003 01:20:14 - 1.2 @@ -1,4 +1,4 @@ -Server port=8005 shutdown=SHUTDOWN debug=0 +Server port=9005 shutdown=SHUTDOWN debug=0 Listener className=org.apache.catalina.mbeans.ServerLifecycleListener debug=0/ @@ -29,7 +29,7 @@ Service name=Tomcat-Standalone Connector className=org.apache.coyote.tomcat4.CoyoteConnector - port=8080 minProcessors=5 maxProcessors=75 + port=9090 minProcessors=5 maxProcessors=75 enableLookups=true redirectPort=8443 acceptCount=10 debug=0 connectionTimeout=2 useURIValidationHack=false/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/doc/faqs newbie.xml
craigmcc2003/02/04 20:03:14 Modified:doc/faqs newbie.xml Log: Another good newbie FAQ answer. PR: Bugzilla #16065 Submitted by: Edgar Dollin edgar at blue-moose.net Revision ChangesPath 1.11 +54 -2 jakarta-struts/doc/faqs/newbie.xml Index: newbie.xml === RCS file: /home/cvs/jakarta-struts/doc/faqs/newbie.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- newbie.xml5 Feb 2003 03:31:24 - 1.10 +++ newbie.xml5 Feb 2003 04:03:14 - 1.11 @@ -101,6 +101,11 @@ a href=#formbeansDo ActionForms have to be true JavaBeans?/a /li +li +a href=#separateDo I have to have a separate ActionForm bean +for every HTML form?/a +/li + /ul p @@ -565,6 +570,55 @@ /section +section href=separate + name=Do I have to have a separate ActionForm bean for every HTML form? + +pThis is an interesting question. As a newbie, it is a good +practice to create a new codeActionForm/code for each action +sequence. You can use codeDynaActionForm/codes to help reduce +the effort required, or use the code generation facilities of your +IDE./p + +pSome issues to keep in mind regarding reuse of form beans +are as follows:/p +ul +liemValidation/em - You might need to use different +validation rules depending upon the action that is currently +being executed./li +liemPersistence/em - Be careful that a form populated in +one action is not strongunexpectedly/strong reused in a +different action. Multiple codelt;form-beangt;/code +entries in codestruts-config.xml/code for the same +codeActionForm/code subclass can help (especially if you +store your form beans in session scope). Alternatively, +storing form beans in request scope can avoid unexpected +interactions (as well as reduce the memory footprint of your +application, because no server-side objects will need to be +saved in between requests./li +liemCheckboxes/em - If you do as recommended and reset +your boolean properties (for fields presented as checkboxes), +and the page you are currently displaying does not have a +checkbox for every boolean property on the form bean, the +undisplayed boolean properties will always appear to have a +codefalse/code value./li +liemWorkflow/em - The most common need for form bean +reuse is workflow. Out of the box, Struts has limited support +for workflow, but a common pattern is to use a single form bean +with all of the properties for all of the pages of a workflow. +You will need a good understanding of the +environment (codeActionForm/codes, codeAction/codes, +etc.) prior to being able to put together a smooth workflow +environment using a single form bean./li +/ul + +pAs you get more comfortable, there are a few shortcuts you can +take in order to reuse your codeActionForm/code beans. Most of +these shortcuts depend on how you have chosen to implement your +codeAction/code / codeActionForm/code combinations./p + +/section + + section href=undocumented @@ -574,8 +628,6 @@ ul liWhy is ActionForm a base class rather than an interface?/li - -liDo I have to have a separate ActionForm bean for every HTML form?/li liCan I use other beans or hashmaps with ActionForms?/li - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/doc/faqs newbie.xml
craigmcc2003/02/04 20:23:20 Modified:doc/faqs newbie.xml Log: Add the how to prepopulate a form bean answer, illustrated with how its done in the struts-example webapp. PR: Bugzilla #16066 Submitted by: Edgar Dollin edgar at blue-moose.net Revision ChangesPath 1.12 +82 -2 jakarta-struts/doc/faqs/newbie.xml Index: newbie.xml === RCS file: /home/cvs/jakarta-struts/doc/faqs/newbie.xml,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- newbie.xml5 Feb 2003 04:03:14 - 1.11 +++ newbie.xml5 Feb 2003 04:23:20 - 1.12 @@ -106,6 +106,10 @@ for every HTML form?/a /li +li +a href=#prepopulateHow can I prepopulate a form?/a +/li + /ul p @@ -619,6 +623,84 @@ /section +section href=prepopulate + name=How can I prepopulate a form? + +pThe simplest way to preopulate a form is to have an codeAction/code +whose sole purpose is to populate an codeActionForm/code and forward +to the servoet or JSP to render that form back to the client. A separate +codeAction/code would then be use to process the submitted form fields, +by declaring an instance of the same form bean name./p + +pThe emstruts-example/em example application that is shipped +with Struts illustrates this design pattern nicely. Note the following +definitions from the codestruts-config.xml/code file:/p +pre +... +lt;form-beansgt; +... +lt;-- Registration form bean --gt; +lt;form-bean name=registrationForm + type=org.apache.struts.webapp.example.RegistrationForm/gt; +... +lt;/form-beansgt; +... +lt;action-mappingsgt; +... +lt;-- Edit user registration --gt; +lt;action path=/editRegistration +type=org.apache.struts.webapp.example.EditRegistrationAction +name=registrationForm + scope=request +validate=false/gt; +... +lt;-- Save user registration --gt; +lt;action path=/saveRegistration +type=org.apache.struts.webapp.example.SaveRegistrationAction +name=registrationForm + input=registration + scope=request/gt; +... +lt;/action-mappingsgt; +/pre + +pNote the following features of this approach:/p +ul +liBoth the code/editRegistration/code and +code/saveRegistration/code actions use the same form bean./li +liWhen the code/editRegistration/code action is entered, Struts +will have pre-created an empty form bean instance, and passed it to +the codeexecute()/code method. The setup action is free to +preconfigure the values that will be displayed when the form is +rendered, simply by setting the corresponding form bean properties. +/li +liWhen the setup action completes configuring the properties of the +form bean, it should return an codeActionForm/code that points +at the page which will display this form. If you are using the +Struts JSP tag library, the codeaction/code attribute on your +lt;html:formgt; tag will be set to code/saveRegistration/code +in order for the form to be submitted to the processing action./li +liNote that the setup action (code/editRegistration/code) turns off +validation on the form that is being set up. You will normally want +to include this attribute in the configuration of your setup actions, +because you are not planning to actually process the results -- you +simply want to take advantage of the fact that Struts will precreate +a form bean instance of the correct class for you./li +liThe processing action (code/saveRegistration/code), on the other +hand, leaves out the codevalidate/code attribute, which defaults +to codetrue/code. This tells Struts to perform the validations +associated with this form bean before invoking the processing action +at all. If any validation errors have occurred, Struts will forward +back to your input page (technically, it forwards back to an +codeActionForward/code named registration in this case, because +the example webapp uses the codeinputForward/code attribute in the +codelt;controllergt;/code element -- see the documentation +describing codestruts-config.xml/code for more information) +instead of calling your processing action./li +/ul + +/section
cvs commit: jakarta-struts/web/example/WEB-INF struts-config.xml web.xml
craigmcc2003/01/31 10:00:36 Modified:web/example/WEB-INF struts-config.xml web.xml Removed: src/example/org/apache/struts/webapp/example LogonForm.java Log: Clean up some 1.0-isms that confuse newcomers. Revision ChangesPath 1.30 +3 -20 jakarta-struts/web/example/WEB-INF/struts-config.xml Index: struts-config.xml === RCS file: /home/cvs/jakarta-struts/web/example/WEB-INF/struts-config.xml,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- struts-config.xml 29 Jan 2003 05:35:24 - 1.29 +++ struts-config.xml 31 Jan 2003 18:00:35 - 1.30 @@ -7,12 +7,6 @@ !-- This is the Struts configuration file for the example application, using the proposed new syntax. - - NOTE: You would only flesh out the details in the form-bean - declarations if you had a generator tool that used them to create - the corresponding Java classes for you. Otherwise, you would - need only the form-bean element itself, with the corresponding - name and type attributes. -- @@ -45,20 +39,9 @@ !-- == Form Bean Definitions === -- form-beans -!-- Logon form bean can be one of 3 types -- -!-- -form-bean name=logonForm -type=org.apache.struts.webapp.example.LogonForm/ --- -!-- -form-bean name=logonForm -type=org.apache.struts.action.DynaActionForm - form-property name=username type=java.lang.String/ - form-property name=password type=java.lang.String/ -/form-bean --- -form-bean name=logonForm -type=org.apache.struts.validator.DynaValidatorForm +!-- Logon form bean -- +form-bean name=logonForm + type=org.apache.struts.validator.DynaValidatorForm form-property name=username type=java.lang.String/ form-property name=password type=java.lang.String/ /form-bean 1.16 +1 -9 jakarta-struts/web/example/WEB-INF/web.xml Index: web.xml === RCS file: /home/cvs/jakarta-struts/web/example/WEB-INF/web.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- web.xml 27 Feb 2002 06:20:59 - 1.15 +++ web.xml 31 Jan 2003 18:00:35 - 1.16 @@ -15,15 +15,7 @@ param-nameconfig/param-name param-value/WEB-INF/struts-config.xml/param-value /init-param -init-param - param-namedebug/param-name - param-value3/param-value -/init-param -init-param - param-namedetail/param-name - param-value3/param-value -/init-param -load-on-startup2/load-on-startup +load-on-startup1/load-on-startup /servlet - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/src/share/org/apache/struts/action RequestProcessor.java
craigmcc2003/01/30 09:58:14 Modified:src/share/org/apache/struts/action RequestProcessor.java Log: Make the per-request logging message happen at DEBUG level, not INFO. Revision ChangesPath 1.24 +7 -7 jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java Index: RequestProcessor.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- RequestProcessor.java 28 Jan 2003 19:30:24 - 1.23 +++ RequestProcessor.java 30 Jan 2003 17:58:13 - 1.24 @@ -221,9 +221,9 @@ if (path == null) { return; } -if (log.isInfoEnabled()) { -log.info(Processing a ' + request.getMethod() + - ' for path ' + path + '); +if (log.isDebugEnabled()) { +log.debug(Processing a ' + request.getMethod() + + ' for path ' + path + '); } // Select a Locale for the current user if requested - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-struts/src/share/org/apache/struts/config ControllerConfig.java
craigmcc2003/01/28 11:30:24 Modified:conf/share struts-config_1_1.dtd doc/userGuide configuration.xml src/share/org/apache/struts/action ActionServlet.java RequestProcessor.java src/share/org/apache/struts/config ControllerConfig.java Log: Deprecate the debug servlet init parameter. It is basically irrelevant when you use commons-logging and configure underlying loggers. Make it clearer that the controller servlet must be a singleton. Revision ChangesPath 1.35 +4 -3 jakarta-struts/conf/share/struts-config_1_1.dtd Index: struts-config_1_1.dtd === RCS file: /home/cvs/jakarta-struts/conf/share/struts-config_1_1.dtd,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- struts-config_1_1.dtd 23 Dec 2002 22:00:24 - 1.34 +++ struts-config_1_1.dtd 28 Jan 2003 19:30:23 - 1.35 @@ -477,8 +477,9 @@ JSP, or other resource to which the request is forwarded. [text/html] - debug Debugging detail level for this module. - [0] + debug Debugging detail level for this module. [0] + DEPRECATED - configure the logging detail level + in your underlying logging implementation. forwardPattern Replacement pattern defining how the path attribute of a forward element is mapped to a context-relative URL when 1.16 +19 -25jakarta-struts/doc/userGuide/configuration.xml Index: configuration.xml === RCS file: /home/cvs/jakarta-struts/doc/userGuide/configuration.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- configuration.xml 20 Jan 2003 00:03:22 - 1.15 +++ configuration.xml 28 Jan 2003 19:30:23 - 1.16 @@ -625,28 +625,12 @@ org.apache.struts.action.ActionServlet /servlet-class init-param -param-nameapplication/param-name -param-value - org.apache.struts.webapp.example.ApplicationResources -/param-value - /init-param - init-param param-nameconfig/param-name param-value /WEB-INF/struts-config.xml /param-value /init-param - init-param -param-namedebug/param-name -param-value2/param-value - /init-param - init-param -param-namemapping/param-name -param-value - org.apache.struts.webapp.example.ApplicationMapping -/param-value - /init-param - load-on-startup2/load-on-startup + load-on-startup1/load-on-startup /servlet ]]/code/pre @@ -690,14 +674,6 @@ /li li -strongdebug/strong - The debugging detail level that controls -how much information is logged for this servlet. -Accepts values 0 (off) and from 1 (least serious) through 6 -(most serious). -[0] -/li - -li strongrulesets/strong - Comma-delimited list of fully qualified classnames of additional codeorg.apache.commons.digester.RuleSet/code instances that @@ -748,6 +724,15 @@ /li li +strongdebug/strong - The debugging detail level that controls +how much information is logged for this servlet. +Accepts values 0 (off) and from 1 (least serious) through 6 +(most serious). [0] +emDEPRECATED - Configure the logging detail level in your +underlying logging implementation./em +/li + +li strongfactory/strong - The Java class name of the codeMessageResourcesFactory/code used to create the application codeMessageResources/code object. @@ -880,6 +865,15 @@ /li /ul + + p + font color=redstrongWARNING/strong/font - Struts will not + operate correctly if you define more than one + codelt;servletgt;/code element for a controller + servlet, or a subclass of the standard controller servlet class. + The controller servlet strongMUST/strong be a web application + wide singleton. + /p /section 1.142 +12 -7 jakarta-struts/src/share/org/apache/struts/action/ActionServlet.java Index: ActionServlet.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/ActionServlet.java,v retrieving revision 1.141 retrieving revision 1.142 diff -u -r1.141 -r1.142 --- ActionServlet.java18 Jan 2003 19:43:00 - 1.141 +++ ActionServlet.java28 Jan 2003 19:30:23 - 1.142 @@ -192,9 +192,6
cvs commit: jakarta-struts/doc/userGuide configuration.xml
craigmcc2003/01/19 16:03:22 Modified:doc/userGuide configuration.xml Log: Add a sidebar to discourage people from putting struts.jar and commons-*.jar in a container's shared JARs repository. Revision ChangesPath 1.15 +88 -0 jakarta-struts/doc/userGuide/configuration.xml Index: configuration.xml === RCS file: /home/cvs/jakarta-struts/doc/userGuide/configuration.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- configuration.xml 19 Jan 2003 00:40:41 - 1.14 +++ configuration.xml 20 Jan 2003 00:03:22 - 1.15 @@ -1116,6 +1116,94 @@ for how to avoid copying the tlds into your application. /p +div align=center + table border=1 cellspacing=0 cellpadding=5 width=80% + trtd bgcolor=cyan + + h3 align=center +Sidebar: Sharing JAR Files Across Web Applications + /h3 + + p +Many servlet containers and application servers provide facilities +for sharing JAR files across multiple web applications that depend +on them. For example, Tomcat 4.1 allows you to put JAR files into +the code$CATALINA_HOME/shared/lib/code or +code$CATALINA_HOME/common/lib/code directories, and the classes +in those JAR files will be available in all applications, without +the need to place them in every web application's +code/WEB-INF/lib/code directory. Usually, the sharing is +accomplished by creating a separate class loader that is the parent +of the class loader (created by your container) for each individual +web application. + /p + + p +If you have multiple Struts-based web applications, it is tempting +to consider taking advantage of this container feature, and placing +codestruts.jar/code and the various codecommons-*.jar/code +files in the shared directory, rather than in each web application. +However, there are several potential, and actual, problems with +this approach: + /p + + ul +li + Classes loaded from the shared class loader cannot see classes + in the web application's class loader, unless they are specifically + programmed to use the Thread context class loader. + blockquote +For example, Struts dynamically loads your action and form bean +classes, and normally would not be able to find those classes. +Struts has been programmed to deal with this in emmost/em +scenarios, but it has not been thoroughly audited to ensure that +it works in emall/em scenarios. The Commons libraries that +Struts uses have strongNOT/strong been audited to catch all +possible scenarios where this might become a problem. + /blockquote +/li +li + When a class is loaded from a shared class loader, static variables + used within that class become global as well. This can cause + inter-webapp conflicts when the underlying code assumes that the + statics are global only within a particular web applicaiton (which + would be true if the class was loaded from the webapp class loader). + blockquote +There are many cases where Struts, and the Commons libraries it +relies on, use static variables to maintain information that is +presumed to be visible only within a single web applicaiton. +Sharing these JAR files can cause unwanted interactions, and +probably cause incorrect behavior. + /blockquote +/li +li + When JAR files are shared like this, it is not possible to update + the JAR file versions employed by a single web application without + updating all of them. In addition, because updating a Struts version + normally requires recompilation of the applications that use it, + you will have to recompile all of your applications as well, instead + of being able to manage them independently. +/li + /ul + + p +In spite of these difficulties, it is possible that sharing the +Struts and Commons JAR files emmight/em appear to work for you. +However, this is strongNOT/strong a supported configuration. + /p + + p +If you file a bug report for codeClassNotFoundException/code or +codeNoClassDefFoundError/code exceptions, or similar situations +where it appears that the wrong version of a class is being loaded, +the bug report will strongNOT/strong be processed unless the +problem exists
cvs commit: jakarta-struts/src/share/org/apache/struts/action ActionServlet.java
craigmcc2003/01/18 11:43:00 Modified:doc/userGuide configuration.xml src/share/org/apache/struts/action ActionServlet.java Log: Desupport the detail servlet init parameter, and remove it from the documentation. Logging configuration for Digester is now done by configuring the logging implementation that is used via commons-logging. The detail value wasn't used for anything, and was only causing confusion. Revision ChangesPath 1.11 +0 -7 jakarta-struts/doc/userGuide/configuration.xml Index: configuration.xml === RCS file: /home/cvs/jakarta-struts/doc/userGuide/configuration.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- configuration.xml 29 Dec 2002 11:45:44 - 1.10 +++ configuration.xml 18 Jan 2003 19:43:00 - 1.11 @@ -698,13 +698,6 @@ /li li -strongdetail/strong - The debugging detail level for the Digester -we utilize to process the application module configuration files. -Accepts values 0 (off) and 1 (least serious) through 6 (most serious). -[0] -/li - -li strongrulesets/strong - Comma-delimited list of fully qualified classnames of additional codeorg.apache.commons.digester.RuleSet/code instances that 1.141 +4 -19 jakarta-struts/src/share/org/apache/struts/action/ActionServlet.java Index: ActionServlet.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/ActionServlet.java,v retrieving revision 1.140 retrieving revision 1.141 diff -u -r1.140 -r1.141 --- ActionServlet.java31 Dec 2002 11:38:25 - 1.140 +++ ActionServlet.java18 Jan 2003 19:43:00 - 1.141 @@ -195,9 +195,6 @@ * listrongdebug/strong - TThe debugging detail level that controls how much * information is logged for this servlet. Accepts values 0 (off) and from * 1 (least serious) through 6 (most serious). [0]/li - * listrongdetail/strong - The debugging detail level for the Digester - * we utilize to process the module configuration files. Accepts - * values 0 (off) and 1 (least serious) through 6 (most serious). [0]/li * listrongrulesets/strong - Comma-delimited list of fully qualified * classnames of additional codeorg.apache.commons.digester.RuleSet/code * instances that should be added to the codeDigester/code that will @@ -351,12 +348,6 @@ /** - * The debugging detail level for configuration file parsing. - */ -protected int detail = 0; - - -/** * The resources object for our internal resources. */ protected MessageResources internal = null; @@ -1301,12 +1292,6 @@ debug = Integer.parseInt(value); } catch (Throwable t) { debug = 0; -} -try { -value = getServletConfig().getInitParameter(detail); -detail = Integer.parseInt(value); -} catch (Throwable t) { -detail = 0; } // Backwards compatibility hack for form beans of Java wrapper classes -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-struts/src/example/org/apache/struts/webapp/example CheckLogonTag.java LinkSubscriptionTag.java LinkUserTag.java RegistrationForm.java SaveSubscriptionAction.java
craigmcc2003/01/18 11:48:57 Modified:src/example/org/apache/struts/webapp/example CheckLogonTag.java LinkSubscriptionTag.java LinkUserTag.java RegistrationForm.java SaveSubscriptionAction.java Log: Remove unused imports in Struts example webapp. PR: Bugzilla #16064 Submitted by: Nayah Hajratwala nayan at chikli.com Revision ChangesPath 1.7 +4 -9 jakarta-struts/src/example/org/apache/struts/webapp/example/CheckLogonTag.java Index: CheckLogonTag.java === RCS file: /home/cvs/jakarta-struts/src/example/org/apache/struts/webapp/example/CheckLogonTag.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- CheckLogonTag.java11 Jan 2003 03:08:23 - 1.6 +++ CheckLogonTag.java18 Jan 2003 19:48:56 - 1.7 @@ -63,14 +63,9 @@ package org.apache.struts.webapp.example; -import java.io.IOException; import javax.servlet.http.HttpSession; import javax.servlet.jsp.JspException; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.TagSupport; -import org.apache.struts.action.Action; -import org.apache.struts.util.MessageResources; import org.apache.struts.config.ModuleConfig; 1.5 +4 -5 jakarta-struts/src/example/org/apache/struts/webapp/example/LinkSubscriptionTag.java Index: LinkSubscriptionTag.java === RCS file: /home/cvs/jakarta-struts/src/example/org/apache/struts/webapp/example/LinkSubscriptionTag.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- LinkSubscriptionTag.java 11 Jan 2003 03:08:23 - 1.4 +++ LinkSubscriptionTag.java 18 Jan 2003 19:48:56 - 1.5 @@ -68,7 +68,6 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.TagSupport; import org.apache.struts.util.MessageResources; import org.apache.struts.util.ResponseUtils; 1.6 +4 -5 jakarta-struts/src/example/org/apache/struts/webapp/example/LinkUserTag.java Index: LinkUserTag.java === RCS file: /home/cvs/jakarta-struts/src/example/org/apache/struts/webapp/example/LinkUserTag.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- LinkUserTag.java 11 Jan 2003 03:08:23 - 1.5 +++ LinkUserTag.java 18 Jan 2003 19:48:56 - 1.6 @@ -68,7 +68,6 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.TagSupport; import org.apache.struts.util.MessageResources; import org.apache.struts.util.ResponseUtils; 1.7 +4 -5 jakarta-struts/src/example/org/apache/struts/webapp/example/RegistrationForm.java Index: RegistrationForm.java === RCS file: /home/cvs/jakarta-struts/src/example/org/apache/struts/webapp/example/RegistrationForm.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- RegistrationForm.java 11 Jan 2003 03:08:23 - 1.6 +++ RegistrationForm.java 18 Jan 2003 19:48:56 - 1.7 @@ -66,7 +66,6 @@ import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; -import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.validator.ValidatorForm; 1.13 +4 -6 jakarta-struts/src/example/org/apache/struts/webapp/example/SaveSubscriptionAction.java Index: SaveSubscriptionAction.java === RCS file: /home/cvs/jakarta-struts/src/example/org/apache/struts/webapp/example/SaveSubscriptionAction.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- SaveSubscriptionAction.java 11 Jan 2003 03:08:23 - 1.12 +++ SaveSubscriptionAction.java 18 Jan 2003 19:48:56 - 1.13 @@ -73,8 +73,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts.action.Action; -import org.apache.struts.action.ActionError; -import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping
cvs commit: jakarta-struts/doc/userGuide configuration.xml index.xml
craigmcc2003/01/18 12:09:45 Modified:doc/userGuide configuration.xml index.xml Log: Fix table of contents link to section 5.2.1 (plus several other problems in the links for Chapter 5). PR: Bugzilla #16183 Submitted by: Matt Raible matt at raibledesigns.com Revision ChangesPath 1.12 +2 -2 jakarta-struts/doc/userGuide/configuration.xml Index: configuration.xml === RCS file: /home/cvs/jakarta-struts/doc/userGuide/configuration.xml,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- configuration.xml 18 Jan 2003 19:43:00 - 1.11 +++ configuration.xml 18 Jan 2003 20:09:45 - 1.12 @@ -466,7 +466,7 @@ section name=5.3.2 Informing the Controller -href=module_config-inform_conroller +href=module_config-inform_controller p In struts 1.0, you listed your configuration file as an initialization @@ -969,7 +969,7 @@ /section section -name=5.4.3 Configure the Struts Tag Library +name=5.4.3 Configure the Struts Tag Libraries href=dd_config_taglib p 1.29 +13 -14jakarta-struts/doc/userGuide/index.xml Index: index.xml === RCS file: /home/cvs/jakarta-struts/doc/userGuide/index.xml,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- index.xml 31 Dec 2002 03:12:11 - 1.28 +++ index.xml 18 Jan 2003 20:09:45 - 1.29 @@ -128,28 +128,27 @@ li5. Configuring Applications/li ul lia href=configuration.html#config-overview5.1 Overview/a/li -lia href=configuration.html#config5.2 The Struts Configuration File/a +lia href=configuration.html#struts-config5.2 The Struts Configuration File/a ul -lia href=configuration.html#plugin_config5.2.1 Controller Configuration/a/li +lia href=configuration.html#controller_config5.2.1 Controller Configuration/a/li lia href=configuration.html#resources_config5.2.2 Message Resources Configuration/a/li -lia href=configuration.html#PlugIn_config5.2.3 PlugIn Configuration/a/li +lia href=configuration.html#plugin_config5.2.3 PlugIn Configuration/a/li lia href=configuration.html#data-source_config5.2.4 Data Source Configuration/a/li -lia href=configuration.html#dd_config_modules5.3 Configuring your application for modules/a/li +/ul +lia href=configuration.html#dd_config_modules5.3 Configuring your application for modules/a/li +ul +lia href=configuration.html#module_config-files5.3.1 Module Configuration Files/a/li +lia href=configuration.html#module_config-inform_controller5.3.2 Informing the Controller/a/li lia href=configuration.html#module_config-switching5.3.3 Switching Modules/a/li -lia href=configuration.html#dd_config5.4 The Web Application Deployment Descriptor/a/li -lia href=configuration.html#config_add5.5 Add Struts Components To Your Application/a/li /ul -/li -li -a href=configuration.html#dd_config5.3 The Web Application Deployment Descriptor/a +lia href=configuration.html#dd_config5.4 The Web Application Deployment Descriptor/a/li ul -lia href=configuration.html#dd_config_servlet5.3.1 Configure the Action Servlet Instance/a/li -lia href=configuration.html#dd_config_mapping5.3.2 Configure the Action Servlet Mapping/a/li -lia href=configuration.html#dd_config_taglib5.3.3 Configure the Struts Tag Library/a/li -lia href=configuration.html#dd_config_taglib5.3.3.1 Configure the Struts Tag Library (Servlet 2.3)/a/li +lia href=configuration.html#dd_config_servlet5.4.1 Configure the Action Servlet Instance/a/li +lia href=configuration.html#dd_config_mapping5.4.2 Configure the Action Servlet Mapping/a/li +lia href=configuration.html#dd_config_taglib5.4.3 Configure the Struts Tag Libraries/a/li /ul +lia href=configuration.html#config_add5.5 Add Struts Components To Your Application/a/li /li -lia href=configuration.html#config_add5.4 Add Struts Components To Your Application/a/li /ul li6. Getting Started/li -- To unsubscribe, e-mail
cvs commit: jakarta-struts/doc/userGuide configuration.xml index.xml
craigmcc2003/01/18 14:11:04 Modified:doc/userGuide configuration.xml index.xml Log: Add some notes about how Struts itself uses Commons Logging. Revision ChangesPath 1.13 +92 -1 jakarta-struts/doc/userGuide/configuration.xml Index: configuration.xml === RCS file: /home/cvs/jakarta-struts/doc/userGuide/configuration.xml,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- configuration.xml 18 Jan 2003 20:09:45 - 1.12 +++ configuration.xml 18 Jan 2003 22:11:04 - 1.13 @@ -1067,7 +1067,7 @@ /section section -name=5.4.3.1 Configure the Struts Tag Library (Servlet 2.3) +name=5.4.3.1 Configure the Struts Tag Libraries (Servlet 2.3) href=dd_config_taglib_23 p @@ -1117,6 +1117,97 @@ /p /section + +section +name=5.6 Logging in Struts Based Applications +href=config_logging + + p + In Struts 1.0, the logging functionality was fairly limited. You could + set a debugging detail level with a servlet initialization parameter, and + all log messages were written to wherever codeServletContext.log()/code + output is sent by your servlet container. WIth Struts 1.1, however, all + logging messages written by Struts itself, as well as the commons librarires + that it utilizes, flow through an abstract wrapper called + a href=http://jakarta.apache.org/commons/logging;Commons Logging/a, + which can be used as a wrapper around any logging implementation. The most + common implementations used are simple logging to codeSystem.err/code, + the a href=http://jakarta.apache.org/log4j/;Apache Log4J/a package, + or the built-in logging capabilities of JDK 1.4 or later in the + a href=http://java.sun.com/j2se/1.4/docs/api/java/util/logging/package-summary.html; + java.util.logging/a package. + /p + + p + This section does not attempt to fully explain how Commons Logging is + configured and used. Instead, it focuses on pertinent details of using + Commons Logging in a Struts based environment. For complete documentation + on using Commons Logging, consult the documentation for the logging system + you are using, plus the Commons Logging + a href=http://jakarta.apache.org/commons/logging/api/org/apache/commons/logging/package-summary.html#package_description; + Javadocs/a. + /p + + p + Commons Logging provides fine-grained control over the logging messages + created by a codeLog/code instance. By convention, the codeLog/code + instances for Struts (and the Commons packages in general) are named the + fully qualified class name of the class whose messages are being logged. + Therefore, log messages created by the RequestProcessor class are, naturally + enough, directed to a logger named + codeorg.apache.struts.action.RequestProcessor/code. + /p + + p + The advantage of this approach is that you can configure the level of detail + in the output you want from each class, individually. However, it would be + a burden to be required to maintain such settings for every possible class, + so the logging environment supports the notion of logging + emhierarchies/em as well. If a detail level configuration for a + particular class has not been set, the logging system looks up the hierarchy + until it finds a configuration setting to use, or else uses the default + detail level if no configuration for any level of the hierarchy has been + explicitly set. In the case of our messages from codeRequestProcessor/code, + the logging system will look for explicit settings of the following loggers, + in this order, until it finds one. + /p + + ul + licodeorg.apache.struts.action.RequestProcessor/code/li + licodeorg.apache.struts.action/code/li + licodeorg.apache.struts/code/li + licodeorg.apache/code/li + licodeorg/code/li + liThe default logging detail level for your log implementation./li + /ul + + p + In a similar manner, the detail level for messages from + codePropertyUtils/code (from the Commons BeanUtils library) is set by + a search for configuration settings for: + /p + + ul + licodeorg.apache.commons.beanutils.PropertyUtils/code/li + licodeorg.apache.commons.beanutils/code/li + licodeorg.apache.commons/code/li + licodeorg.apache/code/li + licodeorg/code/li + liThe default logging detail level for your log implementation./li + /ul + + p + You can seamlessly integrate logging from your own components into the same + logging implementation that Struts and the Commons libraries use, by + following the instructions in + a href=building_controller.html#loggingSection 4.10/a. If you do + this, you are strongly encouraged to follow the same naming convention for + loggers
cvs commit: jakarta-struts/doc/news index.xml
craigmcc2003/01/18 14:28:36 Modified:doc/news index.xml Log: Correct links to distribution directories, and add a link to the release notes. PR: Bugzilla #16148 Submitted by: Jean-Michel Garnier garnierjm at yahoo.fr Revision ChangesPath 1.15 +10 -5 jakarta-struts/doc/news/index.xml Index: index.xml === RCS file: /home/cvs/jakarta-struts/doc/news/index.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- index.xml 31 Dec 2002 03:12:11 - 1.14 +++ index.xml 18 Jan 2003 22:28:36 - 1.15 @@ -14,7 +14,7 @@ /p p -a href=http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3/;Struts 1.1b/a is in its third bbeta release/b (30 December 2002). +a href=http://www.apache.org/dist/jakarta/struts/;Struts 1.1/a is in its third bbeta release/b (30 December 2002). /p hr size=1 noshade=/ @@ -123,29 +123,34 @@ The binary distribution is available at: /p p -a href=http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3/;http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3//a +a href=http://www.apache.org/dist/jakarta/struts/binaries/; +http://www.apache.org/dist/jakarta/struts/binaries//a /p p and the source distribution is available at: /p p -a href=http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3/src/;http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3/src//a +a href=http://www.apache.org/dist/jakarta/struts/source/; +http://www.apache.org/dist/jakarta/struts/source//a /p p In addition, the library distribution, which contains updated binaries without the sample applications, is available at: /p p - http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3/lib/ +a href=http://www.apache.org/dist/jakarta/struts/library/; +http://www.apache.org/dist/jakarta/struts/library//a /p p Details of the changes in this release are available in the Release Notes, which can be found here: /p p - http://jakarta.apache.org/struts/userGuide/release-notes-1.1-b3.html +a href=http://jakarta.apache.org/struts/userGuide/release-notes-1.1-b3.html; +http://jakarta.apache.org/struts/userGuide/release-notes-1.1-b3.html/a /p hr size=1 noshade=/ + h3a name=20021213/a12 December 2002 - Struts book #1 and #2/h3 p -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-struts/doc/userGuide building_controller.xml building_model.xml building_view.xml configuration.xml dev_bean.xml dev_html.xml dev_logic.xml dev_nested.xml dev_template.xml dev_tiles.xml dev_util.xml dev_utils.xml dev_validator.xml index.xml installation-1.0.xml installation-ip.xml installation-ipas.xml installation-jetty.xml installation-jr30.xml installation-novell.xml installation-oas.xml installation-sas.xml installation-tc.xml installation-ubs72.xml installation-was352-x.xml installation-was352.xml installation-wls5.xml installation.xml introduction.xml preface.xml release-notes-1.0-b1.xml release-notes-1.0-b2.xml release-notes-1.0-b3.xml release-notes-1.0.1.xml release-notes-1.0.2.xml release-notes-1.0.xml release-notes-1.1-b1.xml release-notes-1.1-b2.xml release-notes-1.1-b3.xml release-notes.xml struts-bean.xml struts-html.xml struts-logic.xml struts-nested.xml struts-template.xml struts-tiles.xml
craigmcc2003/01/18 16:40:43 Modified:.build-webapps.xml build.xml doc/stylesheets userGuide.xsl doc/userGuide building_controller.xml building_model.xml building_view.xml configuration.xml dev_bean.xml dev_html.xml dev_logic.xml dev_nested.xml dev_template.xml dev_tiles.xml dev_util.xml dev_utils.xml dev_validator.xml index.xml installation-1.0.xml installation-ip.xml installation-ipas.xml installation-jetty.xml installation-jr30.xml installation-novell.xml installation-oas.xml installation-sas.xml installation-tc.xml installation-ubs72.xml installation-was352-x.xml installation-was352.xml installation-wls5.xml installation.xml introduction.xml preface.xml release-notes-1.0-b1.xml release-notes-1.0-b2.xml release-notes-1.0-b3.xml release-notes-1.0.1.xml release-notes-1.0.2.xml release-notes-1.0.xml release-notes-1.1-b1.xml release-notes-1.1-b2.xml release-notes-1.1-b3.xml release-notes.xml struts-bean.xml struts-html.xml struts-logic.xml struts-nested.xml struts-template.xml struts-tiles.xml Added: doc/images printer.gif Log: Add printer-friendly versions of all the pages in the user guide. The bulk of the change was in the stylesheet -- the only change to the docs themselves was the document uri=... values. We definitely need to clean the build process up, either now or in 1.2. For example, it's not obvious to me why all the doc sections don't share the same stylesheet, or why we have duplicate build stuff in the compile.website target and the target for the documentation webapp. Revision ChangesPath 1.19 +14 -2 jakarta-struts/build-webapps.xml Index: build-webapps.xml === RCS file: /home/cvs/jakarta-struts/build-webapps.xml,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- build-webapps.xml 31 Dec 2002 07:29:16 - 1.18 +++ build-webapps.xml 19 Jan 2003 00:40:41 - 1.19 @@ -206,10 +206,22 @@ extension=.html style=${doc.dir}/stylesheets/resources.xsl includes=*.xml/ !-- Create the user guide -- +!-- ... browser version ... -- style basedir=${doc.dir}/userGuide destdir=${build.home}/documentation/userGuide - extension=.html style=${doc.dir}/stylesheets/userGuide.xsl -includes=*.xml/ + extension=.html style=../stylesheets/userGuide.xsl +includes=*.xml + param name=relative-path expression=../ +/style +!-- ... printer version ... -- +mkdir dir=${build.home}/documentation/userGuide/printer/ +style basedir=${doc.dir}/userGuide + destdir=${build.home}/documentation/userGuide/printer + extension=.html style=../stylesheets/userGuide.xsl +includes=*.xml + param name=relative-path expression=../../ + param name=project-menu expression=nomenu/ +/style !-- Copy the basic documentation files -- copy todir=${build.home}/documentation fileset dir=${doc.dir} 1.94 +13 -1 jakarta-struts/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-struts/build.xml,v retrieving revision 1.93 retrieving revision 1.94 diff -u -r1.93 -r1.94 --- build.xml 7 Jan 2003 05:42:55 - 1.93 +++ build.xml 19 Jan 2003 00:40:41 - 1.94 @@ -810,10 +810,22 @@ extension=.html style=../stylesheets/resources.xsl includes=*.xml/ !-- Create the user guide -- +!-- ... browser version ... -- style basedir=${doc.dir}/userGuide destdir=${build.home}/documentation/userGuide extension=.html style=../stylesheets/userGuide.xsl -includes=*.xml/ +includes=*.xml + param name=relative-path expression=../ +/style +!-- ... printer version ... -- +mkdir dir=${build.home}/documentation/userGuide/printer/ +style basedir=${doc.dir}/userGuide + destdir=${build.home}/documentation/userGuide/printer + extension=.html style=../stylesheets/userGuide.xsl +includes=*.xml + param name=relative-path expression=../../ + param name=project-menu expression=nomenu/ +/style !-- Copy the basic
cvs commit: jakarta-struts/doc status.xml
craigmcc2003/01/18 16:42:49 Modified:doc status.xml Log: Add a roadmap note about refactoring the source repositories and build scripts. Revision ChangesPath 1.25 +5 -1 jakarta-struts/doc/status.xml Index: status.xml === RCS file: /home/cvs/jakarta-struts/doc/status.xml,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- status.xml7 Jan 2003 04:27:20 - 1.24 +++ status.xml19 Jan 2003 00:42:49 - 1.25 @@ -136,6 +136,10 @@ Maven/a for project management /li +liRegardless of whether a move to Maven happens or not, we need to +refactor the source repositories and build scripts for less complexity +and easier maintenance./li + /ul p -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-struts/doc status.xml
craigmcc2003/01/06 20:27:20 Modified:doc status.xml Log: Fix bad link in the status page. PR: Bugzilla #15815 Submitted by: Hal Deadman hal.deadman at tallan.com Revision ChangesPath 1.24 +2 -2 jakarta-struts/doc/status.xml Index: status.xml === RCS file: /home/cvs/jakarta-struts/doc/status.xml,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- status.xml31 Dec 2002 03:12:11 - 1.23 +++ status.xml7 Jan 2003 04:27:20 - 1.24 @@ -207,7 +207,7 @@ /li li -a href=../proposals/struts-faces.htmlstruts-faces taglib/a +a href=proposals/struts-faces.htmlstruts-faces taglib/a /li li -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-struts/src/share/org/apache/struts/plugins - New directory
craigmcc2003/01/06 21:02:35 jakarta-struts/src/share/org/apache/struts/plugins - New directory -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-struts/web/example/WEB-INF struts-config.xml
craigmcc2003/01/06 22:14:59 Modified:src/share/org/apache/struts/action ActionResources.properties web/example/WEB-INF struts-config.xml Added: src/share/org/apache/struts/plugins ModuleConfigVerifier.java Log: The beginnings of a standard PlugIn that attempts to verify the configuration information encapsulated in the ModuleConfig for the current module. It logs any error reports it finds via ServletContext.log(), and optionally (but does by default) throws an initialization exception if any error was actually found. The standard struts-example webapp has been modified to register this PlugIn. Known Limitation: Checking things here will not catch some kinds of errors like defining two forward elements with the same name value. We'll need some additional help (perhaps in the addFoo() methods of ModuleConfig) to catch that kind of thing. This PlugIn is at least partially in response to Bugzilla #14749, which reports something that really is pilot error (incorrect value in the configuration file), but is something that is hard for a newbie to track down. We need to reduce the number of errors that are hard to trace. Revision ChangesPath 1.11 +12 -0 jakarta-struts/src/share/org/apache/struts/action/ActionResources.properties Index: ActionResources.properties === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/ActionResources.properties,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ActionResources.properties22 Jun 2002 20:39:48 - 1.10 +++ ActionResources.properties7 Jan 2003 06:14:59 - 1.11 @@ -1,11 +1,14 @@ actionCreate=No action instance for path {0} could be created applicationLoading=Loading application resources from resource {0} applicationResources=Cannot load application resources bundle {0} +configCompleted=Verification of ModuleConfig has been completed +configFatal=Fatal module configuration error, see previous messages configInit=Initializing configuration from resource path {0} configIO=Input/output error reading configuration from resource path {0} configMapping=Configuring mapping for path {0} configMissing=Missing configuration resource for path {0} configParse=Parsing error processing resource path {0} +configVerifying=Verifying ModuleConfig for this application module dataSource.destroy=Finalizing application data source {0} dataSource.init=Initializing application data source {0} destroyDataSource=Exception destroying application data source {0} @@ -22,3 +25,12 @@ requestDispatcher=Cannot get request dispatcher for path {0} sessionCreate=No user session could be created unhandledException=Unhandled Exception thrown: {0} +verifyActionMappingClass.invalid=Invalid ActionMapping class {0} specified +verifyActionMappingClass.missing=No ActionMapping implementation class specified +verifyForwardConfig.invalid=Invalid path {0} for ForwardConfig {1} +verifyForwardConfig.missing=Missing path for ForwardConfig {0} +verifyMessageResourcesConfigs.invalid=Invalid factory class {0} for MessageResourcesConfig +verifyMessageResourcesConfigs.key=No key attribute for MessageResourcesConfig +verifyMessageResourcesConfigs.missing=No factory attribute for MessageResourcesConfig +verifyPlugInConfigs.invalid=Invalid className {0} for PlugInConfig +verifyPlugInConfigs.missing=No className attribute for PlugInConfig 1.1 jakarta-struts/src/share/org/apache/struts/plugins/ModuleConfigVerifier.java Index: ModuleConfigVerifier.java === /* * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/plugins/ModuleConfigVerifier.java,v 1.1 2003/01/07 06:14:59 craigmcc Exp $ * $Revision: 1.1 $ * $Date: 2003/01/07 06:14:59 $ * * * * The Apache Software License, Version 1.1 * * Copyright (c) 1999-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement
cvs commit: jakarta-struts/src/test/org/apache/struts/util TestRequestUtils.java
craigmcc2002/12/24 10:49:52 Modified:src/share/org/apache/struts/config FormPropertyConfig.java src/test/org/apache/struts/action TestDynaActionForm.java TestDynaActionFormClass.java src/test/org/apache/struts/mock MockPrincipal.java TestMockBase.java src/test/org/apache/struts/util TestRequestUtils.java Log: The second half of the fix for 14800. The problem with mutable property values is *not* limited to array elements -- it will also occur when a scalar property is of a mutable type. As a solution to this, initial() now calculates and returns a new value every time, rather than caching the old one. This is a relatively minor performance hit, but not (in principle at least) any worse than evaluating the initialization expression for an instance variable in a JavaBean every time one is created. As an added benefit, the initial() method will also attempt to create instances of properties (via a zero-args constructor) if you did not specify an initial value to pass in to ConvertUtils.convert(). This is true both for scalar properties and for elements of arrays constructed with the size attribute. In general, DynaActionForm beans now act very much more like standard ActionForm beans with respect to preinitialized property values than they did before these changes. PR: Bugzilla #14800 Submitted by: James Turner turner at blackbear.com Revision ChangesPath 1.9 +62 -49 jakarta-struts/src/share/org/apache/struts/config/FormPropertyConfig.java Index: FormPropertyConfig.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/config/FormPropertyConfig.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- FormPropertyConfig.java 23 Dec 2002 22:00:24 - 1.8 +++ FormPropertyConfig.java 24 Dec 2002 18:49:52 - 1.9 @@ -138,18 +138,6 @@ protected boolean configured = false; -/** - * Have we calculated the initial value object yet? - */ -protected transient boolean initialized = false; - - -/** - * The calculated initial value for this property. - */ -protected transient Object initialValue = null; - - // - Properties @@ -189,7 +177,8 @@ /** * pThe size of the array to be created if this property is an array - * type and there is no specified codeinitial/code value./p + * type and there is no specified codeinitial/code value. This + * value must be non-negative./p * * @since Struts 1.1-b3 */ @@ -203,6 +192,9 @@ if (configured) { throw new IllegalStateException(Configuration is frozen); } +if (size 0) { +throw new IllegalArgumentException(size 0); +} this.size = size; } @@ -288,46 +280,67 @@ /** - * Return an object representing the initial value of this property. + * pReturn an object representing the initial value of this property. + * This is calculated according to the following algorithm:/p + * ul + * liIf the value you have specified for the codetype/code + * property represents an array (i.e. it ends with []): + * ul + * liIf you have specified a value for the codeinitial/code + * property, codeConvertUtils.convert()/code will be + * called to convert it into an instance of the specified + * array type./li + * liIf you have not specified a value for the codeinitial/code + * property, an array of the length specified by the + * codesize/code property will be created. Each element + * of the array will be instantiated via the zero-args constructor + * on the specified class (if any). Otherwise, codenull/code + * will be returned./li + * /ul/li + * liIf the value you have specified for the codetype/code + * property does not represent an array: + * ul + * liIf you have specified a value for the codeinitial/code + * property, codeConvertUtils.convert()/code + * will be called to convert it into an object instance./li + * liIf you have not specified a value for the codeinitial/code + * attribute, Struts will instantiate an instance via the + * zero-args constructor on the specified class (if any). + * Otherwise, codenull/code will be returned./li + * /ul/li + * /ul */ public Object initial() { -// Compute our initial value the first
cvs commit: jakarta-struts/src/share/org/apache/struts/util RequestUtils.java
craigmcc2002/12/23 12:52:38 Modified:src/share/org/apache/struts/action DynaActionForm.java src/share/org/apache/struts/util RequestUtils.java Log: WARNING: Backwards-incompatible patch being applied. Please review! Commit a fix for 14669 (reset() in DynaActionForm act the same as ActionForm), loosely based on the patch provided by Peter Pilgrim. Now, the default reset() method of DynaActionForm does nothing, exactly like the default reset() method of ActionForm. This should clean up lots of user confusion about the differences between standard ActionForm beans and DynaActionForm beans, even though it is not backwards compatible. The logic to configure the properties of a DynaActionForm to the values specified by the initial attribute on form-property elements has been migrated to a new public method initialize() -- versus clear() as proposed in Peter's patch. This method takes an ActionMapping argument, that is used to look up the corresponding form bean definition. The method is public so that it can be called by application logic if desired. To ensure that a newly created DynaActionForm bean instance has correctly initialized property values, the RequestUtils.createActionForm() factory method has also been modified to call initialize() if it did indeed create a new instance. Therefore, any logic that uses this factory method to create new form bean instances (as Struts itself does in the only two places where form bean instances are created by the framework) should not be affected by this change. Applications that call DynaActionFormClass.newInstance() will need to be modified to call the initialize() method. PR: Bugzilla #14669 Submitted by: Brian Topping topping at digidemic.com Revision ChangesPath 1.7 +55 -26 jakarta-struts/src/share/org/apache/struts/action/DynaActionForm.java Index: DynaActionForm.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/DynaActionForm.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- DynaActionForm.java 6 Nov 2002 04:48:28 - 1.6 +++ DynaActionForm.java 23 Dec 2002 20:52:37 - 1.7 @@ -83,6 +83,13 @@ * of form beans with dynamic sets of properties, without requiring the * developer to create a Java class for each type of form bean./p * + * pstrongUSAGE NOTE/strong - Since Struts 1.1-b3, the + * codereset()/code method no longer initializes property values to those + * specified in codelt;form-propertygt;/code elements in the Struts + * module configuration file. If you wish to utilize that behavior, the + * simplest solution is to subclass codeDynaActionForm/code and call + * the codeinitialize()/code method inside it./p + * * @author Craig R. McClanahan * @version $Revision$ $Date$ * @since Struts 1.1 @@ -111,12 +118,41 @@ /** - * Reset all bean properties to their default state. This method is + * pInitialize all bean properties to their initial values, as specified + * in the {@link FormPropertyConfig} elements associated with the + * definition of this codeDynaActionForm/code./p + * + * @param mapping The mapping used to select this instance + * + * @since Struts 1.1-b3 + */ +public void initialize(ActionMapping mapping) { + +String name = mapping.getName(); +if (name == null) { +return; +} +FormBeanConfig config = +mapping.getModuleConfig().findFormBeanConfig(name); +if (config == null) { +return; +} +FormPropertyConfig props[] = config.findFormPropertyConfigs(); +for (int i = 0; i props.length; i++) { +set(props[i].getName(), props[i].initial()); +} + +} + + + +/** + * pReset all bean properties to their default state. This method is * called before the properties are repopulated by the controller - * servlet. - * p - * The default implementation attempts to forward to the HTTP - * version of this method. + * servlet./p + * + * pThe default implementation attempts to forward to the HTTP + * version of this method./p * * @param mapping The mapping used to select this instance * @param request The servlet request we are processing @@ -133,30 +169,23 @@ /** - * Reset all bean properties to their default state. This method is + * pReset all bean properties to their default state. This method is * called before the properties are repopulated by the controller servlet. - * p - * The default implementation uses the initial value specified
cvs commit: jakarta-struts/src/test/org/apache/struts/util TestRequestUtils.java
craigmcc2002/12/23 14:00:25 Modified:conf/share struts-config_1_1.dtd src/share/org/apache/struts/config FormPropertyConfig.java src/test/org/apache/struts/action TestDynaActionForm.java src/test/org/apache/struts/mock TestMockBase.java src/test/org/apache/struts/util TestRequestUtils.java Log: Add an optional size attribute on form-property, so that you can ask for an array of a specific size without having to specify initial values in the initial attribute. For example, form-property name=foo type=java.lang.String[] size=10/ will cause the initialize() method of the DynaActionForm to create an array of ten Strings (all initialized to null). The size attribute will be ignored if the initial attribute is present. Updated unit tests included. This is the non-controversial half of the recommendations in Bugzilla #14800. I'm still reviewing the advisability of changing the way that initial arrays get cloned or not. PR: Bugzilla #14800 Submitted by: James Turner turner at blackbear.com Revision ChangesPath 1.34 +6 -1 jakarta-struts/conf/share/struts-config_1_1.dtd Index: struts-config_1_1.dtd === RCS file: /home/cvs/jakarta-struts/conf/share/struts-config_1_1.dtd,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- struts-config_1_1.dtd 8 Dec 2002 00:22:56 - 1.33 +++ struts-config_1_1.dtd 23 Dec 2002 22:00:24 - 1.34 @@ -255,6 +255,10 @@ nameThe name of the JavaBean property described by this element. + sizeThe number of array elements to create if the value of the + type attribute specifies an array, but there is no value + specified for the initial attribute. + typeFully qualified Java class name of the field underlying this property, optionally followed by [] to indicate that the field is indexed. @@ -263,6 +267,7 @@ !ATTLIST form-property className %ClassName; #IMPLIED !ATTLIST form-property initialCDATA #IMPLIED !ATTLIST form-property name %PropName; #REQUIRED +!ATTLIST form-property size %Integer; #IMPLIED !ATTLIST form-property type %ClassName; #REQUIRED 1.8 +54 -5 jakarta-struts/src/share/org/apache/struts/config/FormPropertyConfig.java Index: FormPropertyConfig.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/config/FormPropertyConfig.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- FormPropertyConfig.java 9 Jul 2002 23:57:37 - 1.7 +++ FormPropertyConfig.java 23 Dec 2002 22:00:24 - 1.8 @@ -103,10 +103,28 @@ */ public FormPropertyConfig(String name, String type, String initial) { +this(name, type, initial, 0); + +} + + +/** + * Constructor that preconfigures the relevant properties. + * + * @param name Name of this property + * @param type Fully qualified class name of this property + * @param initial Initial value of this property (if any) + * @param size Size of the array to be created if this property is an + * array with no defined initial value + */ +public FormPropertyConfig(String name, String type, + String initial, int size) { + super(); setName(name); setType(type); setInitial(initial); +setSize(size); } @@ -170,6 +188,27 @@ /** + * pThe size of the array to be created if this property is an array + * type and there is no specified codeinitial/code value./p + * + * @since Struts 1.1-b3 + */ +protected int size = 0; + +public int getSize() { +return (this.size); +} + +public void setSize(int size) { +if (configured) { +throw new IllegalStateException(Configuration is frozen); +} +this.size = size; +} + + + +/** * The fully qualified Java class name of the implementation class * of this bean property, optionally followed by code[]/code to * indicate that the property is indexed. @@ -258,7 +297,17 @@ if (!initialized) { try { Class clazz = getTypeClass(); -initialValue = ConvertUtils.convert(initial, clazz); +if (clazz.isArray()) { +if (initial != null) { +initialValue
cvs commit: jakarta-struts/src/share/org/apache/struts/action ActionServlet.java
craigmcc2002/12/17 23:39:45 Modified:src/share/org/apache/struts/action ActionServlet.java Log: Call the modified LogFactory.release() method that allows the LogFactory instance, and any Log instances it has created, to be freed on a per-webapp- class-loader basis. This is in an attempt to investigate the OutOfMemory error reported on Bugzilla #14042. It seems to help, but memory still runs out when you repeatedly reload a Struts webapp. Further investigation is needed to see if this is really a container issue (tested against Tomcat 4.1.17, which was just released). If the LogFactory.release(ClassLoader) method gets removed, we'll need to remove this call from the destroy() method. Revision ChangesPath 1.136 +19 -4 jakarta-struts/src/share/org/apache/struts/action/ActionServlet.java Index: ActionServlet.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/ActionServlet.java,v retrieving revision 1.135 retrieving revision 1.136 diff -u -r1.135 -r1.136 --- ActionServlet.java8 Dec 2002 05:27:07 - 1.135 +++ ActionServlet.java18 Dec 2002 07:39:45 - 1.136 @@ -433,6 +433,18 @@ // FIXME - destroy ModuleConfig and message resource instances +// Release our LogFactory and Log instances (if any) +ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); +if (classLoader == null) { +classLoader = ActionServlet.class.getClassLoader(); +} +try { +LogFactory.release(classLoader); +} catch (Throwable t) { +; // Servlet container doesn't have the latest version +; // of commons-logging-api.jar installed +} + } @@ -703,6 +715,7 @@ ModuleConfig config = (ModuleConfig) value; try { getRequestProcessor(config).destroy(); +getServletContext().removeAttribute(name); } catch (Throwable t) { ; } @@ -714,6 +727,8 @@ int j = plugIns.length - (i + 1); plugIns[j].destroy(); } +getServletContext().removeAttribute +(Globals.PLUG_INS_KEY + config.getPrefix()); } } } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-struts/src/share/org/apache/struts/taglib/logic IterateTag.java
craigmcc2002/12/15 19:41:43 Modified:src/share/org/apache/struts/taglib/html MultiboxTag.java OptionsTag.java RadioTag.java SelectTag.java TextareaTag.java src/share/org/apache/struts/taglib/logic IterateTag.java Log: Consistently use RequestUtils.lookup() instead of pageContext.findAttribute() to locate attribute values in any scope. PR: Bugzilla #15309 Submitted by: Michael Han mhan810 at yahoo.com Revision ChangesPath 1.18 +6 -5 jakarta-struts/src/share/org/apache/struts/taglib/html/MultiboxTag.java Index: MultiboxTag.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/MultiboxTag.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- MultiboxTag.java 16 Nov 2002 06:05:22 - 1.17 +++ MultiboxTag.java 16 Dec 2002 03:41:43 - 1.18 @@ -69,6 +69,7 @@ import org.apache.commons.beanutils.BeanUtils; import org.apache.struts.Globals; import org.apache.struts.util.MessageResources; +import org.apache.struts.util.RequestUtils; import org.apache.struts.util.ResponseUtils; /** @@ -229,7 +230,7 @@ } results.append(ResponseUtils.filter(value)); results.append(\); -Object bean = pageContext.findAttribute(name); +Object bean = RequestUtils.lookup(pageContext, name, null); String values[] = null; if (bean == null) throw new JspException(messages.getMessage(getter.bean, name)); 1.20 +2 -1 jakarta-struts/src/share/org/apache/struts/taglib/html/OptionsTag.java Index: OptionsTag.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/OptionsTag.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- OptionsTag.java 4 Oct 2002 05:34:19 - 1.19 +++ OptionsTag.java 16 Dec 2002 03:41:43 - 1.20 @@ -68,6 +68,7 @@ import org.apache.commons.beanutils.PropertyUtils; import org.apache.struts.util.IteratorAdapter; import org.apache.struts.util.MessageResources; +import org.apache.struts.util.RequestUtils; import org.apache.struts.util.ResponseUtils; @@ -412,7 +413,7 @@ String beanName = name; if (beanName == null) beanName = Constants.BEAN_KEY; - Object bean = pageContext.findAttribute(beanName); +Object bean = RequestUtils.lookup(pageContext, beanName, null); if (bean == null) throw new JspException (messages.getMessage(getter.bean, beanName)); 1.19 +7 -6 jakarta-struts/src/share/org/apache/struts/taglib/html/RadioTag.java Index: RadioTag.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/RadioTag.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- RadioTag.java 16 Nov 2002 06:05:21 - 1.18 +++ RadioTag.java 16 Dec 2002 03:41:43 - 1.19 @@ -67,6 +67,7 @@ import javax.servlet.jsp.JspException; import org.apache.commons.beanutils.BeanUtils; import org.apache.struts.util.MessageResources; +import org.apache.struts.util.RequestUtils; import org.apache.struts.util.ResponseUtils; @@ -223,7 +224,7 @@ // Acquire the current value of the appropriate field Object current = null; -Object bean = pageContext.findAttribute(name); +Object bean = RequestUtils.lookup(pageContext, name, null); if (bean == null) throw new JspException (messages.getMessage(getter.bean, name)); @@ -235,7 +236,7 @@ // @since Struts 1.1 if (idName != null) { -Object idBean = pageContext.findAttribute(idName); +Object idBean = RequestUtils.lookup(pageContext, idName, null); if (idBean == null) throw new JspException (messages.getMessage(getter.bean, idName)); 1.14 +5 -5 jakarta-struts/src/share/org/apache/struts/taglib/html/SelectTag.java Index: SelectTag.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/SelectTag.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- SelectTag.java23 Sep 2002 05:13:43 - 1.13 +++ SelectTag.java16 Dec 2002 03:41:43 - 1.14 @@ -279,7 +279,7 @@ match = new String[1]; match[0] = value; } else
cvs commit: jakarta-struts/src/share/org/apache/struts/action DynaActionFormClass.java
craigmcc2002/12/15 19:48:27 Modified:src/share/org/apache/struts/action DynaActionFormClass.java Log: Make the TestDynaActionFormClass tests work again, even when there is no ModuleConfig associated with a FormBeanConfig. Revision ChangesPath 1.12 +10 -6 jakarta-struts/src/share/org/apache/struts/action/DynaActionFormClass.java Index: DynaActionFormClass.java === RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/DynaActionFormClass.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- DynaActionFormClass.java 8 Dec 2002 02:09:44 - 1.11 +++ DynaActionFormClass.java 16 Dec 2002 03:48:27 - 1.12 @@ -71,6 +71,7 @@ import org.apache.commons.beanutils.DynaProperty; import org.apache.struts.config.FormBeanConfig; import org.apache.struts.config.FormPropertyConfig; +import org.apache.struts.config.ModuleConfig; import org.apache.struts.util.RequestUtils; @@ -308,8 +309,11 @@ if (dynaClasses == null) { dynaClasses = new HashMap(); } -String key = -config.getName() + config.getModuleConfig().getPrefix(); +ModuleConfig moduleConfig = config.getModuleConfig(); +String key = config.getName(); +if (moduleConfig != null) { +key += moduleConfig.getPrefix(); +} DynaActionFormClass dynaClass = (DynaActionFormClass) dynaClasses.get(key); if (dynaClass == null) { -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]