finish to integrate bval 2 and finally pass bval tcks :)
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidationInfo.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidationInfo.java
index f67d1ab..6dfc84a 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidationInfo.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidationInfo.java
@@ -30,10 +30,10 @@
public String parameterNameProviderClass;
public String version;
public final Properties propertyTypes = new Properties();
- public final List<String> constraintMappings = new ArrayList<String>();
+ public final List<String> constraintMappings = new ArrayList<>();
public boolean executableValidationEnabled;
- public final List<String> validatedTypes = new ArrayList<String>();
+ public final List<String> validatedTypes = new ArrayList<>();
public String clockProviderClassName;
- public Set<String> valueExtractorClassNames;
+ public List<String> valueExtractorClassNames;
}
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
index 4999c05..0b4c40d 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
@@ -52,8 +52,11 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
public final class ValidatorBuilder {
@@ -78,6 +81,8 @@
info.traversableResolverClass = config.getTraversableResolver();
info.messageInterpolatorClass = config.getMessageInterpolator();
info.parameterNameProviderClass = config.getParameterNameProvider();
+ info.valueExtractorClassNames = config.getValueExtractor();
+ info.clockProviderClassName = config.getClockProvider();
final ExecutableValidationType executableValidation = config.getExecutableValidation();
if (executableValidation != null) {
@@ -179,8 +184,9 @@
final OpenEjbBootstrapConfig bootstrapConfig = new OpenEjbBootstrapConfig(
providerClassName, info.constraintFactoryClass, info.messageInterpolatorClass, info.traversableResolverClass,
- info.parameterNameProviderClass, new HashSet<>(info.constraintMappings), info.executableValidationEnabled,
- types, props, info.clockProviderClassName, info.valueExtractorClassNames);
+ info.parameterNameProviderClass, new LinkedHashSet<>(info.constraintMappings), info.executableValidationEnabled,
+ types, props, info.clockProviderClassName,
+ info.valueExtractorClassNames == null ? null : new LinkedHashSet<>(info.valueExtractorClassNames));
final OpenEjbConfig config = new OpenEjbConfig(bootstrapConfig, target);
target.ignoreXmlConfiguration();
@@ -191,10 +197,10 @@
@SuppressWarnings("unchecked") final
Class<MessageInterpolator> clazz = (Class<MessageInterpolator>) classLoader.loadClass(messageInterpolatorClass);
target.messageInterpolator(newInstance(config, clazz));
+ logger.info("Using " + messageInterpolatorClass + " as message interpolator.");
} catch (final Exception e) {
logger.warning("Unable to set " + messageInterpolatorClass + " as message interpolator.", e);
}
- logger.info("Using " + messageInterpolatorClass + " as message interpolator.");
}
final String traversableResolverClass = info.traversableResolverClass;
if (traversableResolverClass != null) {
@@ -202,10 +208,10 @@
@SuppressWarnings("unchecked") final
Class<TraversableResolver> clazz = (Class<TraversableResolver>) classLoader.loadClass(traversableResolverClass);
target.traversableResolver(newInstance(config, clazz));
+ logger.info("Using " + traversableResolverClass + " as traversable resolver.");
} catch (final Exception e) {
logger.warning("Unable to set " + traversableResolverClass + " as traversable resolver.", e);
}
- logger.info("Using " + traversableResolverClass + " as traversable resolver.");
}
final String constraintFactoryClass = info.constraintFactoryClass;
if (constraintFactoryClass != null) {
@@ -233,10 +239,37 @@
try {
final Class<ParameterNameProvider> clazz = (Class<ParameterNameProvider>) classLoader.loadClass(info.parameterNameProviderClass);
target.parameterNameProvider(newInstance(config, clazz));
+ logger.info("Using " + info.parameterNameProviderClass + " as parameter name provider.");
} catch (final Exception e) {
logger.warning("Unable to set " + info.parameterNameProviderClass + " as parameter name provider.", e);
}
- logger.info("Using " + info.parameterNameProviderClass + " as parameter name provider.");
+ }
+ if (info.valueExtractorClassNames != null) {
+ try {
+ info.valueExtractorClassNames.stream()
+ .map(it -> {
+ try {
+ return (ValueExtractor<?>) newInstance(config, classLoader.loadClass(it));
+ } catch (final Exception e) {
+ logger.warning("Unable to load " + it, e);
+ return null;
+ }
+ })
+ .filter(Objects::nonNull)
+ .forEach(target::addValueExtractor);
+ logger.info("Using " + info.valueExtractorClassNames + " value extractors.");
+ } catch (final Exception e) {
+ logger.warning("Unable to set " + info.valueExtractorClassNames + " as parameter name provider.", e);
+ }
+ }
+ if (info.clockProviderClassName != null) {
+ try {
+ final Class<ClockProvider> clazz = (Class<ClockProvider>) classLoader.loadClass(info.clockProviderClassName);
+ target.clockProvider(newInstance(config, clazz));
+ logger.info("Using " + info.clockProviderClassName + " as clock provider.");
+ } catch (final Exception e) {
+ logger.warning("Unable to set " + info.clockProviderClassName + " as clock provider.", e);
+ }
}
return config;
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java b/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
index e8aad41..814ebf1 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
@@ -309,7 +309,10 @@
final Source value = getSource(module.getAltDDs().get("validation.xml"));
if (value != null) {
try {
- final ValidationConfigType validationConfigType = JaxbOpenejb.unmarshal(ValidationConfigType.class, value.get(), false);
+ final ValidationConfigType validationConfigType = JaxbOpenejb.unmarshal(
+ ValidationConfigType.class, value.get(), false,
+ "http://xmlns.jcp.org/xml/ns/validation/configuration",
+ "http://jboss.org/xml/ns/javax/validation/configuration");
module.setValidationConfig(validationConfigType);
} catch (final Exception e) {
logger.warning("can't read validation.xml to construct a validation factory, it will be ignored");
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java
index 026cbaa..6562b67 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java
@@ -17,6 +17,8 @@
package org.apache.openejb.config.sys;
+import static java.util.Arrays.asList;
+
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.config.SystemProperty;
import org.apache.openejb.jee.JAXBContextFactory;
@@ -36,8 +38,6 @@
import javax.xml.bind.MarshalException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
-import javax.xml.bind.ValidationEvent;
-import javax.xml.bind.ValidationEventHandler;
import javax.xml.bind.ValidationException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
@@ -54,6 +54,7 @@
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -310,30 +311,31 @@
return jaxbContext;
}
- public static <T> T unmarshal(final Class<T> type, final InputStream in, final boolean filter) throws ParserConfigurationException, SAXException, JAXBException {
+ public static <T> T unmarshal(final Class<T> type, final InputStream in, final boolean filter,
+ final String expectedNamespace, final String... aliasNamespaces)
+ throws ParserConfigurationException, SAXException, JAXBException {
final InputSource inputSource = new InputSource(in);
final SAXParser parser = Saxs.namespaceAwareFactory().newSAXParser();
final JAXBContext ctx = getContext(type);
final Unmarshaller unmarshaller = ctx.createUnmarshaller();
- unmarshaller.setEventHandler(new ValidationEventHandler() {
- public boolean handleEvent(final ValidationEvent validationEvent) {
- System.out.println(validationEvent);
- return false;
- }
- });
+ unmarshaller.setEventHandler(validationEvent -> false);
final SAXSource source;
if (filter) {
final NamespaceFilter xmlFilter = new NamespaceFilter(parser.getXMLReader());
xmlFilter.setContentHandler(unmarshaller.getUnmarshallerHandler());
source = new SAXSource(xmlFilter, inputSource);
+ } else if (expectedNamespace != null) {
+ final WhitelistFilter xmlFilter = new WhitelistFilter(parser.getXMLReader(), expectedNamespace, aliasNamespaces);
+ xmlFilter.setContentHandler(unmarshaller.getUnmarshallerHandler());
+ source = new SAXSource(xmlFilter, inputSource);
} else {
source = new SAXSource(inputSource);
}
- currentPublicId.set(new TreeSet<String>());
+ currentPublicId.set(new TreeSet<>());
try {
return unmarshaller.unmarshal(source, type).getValue();
} finally {
@@ -341,11 +343,40 @@
}
}
+ public static <T> T unmarshal(final Class<T> type, final InputStream in, final boolean filter) throws ParserConfigurationException, SAXException, JAXBException {
+ return unmarshal(type, in, filter, null);
+ }
+
@SuppressWarnings({"unchecked"})
public static <T> T unmarshal(final Class<T> type, final InputStream in) throws ParserConfigurationException, SAXException, JAXBException {
return unmarshal(type, in, true);
}
+ public static class WhitelistFilter extends XMLFilterImpl {
+
+ private final Set<String> aliases;
+ private final String forcedNamespace;
+
+ public WhitelistFilter(final XMLReader xmlReader, final String forcedNamespace, final String[] aliases) {
+ super(xmlReader);
+ this.forcedNamespace = forcedNamespace;
+ this.aliases = new HashSet<>(asList(aliases));
+ }
+
+ public InputSource resolveEntity(final String publicId, final String systemId) throws SAXException, IOException {
+ final Set<String> publicIds = currentPublicId.get();
+ if (publicIds != null) {
+ publicIds.add(publicId);
+ }
+ return super.resolveEntity(publicId, systemId);
+ }
+
+ @Override
+ public void startElement(final String inputUri, final String localName, final String qname, final Attributes atts) throws SAXException {
+ super.startElement(aliases.contains(inputUri) ? forcedNamespace : inputUri, localName, qname, atts);
+ }
+ }
+
public static class NamespaceFilter extends XMLFilterImpl {
public NamespaceFilter(final XMLReader xmlReader) {
diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/bval/ValidationConfigType.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/bval/ValidationConfigType.java
index 417db50..8ace720 100644
--- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/bval/ValidationConfigType.java
+++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/bval/ValidationConfigType.java
@@ -27,42 +27,46 @@
/**
- * <p>Java class for validation-configType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
+ * <p>Classe Java pour validation-configType complex type.
+ *
+ * <p>Le fragment de schéma suivant indique le contenu attendu figurant dans cette classe.
+ *
* <pre>
- * <complexType name="validation-configType">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="default-provider" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="message-interpolator" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="traversable-resolver" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="constraint-validator-factory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="parameter-name-provider" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="executable-validation" type="{http://jboss.org/xml/ns/javax/validation/configuration}executable-validationType" minOccurs="0"/>
- * <element name="constraint-mapping" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
- * <element name="property" type="{http://jboss.org/xml/ns/javax/validation/configuration}propertyType" maxOccurs="unbounded" minOccurs="0"/>
- * </sequence>
- * <attribute name="version" type="{http://jboss.org/xml/ns/javax/validation/configuration}versionType" fixed="1.1" />
- * </restriction>
- * </complexContent>
- * </complexType>
+ * <complexType name="validation-configType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="default-provider" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="message-interpolator" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="traversable-resolver" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="constraint-validator-factory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="parameter-name-provider" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="clock-provider" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="value-extractor" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
+ * <element name="executable-validation" type="{http://xmlns.jcp.org/xml/ns/validation/configuration}executable-validationType" minOccurs="0"/>
+ * <element name="constraint-mapping" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
+ * <element name="property" type="{http://xmlns.jcp.org/xml/ns/validation/configuration}propertyType" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="version" type="{http://xmlns.jcp.org/xml/ns/validation/configuration}versionType" fixed="2.0" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
* </pre>
- *
- *
+ *
+ *
*/
@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "validation-configType", namespace = "http://jboss.org/xml/ns/javax/validation/configuration", propOrder = {
- "defaultProvider",
- "messageInterpolator",
- "traversableResolver",
- "constraintValidatorFactory",
- "parameterNameProvider",
- "executableValidation",
- "constraintMapping",
- "property"
+@XmlType(name = "validation-configType", namespace = "http://xmlns.jcp.org/xml/ns/validation/configuration", propOrder = {
+ "defaultProvider",
+ "messageInterpolator",
+ "traversableResolver",
+ "constraintValidatorFactory",
+ "parameterNameProvider",
+ "clockProvider",
+ "valueExtractor",
+ "executableValidation",
+ "constraintMapping",
+ "property"
})
public class ValidationConfigType {
@@ -81,6 +85,12 @@
@XmlElement(name = "parameter-name-provider")
@XmlJavaTypeAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter.class)
protected String parameterNameProvider;
+ @XmlElement(name = "clock-provider")
+ @XmlJavaTypeAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter.class)
+ protected String clockProvider;
+ @XmlElement(name = "value-extractor")
+ @XmlJavaTypeAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter.class)
+ protected List<String> valueExtractor;
@XmlElement(name = "executable-validation")
protected ExecutableValidationType executableValidation;
@XmlElement(name = "constraint-mapping")
@@ -91,147 +101,198 @@
@XmlJavaTypeAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter.class)
protected String version;
- //X TODO add new fields from beanvalidation 2.0: clockProviderClassName and valueExtractorClassNames
-
/**
- * Gets the value of the defaultProvider property.
- *
+ * Obtient la valeur de la propriété defaultProvider.
+ *
* @return
* possible object is
* {@link String }
- *
+ *
*/
public String getDefaultProvider() {
return defaultProvider;
}
/**
- * Sets the value of the defaultProvider property.
- *
+ * Définit la valeur de la propriété defaultProvider.
+ *
* @param value
* allowed object is
* {@link String }
- *
+ *
*/
public void setDefaultProvider(String value) {
this.defaultProvider = value;
}
/**
- * Gets the value of the messageInterpolator property.
- *
+ * Obtient la valeur de la propriété messageInterpolator.
+ *
* @return
* possible object is
* {@link String }
- *
+ *
*/
public String getMessageInterpolator() {
return messageInterpolator;
}
/**
- * Sets the value of the messageInterpolator property.
- *
+ * Définit la valeur de la propriété messageInterpolator.
+ *
* @param value
* allowed object is
* {@link String }
- *
+ *
*/
public void setMessageInterpolator(String value) {
this.messageInterpolator = value;
}
/**
- * Gets the value of the traversableResolver property.
- *
+ * Obtient la valeur de la propriété traversableResolver.
+ *
* @return
* possible object is
* {@link String }
- *
+ *
*/
public String getTraversableResolver() {
return traversableResolver;
}
/**
- * Sets the value of the traversableResolver property.
- *
+ * Définit la valeur de la propriété traversableResolver.
+ *
* @param value
* allowed object is
* {@link String }
- *
+ *
*/
public void setTraversableResolver(String value) {
this.traversableResolver = value;
}
/**
- * Gets the value of the constraintValidatorFactory property.
- *
+ * Obtient la valeur de la propriété constraintValidatorFactory.
+ *
* @return
* possible object is
* {@link String }
- *
+ *
*/
public String getConstraintValidatorFactory() {
return constraintValidatorFactory;
}
/**
- * Sets the value of the constraintValidatorFactory property.
- *
+ * Définit la valeur de la propriété constraintValidatorFactory.
+ *
* @param value
* allowed object is
* {@link String }
- *
+ *
*/
public void setConstraintValidatorFactory(String value) {
this.constraintValidatorFactory = value;
}
/**
- * Gets the value of the parameterNameProvider property.
- *
+ * Obtient la valeur de la propriété parameterNameProvider.
+ *
* @return
* possible object is
* {@link String }
- *
+ *
*/
public String getParameterNameProvider() {
return parameterNameProvider;
}
/**
- * Sets the value of the parameterNameProvider property.
- *
+ * Définit la valeur de la propriété parameterNameProvider.
+ *
* @param value
* allowed object is
* {@link String }
- *
+ *
*/
public void setParameterNameProvider(String value) {
this.parameterNameProvider = value;
}
/**
- * Gets the value of the executableValidation property.
- *
+ * Obtient la valeur de la propriété clockProvider.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getClockProvider() {
+ return clockProvider;
+ }
+
+ /**
+ * Définit la valeur de la propriété clockProvider.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setClockProvider(String value) {
+ this.clockProvider = value;
+ }
+
+ /**
+ * Gets the value of the valueExtractor property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the valueExtractor property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getValueExtractor().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getValueExtractor() {
+ if (valueExtractor == null) {
+ valueExtractor = new ArrayList<String>();
+ }
+ return this.valueExtractor;
+ }
+
+ /**
+ * Obtient la valeur de la propriété executableValidation.
+ *
* @return
* possible object is
* {@link ExecutableValidationType }
- *
+ *
*/
public ExecutableValidationType getExecutableValidation() {
return executableValidation;
}
/**
- * Sets the value of the executableValidation property.
- *
+ * Définit la valeur de la propriété executableValidation.
+ *
* @param value
* allowed object is
* {@link ExecutableValidationType }
- *
+ *
*/
public void setExecutableValidation(ExecutableValidationType value) {
this.executableValidation = value;
@@ -239,25 +300,25 @@
/**
* Gets the value of the constraintMapping property.
- *
+ *
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the constraintMapping property.
- *
+ *
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getConstraintMapping().add(newItem);
* </pre>
- *
- *
+ *
+ *
* <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
- *
- *
+ *
+ *
*/
public List<String> getConstraintMapping() {
if (constraintMapping == null) {
@@ -268,25 +329,25 @@
/**
* Gets the value of the property property.
- *
+ *
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the property property.
- *
+ *
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getProperty().add(newItem);
* </pre>
- *
- *
+ *
+ *
* <p>
* Objects of the following type(s) are allowed in the list
* {@link PropertyType }
- *
- *
+ *
+ *
*/
public List<PropertyType> getProperty() {
if (property == null) {
@@ -296,28 +357,28 @@
}
/**
- * Gets the value of the version property.
- *
+ * Obtient la valeur de la propriété version.
+ *
* @return
* possible object is
* {@link String }
- *
+ *
*/
public String getVersion() {
if (version == null) {
- return "1.1";
+ return "2.0";
} else {
return version;
}
}
/**
- * Sets the value of the version property.
- *
+ * Définit la valeur de la propriété version.
+ *
* @param value
* allowed object is
* {@link String }
- *
+ *
*/
public void setVersion(String value) {
this.version = value;
diff --git a/tck/bval-embedded/src/test/resources/dev.xml b/tck/bval-embedded/src/test/resources/dev.xml
index 5c3e646..b2ec173 100644
--- a/tck/bval-embedded/src/test/resources/dev.xml
+++ b/tck/bval-embedded/src/test/resources/dev.xml
@@ -19,8 +19,7 @@
<suite name="BVAL-TCK" verbose="1">
<test name="BVAL-TCK">
<classes>
- <class name="org.hibernate.beanvalidation.tck.tests.integration.ee.cdi.ConstraintValidatorInjectionTest" />
- <class name="org.hibernate.beanvalidation.tck.tests.integration.cdi.factory.ConstraintValidatorInjectionTest" />
+ <class name="org.hibernate.beanvalidation.tck.tests.integration.ee.JndiRetrievalTest" />
</classes>
</test>
</suite>
diff --git a/tck/bval-tomee/src/test/resources/dev.xml b/tck/bval-tomee/src/test/resources/dev.xml
index 694abaf..7cdc1e8 100644
--- a/tck/bval-tomee/src/test/resources/dev.xml
+++ b/tck/bval-tomee/src/test/resources/dev.xml
@@ -19,8 +19,11 @@
<suite name="BVal-TCK" verbose="1">
<test name="BVal-TCK">
<classes>
- <class name="org.hibernate.beanvalidation.tck.tests.integration.ee.cdi.ConstraintValidatorInjectionTest" />
- <class name="org.hibernate.beanvalidation.tck.tests.integration.cdi.factory.ConstraintValidatorInjectionTest" />
+ <class name="org.hibernate.beanvalidation.tck.tests.valueextraction.declaration.ValueExtractorsPrecedenceTest" />
+ <!--
+ <class name="org.hibernate.beanvalidation.tck.tests.integration.cdi.managedobjects.ManagedValueExtractorsTest" />
+ <class name="org.hibernate.beanvalidation.tck.tests.valueextraction.declaration.MultipleValueExtractorsInValidationXmlForSameTypeAndTypeArgumentTest" />
+ -->
</classes>
</test>
</suite>