Hi Matt

SKIPPED_PREFIXES was designed to be modifiable.

It is not sexy but idea was to let other products like tomee change it
without having to release bval.

Id be happy to have a Filter.accept(fqn) as well if you find it cleaner - I
think we should actually.

Wdyt?
---------- Message transféré ----------
De : <[email protected]>
Date : 10 déc. 2014 01:14
Objet : svn commit: r1644258 - in
/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval: cdi/ jsr/
À : <[email protected]>
Cc :

Author: mbenson
Date: Wed Dec 10 00:14:41 2014
New Revision: 1644258

URL: http://svn.apache.org/r1644258
Log:
javadoc, cleanup

Modified:

bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java

bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java

bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java

bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java

bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java

bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java

bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java

Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java?rev=1644258&r1=1644257&r2=1644258&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java
Wed Dec 10 00:14:41 2014
@@ -24,7 +24,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;

-//TODO javadoc
+/**
+ * Custom {@link InterceptorBinding} to invoke executable validations on
CDI beans.
+ */
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.TYPE})
 @InterceptorBinding

Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java?rev=1644258&r1=1644257&r2=1644258&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
Wed Dec 10 00:14:41 2014
@@ -41,28 +41,34 @@ import javax.validation.executable.Execu
 import javax.validation.executable.ValidateOnExecution;
 import javax.validation.metadata.BeanDescriptor;
 import javax.validation.metadata.MethodType;
+
 import java.lang.reflect.Modifier;
 import java.lang.reflect.Type;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.logging.Level;
 import java.util.logging.Logger;

