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 2013/07/17 13:07:00 UTC
svn commit: r1504074 - in /bval/branches/bval-11: bval-jsr303/
bval-jsr303/src/main/java/org/apache/bval/cdi/
bval-jsr303/src/main/java/org/apache/bval/jsr303/
bval-jsr303/src/main/java/org/apache/bval/jsr303/util/ bval-tck11/
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>