You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by rm...@apache.org on 2018/02/22 18:07:48 UTC
bval git commit: fixing ValidationInterceptorPriorityTest
Repository: bval
Updated Branches:
refs/heads/bv2 d28ee4d5d -> 861d64d4f
fixing ValidationInterceptorPriorityTest
Project: http://git-wip-us.apache.org/repos/asf/bval/repo
Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/861d64d4
Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/861d64d4
Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/861d64d4
Branch: refs/heads/bv2
Commit: 861d64d4fca5f789690b9eba40966479cdc6d8e6
Parents: d28ee4d
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Thu Feb 22 19:07:42 2018 +0100
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Thu Feb 22 19:07:42 2018 +0100
----------------------------------------------------------------------
.../org/apache/bval/jsr/BeanDescriptorImpl.java | 6 ++--
.../org/apache/bval/jsr/ConstraintCached.java | 2 +-
.../ComputeConstraintValidatorClass.java | 32 ++++++++++++++------
.../apache/bval/jsr/descriptor/ConstraintD.java | 2 +-
.../org/apache/bval/jsr/metadata/Metas.java | 15 +++++++++
bval-tck11/work-tests-suite.xml | 2 +-
6 files changed, 42 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bval/blob/861d64d4/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java b/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
index 2700674..9d0c32a 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
@@ -890,10 +890,8 @@ public class BeanDescriptorImpl extends ElementDescriptorImpl implements BeanDes
final Object value = worker.read(annotation);
if (Annotation[].class.isInstance(value)) {
final Annotation[] children = Annotation[].class.cast(value);
- if (children != null) {
- for (Annotation child : children) {
- processAnnotation(child, desc, access, validations); // recursion
- }
+ for (Annotation child : children) {
+ processAnnotation(child, desc, access, validations); // recursion
}
}
}
http://git-wip-us.apache.org/repos/asf/bval/blob/861d64d4/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java b/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
index 3a89560..28379b7 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
@@ -124,7 +124,7 @@ public class ConstraintCached {
return;
}
Validate.notNull(annotationClass, "annotationClass");
- Stream.of(definitionClasses).map(t -> new ConstraintValidatorInfo<>(t))
+ Stream.of(definitionClasses).map(ConstraintValidatorInfo::new)
.forEach(constraintValidatorInfo.computeIfAbsent(annotationClass, k -> new HashSet<>())::add);
}
http://git-wip-us.apache.org/repos/asf/bval/blob/861d64d4/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java b/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java
index d2595ea..a6493c5 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ComputeConstraintValidatorClass.java
@@ -21,6 +21,7 @@ import java.lang.reflect.Array;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.WildcardType;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@@ -98,15 +99,16 @@ class ComputeConstraintValidatorClass<A extends Annotation>
private final ApacheValidatorFactory validatorFactory;
private final Class<?> validatedType;
- private final ValidationTarget validationTarget;
+ private final Collection<ValidationTarget> validationTargets;
private final A constraint;
private final boolean composed;
- ComputeConstraintValidatorClass(ApacheValidatorFactory validatorFactory, ValidationTarget validationTarget,
+ ComputeConstraintValidatorClass(ApacheValidatorFactory validatorFactory,
+ Collection<ValidationTarget> validationTargets,
A constraint, Class<?> validatedType) {
super();
this.validatorFactory = Validate.notNull(validatorFactory, "validatorFactory");
- this.validationTarget = Validate.notNull(validationTarget, "validationTarget");
+ this.validationTargets = Validate.notNull(validationTargets, "validationTargets");
this.constraint = Validate.notNull(constraint, "constraint");
this.validatedType = Validate.notNull(validatedType, "validatedType");
this.composed = validatorFactory.getAnnotationsManager().isComposed(constraint);
@@ -120,14 +122,24 @@ class ComputeConstraintValidatorClass<A extends Annotation>
}
private Class<? extends ConstraintValidator<A, ?>> findValidator(Set<ConstraintValidatorInfo<A>> infos) {
- switch (validationTarget) {
- case PARAMETERS:
- return findCrossParameterValidator(infos);
- case ANNOTATED_ELEMENT:
- return findAnnotatedElementValidator(infos);
- default:
- return null;
+ RuntimeException error = null;
+ for (ValidationTarget vt : validationTargets) { // TODO: to rework, perf are not correct
+ try {
+ switch (vt) {
+ case PARAMETERS:
+ return findCrossParameterValidator(infos);
+ case ANNOTATED_ELEMENT:
+ return findAnnotatedElementValidator(infos);
+ default:
+ }
+ } catch (final RuntimeException re) {
+ error = re;
+ }
+ }
+ if (error != null) {
+ throw error;
}
+ return null;
}
private Class<? extends ConstraintValidator<A, ?>> findCrossParameterValidator(
http://git-wip-us.apache.org/repos/asf/bval/blob/861d64d4/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ConstraintD.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ConstraintD.java b/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ConstraintD.java
index 0c1be1b..c812cf5 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ConstraintD.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ConstraintD.java
@@ -101,7 +101,7 @@ public class ConstraintD<A extends Annotation> implements ConstraintDescriptor<A
constraintValidatorClasses = new Lazy<>(computeConstraintValidatorClasses(validatorFactory));
final Supplier<Class<? extends ConstraintValidator<A, ?>>> computeConstraintValidatorClass =
- new ComputeConstraintValidatorClass<>(validatorFactory, meta.getValidationTarget(), annotation,
+ new ComputeConstraintValidatorClass<>(validatorFactory, meta.getValidationTargets(), annotation,
validatedType);
constraintValidatorClass = new Lazy<>(computeConstraintValidatorClass);
http://git-wip-us.apache.org/repos/asf/bval/blob/861d64d4/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/Metas.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/Metas.java b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/Metas.java
index 667c404..bd04439 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/Metas.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/Metas.java
@@ -18,6 +18,9 @@
*/
package org.apache.bval.jsr.metadata;
+import static java.util.Arrays.asList;
+import static java.util.Collections.singleton;
+
import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
import java.lang.reflect.AnnotatedElement;
@@ -29,6 +32,8 @@ import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.Objects;
import javax.validation.constraintvalidation.ValidationTarget;
@@ -208,6 +213,11 @@ public abstract class Metas<E extends AnnotatedElement> {
}
@Override
+ public Collection<ValidationTarget> getValidationTargets() {
+ return asList(ValidationTarget.values());
+ }
+
+ @Override
public Type getType() {
return getHost().getType();
}
@@ -293,6 +303,11 @@ public abstract class Metas<E extends AnnotatedElement> {
public abstract String getName();
+ public Collection<ValidationTarget> getValidationTargets() {
+ // todo: cache for perf?
+ return singleton(getValidationTarget());
+ }
+
public ValidationTarget getValidationTarget() {
return ValidationTarget.ANNOTATED_ELEMENT;
}
http://git-wip-us.apache.org/repos/asf/bval/blob/861d64d4/bval-tck11/work-tests-suite.xml
----------------------------------------------------------------------
diff --git a/bval-tck11/work-tests-suite.xml b/bval-tck11/work-tests-suite.xml
index 950fa8f..a5f8c39 100644
--- a/bval-tck11/work-tests-suite.xml
+++ b/bval-tck11/work-tests-suite.xml
@@ -21,7 +21,7 @@ think to add -Dvalidation.provider=org.apache.bval.jsr303.ApacheValidationProvid
<suite name="tmp" verbose="1">
<test name="tmp">
<classes>
- <class name="org.hibernate.beanvalidation.tck.tests.integration.cdi.executable.global.ExecutableValidationBasedOnGlobalConfigurationTest">
+ <class name="org.hibernate.beanvalidation.tck.tests.integration.cdi.executable.priority.ValidationInterceptorPriorityTest">
</class>
</classes>
</test>