svn commit: r408662 - in /struts/action2/trunk/action-api: ./ src/main/java/org/apache/struts/action2/ src/main/java/org/apache/struts/action2/attribute/ src/main/java/org/apache/struts/action2/spi/ s
Author: plightbo Date: Mon May 22 06:47:57 2006 New Revision: 408662 URL: http://svn.apache.org/viewvc?rev=408662&view=rev Log: bob's latest API Added: struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/ActionContext.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/RequestContext.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/RequestContextAware.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/ThreadLocalRequestContext.java Modified: struts/action2/trunk/action-api/pom.xml struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/ErrorAware.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/MessageAware.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/Messages.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/Validatable.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/attribute/ApplicationAttribute.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/attribute/RequestAttribute.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/attribute/SessionAttribute.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/package-info.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/Interceptor.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/Request.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/RequestAware.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/Result.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/ThreadLocalRequest.java struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/spi/package-info.java struts/action2/trunk/action-api/src/test/java/org/apache/struts/action2/spi/ThreadLocalRequestTest.java Modified: struts/action2/trunk/action-api/pom.xml URL: http://svn.apache.org/viewvc/struts/action2/trunk/action-api/pom.xml?rev=408662&r1=408661&r2=408662&view=diff == --- struts/action2/trunk/action-api/pom.xml (original) +++ struts/action2/trunk/action-api/pom.xml Mon May 22 06:47:57 2006 @@ -16,18 +16,19 @@ javax.servlet servlet-api 2.4 -provided junit junit test + true easymock easymock test +2.0 Modified: struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/ErrorAware.java URL: http://svn.apache.org/viewvc/struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/ErrorAware.java?rev=408662&r1=408661&r2=408662&view=diff == --- struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/ErrorAware.java (original) +++ struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/ErrorAware.java Mon May 22 06:47:57 2006 @@ -1,45 +0,0 @@ -package org.apache.struts.action2; - -/** - * Implemented by actions that may need to record error messages. For example: - * - * - * static import ResultNames.*; - * - * public class SetName implements ErrorAware { - * - * Messages errors; - * String name; - * - * public String execute() { - * if ("".equals(name) { - * errors.add("name.required"); - * return INPUT; - * } - * - * ... - * return SUCCESS; - * } - * - * public void setErrors(Messages errors) { - * this.errors = errors; - * } - * - * public void setName(String name) { - * this.name = name; - * } - * } - * - * - * @see MessageAware - * @author [EMAIL PROTECTED] (Bob Lee) - */ -public interface ErrorAware { - -/** - * Sets error messages. - * - * @param errors error messages - */ -void setErrors(Messages errors); -} Modified: struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/MessageAware.java URL: http://svn.apache.org/viewvc/struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/MessageAware.java?rev=408662&r1=408661&r2=408662&view=diff == --- struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/MessageAware.java (original) +++ struts/action2/trunk/action-api/src/main/java/org/apache/struts/action2/MessageAware.java Mon May 22 06:47:57 2006 @@ -1,27 +1,33 @@ package org.apache.struts.action2; /** - * Implemented by actions th
svn commit: r408817 - in /struts/shale/trunk: core-library/src/java/org/apache/shale/component/ use-cases/src/web/WEB-INF/ use-cases/src/web/profile/
Author: craigmcc Date: Mon May 22 19:02:23 2006 New Revision: 408817 URL: http://svn.apache.org/viewvc?rev=408817&view=rev Log: Fix the component so that it does not allow a spurious resubmit to succeed after the first resubmit has failed. This is done by caching the token value the first time it is generated, so that the same value is used if the page is rerendered later. This works because a given value is only accepted once. JIRA Issue: SHALE-177 Submitted By: Veit Guna Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/component/Token.java struts/shale/trunk/use-cases/src/web/WEB-INF/dialog-config.xml struts/shale/trunk/use-cases/src/web/profile/logon.jsp struts/shale/trunk/use-cases/src/web/profile/profile1.jsp struts/shale/trunk/use-cases/src/web/profile/profile2.jsp struts/shale/trunk/use-cases/src/web/profile/profile3.jsp Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/component/Token.java URL: http://svn.apache.org/viewvc/struts/shale/trunk/core-library/src/java/org/apache/shale/component/Token.java?rev=408817&r1=408816&r2=408817&view=diff == --- struts/shale/trunk/core-library/src/java/org/apache/shale/component/Token.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/component/Token.java Mon May 22 19:02:23 2006 @@ -58,6 +58,13 @@ /** + * Local component attribute under which we store the token value + * the first time it is generated. + */ +private static final String TOKEN_ATTRIBUTE_KEY = "org.apache.shale.Token.TOKEN_VALUE"; + + +/** * Message resources for this class */ private static Messages messages = @@ -263,9 +270,18 @@ */ public String getToken() { +// Have we already generated a token value? If so, use it +String value = (String) getAttributes().get(TOKEN_ATTRIBUTE_KEY); +if (value != null) { + return value; +} + +// Generate a new token value and cache it for reuse if the +// current view is rerendered FacesContext context = FacesContext.getCurrentInstance(); TokenProcessor tp = getTokenProcessor(context); String token = tp.generate(context); +getAttributes().put(TOKEN_ATTRIBUTE_KEY, token); if (log.isDebugEnabled()) { log.debug("Generating token '" + token + "'"); } Modified: struts/shale/trunk/use-cases/src/web/WEB-INF/dialog-config.xml URL: http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/WEB-INF/dialog-config.xml?rev=408817&r1=408816&r2=408817&view=diff == --- struts/shale/trunk/use-cases/src/web/WEB-INF/dialog-config.xml (original) +++ struts/shale/trunk/use-cases/src/web/WEB-INF/dialog-config.xml Mon May 22 19:02:23 2006 @@ -57,6 +57,8 @@ + Modified: struts/shale/trunk/use-cases/src/web/profile/logon.jsp URL: http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/profile/logon.jsp?rev=408817&r1=408816&r2=408817&view=diff == --- struts/shale/trunk/use-cases/src/web/profile/logon.jsp (original) +++ struts/shale/trunk/use-cases/src/web/profile/logon.jsp Mon May 22 19:02:23 2006 @@ -37,7 +37,7 @@ + globalOnly="false"/> <%-- "remember" --%> Modified: struts/shale/trunk/use-cases/src/web/profile/profile1.jsp URL: http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/profile/profile1.jsp?rev=408817&r1=408816&r2=408817&view=diff == --- struts/shale/trunk/use-cases/src/web/profile/profile1.jsp (original) +++ struts/shale/trunk/use-cases/src/web/profile/profile1.jsp Mon May 22 19:02:23 2006 @@ -37,7 +37,7 @@ + globalOnly="false"/> <%-- username --%> Modified: struts/shale/trunk/use-cases/src/web/profile/profile2.jsp URL: http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/profile/profile2.jsp?rev=408817&r1=408816&r2=408817&view=diff == --- struts/shale/trunk/use-cases/src/web/profile/profile2.jsp (original) +++ struts/shale/trunk/use-cases/src/web/profile/profile2.jsp Mon May 22 19:02:23 2006 @@ -39,7 +39,7 @@ + globalOnly="false"/> <%-- fullName --%> Modified: struts/shale/trunk/use-cases/src/web/profile/profile3.jsp URL: http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/profile/profile3.jsp?rev=408817&r1=408816&r2=408817&view=diff == --- struts/shale/trunk/use-cases/src/
svn commit: r408821 - /struts/action2/trunk/apps/pom.xml
Author: wsmoak Date: Mon May 22 20:02:18 2006 New Revision: 408821 URL: http://svn.apache.org/viewvc?rev=408821&view=rev Log: Added Cargo plugin configuration for apps. Usage: mvn package cargo:start -Dcargo.tomcat5x.home=/path/to/tomcat Modified: struts/action2/trunk/apps/pom.xml Modified: struts/action2/trunk/apps/pom.xml URL: http://svn.apache.org/viewvc/struts/action2/trunk/apps/pom.xml?rev=408821&r1=408820&r2=408821&view=diff == --- struts/action2/trunk/apps/pom.xml (original) +++ struts/action2/trunk/apps/pom.xml Mon May 22 20:02:18 2006 @@ -96,6 +96,26 @@ + + + +org.codehaus.cargo +cargo-maven2-plugin + + +tomcat5x +${cargo.tomcat5x.home} +${project.build.directory}/tomcat5x.log + ${project.build.directory}/tomcat5x.out + + +${project.build.directory}/tomcat5x + + + + + +
svn commit: r408825 - in /struts/shale/trunk/clay-plugin/src: java/org/apache/shale/clay/config/ java/org/apache/shale/clay/parser/builder/ java/org/apache/shale/clay/parser/builder/chain/ test/org/ap
Author: gvanmatre Date: Mon May 22 20:48:47 2006 New Revision: 408825 URL: http://svn.apache.org/viewvc?rev=408825&view=rev Log: Added better xml namespace support to the clay html template parsing. Added: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/ElementBuilder.java (with props) struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/ClayNamespaceBuilderRule.java (with props) struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/address1.html - copied, changed from r405826, struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/address.html struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/address2.html (with props) Removed: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/address.html Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/BuilderFactory.java struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java URL: http://svn.apache.org/viewvc/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java?rev=408825&r1=408824&r2=408825&view=diff == --- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java (original) +++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java Mon May 22 20:48:47 2006 @@ -196,10 +196,21 @@ /** * Command name in the BUILDER_CATALOG_NAME used to invoke a command - * chain of rule commands that locates a [EMAIL PROTECTED] org.apache.shale.clay.parser.builder.Builder}. + * chain of rule commands that locates a [EMAIL PROTECTED] org.apache.shale.clay.parser.builder.Builder} + * for the default namespace. * */ -public static final String FIND_BUILDER_COMMAND_NAME = "findBuilder"; +public static final String FIND_DEFAULT_BUILDER_COMMAND_NAME = "default-namespace"; + + +/** + * Command name in the BUILDER_CATALOG_NAME used to invoke a command + * chain of rule commands that locates a [EMAIL PROTECTED] org.apache.shale.clay.parser.builder.Builder} + * for a unknown namespace. + * + */ +public static final String FIND_UNKNOWN_BUILDER_COMMAND_NAME = "unknown-namespace"; + /** * The config file used by [EMAIL PROTECTED] org.apache.shale.clay.component.Clay} component to Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/BuilderFactory.java URL: http://svn.apache.org/viewvc/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/BuilderFactory.java?rev=408825&r1=408824&r2=408825&view=diff == --- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/BuilderFactory.java (original) +++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/BuilderFactory.java Mon May 22 20:48:47 2006 @@ -90,7 +90,24 @@ context.setNode(node); try { Catalog catalog = getCatalog(); -Command command = catalog.getCommand(Globals.FIND_BUILDER_COMMAND_NAME); + +Command command = null; +if (node.getQname() == null) { +command = catalog.getCommand(Globals.FIND_DEFAULT_BUILDER_COMMAND_NAME); +} else { +String prefix = node.getQname(); +String uri = node.getNamespaceURI(prefix); +if (uri != null) { +command = catalog.getCommand(uri); +if (command == null) { +command = catalog.getCommand(Globals.FIND_UNKNOWN_BUILDER_COMMAND_NAME); +} +} else { +command = catalog.getCommand(Globals.FIND_UNKNOWN_BUILDER_COMMAND_NAME); +} + +} + command.execute(context); } catch (Exception e) { Added: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/ElementBuilder.java URL: http://svn.apache.org/viewvc/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/ElementBuilder.java?rev=408825&view=auto == --- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/pa
svn commit: r408835 - in /struts/shale/trunk/core-library/src/java/org/apache/shale/remoting: Constants.java faces/MappingsHelper.java
Author: craigmcc Date: Mon May 22 22:31:59 2006 New Revision: 408835 URL: http://svn.apache.org/viewvc?rev=408835&view=rev Log: Explicitly support identification of the Faces Servlet instance to be used for remoting requests. By default, the last servlet definition for servlet class javax.faces.webapp.FacesServlet will be used. JIRA Issue: SHALE-178 Patch Supplied By: Ed Burns Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/Constants.java struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/faces/MappingsHelper.java Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/Constants.java URL: http://svn.apache.org/viewvc/struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/Constants.java?rev=408835&r1=408834&r2=408835&view=diff == --- struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/Constants.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/Constants.java Mon May 22 22:31:59 2006 @@ -63,6 +63,16 @@ /** + * Context initialization parameter defining the name of the + * Faces Servlet to be used for remoting requests. If not specified, + * the last (or only) servlet definition for a servlet whose class is + * javax.faces.webapp.FacesServlet is used. + */ +public static final String FACES_SERVLET_NAME_PARAM= +"org.apache.shale.remoting.FACES_SERVLET_NAME"; + + +/** * Context initialization parameter containing the fully qualified * class name of the [EMAIL PROTECTED] Mapping} implementation class to use. If * not specified, org.apache.shale.remoting.impl.MappingImpl Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/faces/MappingsHelper.java URL: http://svn.apache.org/viewvc/struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/faces/MappingsHelper.java?rev=408835&r1=408834&r2=408835&view=diff == --- struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/faces/MappingsHelper.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/remoting/faces/MappingsHelper.java Mon May 22 22:31:59 2006 @@ -333,28 +333,27 @@ } // Identify the servlet name of the JavaServer Faces controller servlet -String name = null; -NodeList servletNodes = document.getElementsByTagName("servlet"); -for (int i = 0; i < servletNodes.getLength(); i++) { -Node servletNode = servletNodes.item(i); -String servletName = null; -String servletClass = null; -NodeList kids = servletNode.getChildNodes(); -for (int j = 0; j < kids.getLength(); j++) { -Node kid = kids.item(j); -if ("servlet-name".equals(kid.getNodeName())) { -servletName = text(kid); -} else if ("servlet-class".equals(kid.getNodeName())) { -servletClass = text(kid); +String name = + context.getExternalContext().getInitParameter(Constants.FACES_SERVLET_NAME_PARAM); +if (null == name) { +NodeList servletNodes = document.getElementsByTagName("servlet"); +for (int i = 0; i < servletNodes.getLength(); i++) { +Node servletNode = servletNodes.item(i); +String servletName = null; +String servletClass = null; +NodeList kids = servletNode.getChildNodes(); +for (int j = 0; j < kids.getLength(); j++) { +Node kid = kids.item(j); +if ("servlet-name".equals(kid.getNodeName())) { +servletName = text(kid); +} else if ("servlet-class".equals(kid.getNodeName())) { +servletClass = text(kid); +} +} +if ("javax.faces.webapp.FacesServlet".equals(servletClass)) { +name = servletName; } } -if ("javax.faces.webapp.FacesServlet".equals(servletClass)) { -name = servletName; -//break; -} -} -if (name == null) { -return new String[0]; } // Identify the URL patterns to which this servlet is mapped