Author: rmannibucau
Date: Wed Jul 17 11:06:59 2013
New Revision: 1504074
URL: http://svn.apache.org/r1504074
Log:
using cdi11 module of OWB and jboss interceptor API while G one is not ready -
Note: OWB needs to be built locally using cdi-1.1 profile
Modified:
bval/branches/bval-11/bval-jsr303/pom.xml
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/cdi/BValInterceptor.java
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ConstraintValidation.java
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterAccess.java
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterDescriptorImpl.java
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/util/ClassHelper.java
bval/branches/bval-11/bval-tck11/pom.xml
bval/branches/bval-11/bval-tck11/work-tests-suite.xml
Modified: bval/branches/bval-11/bval-jsr303/pom.xml
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/pom.xml?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
--- bval/branches/bval-11/bval-jsr303/pom.xml (original)
+++ bval/branches/bval-11/bval-jsr303/pom.xml Wed Jul 17 11:06:59 2013
@@ -140,12 +140,20 @@
<version>1.0.2</version>
<optional>true</optional>
</dependency>
+ <!-- TODO: get spec v1.2 to replace JBoss spec jar
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-interceptor_1.1_spec</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
+ -->
+ <dependency>
+ <groupId>org.jboss.spec.javax.interceptor</groupId>
+ <artifactId>jboss-interceptors-api_1.2_spec</artifactId>
+ <version>1.0.0.Alpha1</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-atinject_1.0_spec</artifactId>
Modified:
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/cdi/BValInterceptor.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/cdi/BValInterceptor.java?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/cdi/BValInterceptor.java
(original)
+++
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/cdi/BValInterceptor.java
Wed Jul 17 11:06:59 2013
@@ -18,9 +18,11 @@
*/
package org.apache.bval.cdi;
+import org.apache.bval.jsr303.util.ClassHelper;
import org.apache.bval.jsr303.util.Proxies;
import javax.inject.Inject;
+import javax.interceptor.AroundConstruct;
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
@@ -30,10 +32,16 @@ import javax.validation.Validator;
import javax.validation.executable.ExecutableType;
import javax.validation.executable.ExecutableValidator;
import javax.validation.executable.ValidateOnExecution;
+import javax.validation.metadata.ConstructorDescriptor;
import javax.validation.metadata.MethodDescriptor;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -44,6 +52,7 @@ import java.util.concurrent.CopyOnWriteA
public class BValInterceptor {
private Collection<ExecutableType> classConfiguration = null;
private final Map<Method, Boolean> methodConfiguration = new
ConcurrentHashMap<Method, Boolean>();
+ private Boolean constructorValidated = null;
@Inject
private Validator validator;
@@ -51,22 +60,59 @@ public class BValInterceptor {
@Inject
private BValExtension globalConfiguration;
+ private ExecutableValidator executableValidator;
+
+ @AroundConstruct // TODO: maybe add it through ASM to be compliant with
CDI 1.0 containers using simply this class as a template for the one created
with ASM
+ public Object construct(final InvocationContext context) throws Exception {
+ final Constructor constructor = context.getConstructor();
+ final Class<?> targetClass =
Proxies.classFor(context.getTarget().getClass());
+ if (!isConstructorValidated(targetClass, constructor)) {
+ return context.proceed();
+ }
+
+ final ConstructorDescriptor constraints =
validator.getConstraintsForClass(targetClass).getConstraintsForConstructor(constructor.getParameterTypes());
+ if (constraints == null) {
+ return context.proceed();
+ }
+
+ initExecutableValidator();
+
+ {
+ final Set<ConstraintViolation<?>> violations =
executableValidator.validateConstructorParameters(constructor,
context.getParameters());
+ if (!violations.isEmpty()) {
+ throw new ConstraintViolationException(violations);
+ }
+ }
+
+ final Object result = context.proceed();
+
+ {
+ final Set<ConstraintViolation<?>> violations =
executableValidator.validateConstructorReturnValue(constructor, result);
+ if (!violations.isEmpty()) {
+ throw new ConstraintViolationException(violations);
+ }
+ }
+
+ return result;
+ }
+
@AroundInvoke
- public Object around(final InvocationContext context) throws Throwable {
+ public Object invoke(final InvocationContext context) throws Throwable {
final Method method = context.getMethod();
- if
(!isMethodValidated(Proxies.classFor(context.getTarget().getClass()), method)) {
+ final Class<?> targetClass =
Proxies.classFor(context.getTarget().getClass());
+ if (!isMethodValidated(targetClass, method)) {
return context.proceed();
}
- final ExecutableValidator ev = validator.forExecutables();
-
- final MethodDescriptor constraintsForMethod =
validator.getConstraintsForClass(Proxies.classFor(method.getDeclaringClass())).getConstraintsForMethod(method.getName(),
method.getParameterTypes());
+ final MethodDescriptor constraintsForMethod =
validator.getConstraintsForClass(targetClass).getConstraintsForMethod(method.getName(),
method.getParameterTypes());
if (constraintsForMethod == null) {
return context.proceed();
}
+ initExecutableValidator();
+
{
- final Set<ConstraintViolation<Object>> violations =
ev.validateParameters(context.getTarget(), method, context.getParameters());
+ final Set<ConstraintViolation<Object>> violations =
executableValidator.validateParameters(context.getTarget(), method,
context.getParameters());
if (!violations.isEmpty()) {
throw new ConstraintViolationException(violations);
}
@@ -75,7 +121,7 @@ public class BValInterceptor {
final Object result = context.proceed();
{
- final Set<ConstraintViolation<Object>> violations =
ev.validateReturnValue(context.getTarget(), method, result);
+ final Set<ConstraintViolation<Object>> violations =
executableValidator.validateReturnValue(context.getTarget(), method, result);
if (!violations.isEmpty()) {
throw new ConstraintViolationException(violations);
}
@@ -84,53 +130,72 @@ public class BValInterceptor {
return result;
}
- private boolean isMethodValidated(final Class<?> targetClass, final Method
method) throws NoSuchMethodException {
- Boolean methodConfig;// config
- if (classConfiguration == null) {
- synchronized (this) {
- if (classConfiguration == null) {
- classConfiguration = new
CopyOnWriteArraySet<ExecutableType>();
+ private boolean isConstructorValidated(final Class<?> targetClass, final
Constructor<?> constructor) throws NoSuchMethodException {
+ initClassConfig(targetClass);
- final ValidateOnExecution annotation =
targetClass.getAnnotation(ValidateOnExecution.class);
+ if (constructorValidated == null) {
+ synchronized (this) {
+ if (constructorValidated == null) {
+ final ValidateOnExecution annotation =
targetClass.getConstructor(constructor.getParameterTypes()).getAnnotation(ValidateOnExecution.class);
if (annotation == null) {
-
classConfiguration.addAll(globalConfiguration.getGlobalExecutableTypes());
+ constructorValidated =
classConfiguration.contains(ExecutableType.CONSTRUCTORS);
} else {
- for (final ExecutableType type : annotation.type()) {
- if (ExecutableType.IMPLICIT.equals(type)) {
-
classConfiguration.add(ExecutableType.CONSTRUCTORS);
-
classConfiguration.add(ExecutableType.NON_GETTER_METHODS);
- } else if (ExecutableType.ALL.equals(type)) {
-
classConfiguration.add(ExecutableType.CONSTRUCTORS);
-
classConfiguration.add(ExecutableType.NON_GETTER_METHODS);
-
classConfiguration.add(ExecutableType.GETTER_METHODS);
- break;
- } else if (!ExecutableType.NONE.equals(type)) {
- classConfiguration.add(type);
- }
- }
+ final Collection<ExecutableType> types =
Arrays.asList(annotation.type());
+ constructorValidated =
types.contains(ExecutableType.CONSTRUCTORS) ||
types.contains(ExecutableType.IMPLICIT) || types.contains(ExecutableType.ALL);
}
}
}
}
- methodConfig = methodConfiguration.get(method);
+ return constructorValidated;
+ }
+
+ private boolean isMethodValidated(final Class<?> targetClass, final Method
method) throws NoSuchMethodException {
+ initClassConfig(targetClass);
+
+ Boolean methodConfig = methodConfiguration.get(method);
if (methodConfig == null) {
synchronized (this) {
methodConfig = methodConfiguration.get(method);
if (methodConfig == null) {
- // reuse Proxies to avoid issue with some subclassing libs
removing annotations
- final ValidateOnExecution annotation =
targetClass.getMethod(method.getName(),
method.getParameterTypes()).getAnnotation(ValidateOnExecution.class);
- if (annotation == null) {
+ final List<Class<?>> classHierarchy =
ClassHelper.fillFullClassHierarchyAsList(new ArrayList<Class<?>>(),
targetClass);
+
+ Class<?> lastClassWithTheMethod = null;
+
+ // search on method @ValidateOnExecution
+ Collections.reverse(classHierarchy);
+ ValidateOnExecution validateOnExecution = null;
+ for (final Class<?> c : classHierarchy) {
+ try {
+ validateOnExecution =
c.getDeclaredMethod(method.getName(),
method.getParameterTypes()).getAnnotation(ValidateOnExecution.class);
+ if (lastClassWithTheMethod == null) {
+ lastClassWithTheMethod = c;
+ }
+ if (validateOnExecution != null) {
+ lastClassWithTheMethod = null;
+ break;
+ }
+ } catch (final Throwable h) {
+ // no-op
+ }
+ }
+
+ // if not found look in the class declaring the method
+ if (validateOnExecution == null && lastClassWithTheMethod
!= null) {
+ validateOnExecution =
lastClassWithTheMethod.getAnnotation(ValidateOnExecution.class);
+ }
+
+ if (validateOnExecution == null) {
methodConfig = doValidMethod(method,
classConfiguration);
} else {
final Collection<ExecutableType> config = new
HashSet<ExecutableType>();
- for (final ExecutableType type : annotation.type()) {
+ for (final ExecutableType type :
validateOnExecution.type()) {
if (ExecutableType.IMPLICIT.equals(type)) { // on
method it just means validate, even on getters
- config.add(ExecutableType.CONSTRUCTORS);
config.add(ExecutableType.NON_GETTER_METHODS);
- config.add(ExecutableType.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.equals(type)) {
- config.add(ExecutableType.CONSTRUCTORS);
config.add(ExecutableType.NON_GETTER_METHODS);
config.add(ExecutableType.GETTER_METHODS);
break;
@@ -148,7 +213,46 @@ public class BValInterceptor {
return methodConfig;
}
- private boolean doValidMethod(final Method method, final
Collection<ExecutableType> config) {
+ private void initClassConfig(Class<?> targetClass) {
+ if (classConfiguration == null) {
+ synchronized (this) {
+ if (classConfiguration == null) {
+ classConfiguration = new
CopyOnWriteArraySet<ExecutableType>();
+
+ final ValidateOnExecution annotation =
targetClass.getAnnotation(ValidateOnExecution.class);
+ if (annotation == null) {
+
classConfiguration.addAll(globalConfiguration.getGlobalExecutableTypes());
+ } else {
+ for (final ExecutableType type : annotation.type()) {
+ if (ExecutableType.IMPLICIT.equals(type)) {
+
classConfiguration.add(ExecutableType.CONSTRUCTORS);
+
classConfiguration.add(ExecutableType.NON_GETTER_METHODS);
+ } else if (ExecutableType.ALL.equals(type)) {
+
classConfiguration.add(ExecutableType.CONSTRUCTORS);
+
classConfiguration.add(ExecutableType.NON_GETTER_METHODS);
+
classConfiguration.add(ExecutableType.GETTER_METHODS);
+ break;
+ } else if (!ExecutableType.NONE.equals(type)) {
+ classConfiguration.add(type);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void initExecutableValidator() {
+ if (executableValidator == null) {
+ synchronized (this) {
+ if (executableValidator == null) {
+ executableValidator = validator.forExecutables();
+ }
+ }
+ }
+ }
+
+ 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));
}
Modified:
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java
(original)
+++
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java
Wed Jul 17 11:06:59 2013
@@ -39,6 +39,7 @@ import javax.validation.ConstraintTarget
import javax.validation.Valid;
import javax.validation.groups.ConvertGroup;
import javax.validation.metadata.BeanDescriptor;
+import javax.validation.metadata.ConstraintDescriptor;
import javax.validation.metadata.ConstructorDescriptor;
import javax.validation.metadata.ExecutableDescriptor;
import javax.validation.metadata.GroupConversionDescriptor;
@@ -515,7 +516,7 @@ public class BeanDescriptorImpl extends
Class<?> current = getMetaBean().getBeanClass();
do {
for (final Method method : current.getDeclaredMethods()) {
- final boolean getter = method.getName().startsWith("get") &&
method.getParameterTypes().length == 0;
+ final boolean getter = (method.getName().startsWith("get") ||
method.getName().startsWith("is")) && method.getParameterTypes().length == 0 &&
method.getReturnType() != Void.TYPE;
final MethodDescriptorImpl methodDesc = new
MethodDescriptorImpl(getMetaBean(), new Validation[0], method);
methodConstraints.put(method, methodDesc);
@@ -537,7 +538,6 @@ public class BeanDescriptorImpl extends
ensureNotNullDescriptors(method.getReturnType(), methodDesc);
- // validations, TODO: if
(!factoryContext.getFactory().getAnnotationIgnores().isIgnoreAnnotations(method))
{
if (parents != null) {
if (parents.size() > 1) {
for (final Method parent : parents) {
@@ -763,10 +763,26 @@ public class BeanDescriptorImpl extends
paramDesc = new
ParameterDescriptorImpl(Class.class.cast(access.getJavaType()), // set from
getParameterTypes() so that's a Class<?>
validations.getValidations().toArray(new
Validation[validations.getValidations().size()]), name);
paramDesc.setIndex(idx);
- methodDesc.getParameterDescriptors().add(paramDesc);
+ final List<ParameterDescriptor> parameterDescriptors =
methodDesc.getParameterDescriptors();
+ if (!parameterDescriptors.contains(paramDesc)) {
+ parameterDescriptors.add(paramDesc);
+ }
paramDesc.setCascaded(cascaded);
} else {
-
paramDesc.getMutableConstraintDescriptors().addAll(validations.getValidations());
+ final List<ConstraintValidation<?>> newValidations =
validations.getValidations();
+ for (final ConstraintValidation<?> validation : newValidations) {
// don't add it if exactly the same is already here
+ boolean alreadyHere = false;
+ for (final ConstraintDescriptor<?> existing :
paramDesc.getMutableConstraintDescriptors()) {
+ if
(existing.getAnnotation().annotationType().equals(validation.getAnnotation().annotationType()))
{ // TODO: make it a bit finer
+ alreadyHere = true;
+ break;
+ }
+ }
+ if (!alreadyHere) {
+
paramDesc.getMutableConstraintDescriptors().add(validation);
+ }
+ }
+
if (cascaded) {
paramDesc.setCascaded(true);
} // else keep previous config
Modified:
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ConstraintValidation.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ConstraintValidation.java?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ConstraintValidation.java
(original)
+++
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ConstraintValidation.java
Wed Jul 17 11:06:59 2013
@@ -34,7 +34,14 @@ import javax.validation.ValidationExcept
import javax.validation.metadata.ConstraintDescriptor;
import java.io.Serializable;
import java.lang.annotation.Annotation;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
/**
* Description: Adapter between Constraint (JSR303) and Validation (Core)<br/>
Modified:
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterAccess.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterAccess.java?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterAccess.java
(original)
+++
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterAccess.java
Wed Jul 17 11:06:59 2013
@@ -77,4 +77,19 @@ public class ParameterAccess extends Acc
return "" + paramIdx;
}
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ final ParameterAccess that = (ParameterAccess) o;
+ return paramIdx == that.paramIdx && paramType.equals(that.paramType);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = paramType.hashCode();
+ result = 31 * result + paramIdx;
+ return result;
+ }
}
Modified:
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterDescriptorImpl.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterDescriptorImpl.java?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterDescriptorImpl.java
(original)
+++
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/ParameterDescriptorImpl.java
Wed Jul 17 11:06:59 2013
@@ -21,11 +21,8 @@ import org.apache.bval.jsr303.groups.Gro
import org.apache.bval.model.MetaBean;
import org.apache.bval.model.Validation;
-import javax.validation.ParameterNameProvider;
import javax.validation.metadata.GroupConversionDescriptor;
import javax.validation.metadata.ParameterDescriptor;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
Modified:
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/util/ClassHelper.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/util/ClassHelper.java?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/util/ClassHelper.java
(original)
+++
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/util/ClassHelper.java
Wed Jul 17 11:06:59 2013
@@ -38,24 +38,24 @@ public class ClassHelper {
/**
* Fill the list with the full class/interface hierarchy of the given
class.
* List is ordered from the most to less specific.
- *
+ *
* @param allClasses
* The current list of classes in the hierarchy.
* @param clazz
- * The current class, root of the hierarchy to traverse.
*/
- static public void fillFullClassHierarchyAsList(List<Class<?>> allClasses,
Class<?> clazz) {
+ static public List<Class<?>> fillFullClassHierarchyAsList(List<Class<?>>
allClasses, Class<?> clazz) {
if (clazz == null || clazz == Object.class || clazz ==
Serializable.class) {
- return;
+ return allClasses;
}
if (allClasses.contains(clazz)) {
- return;
+ return allClasses;
}
allClasses.add(clazz);
fillFullClassHierarchyAsList(allClasses, clazz.getSuperclass());
for (Class<?> subClass : clazz.getInterfaces()) {
fillFullClassHierarchyAsList(allClasses, subClass);
}
+ return allClasses;
}
/**
Modified: bval/branches/bval-11/bval-tck11/pom.xml
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-tck11/pom.xml?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
--- bval/branches/bval-11/bval-tck11/pom.xml (original)
+++ bval/branches/bval-11/bval-tck11/pom.xml Wed Jul 17 11:06:59 2013
@@ -55,16 +55,24 @@ under the License.
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jcdi_1.0_spec</artifactId>
- <version>1.0</version>
+ <artifactId>geronimo-jcdi_1.1_spec</artifactId>
+ <version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
+ <!-- TODO: get spec v1.2 to replace JBoss spec jar
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-interceptor_1.1_spec</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
+ -->
+ <dependency>
+ <groupId>org.jboss.spec.javax.interceptor</groupId>
+ <artifactId>jboss-interceptors-api_1.2_spec</artifactId>
+ <version>1.0.0.Alpha1</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ejb_3.1_spec</artifactId>
@@ -108,7 +116,7 @@ under the License.
</dependency>
<dependency>
<groupId>org.apache.openwebbeans</groupId>
- <artifactId>openwebbeans-impl</artifactId>
+ <artifactId>openwebbeans-cdi11</artifactId>
<version>${owb.version}</version>
<scope>test</scope>
</dependency>
Modified: bval/branches/bval-11/bval-tck11/work-tests-suite.xml
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-tck11/work-tests-suite.xml?rev=1504074&r1=1504073&r2=1504074&view=diff
==============================================================================
--- bval/branches/bval-11/bval-tck11/work-tests-suite.xml (original)
+++ bval/branches/bval-11/bval-tck11/work-tests-suite.xml Wed Jul 17 11:06:59
2013
@@ -21,10 +21,9 @@ think to add -Dvalidation.provider=org.a
<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.ExecutableValidationTest">
<methods>
-
+ <include
name="testConstructorValidationInvokesParameterAndReturnValueValidationUsingDefaultGroup"
/>
</methods>
</class>
</classes>