+/**
+ * CDI {@link Extension} for Apache BVal setup.
+ */
 public class BValExtension implements Extension {
     private static final Logger LOGGER =
Logger.getLogger(BValExtension.class.getName());

     // extension point, we can add a SPI if needed, today mainly a
fallback "API" for TomEE if we encounter an issue
-    public static Collection<String> SKIPPED_PREFIXES = new
HashSet<String>();
+    public static final Set<String> SKIPPED_PREFIXES;
     static {
-        SKIPPED_PREFIXES.add("java.");
-        SKIPPED_PREFIXES.add("javax.");
-        SKIPPED_PREFIXES.add("org.apache.bval.");
-        SKIPPED_PREFIXES.add("org.apache.openejb.");
-        SKIPPED_PREFIXES.add("org.apache.deltaspike."); // should be
checked when upgrading
-        SKIPPED_PREFIXES.add("org.apache.myfaces."); // should be checked
when upgrading
+        final Set<String> s = new HashSet<String>();
+        s.add("java.");
+        s.add("javax.");
+        s.add("org.apache.bval.");
+        s.add("org.apache.openejb.");
+        s.add("org.apache.deltaspike."); // should be checked when
upgrading
+        s.add("org.apache.myfaces."); // should be checked when upgrading
+        SKIPPED_PREFIXES = Collections.unmodifiableSet(s);
     }

     private boolean validatorFound =
Boolean.getBoolean("bval.in-container");
@@ -84,11 +90,12 @@ public class BValExtension implements Ex
         config = Validation.byDefaultProvider().configure();
         try {
             final BootstrapConfiguration bootstrap =
config.getBootstrapConfiguration();
-            globalExecutableTypes =
convertToRuntimeTypes(bootstrap.getDefaultValidatedExecutableTypes());
+            globalExecutableTypes =
Collections.unmodifiableSet(convertToRuntimeTypes(bootstrap.getDefaultValidatedExecutableTypes()));
             isExecutableValidationEnabled =
bootstrap.isExecutableValidationEnabled();

+            // TODO we never contain IMPLICIT or ALL
             validBean =
globalExecutableTypes.contains(ExecutableType.IMPLICIT) ||
globalExecutableTypes.contains(ExecutableType.ALL);
-            validConstructors =validBean ||
globalExecutableTypes.contains(ExecutableType.CONSTRUCTORS);
+            validConstructors = validBean ||
globalExecutableTypes.contains(ExecutableType.CONSTRUCTORS);
             validBusinessMethods = validBean ||
globalExecutableTypes.contains(ExecutableType.NON_GETTER_METHODS);
             validGetterMethods =
globalExecutableTypes.contains(ExecutableType.ALL) ||
globalExecutableTypes.contains(ExecutableType.GETTER_METHODS);
         } catch (final Exception e) { // custom providers can throw an
exception
@@ -105,22 +112,28 @@ public class BValExtension implements Ex
             return;
         }
         config.addProperty("bval.before.cdi", "true"); // ignore parts of
the config relying on CDI since we didn't start yet
-        factory = factory != null ? factory :
config.buildValidatorFactory();
+        if (factory == null) {
+            factory = config.buildValidatorFactory();
+        }
         validator = factory.getValidator();
     }

     private static Set<ExecutableType> convertToRuntimeTypes(final
Set<ExecutableType> defaultValidatedExecutableTypes) {
-        final Set<ExecutableType> types = new
CopyOnWriteArraySet<ExecutableType>();
+        final Set<ExecutableType> types =
EnumSet.noneOf(ExecutableType.class);
         for (final ExecutableType type : defaultValidatedExecutableTypes) {
-            if (ExecutableType.IMPLICIT.equals(type)) {
-                types.add(ExecutableType.CONSTRUCTORS);
-                types.add(ExecutableType.NON_GETTER_METHODS);
-            } else if (ExecutableType.ALL.equals(type)) {
+            if (ExecutableType.NONE == type) {
+                continue;
+            }
+            if (ExecutableType.ALL == type) {
                 types.add(ExecutableType.CONSTRUCTORS);
                 types.add(ExecutableType.NON_GETTER_METHODS);
                 types.add(ExecutableType.GETTER_METHODS);
                 break;
-            } else if (!ExecutableType.NONE.equals(type)) {
+            }
+            if (ExecutableType.IMPLICIT == type) {
+                types.add(ExecutableType.CONSTRUCTORS);
+                types.add(ExecutableType.NON_GETTER_METHODS);
+            } else {
                 types.add(type);
             }
         }
@@ -166,10 +179,12 @@ public class BValExtension implements Ex
                     if
(annotatedType.isAnnotationPresent(ValidateOnExecution.class)
                             ||
hasValidationAnnotation(annotatedType.getMethods())
                             ||
hasValidationAnnotation(annotatedType.getConstructors())
-                            || (validBean && classConstraints != null &&
classConstraints.isBeanConstrained())
-                            || (validConstructors && classConstraints !=
null && !classConstraints.getConstrainedConstructors().isEmpty())
-                            || (validBusinessMethods && classConstraints
!= null &&
!classConstraints.getConstrainedMethods(MethodType.NON_GETTER).isEmpty())
-                            || (validGetterMethods && classConstraints !=
null &&
!classConstraints.getConstrainedMethods(MethodType.GETTER).isEmpty())) {
+                            || classConstraints != null
+                            && (validBean &&
classConstraints.isBeanConstrained()
+                                || validConstructors &&
!classConstraints.getConstrainedConstructors().isEmpty()
+                                || validBusinessMethods &&
!classConstraints.getConstrainedMethods(MethodType.NON_GETTER).isEmpty()
+                                || validGetterMethods &&
!classConstraints.getConstrainedMethods(MethodType.GETTER).isEmpty())
+                            ) {
                         // TODO: keep track of bValAnnotatedType and
remove @BValBinding in
                         // ProcessBean event if needed cause here we can't
really add @ValidateOnExecution
                         // through an extension
@@ -250,10 +265,11 @@ public class BValExtension implements Ex
         }
     }

-    private static ClassLoader loader() {
-        return Thread.currentThread().getContextClassLoader();
-    }
-
+    /**
+     * Request that an instance of the specified type be provided by the
container.
+     * @param clazz
+     * @return the requested instance wrapped in a {@link Releasable}.
+     */
     public static <T> Releasable<T> inject(final Class<T> clazz) {
         try {
             final BeanManager beanManager = CDI.current().getBeanManager();
@@ -280,6 +296,10 @@ public class BValExtension implements Ex
         return CDI.current().getBeanManager();
     }

+    /**
+     * Represents an item that can be released from a {@link
CreationalContext} at some point in the future.
+     * @param <T>
+     */
     public static class Releasable<T> {
         private final CreationalContext<T> context;
         private final InjectionTarget<T> injectionTarget;

Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java?rev=1644258&r1=1644257&r2=1644258&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java
Wed Dec 10 00:14:41 2014
@@ -26,6 +26,7 @@ import javax.inject.Inject;
 import javax.interceptor.AroundConstruct;
 import javax.interceptor.AroundInvoke;
 import javax.interceptor.Interceptor;
+import javax.interceptor.InterceptorBinding;
 import javax.interceptor.InvocationContext;
 import javax.validation.ConstraintViolation;
 import javax.validation.ConstraintViolationException;
@@ -42,19 +43,23 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArraySet;

+/**
+ * Interceptor class for the {@link BValBinding} {@link
InterceptorBinding}.
+ */
 @Interceptor
 @BValBinding
-@Priority(4800) // TODO: maybe add it through ASM to be compliant with CDI
1.0 containers using simply this class as a template to generate another
one for CDI 1.1 impl
+@Priority(4800)
+// TODO: maybe add it through ASM to be compliant with CDI 1.0 containers
using simply this class as a template to
+// generate another one for CDI 1.1 impl
 public class BValInterceptor {
     private final Map<Method, Boolean> methodConfiguration = new
ConcurrentHashMap<Method, Boolean>();
-    private Collection<ExecutableType> classConfiguration;
+    private Set<ExecutableType> classConfiguration;
     private Boolean constructorValidated;

     @Inject
@@ -65,7 +70,8 @@ public class BValInterceptor {

     private ExecutableValidator executableValidator;

-    @AroundConstruct // TODO: see previous one
+    @AroundConstruct
+    // TODO: see previous one
     public Object construct(final InvocationContext context) throws
Exception {
         @SuppressWarnings("rawtypes")
         final Constructor constructor = context.getConstructor();
@@ -84,7 +90,8 @@ public class BValInterceptor {

         {
             @SuppressWarnings("unchecked")
-            final Set<ConstraintViolation<?>> violations =
executableValidator.validateConstructorParameters(constructor,
context.getParameters());
+            final Set<ConstraintViolation<?>> violations =
+
executableValidator.validateConstructorParameters(constructor,
context.getParameters());
             if (!violations.isEmpty()) {
                 throw new ConstraintViolationException(violations);
             }
@@ -94,7 +101,8 @@ public class BValInterceptor {

         {
             @SuppressWarnings("unchecked")
-            final Set<ConstraintViolation<?>> violations =
executableValidator.validateConstructorReturnValue(constructor,
context.getTarget());
+            final Set<ConstraintViolation<?>> violations =
+
executableValidator.validateConstructorReturnValue(constructor,
context.getTarget());
             if (!violations.isEmpty()) {
                 throw new ConstraintViolationException(violations);
             }
@@ -141,7 +149,8 @@ public class BValInterceptor {
         return result;
     }

-    private boolean isConstructorValidated(final Class<?> targetClass,
final Constructor<?> constructor) throws NoSuchMethodException {
+    private boolean isConstructorValidated(final Class<?> targetClass,
final Constructor<?> constructor)
+        throws NoSuchMethodException {
         initClassConfig(targetClass);

         if (constructorValidated == null) {
@@ -206,18 +215,22 @@ public class BValInterceptor {
                     if (validateOnExecution == null) {
                         methodConfig = doValidMethod(method,
classConfiguration);
                     } else {
-                        final Collection<ExecutableType> config = new
HashSet<ExecutableType>();
+                        final Set<ExecutableType> config =
EnumSet.noneOf(ExecutableType.class);
                         for (final ExecutableType type :
validateOnExecution.type()) {
+                            if (ExecutableType.NONE == type) {
+                                continue;
+                            }
+                            if (ExecutableType.ALL == type) {
+
config.add(ExecutableType.NON_GETTER_METHODS);
+                                config.add(ExecutableType.GETTER_METHODS);
+                                break;
+                            }
                             if (ExecutableType.IMPLICIT == type) { // on
method it just means validate, even on getters

 config.add(ExecutableType.NON_GETTER_METHODS);
                                 if (lastClassWithTheMethod == null) {

 config.add(ExecutableType.GETTER_METHODS);
                                 } // else the annotation was not on the
method so implicit doesn't mean getters
-                            } else if (ExecutableType.ALL == type) {
-
config.add(ExecutableType.NON_GETTER_METHODS);
-                                config.add(ExecutableType.GETTER_METHODS);
-                                break;
-                            } else if (ExecutableType.NONE != type) {
+                            } else {
                                 config.add(type);
                             }
                         }
@@ -235,22 +248,26 @@ public class BValInterceptor {
         if (classConfiguration == null) {
             synchronized (this) {
                 if (classConfiguration == null) {
-                    classConfiguration = new
CopyOnWriteArraySet<ExecutableType>();
+                    classConfiguration =
EnumSet.noneOf(ExecutableType.class);

                     final ValidateOnExecution annotation =
targetClass.getAnnotation(ValidateOnExecution.class);
                     if (annotation == null) {

 classConfiguration.addAll(globalConfiguration.getGlobalExecutableTypes());
                     } else {
                         for (final ExecutableType type :
annotation.type()) {
-                            if (ExecutableType.IMPLICIT ==type) {
-
classConfiguration.add(ExecutableType.CONSTRUCTORS);
-
classConfiguration.add(ExecutableType.NON_GETTER_METHODS);
-                            } else if (ExecutableType.ALL == type) {
+                            if (ExecutableType.NONE == type) {
+                                continue;
+                            }
+                            if (ExecutableType.ALL == type) {

 classConfiguration.add(ExecutableType.CONSTRUCTORS);

 classConfiguration.add(ExecutableType.NON_GETTER_METHODS);

 classConfiguration.add(ExecutableType.GETTER_METHODS);
                                 break;
-                            } else if (ExecutableType.NONE != type) {
+                            }
+                            if (ExecutableType.IMPLICIT == type) {
+
classConfiguration.add(ExecutableType.CONSTRUCTORS);
+
classConfiguration.add(ExecutableType.NON_GETTER_METHODS);
+                            } else {
                                 classConfiguration.add(type);
                             }
                         }
@@ -270,14 +287,14 @@ public class BValInterceptor {
         }
     }

-    private static boolean doValidMethod(final Method method, final
Collection<ExecutableType> config) {
-        final boolean getter = isGetter(method);
-        return (!getter &&
config.contains(ExecutableType.NON_GETTER_METHODS))
-            || (getter && config.contains(ExecutableType.GETTER_METHODS));
+    private static boolean doValidMethod(final Method method, final
Set<ExecutableType> config) {
+        return isGetter(method) ?
config.contains(ExecutableType.GETTER_METHODS) : config
+            .contains(ExecutableType.NON_GETTER_METHODS);
     }

     private static boolean isGetter(final Method method) {
         final String name = method.getName();
-        return (name.startsWith("get") || name.startsWith("is")) &&
method.getParameterTypes().length == 0;
-    }
+        return method.getParameterTypes().length == 0 &&
!Void.TYPE.equals(method.getReturnType())
+            && (name.startsWith("get") || name.startsWith("is") &&
boolean.class.equals(method.getReturnType()));
+   }
 }

Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java?rev=1644258&r1=1644257&r2=1644258&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java
Wed Dec 10 00:14:41 2014
@@ -33,6 +33,9 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;

+/**
+ * {@link BValInterceptor} CDI {@link Bean}.
+ */
 public class BValInterceptorBean implements Bean<BValInterceptor>,
PassivationCapable {
     private final Set<Type> types;
     private final Set<Annotation> qualifiers;
@@ -40,13 +43,15 @@ public class BValInterceptorBean impleme
     private final InjectionTarget<BValInterceptor> injectionTarget;

     public BValInterceptorBean(final BeanManager bm) {
-        types = new HashSet<Type>();
-        types.add(BValInterceptor.class);
-        types.add(Object.class);
+        final Set<Type> t = new HashSet<Type>();
+        t.add(BValInterceptor.class);
+        t.add(Object.class);
+        types = Collections.unmodifiableSet(t);

-        qualifiers = new HashSet<Annotation>();
-        qualifiers.add(DefaultLiteral.INSTANCE);
-        qualifiers.add(AnyLiteral.INSTANCE);
+        final Set<Annotation> q = new HashSet<Annotation>();
+        q.add(DefaultLiteral.INSTANCE);
+        q.add(AnyLiteral.INSTANCE);
+        qualifiers = Collections.unmodifiableSet(q);

         injectionTarget =
bm.createInjectionTarget(bm.createAnnotatedType(BValInterceptor.class));
         injectionPoints =

Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java?rev=1644258&r1=1644257&r2=1644258&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java
Wed Dec 10 00:14:41 2014
@@ -31,7 +31,10 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;

-public class ValidatorBean implements Bean<Validator> , PassivationCapable{
+/**
+ * {@link Validator} CDI {@link Bean}.
+ */
+public class ValidatorBean implements Bean<Validator> , PassivationCapable
{
     private final Set<Type> types;
     private final Set<Annotation> qualifiers;
     private final ValidatorFactory factory;
@@ -41,13 +44,15 @@ public class ValidatorBean implements Be
         this.factory = factory;
         this.instance = validator;

-        types = new HashSet<Type>();
-        types.add(Validator.class);
-        types.add(Object.class);
+        final Set<Type> t = new HashSet<Type>();
+        t.add(Validator.class);
+        t.add(Object.class);
+        types = Collections.unmodifiableSet(t);

-        qualifiers = new HashSet<Annotation>();
-        qualifiers.add(DefaultLiteral.INSTANCE);
-        qualifiers.add(AnyLiteral.INSTANCE);
+        final Set<Annotation> q = new HashSet<Annotation>();
+        q.add(DefaultLiteral.INSTANCE);
+        q.add(AnyLiteral.INSTANCE);
+        qualifiers = Collections.unmodifiableSet(q);
     }

     public Set<Type> getTypes() {

Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java?rev=1644258&r1=1644257&r2=1644258&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java
Wed Dec 10 00:14:41 2014
@@ -30,6 +30,9 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;

+/**
+ * {@link ValidatorFactory} CDI {@link Bean}.
+ */
 public class ValidatorFactoryBean implements Bean<ValidatorFactory> ,
PassivationCapable{
     private final Set<Type> types;
     private final Set<Annotation> qualifiers;
@@ -38,13 +41,15 @@ public class ValidatorFactoryBean implem
     public ValidatorFactoryBean(final ValidatorFactory validatorFactory) {
         this.instance = validatorFactory;

-        types = new HashSet<Type>();
-        types.add(ValidatorFactory.class);
-        types.add(Object.class);
+        final Set<Type> t = new HashSet<Type>();
+        t.add(ValidatorFactory.class);
+        t.add(Object.class);
+        types = Collections.unmodifiableSet(t);

-        qualifiers = new HashSet<Annotation>();
-        qualifiers.add(DefaultLiteral.INSTANCE);
-        qualifiers.add(AnyLiteral.INSTANCE);
+        final Set<Annotation> q = new HashSet<Annotation>();
+        q.add(DefaultLiteral.INSTANCE);
+        q.add(AnyLiteral.INSTANCE);
+        qualifiers = Collections.unmodifiableSet(q);
     }

     public Set<Type> getTypes() {

Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java?rev=1644258&r1=1644257&r2=1644258&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
Wed Dec 10 00:14:41 2014
@@ -33,7 +33,7 @@ import java.util.concurrent.CopyOnWriteA
  * Description: create constraint instances with the default / no-arg
constructor <br/>
  */
 public class DefaultConstraintValidatorFactory implements
ConstraintValidatorFactory, Closeable {
-    private final Collection< BValExtension.Releasable<?>> releasables =
new CopyOnWriteArrayList<BValExtension.Releasable<?>>();
+    private final Collection<BValExtension.Releasable<?>> releasables =
new CopyOnWriteArrayList<BValExtension.Releasable<?>>();
     private Boolean useCdi = null; // store it to avoid
NoClassDefFoundError when cdi is not present (it is slow) + lazily (to wait
cdi is started)

     /**
@@ -47,11 +47,11 @@ public class DefaultConstraintValidatorF
             synchronized (this) {
                 if (useCdi == null) {
                     try {
-                        useCdi = BValExtension.getBeanManager() != null;
+                        useCdi =
Boolean.valueOf(BValExtension.getBeanManager() != null);
                     } catch (final NoClassDefFoundError error) {
-                        useCdi = false;
+                        useCdi = Boolean.FALSE;
                     } catch (final Exception e) {
-                        useCdi = false;
+                        useCdi = Boolean.FALSE;
                     }
                 }
             }
@@ -60,7 +60,7 @@ public class DefaultConstraintValidatorF
         // 2011-03-27 jw: Do not use PrivilegedAction.
         // Otherwise any user code would be executed with the privileges
of this class.
         try {
-            if (useCdi) {
+            if (useCdi.booleanValue()) {
                 try {
                     final BValExtension.Releasable<T> instance =
BValExtension.inject(constraintClass);
                     if (instance != null) {

Reply via email to