Author: hardy.ferentschik
Date: 2009-06-30 08:37:35 -0400 (Tue, 30 Jun 2009)
New Revision: 16977
Added:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultPayload.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidMessageType.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidPayloadClass.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoPayload.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidInPropertyName.java
Removed:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityInvalidDefaultGroup.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityNoGroups.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityNoMessage.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityValidProperty.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidProperty.java
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/application/SecurityCheck.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/FrenchZipcode.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/FrenchZipcodeWithInvalidOverride.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/GermanZipcode.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/NotEmpty.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintdefinition/AlwaysValid.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/ZipCodeCoherenceChecker.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation/IsAdult.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation/SafeEncryption.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidConstraintDefinitionsTest.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultGroup.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoGroups.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoMessage.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/Ambigious.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/PostCodeList.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/metadata/AccountChecker.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/metadata/NotEmpty.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/customconstraint/Negative.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/customconstraint/Positive.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/validatorcontext/Dummy.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/MyConstraint.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/MySecondConstraint.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/ConsistentUserInformation.java
beanvalidation/trunk/validation-tck/src/main/resources/tck-audit.xml
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmpty.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/ConstraintHelper.java
Log:
HV-178 - Add check for payload parameter
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/application/SecurityCheck.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/application/SecurityCheck.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/application/SecurityCheck.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -27,6 +27,7 @@
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintPayload;
/**
* @author Hardy Ferentschik
@@ -40,6 +41,8 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
public class SecurityCheckValidator implements ConstraintValidator<SecurityCheck,
Object> {
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/FrenchZipcode.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/FrenchZipcode.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/FrenchZipcode.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -26,6 +26,7 @@
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.OverridesAttribute;
+import javax.validation.ConstraintPayload;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
@@ -46,6 +47,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
@OverridesAttribute.List({
@OverridesAttribute(constraint = Size.class, name = "min"),
@OverridesAttribute(constraint = Size.class, name = "max")
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/FrenchZipcodeWithInvalidOverride.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/FrenchZipcodeWithInvalidOverride.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/FrenchZipcodeWithInvalidOverride.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -26,6 +26,7 @@
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.OverridesAttribute;
+import javax.validation.ConstraintPayload;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
@@ -46,6 +47,8 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
@OverridesAttribute.List({
@OverridesAttribute(constraint = Size.class, name = "min"),
@OverridesAttribute(constraint = Size.class, name = "max")
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/GermanZipcode.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/GermanZipcode.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/GermanZipcode.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -28,6 +28,7 @@
import javax.validation.ReportAsSingleViolation;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintPayload;
/**
* Constraint used to test nested composing constraints.
@@ -45,6 +46,8 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
public class GermanZipcodeConstraintValidator implements
ConstraintValidator<GermanZipcode, String> {
public void initialize(GermanZipcode parameters) {
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/NotEmpty.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/NotEmpty.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/NotEmpty.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -1,4 +1,4 @@
-// $Id:$
+// $Id$
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
@@ -27,6 +27,7 @@
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintPayload;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@@ -44,6 +45,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
public class NotEmptyValidator implements ConstraintValidator<NotEmpty, String> {
public void initialize(NotEmpty parameters) {
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintdefinition/AlwaysValid.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintdefinition/AlwaysValid.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/constraintdefinition/AlwaysValid.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -27,6 +27,7 @@
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintPayload;
/**
* @author Hardy Ferentschik
@@ -42,6 +43,8 @@
public abstract boolean alwaysValid();
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
public class StaticConstraintValidator implements ConstraintValidator<AlwaysValid,
Object> {
boolean valid;
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/ZipCodeCoherenceChecker.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/ZipCodeCoherenceChecker.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/ZipCodeCoherenceChecker.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -7,6 +7,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* @author Emmanuel Bernard
@@ -19,4 +20,6 @@
public abstract String message() default "Zip code is not coherent.";
public abstract Class<?>[] groups() default { };
+
+ public abstract Class<? extends ConstraintPayload>[] payload() default { };
}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation/IsAdult.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation/IsAdult.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation/IsAdult.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -27,6 +27,7 @@
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintPayload;
/**
* @author Hardy Ferentschik
@@ -40,7 +41,9 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
public class IsAdultValidator implements ConstraintValidator<IsAdult, Integer> {
public void initialize(IsAdult parameters) {
}
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation/SafeEncryption.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation/SafeEncryption.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation/SafeEncryption.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
@@ -40,6 +41,7 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default { };
public class SafeEncryptionValidator implements ConstraintValidator<SafeEncryption,
String> {
public void initialize(SafeEncryption parameters) {
Deleted:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityInvalidDefaultGroup.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityInvalidDefaultGroup.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityInvalidDefaultGroup.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -1,25 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* 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.
-*/
-package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
-
-/**
- * @author Hardy Ferentschik
- */
-@InvalidDefaultGroup
-public class DummyEntityInvalidDefaultGroup {
-}
\ No newline at end of file
Deleted:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityNoGroups.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityNoGroups.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityNoGroups.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -1,25 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* 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.
-*/
-package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
-
-/**
- * @author Hardy Ferentschik
- */
-@NoGroups
-public class DummyEntityNoGroups {
-}
Deleted:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityNoMessage.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityNoMessage.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityNoMessage.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -1,25 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* 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.
-*/
-package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
-
-/**
- * @author Hardy Ferentschik
- */
-@NoMessage
-public class DummyEntityNoMessage {
-}
\ No newline at end of file
Deleted:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityValidProperty.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityValidProperty.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/DummyEntityValidProperty.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -1,25 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* 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.
-*/
-package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
-
-/**
- * @author Hardy Ferentschik
- */
-@ValidProperty
-public class DummyEntityValidProperty {
-}
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidConstraintDefinitionsTest.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidConstraintDefinitionsTest.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidConstraintDefinitionsTest.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -35,7 +35,7 @@
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-(a)Classes({TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class})
+@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
public class InvalidConstraintDefinitionsTest extends AbstractTest {
@Test
@@ -84,7 +84,7 @@
try {
Validator validator = TestUtil.getDefaultValidator();
validator.validate( new DummyEntityNoGroups() );
- fail( "The used constraint does not define a groups paramter. The validation
should have failed." );
+ fail( "The used constraint does not define a groups parameter. The validation
should have failed." );
}
catch ( ConstraintDefinitionException e ) {
// success
@@ -94,6 +94,23 @@
@Test
@SpecAssertions({
@SpecAssertion(section = "2.1", id = "c"),
+ @SpecAssertion(section = "2.1.1", id = "h"),
+ @SpecAssertion(section = "8.2", id = "a")
+ })
+ public void testConstraintDefinitionWithoutPayloadParameter() {
+ try {
+ Validator validator = TestUtil.getDefaultValidator();
+ validator.validate( new DummyEntityNoGroups() );
+ fail( "The used constraint does not define a payload parameter. The validation
should have failed." );
+ }
+ catch ( ConstraintDefinitionException e ) {
+ // success
+ }
+ }
+
+ @Test
+ @SpecAssertions({
+ @SpecAssertion(section = "2.1", id = "c"),
@SpecAssertion(section = "2.1.1", id = "e"),
@SpecAssertion(section = "8.2", id = "a")
})
@@ -101,10 +118,114 @@
try {
Validator validator = TestUtil.getDefaultValidator();
validator.validate( new DummyEntityInvalidDefaultGroup() );
- fail( "The default groups paramter is not the empty array. The validation should
have failed." );
+ fail( "The default groups parameter is not the empty array. The validation should
have failed." );
}
catch ( ConstraintDefinitionException e ) {
// success
}
}
+
+ @Test
+ @SpecAssertions({
+ @SpecAssertion(section = "2.1", id = "c"),
+ @SpecAssertion(section = "2.1.1", id = "i"),
+ @SpecAssertion(section = "8.2", id = "a")
+ })
+ public void testConstraintDefinitionWithWrongDefaultPayloadValue() {
+ try {
+ Validator validator = TestUtil.getDefaultValidator();
+ validator.validate( new DummyEntityInvalidDefaultPayload() );
+ fail( "The default payload parameter is not the empty array. The validation
should have failed." );
+ }
+ catch ( ConstraintDefinitionException e ) {
+ // success
+ }
+ }
+
+ @Test
+ @SpecAssertions({
+ @SpecAssertion(section = "2.1", id = "c"),
+ @SpecAssertion(section = "2.1.1", id = "j"),
+ @SpecAssertion(section = "8.2", id = "a")
+ })
+ public void testConstraintDefinitionWithWrongPayloadClass() {
+ try {
+ Validator validator = TestUtil.getDefaultValidator();
+ validator.validate( new DummyEntityInvalidPayloadClass() );
+ fail( "The default payload parameter has to be of type Class<? extends
ConstraintPayload>[]. The validation should have failed." );
+ }
+ catch ( ConstraintDefinitionException e ) {
+ // success
+ }
+ }
+
+ @Test
+ @SpecAssertions({
+ @SpecAssertion(section = "2.1", id = "c"),
+ @SpecAssertion(section = "2.1.1", id = "c"),
+ @SpecAssertion(section = "8.2", id = "a")
+ })
+ public void testConstraintDefinitionWithWrongMessageType() {
+ try {
+ Validator validator = TestUtil.getDefaultValidator();
+ validator.validate( new DummyEntityInvalidMessageType() );
+ fail( "The message parameter has to be of type String. The validation should have
failed." );
+ }
+ catch ( ConstraintDefinitionException e ) {
+ // success
+ }
+ }
+
+ @Test
+ @SpecAssertions({
+ @SpecAssertion(section = "2.1", id = "c"),
+ @SpecAssertion(section = "2.1.1", id = "g"),
+ @SpecAssertion(section = "8.2", id = "a")
+ })
+ public void testConstraintDefinitionWithWrongGroupType() {
+ try {
+ Validator validator = TestUtil.getDefaultValidator();
+ validator.validate( new DummyEntityInvalidGroupsType() );
+ fail( "The groups parameter has to be of type Class<?>[]. The validation
should have failed." );
+ }
+ catch ( ConstraintDefinitionException e ) {
+ // success
+ }
+ }
+
+ @InvalidDefaultGroup
+ public class DummyEntityInvalidDefaultGroup {
+ }
+
+ @NoGroups
+ public class DummyEntityNoGroups {
+ }
+
+ @NoMessage
+ public class DummyEntityNoMessage {
+ }
+
+ @ValidInPropertyName
+ public class DummyEntityValidProperty {
+ }
+
+ @NoPayload
+ public class DummyEntityNoPayload {
+ }
+
+ @InvalidDefaultPayload
+ public class DummyEntityInvalidDefaultPayload {
+ }
+
+ @InvalidPayloadClass
+ public class DummyEntityInvalidPayloadClass {
+ }
+
+ @InvalidMessageType
+ public class DummyEntityInvalidMessageType {
+ }
+
+ @InvalidGroupsType
+ public class DummyEntityInvalidGroupsType {
+ }
}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultGroup.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultGroup.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultGroup.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -25,6 +25,7 @@
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintPayload;
import javax.validation.groups.Default;
/**
@@ -39,6 +40,8 @@
public abstract Class<?>[] groups() default Default.class;
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
public class InvalidDefaultGroupValidator implements
ConstraintValidator<InvalidDefaultGroup, Object> {
public void initialize(InvalidDefaultGroup parameters) {
Copied:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultPayload.java
(from rev 16948,
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultGroup.java)
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultPayload.java
(rev 0)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidDefaultPayload.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -0,0 +1,57 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* 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.
+*/
+package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
+
+import java.lang.annotation.Documented;
+import static java.lang.annotation.ElementType.TYPE;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+@Documented
+@Constraint(validatedBy = InvalidDefaultPayload.InvalidDefaultGroupValidator.class)
+@Target({ TYPE })
+@Retention(RUNTIME)
+public @interface InvalidDefaultPayload {
+ public abstract String message() default "default message";
+
+ public abstract Class<?>[] groups() default { };
+
+ public abstract Class<? extends ConstraintPayload>[] payload() default
DummyPayload.class;
+
+ public class DummyPayload implements ConstraintPayload {
+
+ }
+
+ public class InvalidDefaultGroupValidator implements
ConstraintValidator<InvalidDefaultPayload, Object> {
+
+ public void initialize(InvalidDefaultPayload parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext
constraintValidatorContext) {
+ return false;
+ }
+ }
+}
\ No newline at end of file
Added:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidMessageType.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidMessageType.java
(rev 0)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidMessageType.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -0,0 +1,52 @@
+// $Id: InvalidDefaultGroup.java 16691 2009-06-04 09:18:14Z hardy.ferentschik $
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* 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.
+*/
+package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
+
+import java.lang.annotation.Documented;
+import static java.lang.annotation.ElementType.TYPE;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+@Documented
+@Constraint(validatedBy = InvalidMessageType.InvalidDefaultGroupValidator.class)
+@Target({ TYPE })
+@Retention(RUNTIME)
+public @interface InvalidMessageType {
+ public abstract Class<?> message() default void.class;
+
+ public abstract Class<?>[] groups() default { };
+
+ public abstract Class<?>[] payload() default { };
+
+ public class InvalidDefaultGroupValidator implements
ConstraintValidator<InvalidMessageType, Object> {
+
+ public void initialize(InvalidMessageType parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext
constraintValidatorContext) {
+ return false;
+ }
+ }
+}
\ No newline at end of file
Added:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidPayloadClass.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidPayloadClass.java
(rev 0)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/InvalidPayloadClass.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -0,0 +1,52 @@
+// $Id: InvalidDefaultGroup.java 16691 2009-06-04 09:18:14Z hardy.ferentschik $
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* 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.
+*/
+package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
+
+import java.lang.annotation.Documented;
+import static java.lang.annotation.ElementType.TYPE;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+@Documented
+@Constraint(validatedBy = InvalidPayloadClass.InvalidDefaultGroupValidator.class)
+@Target({ TYPE })
+@Retention(RUNTIME)
+public @interface InvalidPayloadClass {
+ public abstract String message() default "default message";
+
+ public abstract Class<?>[] groups() default { };
+
+ public abstract String payload() default "";
+
+ public class InvalidDefaultGroupValidator implements
ConstraintValidator<InvalidPayloadClass, Object> {
+
+ public void initialize(InvalidPayloadClass parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext
constraintValidatorContext) {
+ return false;
+ }
+ }
+}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoGroups.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoGroups.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoGroups.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -23,6 +23,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
@@ -36,6 +37,8 @@
public @interface NoGroups {
String message() default "default message";
+ Class<? extends ConstraintPayload>[] payload() default { };
+
public class NoGroupsValidator implements ConstraintValidator<NoGroups, Object> {
public void initialize(NoGroups parameters) {
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoMessage.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoMessage.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoMessage.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -23,6 +23,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
@@ -36,6 +37,8 @@
public @interface NoMessage {
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default { };
+
public class NoMessageValidator implements ConstraintValidator<NoMessage, Object>
{
public void initialize(NoMessage parameters) {
Copied:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoPayload.java
(from rev 16948,
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoGroups.java)
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoPayload.java
(rev 0)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/NoPayload.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -0,0 +1,50 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* 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.
+*/
+package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
+
+import java.lang.annotation.Documented;
+import static java.lang.annotation.ElementType.TYPE;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+@Documented
+@Constraint(validatedBy = NoPayload.NoGroupsValidator.class)
+@Target({ TYPE })
+@Retention(RUNTIME)
+public @interface NoPayload {
+ public abstract String message() default "default message";
+
+ public abstract Class<?>[] groups() default { };
+
+ public class NoGroupsValidator implements ConstraintValidator<NoPayload, Object>
{
+
+ public void initialize(NoPayload parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext
constraintValidatorContext) {
+ return false;
+ }
+ }
+}
\ No newline at end of file
Copied:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidInPropertyName.java
(from rev 16948,
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidProperty.java)
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidInPropertyName.java
(rev 0)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidInPropertyName.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -0,0 +1,55 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* 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.
+*/
+package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
+
+import java.lang.annotation.Documented;
+import static java.lang.annotation.ElementType.TYPE;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+@Documented
+@Constraint(validatedBy = ValidInPropertyName.ValidPropertyValidator.class)
+@Target({ TYPE })
+@Retention(RUNTIME)
+public @interface ValidInPropertyName {
+ String message() default "default message";
+
+ Class<?>[] groups() default { };
+
+ Class<? extends ConstraintPayload>[] payload() default { };
+
+ int validLength() default 0;
+
+ public class ValidPropertyValidator implements
ConstraintValidator<ValidInPropertyName, Object> {
+
+ public void initialize(ValidInPropertyName parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext
constraintValidatorContext) {
+ return false;
+ }
+ }
+}
\ No newline at end of file
Property changes on:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidInPropertyName.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Deleted:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidProperty.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidProperty.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions/ValidProperty.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -1,52 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* 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.
-*/
-package org.hibernate.jsr303.tck.tests.constraints.invalidconstraintdefinitions;
-
-import java.lang.annotation.Documented;
-import static java.lang.annotation.ElementType.TYPE;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import javax.validation.Constraint;
-import javax.validation.ConstraintValidator;
-import javax.validation.ConstraintValidatorContext;
-
-/**
- * @author Hardy Ferentschik
- */
-@Documented
-@Constraint(validatedBy = ValidProperty.ValidPropertyValidator.class)
-@Target({ TYPE })
-@Retention(RUNTIME)
-public @interface ValidProperty {
- String message() default "default message";
-
- Class<?>[] groups() default { };
-
- int validLength() default 0;
-
- public class ValidPropertyValidator implements ConstraintValidator<ValidProperty,
Object> {
-
- public void initialize(ValidProperty parameters) {
- }
-
- public boolean isValid(Object object, ConstraintValidatorContext
constraintValidatorContext) {
- return false;
- }
- }
-}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/Ambigious.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/Ambigious.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/Ambigious.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -28,6 +28,7 @@
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintPayload;
/**
* A test constraint which can lead to a error when trying to reslove the validator.
@@ -45,7 +46,9 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
public class AmbigiousValidatorForBar implements ConstraintValidator<Ambigious,
Bar> {
public void initialize(Ambigious parameters) {
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/PostCodeList.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/PostCodeList.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/PostCodeList.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -28,6 +28,7 @@
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintPayload;
/**
* A test constraint which can lead to a error when trying to reslove the validator.
@@ -45,6 +46,8 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
public class PostCodeListValidatorForNumber
implements ConstraintValidator<PostCodeList, Collection<? extends Number>>
{
public void initialize(PostCodeList constraintAnnotation) {
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/metadata/AccountChecker.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/metadata/AccountChecker.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/metadata/AccountChecker.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* @author Hardy Ferentschik
@@ -38,4 +39,6 @@
public abstract String message() default "Account information inconsistent.";
public abstract Class<?>[] groups() default { };
+
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
}
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/metadata/NotEmpty.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/metadata/NotEmpty.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/metadata/NotEmpty.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -24,6 +24,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
import javax.validation.OverridesAttribute;
import javax.validation.ReportAsSingleViolation;
import javax.validation.constraints.NotNull;
@@ -44,6 +45,8 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default { };
+
@OverridesAttribute(constraint = Size.class, name = "min")
public abstract int min() default 5;
}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/customconstraint/Negative.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/customconstraint/Negative.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/customconstraint/Negative.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* @author Emmanuel Bernard
@@ -37,4 +38,6 @@
public abstract String message() default "{validation.negative}";
public abstract Class<?>[] groups() default { };
+
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/customconstraint/Positive.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/customconstraint/Positive.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/customconstraint/Positive.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -17,23 +17,27 @@
*/
package org.hibernate.jsr303.tck.tests.validation.customconstraint;
-import java.lang.annotation.Target;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
import java.lang.annotation.Retention;
-import java.lang.annotation.Documented;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* @author Emmanuel Bernard
*/
-@Constraint( validatedBy = { PositiveConstraintValidator.class })
+@Constraint(validatedBy = { PositiveConstraintValidator.class })
@Target({ METHOD, FIELD, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Documented
public @interface Positive {
public abstract String message() default "{validation.positive}";
- public abstract Class<?>[] groups() default {};
+
+ public abstract Class<?>[] groups() default { };
+
+ public abstract Class<? extends ConstraintPayload>[] payload() default { };
}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/validatorcontext/Dummy.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/validatorcontext/Dummy.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validation/validatorcontext/Dummy.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -24,6 +24,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* @author Hardy Ferentschik
@@ -36,4 +37,6 @@
String message() default "dummy message";
Class<?>[] groups() default { };
+
+ Class<? extends ConstraintPayload>[] payload() default { };
}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/MyConstraint.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/MyConstraint.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/MyConstraint.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* @author Hardy Ferentschik
@@ -37,4 +38,6 @@
public abstract String message() default "my constraint failed";
public abstract Class<?>[] groups() default { };
+
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/MySecondConstraint.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/MySecondConstraint.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/MySecondConstraint.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* @author Hardy Ferentschik
@@ -37,4 +38,6 @@
public abstract String message() default "my second constraint failed.";
public abstract Class<?>[] groups() default { };
+
+ public abstract Class<? extends ConstraintPayload>[] payload() default { };
}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/ConsistentUserInformation.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/ConsistentUserInformation.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/ConsistentUserInformation.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
import javax.validation.constraints.Pattern;
@@ -40,6 +41,8 @@
public abstract Class<?>[] groups() default { };
+ public abstract Class<? extends ConstraintPayload>[] payload() default {};
+
public abstract String stringParam() default "";
public abstract String[] stringArrayParam() default { };
Modified: beanvalidation/trunk/validation-tck/src/main/resources/tck-audit.xml
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/resources/tck-audit.xml 2009-06-30
10:22:13 UTC (rev 16976)
+++ beanvalidation/trunk/validation-tck/src/main/resources/tck-audit.xml 2009-06-30
12:37:35 UTC (rev 16977)
@@ -46,14 +46,18 @@
<text>If no group is specified when declaring the constraint on an
element, the Default
group is considered declared.</text>
</assertion>
- <assertion id="g">
+ <assertion id="g" implied="true">
+ <text>The type of the groups parameter is
Class<?>[].</text>
+ </assertion>
+
+ <assertion id="h">
<text>Every constraint annotation must define a payload element that
specifies which
payload the constraint declaration is associated with. </text>
</assertion>
- <assertion id="h">
+ <assertion id="i">
<text>The default value for the payload parameter must be an empty
array. </text>
</assertion>
- <assertion id="i">
+ <assertion id="j">
<text>Each attachable payload extends ConstraintPayload. </text>
</assertion>
</section>
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmpty.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmpty.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmpty.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -24,6 +24,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
import javax.validation.ReportAsSingleViolation;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@@ -32,14 +33,16 @@
* @author Emmanuel Bernard
*/
@Documented
-@Constraint(validatedBy = {})
+@Constraint(validatedBy = { })
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
@ReportAsSingleViolation
@NotNull
-@Size(min=1)
+@Size(min = 1)
public @interface NotEmpty {
String message() default
"{org.hibernate.validation.constraints.NotEmpty.message}";
Class<?>[] groups() default { };
+
+ Class<? extends ConstraintPayload>[] payload() default { };
}
\ No newline at end of file
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/ConstraintHelper.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/ConstraintHelper.java 2009-06-30
10:22:13 UTC (rev 16976)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/ConstraintHelper.java 2009-06-30
12:37:35 UTC (rev 16977)
@@ -262,6 +262,7 @@
* <li>Has to contain a <code>ConstraintValidator</code>
implementation.</li>
* <li>Defines a message parameter.</li>
* <li>Defines a group parameter.</li>
+ * <li>Defines a payload parameter.</li>
* </ul>
*
* @param annotation The annotation to test.
@@ -276,15 +277,50 @@
return false;
}
+ assertMessageParameterExists( annotation );
+ assertGroupsParameterExists( annotation );
+ assertPayloadParameterExists( annotation );
+
+ assertNoParameterStartsWithValid( annotation );
+
+ return true;
+ }
+
+ private void assertNoParameterStartsWithValid(Annotation annotation) {
+ Method[] methods = annotation.getClass().getMethods();
+ for ( Method m : methods ) {
+ if ( m.getName().startsWith( "valid" ) ) {
+ String msg = "Parameters starting with 'valid' are not allowed in a
constraint.";
+ throw new ConstraintDefinitionException( msg );
+ }
+ }
+ }
+
+ private void assertPayloadParameterExists(Annotation annotation) {
try {
- ReflectionHelper.getAnnotationParameter( annotation, "message", String.class
);
+ Class<?>[] defaultPayload = ( Class<?>[] ) annotation.annotationType()
+ .getMethod( "payload" )
+ .getDefaultValue();
+ if ( defaultPayload.length != 0 ) {
+ String msg = annotation.annotationType()
+ .getName() + " contains Constraint annotation, but the payload " +
+ "paramter default value is not the empty array.";
+ throw new ConstraintDefinitionException( msg );
+ }
}
- catch ( Exception e ) {
+ catch ( ClassCastException e ) {
+ String msg = annotation.annotationType().getName() + " contains Constraint
annotation, but the " +
+ "payload parameter is of wrong type.";
+ throw new ConstraintDefinitionException( msg );
+ }
+ catch ( NoSuchMethodException nsme ) {
String msg = annotation.annotationType().getName() + " contains Constraint
annotation, but does " +
- "not contain a message parameter.";
+ "not contain a groups parameter.";
throw new ConstraintDefinitionException( msg );
}
+ }
+ private void assertGroupsParameterExists(Annotation annotation) {
try {
Class<?>[] defaultGroups = ( Class<?>[] ) annotation.annotationType()
.getMethod( "groups" )
@@ -292,24 +328,31 @@
if ( defaultGroups.length != 0 ) {
String msg = annotation.annotationType()
.getName() + " contains Constraint annotation, but the groups " +
- "paramter default value is not empty.";
+ "paramter default value is not the empty array.";
throw new ConstraintDefinitionException( msg );
}
}
+ catch ( ClassCastException e ) {
+ String msg = annotation.annotationType().getName() + " contains Constraint
annotation, but the " +
+ "groups parameter is of wrong type.";
+ throw new ConstraintDefinitionException( msg );
+ }
catch ( NoSuchMethodException nsme ) {
String msg = annotation.annotationType().getName() + " contains Constraint
annotation, but does " +
"not contain a groups parameter.";
throw new ConstraintDefinitionException( msg );
}
+ }
- Method[] methods = annotation.getClass().getMethods();
- for ( Method m : methods ) {
- if ( m.getName().startsWith( "valid" ) ) {
- String msg = "Parameters starting with 'valid' are not allowed in a
constraint.";
- throw new ConstraintDefinitionException( msg );
- }
+ private void assertMessageParameterExists(Annotation annotation) {
+ try {
+ ReflectionHelper.getAnnotationParameter( annotation, "message", String.class
);
}
- return true;
+ catch ( Exception e ) {
+ String msg = annotation.annotationType().getName() + " contains Constraint
annotation, but does " +
+ "not contain a message parameter.";
+ throw new ConstraintDefinitionException( msg );
+ }
}
public <T extends Annotation> List<Class<? extends ConstraintValidator<T,
?>>> getConstraintValidatorDefinition(Class<T> annotationClass) {
@@ -317,7 +360,9 @@
throw new IllegalArgumentException( "Class cannot be null" );
}
- final List<Class<? extends ConstraintValidator<? extends Annotation,
?>>> list = constraintValidatorDefinitons.get( annotationClass );
+ final List<Class<? extends ConstraintValidator<? extends Annotation,
?>>> list = constraintValidatorDefinitons.get(
+ annotationClass
+ );
List<Class<? extends ConstraintValidator<T, ?>>>
constraintsValidators =
new ArrayList<Class<? extends ConstraintValidator<T, ?>>>(
list.size() );