Author: lukaszlenart Date: Mon Mar 18 10:40:08 2013 New Revision: 1457704 URL: http://svn.apache.org/r1457704 Log: WW-4007 Improves FieldExpressionValidator annotation to match FieldExpressionValidator class
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilder.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationAction.java struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilderTest.java struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationExpAction.java Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilder.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilder.java?rev=1457704&r1=1457703&r2=1457704&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilder.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilder.java Mon Mar 18 10:40:08 2013 @@ -758,6 +758,7 @@ public class AnnotationValidationConfigu .shortCircuit(v.shortCircuit()) .defaultMessage(v.message()) .messageKey(v.key()) + .messageParams(v.messageParams()) .build(); } Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java?rev=1457704&r1=1457703&r2=1457704&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java Mon Mar 18 10:40:08 2013 @@ -57,6 +57,12 @@ import java.lang.annotation.Target; * <td class='confluenceTd'>i18n key from language specific properties file.</td> * </tr> * <tr> + * <td class='confluenceTd'>messageParams</td> + * <td class='confluenceTd'>no</td> + * <td class='confluenceTd'> </td> + * <td class='confluenceTd'>Additional params to be used to customize message - will be evaluated against the Value Stack</td> + * </tr> + * <tr> * <td class='confluenceTd'>fieldName</td> * <td class='confluenceTd'>no</td> * <td class='confluenceTd'> </td> @@ -109,6 +115,11 @@ public @interface FieldExpressionValidat String key() default ""; /** + * Additional params to be used to customize message - will be evaluated against the Value Stack + */ + String[] messageParams() default {}; + + /** * The optional fieldName for SIMPLE validator types. */ String fieldName() default ""; Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java?rev=1457704&r1=1457703&r2=1457704&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java Mon Mar 18 10:40:08 2013 @@ -62,7 +62,6 @@ public class FieldExpressionValidator ex private String expression; - public void setExpression(String expression) { this.expression = expression; } Modified: struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationAction.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationAction.java?rev=1457704&r1=1457703&r2=1457704&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationAction.java (original) +++ struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationAction.java Mon Mar 18 10:40:08 2013 @@ -8,6 +8,7 @@ import com.opensymphony.xwork2.validator import com.opensymphony.xwork2.validator.annotations.DoubleRangeFieldValidator; import com.opensymphony.xwork2.validator.annotations.EmailValidator; import com.opensymphony.xwork2.validator.annotations.ExpressionValidator; +import com.opensymphony.xwork2.validator.annotations.FieldExpressionValidator; import com.opensymphony.xwork2.validator.annotations.RegexFieldValidator; import com.opensymphony.xwork2.validator.annotations.ValidationParameter; @@ -39,6 +40,8 @@ public class AnnotationValidationAction messageParams = {"one", "two", "three"}, shortCircuit = true) @ExpressionValidator(expression = "true", message = "Is not true!", key = "expression.key", messageParams = {"one", "two", "three"}, shortCircuit = true) + @FieldExpressionValidator(expression = "true", fieldName = "foo", key = "fieldexpression.key", message = "It is not true!", + messageParams = {"one", "two", "three"}, shortCircuit = true) public String execute() { return SUCCESS; } Modified: struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilderTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilderTest.java?rev=1457704&r1=1457703&r2=1457704&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilderTest.java (original) +++ struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationConfigurationBuilderTest.java Mon Mar 18 10:40:08 2013 @@ -20,6 +20,7 @@ import com.opensymphony.xwork2.validator import com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator; import com.opensymphony.xwork2.validator.validators.EmailValidator; import com.opensymphony.xwork2.validator.validators.ExpressionValidator; +import com.opensymphony.xwork2.validator.validators.FieldExpressionValidator; import com.opensymphony.xwork2.validator.validators.RegexFieldValidator; import java.text.ParseException; @@ -42,7 +43,7 @@ public class AnnotationValidationConfigu List<Validator> validators = manager.getValidators(AnnotationValidationAction.class, null); // then - assertEquals(validators.size(), 8); + assertEquals(validators.size(), 9); for (Validator validator : validators) { validate(validator); } @@ -59,7 +60,7 @@ public class AnnotationValidationConfigu ValueStack valueStack = container.getInstance(ValueStackFactory.class).createValueStack(); valueStack.push(new AnnotationValidationExpAction()); - assertEquals(validators.size(), 8); + assertEquals(validators.size(), 9); for (Validator validator : validators) { validator.setValueStack(valueStack); validate(validator); @@ -83,9 +84,20 @@ public class AnnotationValidationConfigu validateEmailValidator((EmailValidator) validator); } else if (validator.getValidatorType().equals("expression")) { validateExpressionValidator((ExpressionValidator) validator); + } else if (validator.getValidatorType().equals("fieldexpression")) { + validateFieldExpressionValidator((FieldExpressionValidator) validator); } } + private void validateFieldExpressionValidator(FieldExpressionValidator validator) { + assertEquals("foo", validator.getFieldName()); + assertEquals("It is not true!", validator.getDefaultMessage()); + assertEquals("fieldexpression.key", validator.getMessageKey()); + assertTrue(Arrays.equals(new String[]{"one", "two", "three"}, validator.getMessageParameters())); + assertEquals("true", validator.getExpression()); + assertEquals(true, validator.isShortCircuit()); + } + private void validateExpressionValidator(ExpressionValidator validator) { assertEquals("expression.key", validator.getMessageKey()); assertEquals("Is not true!", validator.getDefaultMessage()); Modified: struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationExpAction.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationExpAction.java?rev=1457704&r1=1457703&r2=1457704&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationExpAction.java (original) +++ struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/AnnotationValidationExpAction.java Mon Mar 18 10:40:08 2013 @@ -8,6 +8,7 @@ import com.opensymphony.xwork2.validator import com.opensymphony.xwork2.validator.annotations.DoubleRangeFieldValidator; import com.opensymphony.xwork2.validator.annotations.EmailValidator; import com.opensymphony.xwork2.validator.annotations.ExpressionValidator; +import com.opensymphony.xwork2.validator.annotations.FieldExpressionValidator; import com.opensymphony.xwork2.validator.annotations.RegexFieldValidator; import com.opensymphony.xwork2.validator.annotations.ValidationParameter; @@ -44,6 +45,8 @@ public class AnnotationValidationExpActi messageParams = {"one", "two", "three"}, shortCircuit = true) @ExpressionValidator(expression = "true", message = "Is not true!", key = "expression.key", messageParams = {"one", "two", "three"}, shortCircuit = true) + @FieldExpressionValidator(expression = "true", fieldName = "foo", key = "fieldexpression.key", message = "It is not true!", + messageParams = {"one", "two", "three"}, shortCircuit = true) public String execute() { return SUCCESS; }