Author: mcucchiara Date: Wed Nov 9 11:03:35 2011 New Revision: 1199696 URL: http://svn.apache.org/viewvc?rev=1199696&view=rev Log: WW-3699 - from now, buildValidatorKey includes the package name
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java?rev=1199696&r1=1199695&r2=1199696&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java Wed Nov 9 11:03:35 2011 @@ -19,12 +19,14 @@ package com.opensymphony.xwork2.validato import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; +import com.opensymphony.xwork2.config.entities.ActionConfig; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.FileManager; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.logging.Logger; import com.opensymphony.xwork2.util.logging.LoggerFactory; import com.opensymphony.xwork2.validator.validators.VisitorFieldValidator; +import org.apache.commons.lang.StringUtils; import java.io.IOException; import java.io.InputStream; @@ -217,13 +219,18 @@ public class AnnotationActionValidatorMa protected static String buildValidatorKey(Class clazz) { ActionInvocation invocation = ActionContext.getContext().getActionInvocation(); ActionProxy proxy = invocation.getProxy(); + ActionConfig config = proxy.getConfig(); //the key needs to use the name of the action from the config file, //instead of the url, so wild card actions will have the same validator //see WW-2996 StringBuilder sb = new StringBuilder(clazz.getName()); sb.append("/"); - sb.append(proxy.getConfig().getName()); + if (StringUtils.isNotBlank(config.getPackageName())) { + sb.append(config.getPackageName()); + sb.append("/"); + } + sb.append(config.getName()); sb.append("|"); sb.append(proxy.getMethod()); return sb.toString(); Modified: struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java?rev=1199696&r1=1199695&r2=1199696&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java (original) +++ struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java Wed Nov 9 11:03:35 2011 @@ -23,10 +23,10 @@ import com.opensymphony.xwork2.test.Simp import com.opensymphony.xwork2.test.SimpleAnnotationAction3; import com.opensymphony.xwork2.util.FileManager; import com.opensymphony.xwork2.validator.validators.*; +import org.easymock.EasyMock; import java.util.List; -import org.easymock.EasyMock; /** @@ -47,7 +47,7 @@ public class AnnotationActionValidatorMa super.setUp(); annotationActionValidatorManager = (AnnotationActionValidatorManager) container.getInstance(ActionValidatorManager.class); - ActionConfig config = new ActionConfig.Builder("", "name", "").build(); + ActionConfig config = new ActionConfig.Builder("packageName", "name", "").build(); ActionInvocation invocation = EasyMock.createNiceMock(ActionInvocation.class); ActionProxy proxy = EasyMock.createNiceMock(ActionProxy.class); @@ -71,7 +71,7 @@ public class AnnotationActionValidatorMa public void testBuildValidatorKey() { String validatorKey = AnnotationActionValidatorManager.buildValidatorKey(SimpleAnnotationAction.class); - assertEquals(SimpleAnnotationAction.class.getName() + "/name|execute", validatorKey); + assertEquals(SimpleAnnotationAction.class.getName() + "/packageName/name|execute", validatorKey); } public void testBuildsValidatorsForAlias() {