Return-Path: X-Original-To: apmail-bval-commits-archive@www.apache.org Delivered-To: apmail-bval-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 751E010512 for ; Mon, 1 Jul 2013 10:07:16 +0000 (UTC) Received: (qmail 19233 invoked by uid 500); 1 Jul 2013 10:07:15 -0000 Delivered-To: apmail-bval-commits-archive@bval.apache.org Received: (qmail 19209 invoked by uid 500); 1 Jul 2013 10:07:15 -0000 Mailing-List: contact commits-help@bval.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: bval-dev@bval.apache.org Delivered-To: mailing list commits@bval.apache.org Received: (qmail 19199 invoked by uid 99); 1 Jul 2013 10:07:15 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Jul 2013 10:07:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Jul 2013 10:07:10 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 76D9E2388B34; Mon, 1 Jul 2013 10:06:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1498347 [6/7] - in /bval/branches/bval-11: ./ bval-core/src/main/java/org/apache/bval/ bval-core/src/main/java/org/apache/bval/model/ bval-core/src/main/java/org/apache/bval/util/ bval-extras/ bval-guice/ bval-guice/src/main/java/org/apach... Date: Mon, 01 Jul 2013 10:06:21 -0000 To: commits@bval.apache.org From: rmannibucau@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130701100626.76D9E2388B34@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationParser.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationParser.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationParser.java (original) +++ bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationParser.java Mon Jul 1 10:06:18 2013 @@ -19,16 +19,21 @@ package org.apache.bval.jsr303.xml; +import org.apache.bval.cdi.BValExtension; +import org.apache.bval.jsr303.BootstrapConfigurationImpl; import org.apache.bval.jsr303.ConfigurationImpl; import org.apache.bval.jsr303.util.IOUtils; +import org.apache.bval.jsr303.util.IOs; import org.apache.bval.jsr303.util.SecureActions; import org.apache.bval.util.PrivilegedActions; import org.xml.sax.SAXException; import javax.validation.ConstraintValidatorFactory; import javax.validation.MessageInterpolator; +import javax.validation.ParameterNameProvider; import javax.validation.TraversableResolver; import javax.validation.ValidationException; +import javax.validation.executable.ExecutableType; import javax.validation.spi.ValidationProvider; import javax.xml.XMLConstants; import javax.xml.bind.JAXBContext; @@ -38,12 +43,19 @@ import javax.xml.bind.Unmarshaller; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; +import java.io.Closeable; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.Collection; import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Level; import java.util.logging.Logger; @@ -51,24 +63,44 @@ import java.util.logging.Logger; * Description: uses jaxb to parse validation.xml
*/ @SuppressWarnings("restriction") -public class ValidationParser { +public class ValidationParser implements Closeable { private static final String DEFAULT_VALIDATION_XML_FILE = "META-INF/validation.xml"; private static final String VALIDATION_CONFIGURATION_XSD = - "META-INF/validation-configuration-1.0.xsd"; + "META-INF/validation-configuration-1.1.xsd"; private static final Logger log = Logger.getLogger(ValidationParser.class.getName()); - protected final String validationXmlFile; - /** - * Create a new ValidationParser instance. - * - * @param file - */ - public ValidationParser(String file) { + private ValidationConfigType xmlConfig; + private BootstrapConfigurationImpl bootstrap; + private Collection exceptions = new CopyOnWriteArrayList(); + private Collection releasables = new CopyOnWriteArrayList(); + + private ValidationParser() { + // no-op + } + + public void applyConfigWithInstantiation(ConfigurationImpl targetConfig) { + if (xmlConfig == null) { + return; + } + + applyProviderClass(xmlConfig, targetConfig); + applyMessageInterpolator(xmlConfig, targetConfig); + applyTraversableResolver(xmlConfig, targetConfig); + applyConstraintFactory(xmlConfig, targetConfig); + applyParameterNameProvider(xmlConfig, targetConfig); + applyMappingStreams(xmlConfig, targetConfig); + applyProperties(xmlConfig, targetConfig); + } + + public BootstrapConfigurationImpl getBootstrap() { + return bootstrap; + } + + public static String getValidationXmlFile(String file) { if (file == null) { - validationXmlFile = DEFAULT_VALIDATION_XML_FILE; - } else { - validationXmlFile = file; + return DEFAULT_VALIDATION_XML_FILE; } + return file; } /** @@ -76,17 +108,71 @@ public class ValidationParser { * * @param targetConfig */ - public void processValidationConfig(ConfigurationImpl targetConfig) { - ValidationConfigType xmlConfig = parseXmlConfig(); - if (xmlConfig != null) { - applyConfig(xmlConfig, targetConfig); + public static ValidationParser processValidationConfig(final String file, final ConfigurationImpl targetConfig, final boolean ignoreXml) { + final ValidationParser parser = new ValidationParser(); + + if (!ignoreXml) { + parser.xmlConfig = parseXmlConfig(file); + } + + if (parser.xmlConfig != null) { + if (parser.xmlConfig.getExecutableValidation() == null) { + final ExecutableValidationType value = new ExecutableValidationType(); + value.setEnabled(true); + + final DefaultValidatedExecutableTypesType defaultValidatedExecutableTypes = new DefaultValidatedExecutableTypesType(); + value.setDefaultValidatedExecutableTypes(defaultValidatedExecutableTypes); + defaultValidatedExecutableTypes.getExecutableType().add(ExecutableType.CONSTRUCTORS); + defaultValidatedExecutableTypes.getExecutableType().add(ExecutableType.NON_GETTER_METHODS); + + parser.xmlConfig.setExecutableValidation(value); + } + + applySimpleConfig(parser.xmlConfig, targetConfig); + + parser.bootstrap = new BootstrapConfigurationImpl( + parser.xmlConfig.getDefaultProvider(), + parser.xmlConfig.getConstraintValidatorFactory(), + parser.xmlConfig.getMessageInterpolator(), + parser.xmlConfig.getTraversableResolver(), + parser.xmlConfig.getParameterNameProvider(), + new CopyOnWriteArraySet(parser.xmlConfig.getConstraintMapping()), + parser.xmlConfig.getExecutableValidation().getEnabled(), + new CopyOnWriteArraySet(targetConfig.getExecutableValidation()), + toMap(parser.xmlConfig.getProperty())); + return parser; + } else { // default config + final CopyOnWriteArraySet executableTypes = new CopyOnWriteArraySet(); + executableTypes.add(ExecutableType.CONSTRUCTORS); + executableTypes.add(ExecutableType.NON_GETTER_METHODS); + + parser.bootstrap = new BootstrapConfigurationImpl( + null, null, null, null, null, + new CopyOnWriteArraySet(), + true, + executableTypes, + new HashMap()); + + targetConfig.setExecutableValidation(executableTypes); + } + + return parser; + } + + private static Map toMap(final List property) { + final Map map = new HashMap(); + if (property != null) { + for (final PropertyType p : property) { + map.put(p.getName(), p.getValue()); + } } + return map; } - private ValidationConfigType parseXmlConfig() { + private static ValidationConfigType parseXmlConfig(final String validationXmlFile) { InputStream inputStream = null; try { - inputStream = getInputStream(validationXmlFile); + inputStream = getInputStream(getValidationXmlFile(validationXmlFile)); if (inputStream == null) { log.log(Level.FINEST, String.format("No %s found. Using annotation based configuration only.", validationXmlFile)); return null; @@ -111,8 +197,8 @@ public class ValidationParser { } } - protected InputStream getInputStream(String path) throws IOException { - ClassLoader loader = PrivilegedActions.getClassLoader(getClass()); + protected static InputStream getInputStream(String path) throws IOException { + ClassLoader loader = PrivilegedActions.getClassLoader(ValidationParser.class); InputStream inputStream = loader.getResourceAsStream(path); if (inputStream != null) { @@ -129,10 +215,10 @@ public class ValidationParser { } } - return inputStream; + return IOs.convertToMarkableInputStream(inputStream); } - private Schema getSchema() { + private static Schema getSchema() { return getSchema(VALIDATION_CONFIGURATION_XSD); } @@ -154,30 +240,52 @@ public class ValidationParser { } } - private void applyConfig(ValidationConfigType xmlConfig, ConfigurationImpl targetConfig) { - applyProviderClass(xmlConfig, targetConfig); - applyMessageInterpolator(xmlConfig, targetConfig); - applyTraversableResolver(xmlConfig, targetConfig); - applyConstraintFactory(xmlConfig, targetConfig); - applyMappingStreams(xmlConfig, targetConfig); - applyProperties(xmlConfig, targetConfig); + public static void applySimpleConfig(ValidationConfigType xmlConfig, ConfigurationImpl targetConfig) { + applyExecutableValidation(xmlConfig, targetConfig); } - private void applyProperties(ValidationConfigType xmlConfig, ConfigurationImpl target) { - for (PropertyType property : xmlConfig.getProperty()) { - if (log.isLoggable(Level.FINEST)) { - log.log(Level.FINEST, String.format("Found property '%s' with value '%s' in %s", property.getName(), property.getValue(), validationXmlFile)); - } + private static void applyProperties(ValidationConfigType xmlConfig, ConfigurationImpl target) { + for (final PropertyType property : xmlConfig.getProperty()) { target.addProperty(property.getName(), property.getValue()); } } + private static void applyExecutableValidation(final ValidationConfigType xmlConfig, final ConfigurationImpl targetConfig) { + final CopyOnWriteArrayList executableTypes = new CopyOnWriteArrayList(); + if (xmlConfig.getExecutableValidation() != null && xmlConfig.getExecutableValidation().getEnabled() + && xmlConfig.getExecutableValidation().getDefaultValidatedExecutableTypes() != null) { + executableTypes.addAll(xmlConfig.getExecutableValidation().getDefaultValidatedExecutableTypes().getExecutableType()); + } + + if (executableTypes.contains(ExecutableType.ALL)) { + executableTypes.clear(); + executableTypes.add(ExecutableType.CONSTRUCTORS); + executableTypes.add(ExecutableType.NON_GETTER_METHODS); + executableTypes.add(ExecutableType.GETTER_METHODS); + } else if (executableTypes.contains(ExecutableType.NONE)) { // if both are present ALL gains + executableTypes.clear(); + } + + targetConfig.setExecutableValidation(executableTypes); + } + + private void applyParameterNameProvider(final ValidationConfigType xmlConfig, final ConfigurationImpl targetConfig) { + final String parameterNameProvider = xmlConfig.getParameterNameProvider(); + if (targetConfig.getParameterNameProvider() == targetConfig.getDefaultParameterNameProvider()) { // ref == + if (parameterNameProvider != null) { + final Class clazz = Class.class.cast(loadClass(parameterNameProvider)); + targetConfig.parameterNameProvider(newInstance(clazz)); + log.log(Level.INFO, String.format("Using %s as validation provider.", parameterNameProvider)); + } + } + } + @SuppressWarnings("unchecked") private void applyProviderClass(ValidationConfigType xmlConfig, ConfigurationImpl target) { String providerClassName = xmlConfig.getDefaultProvider(); if (providerClassName != null) { Class> clazz = - (Class>) loadClass(providerClassName); + (Class>) loadClass(providerClassName); target.setProviderClass(clazz); log.log(Level.INFO, String.format("Using %s as validation provider.", providerClassName)); } @@ -187,7 +295,7 @@ public class ValidationParser { private void applyMessageInterpolator(ValidationConfigType xmlConfig, ConfigurationImpl target) { String messageInterpolatorClass = xmlConfig.getMessageInterpolator(); - if (target.getMessageInterpolator() == null) { + if (target.getMessageInterpolator() == target.getDefaultMessageInterpolator()) { // ref == if (messageInterpolatorClass != null) { Class clazz = (Class) loadClass(messageInterpolatorClass); @@ -201,7 +309,7 @@ public class ValidationParser { private void applyTraversableResolver(ValidationConfigType xmlConfig, ConfigurationImpl target) { String traversableResolverClass = xmlConfig.getTraversableResolver(); - if (target.getTraversableResolver() == null) { + if (target.getTraversableResolver() == target.getDefaultTraversableResolver()) { // ref == if (traversableResolverClass != null) { Class clazz = (Class) loadClass(traversableResolverClass); @@ -215,9 +323,18 @@ public class ValidationParser { return AccessController.doPrivileged(new PrivilegedAction() { public T run() { try { - return cls.newInstance(); + try { + final BValExtension.Releasable releasable = BValExtension.inject(cls); + releasables.add(releasable); + return releasable.getInstance(); + } catch (final Exception e) { + return cls.newInstance(); + } catch (final NoClassDefFoundError error) { + return cls.newInstance(); + } } catch (final Exception ex) { - throw new ValidationException("Cannot instantiate : " + cls, ex); + exceptions.add(new ValidationException("Cannot instantiate : " + cls, ex)); + return null; // ensure BootstrapConfiguration can be read even if class can't be instantiated } } }); @@ -227,7 +344,7 @@ public class ValidationParser { private void applyConstraintFactory(ValidationConfigType xmlConfig, ConfigurationImpl target) { String constraintFactoryClass = xmlConfig.getConstraintValidatorFactory(); - if (target.getConstraintValidatorFactory() == null) { + if (target.getConstraintValidatorFactory() == target.getDefaultConstraintValidatorFactory()) { // ref == if (constraintFactoryClass != null) { Class clazz = (Class) loadClass(constraintFactoryClass); @@ -237,16 +354,16 @@ public class ValidationParser { } } - private void applyMappingStreams(ValidationConfigType xmlConfig, + private static void applyMappingStreams(ValidationConfigType xmlConfig, ConfigurationImpl target) { - for (JAXBElement mappingFileNameElement : xmlConfig.getConstraintMapping()) { - String mappingFileName = mappingFileNameElement.getValue(); + for (String rawMappingFileName : xmlConfig.getConstraintMapping()) { + String mappingFileName = rawMappingFileName; if (mappingFileName.startsWith("/")) { // Classloader needs a path without a starting / mappingFileName = mappingFileName.substring(1); } log.log(Level.FINEST, String.format("Trying to open input stream for %s", mappingFileName)); - InputStream in = null; + InputStream in; try { in = getInputStream(mappingFileName); if (in == null) { @@ -274,13 +391,28 @@ public class ValidationParser { private Class loadClass(final String className) { ClassLoader loader = doPrivileged(SecureActions.getContextClassLoader()); if (loader == null) - loader = getClass().getClassLoader(); + loader = ValidationParser.class.getClassLoader(); try { return Class.forName(className, true, loader); } catch (ClassNotFoundException ex) { - throw new ValidationException("Unable to load class: " + className, ex); + // TCK check BootstrapConfig is present in all cases + // so throw next exception later + exceptions.add(new ValidationException("Unable to load class: " + className, ex)); + return null; } } + public void ensureValidatorFactoryCanBeBuilt() { + if (!exceptions.isEmpty()) { + throw exceptions.iterator().next(); + } + } + + public void close() throws IOException { + for (final BValExtension.Releasable releasable : releasables) { + releasable.release(); + } + releasables.clear(); + } } Added: bval/branches/bval-11/bval-jsr303/src/main/resources/META-INF/beans.xml URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/resources/META-INF/beans.xml?rev=1498347&view=auto ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/main/resources/META-INF/beans.xml (added) +++ bval/branches/bval-11/bval-jsr303/src/main/resources/META-INF/beans.xml Mon Jul 1 10:06:18 2013 @@ -0,0 +1,17 @@ + + + Added: bval/branches/bval-11/bval-jsr303/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension?rev=1498347&view=auto ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension (added) +++ bval/branches/bval-11/bval-jsr303/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension Mon Jul 1 10:06:18 2013 @@ -0,0 +1 @@ +org.apache.bval.cdi.BValExtension \ No newline at end of file Modified: bval/branches/bval-11/bval-jsr303/src/main/resources/org/apache/bval/jsr303/DefaultConstraints.properties URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/resources/org/apache/bval/jsr303/DefaultConstraints.properties?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/main/resources/org/apache/bval/jsr303/DefaultConstraints.properties (original) +++ bval/branches/bval-11/bval-jsr303/src/main/resources/org/apache/bval/jsr303/DefaultConstraints.properties Mon Jul 1 10:06:18 2013 @@ -38,7 +38,7 @@ javax.validation.constraints.NotNull=org javax.validation.constraints.Null=org.apache.bval.constraints.NullValidator javax.validation.constraints.Past=org.apache.bval.constraints.PastValidatorForDate,\ org.apache.bval.constraints.PastValidatorForCalendar -javax.validation.constraints.Size=org.apache.bval.constraints.SizeValidatorForString,\ +javax.validation.constraints.Size=org.apache.bval.constraints.SizeValidatorForCharSequence,\ org.apache.bval.constraints.SizeValidatorForMap,\ org.apache.bval.constraints.SizeValidatorForCollection,\ org.apache.bval.constraints.SizeValidatorForArrayOfBoolean,\ Modified: bval/branches/bval-11/bval-jsr303/src/main/xjb/binding-customization.xjb URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/xjb/binding-customization.xjb?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/main/xjb/binding-customization.xjb (original) +++ bval/branches/bval-11/bval-jsr303/src/main/xjb/binding-customization.xjb Mon Jul 1 10:06:18 2013 @@ -18,15 +18,21 @@ under the License. --> - - - - + xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"> + + + + - - - + + + + + + + + Added: bval/branches/bval-11/bval-jsr303/src/main/xsd/validation-configuration-1.1.xsd URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/xsd/validation-configuration-1.1.xsd?rev=1498347&view=auto ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/main/xsd/validation-configuration-1.1.xsd (added) +++ bval/branches/bval-11/bval-jsr303/src/main/xsd/validation-configuration-1.1.xsd Mon Jul 1 10:06:18 2013 @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: bval/branches/bval-11/bval-jsr303/src/main/xsd/validation-mapping-1.1.xsd URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/xsd/validation-mapping-1.1.xsd?rev=1498347&view=auto ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/main/xsd/validation-mapping-1.1.xsd (added) +++ bval/branches/bval-11/bval-jsr303/src/main/xsd/validation-mapping-1.1.xsd Mon Jul 1 10:06:18 2013 @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/BootstrapTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/BootstrapTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/BootstrapTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/BootstrapTest.java Mon Jul 1 10:06:18 2013 @@ -109,6 +109,10 @@ public class BootstrapTest extends TestC } return new DefaultConstraintValidatorFactory().getInstance(key); } + + public void releaseInstance(ConstraintValidator instance) { + // no-op + } }); factory = builder.buildValidatorFactory(); validator = factory.getValidator(); Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ConstraintValidatorContextTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ConstraintValidatorContextTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ConstraintValidatorContextTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ConstraintValidatorContextTest.java Mon Jul 1 10:06:18 2013 @@ -66,12 +66,10 @@ public class ConstraintValidatorContextT } public void testPerson1() { - cvb.addNode("person").addNode(null).inIterable().atIndex(1) - .addConstraintViolation(); - Error error = cvc.getErrorMessages().iterator().next(); - PathImpl errorPath = (PathImpl) error.getOwner(); - Assert.assertEquals("Incorrect path created", "person[1]", errorPath - .toString()); + cvb.addNode("person").addNode(null).inIterable().atIndex(1).addConstraintViolation(); + final Error error = cvc.getErrorMessages().iterator().next(); + final PathImpl errorPath = (PathImpl) error.getOwner(); + Assert.assertEquals("Incorrect path created", "person[1]", errorPath.toString()); } public void testPersonLawyerName() { Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ContextConstraintValidatorFactoryTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ContextConstraintValidatorFactoryTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ContextConstraintValidatorFactoryTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ContextConstraintValidatorFactoryTest.java Mon Jul 1 10:06:18 2013 @@ -102,7 +102,11 @@ public class ContextConstraintValidatorF } return null; } - }; + + public void releaseInstance(ConstraintValidator instance) { + // no-op + } + }; final Set> violations = factory.usingContext().constraintValidatorFactory(constraintValidatorFactory) .getValidator().validate(new Example()); assertTrue(violations.isEmpty()); Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/CustomConstraintValidatorFactoryTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/CustomConstraintValidatorFactoryTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/CustomConstraintValidatorFactoryTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/CustomConstraintValidatorFactoryTest.java Mon Jul 1 10:06:18 2013 @@ -61,6 +61,10 @@ public class CustomConstraintValidatorFa public > T getInstance(Class key) { return null; // always return null } + + public void releaseInstance(ConstraintValidator instance) { + // no-op + } }; // Create a validator with this factory Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/CustomValidatorFactoryTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/CustomValidatorFactoryTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/CustomValidatorFactoryTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/CustomValidatorFactoryTest.java Mon Jul 1 10:06:18 2013 @@ -49,6 +49,10 @@ public class CustomValidatorFactoryTest return null; } + public ParameterNameProvider getParameterNameProvider() { + return null; + } + public MessageInterpolator getMessageInterpolator() { return null; } @@ -65,6 +69,10 @@ public class CustomValidatorFactoryTest return null; } + public void close() { + + } + public ValidatorContext usingContext() { return null; } Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/DefaultMessageInterpolatorTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/DefaultMessageInterpolatorTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/DefaultMessageInterpolatorTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/DefaultMessageInterpolatorTest.java Mon Jul 1 10:06:18 2013 @@ -68,6 +68,10 @@ public class DefaultMessageInterpolatorT public Object getValidatedValue() { return "12345678"; } + + public T unwrap(Class type) { + return null; + } }; String msg = interpolator.interpolate("{validator.creditcard}", ctx); Assert.assertEquals("credit card is not valid", msg); @@ -81,6 +85,10 @@ public class DefaultMessageInterpolatorT public Object getValidatedValue() { return ""; } + + public T unwrap(Class type) { + return null; + } }; msg = interpolator.interpolate("{org.apache.bval.constraints.NotEmpty.message}", ctx); @@ -107,6 +115,10 @@ public class DefaultMessageInterpolatorT public Object getValidatedValue() { return "12345678"; } + + public T unwrap(Class type) { + return null; + } }; String result = this.interpolator.interpolate("Id number should match {regexp}", ctx); @@ -124,6 +136,10 @@ public class DefaultMessageInterpolatorT public Object getValidatedValue() { return "12345678"; } + + public T unwrap(Class type) { + return null; + } }; result = this.interpolator.interpolate("Other id should match {regexp}", ctx); Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/Jsr303Test.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/Jsr303Test.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/Jsr303Test.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/Jsr303Test.java Mon Jul 1 10:06:18 2013 @@ -18,27 +18,9 @@ */ package org.apache.bval.jsr303; -import java.math.BigDecimal; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Locale; -import java.util.Set; - -import javax.validation.ConstraintViolation; -import javax.validation.UnexpectedTypeException; -import javax.validation.Validation; -import javax.validation.Validator; -import javax.validation.ValidatorFactory; -import javax.validation.metadata.BeanDescriptor; -import javax.validation.metadata.ConstraintDescriptor; -import javax.validation.metadata.ElementDescriptor; -import javax.validation.metadata.PropertyDescriptor; - import junit.framework.Assert; import junit.framework.TestCase; - -import org.apache.bval.constraints.SizeValidatorForString; +import org.apache.bval.constraints.SizeValidatorForCharSequence; import org.apache.bval.jsr303.example.Address; import org.apache.bval.jsr303.example.Book; import org.apache.bval.jsr303.example.Engine; @@ -49,6 +31,22 @@ import org.apache.bval.jsr303.example.Se import org.apache.bval.jsr303.example.SizeTestEntity; import org.apache.bval.jsr303.util.TestUtils; +import javax.validation.ConstraintViolation; +import javax.validation.UnexpectedTypeException; +import javax.validation.Validation; +import javax.validation.Validator; +import javax.validation.ValidatorFactory; +import javax.validation.metadata.BeanDescriptor; +import javax.validation.metadata.ConstraintDescriptor; +import javax.validation.metadata.ElementDescriptor; +import javax.validation.metadata.PropertyDescriptor; +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Locale; +import java.util.Set; + /** * Description:
*/ @@ -189,7 +187,7 @@ public class Jsr303Test extends TestCase Assert.assertNotNull(desc); boolean found = false; for (ConstraintDescriptor each : desc.getConstraintDescriptors()) { - if (each.getConstraintValidatorClasses().get(0).equals(SizeValidatorForString.class)) { + if (each.getConstraintValidatorClasses().get(0).equals(SizeValidatorForCharSequence.class)) { Assert.assertTrue(each.getAttributes().containsKey("max")); assertEquals(30, each.getAttributes().get("max")); found = true; Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ValidationTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ValidationTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ValidationTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/ValidationTest.java Mon Jul 1 10:06:18 2013 @@ -692,8 +692,7 @@ public class ValidationTest extends Test public void testKeyedMetadata() { @SuppressWarnings("serial") - BeanDescriptor beanDescriptor = validator.getConstraintsForClass(new HashMap() { - }.getClass()); + BeanDescriptor beanDescriptor = validator.getConstraintsForClass(new HashMap() {}.getClass()); Assert.assertNotNull(beanDescriptor); Assert.assertFalse(beanDescriptor.isBeanConstrained()); Assert.assertNull(beanDescriptor.getConstraintsForProperty("[foo]")); Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/extensions/MethodValidatorImplTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/extensions/MethodValidatorImplTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/extensions/MethodValidatorImplTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/extensions/MethodValidatorImplTest.java Mon Jul 1 10:06:18 2013 @@ -16,21 +16,19 @@ */ package org.apache.bval.jsr303.extensions; -import junit.framework.Assert; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; - import org.apache.bval.jsr303.ApacheValidationProvider; -import org.apache.bval.jsr303.ApacheValidatorConfiguration; import org.apache.bval.jsr303.ClassValidator; import org.apache.bval.jsr303.extensions.ExampleMethodService.Person; +import org.junit.Ignore; import javax.validation.Validation; -import javax.validation.ValidationException; import javax.validation.Validator; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; +import javax.validation.executable.ExecutableValidator; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.util.Set; @@ -57,54 +55,44 @@ public class MethodValidatorImplTest ext ClassValidator cv = v.unwrap(ClassValidator.class); assertTrue(v == cv); assertTrue(v == v.unwrap(Validator.class)); - MethodValidatorImpl mvi = v.unwrap(MethodValidatorImpl.class); - assertNotNull(mvi); - MethodValidator mv = v.unwrap(MethodValidator.class); + ExecutableValidator mv = v.forExecutables(); assertNotNull(mv); - assertTrue(mv == mv.unwrap(MethodValidatorImpl.class)); - assertTrue(mv == mv.unwrap(ClassValidator.class)); } public void testValidateMethodParameters() throws NoSuchMethodException { ExampleMethodService service = new ExampleMethodService(); - MethodValidator mv = getValidator().unwrap(MethodValidator.class); + ExecutableValidator mv = getValidator().unwrap(ExecutableValidator.class); Method method = service.getClass().getMethod("concat", new Class[]{String.class, String.class}); String[] params = new String[2]; params[0] = "Hello "; params[1] = "world"; - Set results = mv.validateParameters(service.getClass(), method, params); + Set results = mv.validateParameters(service, method, params); assertEquals(true, results.isEmpty()); params[0] = ""; - results = mv.validateParameters(service.getClass(), method, params); + results = mv.validateParameters(service, method, params); assertEquals(1, results.size()); params[1] = null; - results = mv.validateParameters(service.getClass(), method, params); + results = mv.validateParameters(service, method, params); assertEquals(2, results.size()); - - results = mv.validateParameter(service.getClass(), method, params[0], 0); - assertEquals(1, results.size()); - - results = mv.validateParameter(service.getClass(), method, "ok", 0); - assertEquals(0, results.size()); } public void testValidateMoreMethodParameters() throws NoSuchMethodException { ExampleMethodService service = new ExampleMethodService(); - MethodValidator mv = getValidator().unwrap(MethodValidator.class); + ExecutableValidator mv = getValidator().unwrap(ExecutableValidator.class); Method saveMethod = service.getClass().getMethod("save", new Class[]{String.class}); String[] saveParams = new String[1]; saveParams[0] = "abcd"; - Set results = mv.validateParameters(service.getClass(), saveMethod, saveParams); + Set results = mv.validateParameters(service, saveMethod, saveParams); assertTrue(results.isEmpty()); saveParams[0] = "zzzz"; - results = mv.validateParameters(service.getClass(), saveMethod, saveParams); + results = mv.validateParameters(service, saveMethod, saveParams); assertEquals(1, results.size()); Method echoMethod = service.getClass().getMethod("echo", new Class[]{String.class}); @@ -112,115 +100,110 @@ public class MethodValidatorImplTest ext String[] echoParams = new String[1]; echoParams[0] = "hello"; - results = mv.validateParameters(service.getClass(), echoMethod, echoParams); + results = mv.validateParameters(service, echoMethod, echoParams); assertTrue(results.isEmpty()); echoParams[0] = "h"; - results = mv.validateParameters(service.getClass(), echoMethod, echoParams); + results = mv.validateParameters(service, echoMethod, echoParams); assertEquals(1, results.size()); echoParams[0] = null; - results = mv.validateParameters(service.getClass(), echoMethod, echoParams); + results = mv.validateParameters(service, echoMethod, echoParams); assertEquals(1, results.size()); } public void testValidateConstructorParameters() throws NoSuchMethodException { ExampleMethodService service = new ExampleMethodService(); - MethodValidator mv = getValidator().unwrap(MethodValidator.class); + ExecutableValidator mv = getValidator().unwrap(ExecutableValidator.class); Constructor constructor = service.getClass().getConstructor(String.class, String.class); String[] params = new String[2]; params[0] = "Hello "; params[1] = "world"; - Set results = mv.validateParameters(service.getClass(), constructor, params); + Set results = mv.validateConstructorParameters(constructor, params); assertEquals(true, results.isEmpty()); params[0] = ""; - results = mv.validateParameters(service.getClass(), constructor, params); + results = mv.validateConstructorParameters(constructor, params); assertEquals(1, results.size()); params[1] = null; - results = mv.validateParameters(service.getClass(), constructor, params); + results = mv.validateConstructorParameters(constructor, params); assertEquals(2, results.size()); - - results = mv.validateParameter(service.getClass(), constructor, params[0], 0); - assertEquals(1, results.size()); - - results = mv.validateParameter(service.getClass(), constructor, "ok", 0); - assertEquals(0, results.size()); } public void testValidateReturnValue() throws NoSuchMethodException { ExampleMethodService service = new ExampleMethodService(); - MethodValidator mv = getValidator().unwrap(MethodValidator.class); - Method method = - service.getClass().getMethod("concat", new Class[]{String.class, String.class}); + ExecutableValidator mv = getValidator().unwrap(ExecutableValidator.class); + Method method = service.getClass().getMethod("concat", new Class[]{String.class, String.class}); + Set results; - results = mv.validateReturnedValue(service.getClass(), method, "test"); + + results = mv.validateReturnValue(service, method, "test"); assertEquals(true, results.isEmpty()); - results = mv.validateReturnedValue(service.getClass(), method, ""); + results = mv.validateReturnValue(service, method, ""); assertEquals(1, results.size()); } public void testValidateMoreReturnValue() throws NoSuchMethodException { ExampleMethodService service = new ExampleMethodService(); - MethodValidator mv = getValidator().unwrap(MethodValidator.class); + ExecutableValidator mv = getValidator().unwrap(ExecutableValidator.class); Method echoMethod = service.getClass().getMethod("echo", new Class[]{String.class}); String returnedValue = "a too long string"; - Set results = mv.validateReturnedValue(service.getClass(), echoMethod, returnedValue); + Set results = mv.validateReturnValue(service, echoMethod, returnedValue); assertEquals(1, results.size()); - + returnedValue = null; - results = mv.validateReturnedValue(service.getClass(), echoMethod, returnedValue); - assertEquals(1, results.size()); + results = mv.validateReturnValue(service, echoMethod, returnedValue); + assertEquals(1, results.size()); returnedValue = "valid"; - results = mv.validateReturnedValue(service.getClass(), echoMethod, returnedValue); + results = mv.validateReturnValue(service, echoMethod, returnedValue); assertTrue(results.isEmpty()); } public void testValidateValidParam() throws NoSuchMethodException { ExampleMethodService service = new ExampleMethodService(); - MethodValidator mv = getValidator().unwrap(MethodValidator.class); + ExecutableValidator mv = getValidator().unwrap(ExecutableValidator.class); Method personOp1 = service.getClass().getMethod("personOp1", new Class[]{Person.class}); // Validate with invalid person Person p = new ExampleMethodService.Person(); - Set results = mv.validateParameters(service.getClass(), personOp1, new Object[]{p}); + Set results = mv.validateParameters(service, personOp1, new Object[]{p}); assertEquals("Expected 1 violation", 1, results.size()); // validate with valid person p.name = "valid name"; - results = mv.validateParameters(service.getClass(), personOp1, new Object[]{p}); + results = mv.validateParameters(service, personOp1, new Object[]{p}); assertTrue("No violations expected", results.isEmpty()); // validate with null person - results = mv.validateParameters(service.getClass(), personOp1, new Object[]{null}); + results = mv.validateParameters(service, personOp1, new Object[]{null}); assertTrue("No violations expected", results.isEmpty()); } public void testValidateNotNullValidParam() throws NoSuchMethodException { ExampleMethodService service = new ExampleMethodService(); - MethodValidator mv = getValidator().unwrap(MethodValidator.class); + ExecutableValidator mv = getValidator().unwrap(ExecutableValidator.class); Method personOp2 = service.getClass().getMethod("personOp2", new Class[]{Person.class}); // Validate with null person - Set results = mv.validateParameters(service.getClass(), personOp2, new Object[]{null}); + Set results = mv.validateParameters(service, personOp2, new Object[]{null}); assertEquals("Expected 1 violation", 1, results.size()); // Validate with invalid person Person p = new ExampleMethodService.Person(); - results = mv.validateParameters(service.getClass(), personOp2, new Object[]{p}); + results = mv.validateParameters(service, personOp2, new Object[]{p}); assertEquals("Expected 1 violation", 1, results.size()); // validate with valid person p.name = "valid name"; - results = mv.validateParameters(service.getClass(), personOp2, new Object[]{p}); + results = mv.validateParameters(service, personOp2, new Object[]{p}); assertTrue("No violations expected", results.isEmpty()); } @@ -234,9 +217,10 @@ public class MethodValidatorImplTest ext *
  • interface.class + impl.method
  • * */ - public void testValidateImplementedMethod() throws NoSuchMethodException { + @Ignore("violates Liskov principle, forbidden by the spec - 4.5.5") + public void validateImplementedMethod() throws NoSuchMethodException { UserMethodsImpl um = new UserMethodsImpl(); - MethodValidator mv = getValidator().unwrap(MethodValidator.class); + ExecutableValidator mv = getValidator().unwrap(ExecutableValidator.class); Method classMethod = um.getClass().getMethod("findUser", new Class[]{String.class, String.class, Integer.class}); Method ifaceMethod = UserMethods.class.getMethod("findUser", new Class[]{String.class, String.class, Integer.class}); @@ -244,27 +228,8 @@ public class MethodValidatorImplTest ext Set results; // Validate from class (should create violations) - results = mv.validateParameters(um.getClass(), classMethod, new Object[]{"", "valid", null }); + results = mv.validateParameters(um, classMethod, new Object[]{"", "valid", null }); assertEquals("Invalid number of violations", 2, results.size()); - - // Validate from interface - results = mv.validateParameters(UserMethods.class, ifaceMethod, new Object[]{"", "valid", null }); - assertEquals("Invalid number of violations", 0, results.size()); - - // Invalid combinations - try { - results = mv.validateParameters(UserMethods.class, classMethod, new Object[]{"", "valid", null }); - Assert.fail("Exception not thrown when validating interface.class + impl.method"); - } catch (ValidationException e) { - // Expected - } - try { - results = mv.validateParameters(um.getClass(), ifaceMethod, new Object[]{"", "valid", null }); - Assert.fail("Exception not thrown when validating impl.class + interface.method"); - } catch (ValidationException e) { - // Expected - } - } public static interface UserMethods { @@ -283,7 +248,9 @@ public class MethodValidatorImplTest ext return Validation .byProvider(ApacheValidationProvider.class) .configure() + /* .addProperty(ApacheValidatorConfiguration.Properties.METABEAN_FACTORY_CLASSNAMES, - MethodValidatorMetaBeanFactory.class.getName()).buildValidatorFactory().getValidator(); + MethodValidatorMetaBeanFactory.class.getName())*/ + .buildValidatorFactory().getValidator(); } } Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/util/PathImplTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/util/PathImplTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/util/PathImplTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/util/PathImplTest.java Mon Jul 1 10:06:18 2013 @@ -126,10 +126,10 @@ public class PathImplTest extends TestCa } public void testNull() { - assertEquals(PathImpl.createPathFromString(null), PathImpl.create(null)); + assertEquals(PathImpl.createPathFromString(null), PathImpl.create()); - assertEquals("", PathImpl.create(null).toString()); - Path path = PathImpl.create(null); + assertEquals("", PathImpl.create().toString()); + Path path = PathImpl.create(); Path.Node node = path.iterator().next(); assertEquals(null, node.getName()); } @@ -172,11 +172,11 @@ public class PathImplTest extends TestCa } public void testToString() { - PathImpl path = PathImpl.create(null); + PathImpl path = PathImpl.create(); path.addNode(new NodeImpl("firstName")); assertEquals("firstName", path.toString()); - path = PathImpl.create(null); + path = PathImpl.create(); path.getLeafNode().setIndex(2); assertEquals("[2]", path.toString()); path.addNode(new NodeImpl("firstName")); Modified: bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/xml/ValidationParserTest.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/xml/ValidationParserTest.java?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/xml/ValidationParserTest.java (original) +++ bval/branches/bval-11/bval-jsr303/src/test/java/org/apache/bval/jsr303/xml/ValidationParserTest.java Mon Jul 1 10:06:18 2013 @@ -45,11 +45,10 @@ public class ValidationParserTest extend } public void testGetInputStream() throws IOException { - ValidationParser vp = new ValidationParser("sample-validation.xml"); - assertNotNull(vp.getInputStream("sample-validation.xml")); + assertNotNull(ValidationParser.getInputStream("sample-validation.xml")); try { - vp.getInputStream("META-INF/MANIFEST.MF"); // this is available in multiple jars hopefully + ValidationParser.getInputStream("META-INF/MANIFEST.MF"); // this is available in multiple jars hopefully fail("exception not thrown"); } catch(ValidationException vex) { assertTrue(vex.getMessage().startsWith("More than ")); @@ -57,10 +56,8 @@ public class ValidationParserTest extend } public void testParse() { - ValidationParser vp = new ValidationParser("sample-validation.xml"); - ConfigurationImpl config = - new ConfigurationImpl(null, new ApacheValidationProvider()); - vp.processValidationConfig(config); + ConfigurationImpl config = new ConfigurationImpl(null, new ApacheValidationProvider()); + ValidationParser.processValidationConfig("sample-validation.xml", config, false); } public void testConfigureFromXml() { Modified: bval/branches/bval-11/bval-jsr303/src/test/resources/sample-constraints.xml URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/test/resources/sample-constraints.xml?rev=1498347&r1=1498346&r2=1498347&view=diff ============================================================================== --- bval/branches/bval-11/bval-jsr303/src/test/resources/sample-constraints.xml (original) +++ bval/branches/bval-11/bval-jsr303/src/test/resources/sample-constraints.xml Mon Jul 1 10:06:18 2013 @@ -34,7 +34,7 @@ - + @@ -45,7 +45,7 @@ - + + javax.validation + validation-api + provided + + org.testng testng @@ -145,6 +187,10 @@ + nuxeo + https://maven.nuxeo.org/nexus/content/groups/public/ + + repository.jboss.org JBoss Public Maven Repository Group @@ -214,20 +260,22 @@ suite false - javax.validation validation-api true ${project.build.directory}/dependency/lib - --> + + org.apache.bval org.apache.bval.bundle Added: bval/branches/bval-11/bval-tck/work-tests-suite.xml URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-tck/work-tests-suite.xml?rev=1498347&view=auto ============================================================================== --- bval/branches/bval-11/bval-tck/work-tests-suite.xml (added) +++ bval/branches/bval-11/bval-tck/work-tests-suite.xml Mon Jul 1 10:06:18 2013 @@ -0,0 +1,27 @@ + + + + + + + + + + Added: bval/branches/bval-11/bval-tck11/pom.xml URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-tck11/pom.xml?rev=1498347&view=auto ============================================================================== --- bval/branches/bval-11/bval-tck11/pom.xml (added) +++ bval/branches/bval-11/bval-tck11/pom.xml Mon Jul 1 10:06:18 2013 @@ -0,0 +1,236 @@ + + + + 4.0.0 + + + bval-parent + org.apache.bval + 0.6-SNAPSHOT + + + bval-tck11 + Apache BVal :: bval-tck11 (TCK Runner) + Aggregates dependencies and runs the JSR-349 TCK + + + 1.1.0.Final + 1.2.1-SNAPSHOT + 1.0.3.Final + org.apache.bval.jsr303.ApacheValidationProvider + + + + + javax.validation + validation-api + 1.1.0.Final + provided + + + + org.apache.geronimo.specs + geronimo-atinject_1.0_spec + 1.0 + provided + + + org.apache.geronimo.specs + geronimo-jcdi_1.0_spec + 1.0 + provided + + + org.apache.geronimo.specs + geronimo-interceptor_1.1_spec + 1.0 + provided + + + org.apache.geronimo.specs + geronimo-ejb_3.1_spec + 1.0 + provided + + + org.apache.geronimo.specs + geronimo-el_2.2_spec + 1.0.4 + provided + + + + org.apache.bval + bval-core + ${project.version} + + + org.apache.bval + bval-jsr303 + ${project.version} + + + + + org.jboss.arquillian.container + arquillian-container-test-spi + ${arquillian.version} + + + org.apache.openwebbeans.arquillian + owb-arquillian-standalone + ${owb.version} + test + + + org.apache.openwebbeans + openwebbeans-impl + ${owb.version} + test + + + + org.apache.tomcat + tomcat-jasper-el + 7.0.41 + provided + + + + org.hibernate.beanvalidation.tck + beanvalidation-tck-tests + ${tck.version} + + + org.jboss.arquillian.testng + arquillian-testng-container + ${arquillian.version} + test + + + org.jboss.arquillian.protocol + arquillian-protocol-servlet + ${arquillian.version} + test + + + + + + nuxeo + https://maven.nuxeo.org/nexus/content/groups/public/ + + + + + + tck11 + + + tck11 + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.7 + + + copy-tck-test-suite-file + generate-test-sources + + copy + + + true + + + org.hibernate.beanvalidation.tck + beanvalidation-tck-tests + xml + suite + false + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + ${project.build.directory}/dependency/beanvalidation-tck-tests-suite.xml + + + + + validation.provider + ${validation.provider} + + + methods + 4 + + + + + org.apache.maven.plugins + maven-surefire-report-plugin + + + generate-test-report + test + + report-only + + + + + ${project.build.directory}/surefire-reports + test-report + + + + + + + Added: bval/branches/bval-11/bval-tck11/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-tck11/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java?rev=1498347&view=auto ============================================================================== --- bval/branches/bval-11/bval-tck11/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java (added) +++ bval/branches/bval-11/bval-tck11/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java Mon Jul 1 10:06:18 2013 @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.bval.arquillian; + +import org.jboss.arquillian.core.spi.LoadableExtension; +import org.jboss.arquillian.test.spi.TestEnricher; + +public class BValArquillianExtension implements LoadableExtension { + public void register(final ExtensionBuilder builder) { + builder.service(TestEnricher.class, EJBEnricher.class); + } +}