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/08/26 15:59:20 UTC

svn commit: r1517540 [1/15] - in /bval/branches/bval-11/bval-jsr: ./ src/ src/main/ src/main/appended-resources/ src/main/appended-resources/META-INF/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/bval/ src/main/j...

Author: rmannibucau
Date: Mon Aug 26 13:59:15 2013
New Revision: 1517540

URL: http://svn.apache.org/r1517540
Log:
removing guice module (respecting what was said on the list) + renaming jsr303 in jsr since it implements jsr349 and to avoid future renaming + removing tck module (tck 1.0 have a single issue with tck 1.1 so we don't need to pass them too) - adding jsr module

Added:
    bval/branches/bval-11/bval-jsr/
    bval/branches/bval-11/bval-jsr/pom.xml
    bval/branches/bval-11/bval-jsr/src/
    bval/branches/bval-11/bval-jsr/src/main/
    bval/branches/bval-11/bval-jsr/src/main/appended-resources/
    bval/branches/bval-11/bval-jsr/src/main/appended-resources/META-INF/
    bval/branches/bval-11/bval-jsr/src/main/appended-resources/META-INF/NOTICE.vm
    bval/branches/bval-11/bval-jsr/src/main/java/
    bval/branches/bval-11/bval-jsr/src/main/java/org/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/AnyLiteral.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValAnnotatedType.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/DefaultLiteral.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/AssertFalseValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/AssertTrueValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/DecimalMaxValidatorForNumber.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/DecimalMaxValidatorForString.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/DecimalMinValidatorForNumber.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/DecimalMinValidatorForString.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/DigitsValidatorForNumber.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/DigitsValidatorForString.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/Email.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/EmailValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/FutureValidatorForCalendar.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/FutureValidatorForDate.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/MaxValidatorForNumber.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/MaxValidatorForString.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/MinValidatorForNumber.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/MinValidatorForString.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/NotEmpty.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/NotEmptyValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/NotEmptyValidatorForCollection.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/NotEmptyValidatorForMap.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/NotEmptyValidatorForString.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/NotNullValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/NullValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/PastValidatorForCalendar.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/PastValidatorForDate.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/PatternValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfBoolean.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfByte.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfChar.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfDouble.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfFloat.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfInt.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfLong.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfObject.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForArrayOfShort.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForCharSequence.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForCollection.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/SizeValidatorForMap.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/el/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/el/ELFacade.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/el/MessageEvaluator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationConstraintBuilder.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationProcessor.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheFactoryContext.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidationProvider.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorConfiguration.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorFactory.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AppendValidation.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AppendValidationToBuilder.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AppendValidationToList.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AppendValidationToMeta.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/BaseAppendValidation.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/BootstrapConfigurationImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/CascadingPropertyValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ClassValidator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConfigurationImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDefaults.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintFinderImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidation.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidationListener.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorContextImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorIdentity.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintViolationImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstructorDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/CrossParameterDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultMessageInterpolator.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultValidationProviderResolver.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ElementDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/GraphBeanIdentity.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/GroupValidationContext.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/GroupValidationContextImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/IncompatiblePropertyValueException.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/InvocableElementDescriptor.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/JsrFeatures.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/JsrMetaBeanFactory.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/MethodDescriptor.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/MethodDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/NodeBuilderCustomizableContextImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/NodeContextBuilderImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ParameterAccess.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ParameterDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ParametersAccess.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ProcedureDescriptor.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/PropertyDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ReturnAccess.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ReturnValueDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/UnknownPropertyException.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/groups/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/groups/Group.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/groups/GroupConversionDescriptorImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/groups/Groups.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/groups/GroupsComputer.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/parameter/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/parameter/DefaultParameterNameProvider.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/CachingRelevant.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/CachingTraversableResolver.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/DefaultTraversableResolver.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/JPATraversableResolver.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/SimpleTraversableResolver.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/ClassHelper.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/EnumerationConverter.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/IOs.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderCustomizableContextImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderDefinedContextImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderCustomizableContextImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderDefinedContextImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeContextBuilderImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/PathImpl.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/PathNavigation.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/Proxies.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/ValidationContextTraversal.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/AnnotationIgnores.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/AnnotationProxy.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/AnnotationProxyBuilder.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/MetaConstraint.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationMappingParser.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationParser.java
    bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr303/
    bval/branches/bval-11/bval-jsr/src/main/resources/
    bval/branches/bval-11/bval-jsr/src/main/resources/META-INF/
    bval/branches/bval-11/bval-jsr/src/main/resources/META-INF/beans.xml
    bval/branches/bval-11/bval-jsr/src/main/resources/META-INF/services/
    bval/branches/bval-11/bval-jsr/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
    bval/branches/bval-11/bval-jsr/src/main/resources/META-INF/services/javax.validation.spi.ValidationProvider
    bval/branches/bval-11/bval-jsr/src/main/resources/org/
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/bval/
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/bval/jsr/
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/bval/jsr/DefaultConstraints.properties
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/bval/jsr/ValidationMessages.properties
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/bval/jsr/ValidationMessages_de.properties
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/bval/jsr/ValidationMessages_en.properties
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/bval/jsr/ValidationMessages_es.properties
    bval/branches/bval-11/bval-jsr/src/main/resources/org/apache/bval/jsr/ValidationMessages_it.properties
    bval/branches/bval-11/bval-jsr/src/main/xjb/
    bval/branches/bval-11/bval-jsr/src/main/xjb/binding-customization.xjb
    bval/branches/bval-11/bval-jsr/src/main/xsd/
    bval/branches/bval-11/bval-jsr/src/main/xsd/validation-configuration-1.0.xsd
    bval/branches/bval-11/bval-jsr/src/main/xsd/validation-configuration-1.1.xsd
    bval/branches/bval-11/bval-jsr/src/main/xsd/validation-mapping-1.0.xsd
    bval/branches/bval-11/bval-jsr/src/main/xsd/validation-mapping-1.1.xsd
    bval/branches/bval-11/bval-jsr/src/test/
    bval/branches/bval-11/bval-jsr/src/test/java/
    bval/branches/bval-11/bval-jsr/src/test/java/org/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/AssertFalseValidatorTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/AssertTrueValidatorTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/AuthorAddressKnown.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/CompanyEmail.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/DecimalMinMaxValidatorsTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/DigitsValidatorTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/EmailValidatorTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/FrenchZipCode.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/FrenchZipcodeValidator.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/HasStringValidator.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/HasValue.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/MinMaxValidatorsForNumberTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/NotNullValidatorTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/NullValidatorTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/Password.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/ZipCodeCityCoherence.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/constraints/ZipCodeCityCoherenceValidator.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/BeanDescriptorTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/BootstrapTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/CircularReferencesTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/ComposedConstraintsTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/ConstraintCompositionTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/ConstraintDefinitionsTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/ConstraintValidatorContextTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/ContextConstraintValidatorFactoryTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/CustomConstraintValidatorFactoryTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/CustomValidatorFactoryTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/DefaultMessageInterpolatorTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/ExceptionsContractTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/FooTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/Jsr303Test.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/PayloadTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/TckReproducerTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/ValidationTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/ValidatorResolutionTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/AccessTestBusinessObject.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/AccessTestBusinessObjectSub.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Address.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Author.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Book.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/BusinessAddress.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/CompanyAddress.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Continent.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Country.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Customer.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Employee.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Engine.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/First.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/FrenchAddress.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/IllustratedBook.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Last.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Library.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/MaxTestEntity.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/NoValidatorTestEntity.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Person.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/PreferredGuest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/RecursiveFoo.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/Second.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/SizeTestEntity.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/XmlEntitySampleBean.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/example/ZipCodeCityCarrier.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/extensions/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/extensions/ExampleMethodService.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/extensions/MethodValidatorImplTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/Billable.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/BillableCreditCard.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/BillableUser.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/BuyInOneClick.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/CollectionValidationTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/CyclicGroupSequence.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/CyclicGroupSequence1.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/CyclicGroupSequence2.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/DefaultGroupSequenceTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GClass1.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GClass2.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GClass3.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GInterface1.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupSequenceIsolationTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupSequenceTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupValidationTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupsComputerTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/Auditable.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/ImplicitGroupingTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/Order.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BillableUser.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BuyInOneClick.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/GroupInheritanceTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/Address.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/InvalidRedefinedDefaultGroupAddress.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/RedefiningDefaultGroupTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/util/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/util/EnumerationConverterTestCase.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/util/PathImplTest.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/util/TestUtils.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/xml/
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestConstraintValidatorFactory.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestMessageInterpolator.java
    bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java
    bval/branches/bval-11/bval-jsr/src/test/resources/
    bval/branches/bval-11/bval-jsr/src/test/resources/ValidationMessages.properties
    bval/branches/bval-11/bval-jsr/src/test/resources/java.policy
    bval/branches/bval-11/bval-jsr/src/test/resources/sample-constraints.xml
    bval/branches/bval-11/bval-jsr/src/test/resources/sample-validation.xml

Added: bval/branches/bval-11/bval-jsr/pom.xml
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/pom.xml?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/pom.xml (added)
+++ bval/branches/bval-11/bval-jsr/pom.xml Mon Aug 26 13:59:15 2013
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<!--
+	Maven release plugin requires the project tag to be on a single line.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.bval</groupId>
+        <artifactId>bval-parent</artifactId>
+        <version>2.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>bval-jsr</artifactId>
+    <name>Apache BVal :: bval-jsr</name>
+    <packaging>jar</packaging>
+
+    <description>Implementation specific classes for JSR 349 Bean Validation 1.1</description>
+
+    <profiles>
+        <!--
+            default profile using geronimo-validation_1.0_spec.jar active when
+            property "ri" is not present.
+        -->
+        <profile>
+            <id>geronimo</id>
+            <activation>
+                <property>
+                    <name>!ri</name>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>javax.validation</groupId>
+                    <artifactId>validation-api</artifactId>
+                    <version>1.1.0.Final</version>
+                    <scope>provided</scope>
+                </dependency>
+                <!-- TODO
+                <dependency>
+                    <groupId>org.apache.geronimo.specs</groupId>
+                    <artifactId>geronimo-validation_1.0_spec</artifactId>
+                    <scope>provided</scope>
+                </dependency>
+                -->
+            </dependencies>
+        </profile>
+        <!--
+            optional profile using javax.validation/validation-api.jar from RI
+            manually active when property "-Dri" is provided.
+        -->
+        <profile>
+            <id>ri</id>
+            <activation>
+                <property>
+                    <name>ri</name>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>javax.validation</groupId>
+                    <artifactId>validation-api</artifactId>
+                    <!-- allow users to choose an API provider -->
+                    <scope>provided</scope>
+                </dependency>
+            </dependencies>
+        </profile>
+        <profile>
+            <id>sec</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <includes>
+                                <include>**/*Test.java</include>
+                                <include>**/*TestCase.java</include>
+                            </includes>
+                            <argLine>-Djava.security.manager -Djava.security.policy=${project.basedir}/src/test/resources/java.policy</argLine>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.bval</groupId>
+            <artifactId>bval-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <!-- optional dependencies -->
+        <dependency>
+            <groupId>org.apache.bval</groupId>
+            <artifactId>bval-xstream</artifactId>
+            <version>${project.version}</version>
+            <!-- don't pull into OSGi bundle -->
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jpa_2.0_spec</artifactId>
+            <!-- allow users to choose an API provider -->
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jcdi_1.0_spec</artifactId>
+            <version>1.0</version>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-el_2.2_spec</artifactId>
+            <version>1.0.2</version>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-annotation_1.2_spec</artifactId>
+            <version>1.0.MR2-SNAPSHOT</version>
+            <scope>provided</scope>
+            <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>
+            <version>1.0</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Testing dependencies -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-impl</artifactId>
+            <version>2.2.6</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <defaultGoal>install</defaultGoal>
+
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+            <resource>
+                <directory>src/main/xsd</directory>
+                <targetPath>META-INF</targetPath>
+            </resource>
+        </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxb2-maven-plugin</artifactId>
+                <version>1.3.1</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>xjc</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <packageName>org.apache.bval.jsr.xml</packageName>
+                    <extension>true</extension>
+                    <schemaFiles>validation-configuration-1.1.xsd,validation-mapping-1.1.xsd</schemaFiles>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>test-jar</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                        <inherited>false</inherited>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <!-- 2.12 has http://jira.codehaus.org/browse/SUREFIRE-836 -->
+                <version>2.11</version>
+                <configuration>
+                    <includes>
+                        <include>**/*Test.java</include>
+                        <include>**/*TestCase.java</include>
+                    </includes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

Added: bval/branches/bval-11/bval-jsr/src/main/appended-resources/META-INF/NOTICE.vm
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/appended-resources/META-INF/NOTICE.vm?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/appended-resources/META-INF/NOTICE.vm (added)
+++ bval/branches/bval-11/bval-jsr/src/main/appended-resources/META-INF/NOTICE.vm Mon Aug 26 13:59:15 2013
@@ -0,0 +1,26 @@
+##
+## 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.
+##
+
+
+The following copyright notice(s) were affixed to portions of this code
+with which this file is now or was at one time distributed.
+
+This product includes software developed by agimatec GmbH.
+Copyright 2007-2010 Agimatec GmbH. All rights reserved.
+

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/AnyLiteral.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/AnyLiteral.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/AnyLiteral.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/AnyLiteral.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,31 @@
+/*
+ * 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.cdi;
+
+import javax.enterprise.inject.Any;
+import javax.enterprise.util.AnnotationLiteral;
+
+public class AnyLiteral extends AnnotationLiteral<Any> implements Any {
+    public static final AnyLiteral INSTANCE = new AnyLiteral();
+
+    @Override
+    public String toString() {
+        return "@javax.enterprise.inject.Any()";
+    }
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValAnnotatedType.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValAnnotatedType.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValAnnotatedType.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValAnnotatedType.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,96 @@
+/*
+ * 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.cdi;
+
+import javax.enterprise.inject.spi.AnnotatedConstructor;
+import javax.enterprise.inject.spi.AnnotatedField;
+import javax.enterprise.inject.spi.AnnotatedMethod;
+import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.util.AnnotationLiteral;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.HashSet;
+import java.util.Set;
+
+public class BValAnnotatedType<A> implements AnnotatedType<A> {
+    private final AnnotatedType<A> delegate;
+    private final Set<Annotation> annotations;
+
+    public BValAnnotatedType(final AnnotatedType<A> annotatedType) {
+        delegate = annotatedType;
+
+        annotations = new HashSet<Annotation>(annotatedType.getAnnotations().size());
+        annotations.addAll(annotatedType.getAnnotations());
+        annotations.add(BValBindingLitteral.INSTANCE);
+    }
+
+    public Class<A> getJavaClass() {
+        return delegate.getJavaClass();
+    }
+
+    public Set<AnnotatedConstructor<A>> getConstructors() {
+        return delegate.getConstructors();
+    }
+
+    public Set<AnnotatedMethod<? super A>> getMethods() {
+        return delegate.getMethods();
+    }
+
+    public Set<AnnotatedField<? super A>> getFields() {
+        return delegate.getFields();
+    }
+
+    public Type getBaseType() {
+        return delegate.getBaseType();
+    }
+
+    public Set<Type> getTypeClosure() {
+        return delegate.getTypeClosure();
+    }
+
+    public <T extends Annotation> T getAnnotation(final Class<T> annotationType) {
+        for (final Annotation ann : annotations) {
+            if (ann.annotationType().equals(annotationType)) {
+                return (T) ann;
+            }
+        }
+        return null;
+    }
+
+    public Set<Annotation> getAnnotations() {
+        return annotations;
+    }
+
+    public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
+        for (final Annotation ann : annotations) {
+            if (ann.annotationType().equals(annotationType)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static class BValBindingLitteral extends AnnotationLiteral<BValBinding> implements BValBinding {
+        public static final Annotation INSTANCE = new BValBindingLitteral();
+
+        public Class<? extends Annotation> annotationType() {
+            return BValBinding.class;
+        }
+    }
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValBinding.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,31 @@
+/*
+ * 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.cdi;
+
+import javax.interceptor.InterceptorBinding;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE})
+@InterceptorBinding
+public @interface BValBinding {
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,306 @@
+/*
+ * 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.cdi;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.AfterBeanDiscovery;
+import javax.enterprise.inject.spi.AfterDeploymentValidation;
+import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.BeforeBeanDiscovery;
+import javax.enterprise.inject.spi.BeforeShutdown;
+import javax.enterprise.inject.spi.Extension;
+import javax.enterprise.inject.spi.InjectionTarget;
+import javax.enterprise.inject.spi.ProcessAnnotatedType;
+import javax.enterprise.inject.spi.ProcessBean;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.validation.BootstrapConfiguration;
+import javax.validation.Configuration;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
+import javax.validation.executable.ExecutableType;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Type;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+// mainly copied from deltaspike to not force users to use deltaspike
+// which would be a pain in app servers
+// TODO: get rid of beans.xml adding interceptor automatically
+public class BValExtension implements Extension {
+    private static final Logger LOGGER = Logger.getLogger(BValExtension.class.getName());
+
+    private static BValExtension bmpSingleton = null;
+    private volatile Map<ClassLoader, BeanManagerInfo> bmInfos = new ConcurrentHashMap<ClassLoader, BeanManagerInfo>();
+
+    private boolean validatorFound = false;
+    private boolean validatorFactoryFound = false;
+
+    private final Configuration<?> config;
+
+    private Set<ExecutableType> globalExecutableTypes;
+    private boolean isExecutableValidationEnabled;
+
+    public BValExtension() { // read the config, could be done in a quicker way but this let us get defaults without duplicating code
+        config = Validation.byDefaultProvider().configure();
+        try {
+            final BootstrapConfiguration bootstrap = config.getBootstrapConfiguration();
+            globalExecutableTypes = convertToRuntimeTypes(bootstrap.getDefaultValidatedExecutableTypes());
+            isExecutableValidationEnabled = bootstrap.isExecutableValidationEnabled();
+        } catch (final Exception e) { // custom providers can throw an exception
+            LOGGER.log(Level.SEVERE, e.getMessage(), e);
+
+            globalExecutableTypes = Collections.emptySet();
+            isExecutableValidationEnabled = false;
+        }
+    }
+
+    private static Set<ExecutableType> convertToRuntimeTypes(final Set<ExecutableType> defaultValidatedExecutableTypes) {
+        final Set<ExecutableType> types = new CopyOnWriteArraySet<ExecutableType>();
+        for (final ExecutableType type : defaultValidatedExecutableTypes) {
+            if (ExecutableType.IMPLICIT.equals(type)) {
+                types.add(ExecutableType.CONSTRUCTORS);
+                types.add(ExecutableType.NON_GETTER_METHODS);
+            } else if (ExecutableType.ALL.equals(type)) {
+                types.add(ExecutableType.CONSTRUCTORS);
+                types.add(ExecutableType.NON_GETTER_METHODS);
+                types.add(ExecutableType.GETTER_METHODS);
+                break;
+            } else if (!ExecutableType.NONE.equals(type)) {
+                types.add(type);
+            }
+        }
+        return types;
+    }
+
+    public Set<ExecutableType> getGlobalExecutableTypes() {
+        return globalExecutableTypes;
+    }
+
+    public static BValExtension getInstance() {
+        return bmpSingleton;
+    }
+
+    public void addBvalBinding(final @Observes BeforeBeanDiscovery beforeBeanDiscovery, final BeanManager beanManager) {
+        if (!isExecutableValidationEnabled) {
+            return;
+        }
+
+        beforeBeanDiscovery.addInterceptorBinding(BValBinding.class);
+        beforeBeanDiscovery.addAnnotatedType(beanManager.createAnnotatedType(BValInterceptor.class));
+    }
+
+    public <A> void processAnnotatedType(final @Observes ProcessAnnotatedType<A> pat) {
+        if (!isExecutableValidationEnabled) {
+            return;
+        }
+
+        final Class<A> javaClass = pat.getAnnotatedType().getJavaClass();
+        final int modifiers = javaClass.getModifiers();
+        if (!javaClass.getName().startsWith("javax.") && !javaClass.getName().startsWith("org.apache.bval")
+                && !javaClass.isInterface() && !Modifier.isFinal(modifiers) && !Modifier.isAbstract(modifiers)) {
+            pat.setAnnotatedType(new BValAnnotatedType<A>(pat.getAnnotatedType()));
+        }
+    }
+
+    public <A> void processBean(final @Observes ProcessBean<A> processBeanEvent) {
+        if (validatorFound && validatorFactoryFound) {
+            return;
+        }
+
+        final Bean<A> bean = processBeanEvent.getBean();
+        if (ValidatorBean.class.isInstance(bean) || ValidatorFactoryBean.class.isInstance(bean)) {
+            return;
+        }
+
+        final Set<Type> types = bean.getTypes();
+        if (!validatorFound) {
+            validatorFound = types.contains(Validator.class);
+        }
+        if (!validatorFactoryFound) {
+            validatorFactoryFound = types.contains(ValidatorFactory.class);
+        }
+    }
+
+    public void addBValBeans(final @Observes AfterBeanDiscovery afterBeanDiscovery, final BeanManager beanManager) {
+        captureBeanManager(beanManager);
+        cdiIntegration(afterBeanDiscovery, beanManager);
+    }
+
+    private void captureBeanManager(final BeanManager beanManager) {
+        // bean manager holder
+        if (bmpSingleton == null) {
+            bmpSingleton = this;
+        }
+        final BeanManagerInfo bmi = getBeanManagerInfo(loader());
+        bmi.loadTimeBm = beanManager;
+    }
+
+    private void cdiIntegration(final AfterBeanDiscovery afterBeanDiscovery, final BeanManager beanManager) {
+        // add validator and validatorFactory if needed
+        ValidatorFactory factory = null;
+        if (!validatorFactoryFound) {
+            try {
+                factory = config.buildValidatorFactory();
+                afterBeanDiscovery.addBean(new ValidatorFactoryBean(factory));
+            } catch (final Exception e) { // can throw an exception with custom providers
+                LOGGER.log(Level.SEVERE, e.getMessage(), e);
+            }
+        }
+        if (!validatorFound) {
+            try {
+                if (factory == null) {
+                    factory = config.buildValidatorFactory();
+                }
+                afterBeanDiscovery.addBean(new ValidatorBean(factory.getValidator()));
+                validatorFound = true;
+            } catch (final Exception e) { // getValidator can throw an exception with custom providers
+                LOGGER.log(Level.SEVERE, e.getMessage(), e);
+            }
+        }
+
+        // add our interceptor, after having added validator if needed since it is injected in the interceptor
+        if (validatorFound) {
+            afterBeanDiscovery.addBean(new BValInterceptorBean(beanManager));
+        } // else we couldn't resolve the interceptor injection point
+    }
+
+    private static ClassLoader loader() {
+        return Thread.currentThread().getContextClassLoader();
+    }
+
+    public BeanManager getBeanManager() {
+        final BeanManagerInfo bmi = getBeanManagerInfo(loader());
+
+        BeanManager result = bmi.finalBm;
+        if (result == null && bmi.cdi == null) {
+            synchronized (this) {
+                result = resolveBeanManagerViaJndi();
+                if (result == null) {
+                    result = bmi.loadTimeBm;
+                }
+                if (result == null) {
+                    bmi.cdi = false;
+                    return null;
+                }
+                bmi.cdi = true;
+                bmi.finalBm = result;
+            }
+        }
+
+        return result;
+    }
+
+    public void cleanupFinalBeanManagers(final @Observes AfterDeploymentValidation adv) {
+        for (final BeanManagerInfo bmi : bmpSingleton.bmInfos.values()) {
+            bmi.finalBm = null;
+        }
+    }
+
+    public void cleanupStoredBeanManagerOnShutdown(final @Observes BeforeShutdown beforeShutdown) {
+        bmpSingleton.bmInfos.remove(loader());
+    }
+
+    private static BeanManager resolveBeanManagerViaJndi() {
+        try {
+            return (BeanManager) new InitialContext().lookup("java:comp/BeanManager");
+        } catch (final NamingException e) {
+            return null;
+        }
+    }
+
+    private BeanManagerInfo getBeanManagerInfo(final ClassLoader cl) {
+        BeanManagerInfo bmi = bmpSingleton.bmInfos.get(cl);
+        if (bmi == null) {
+            synchronized (this) {
+                bmi = bmpSingleton.bmInfos.get(cl);
+                if (bmi == null) {
+                    bmi = new BeanManagerInfo();
+                    bmpSingleton.bmInfos.put(cl, bmi);
+                }
+            }
+        }
+        return bmi;
+    }
+
+    public static <T> Releasable<T> inject(final Class<T> clazz) {
+        try {
+            final BeanManager beanManager = getInstance().getBeanManager();
+            if (beanManager == null) {
+                return null;
+            }
+            final AnnotatedType<T> annotatedType = beanManager.createAnnotatedType(clazz);
+            final InjectionTarget<T> it = beanManager.createInjectionTarget(annotatedType);
+            final CreationalContext<T> context = beanManager.createCreationalContext(null);
+            final T instance = it.produce(context);
+            it.inject(instance, context);
+            it.postConstruct(instance);
+
+            return new Releasable<T>(context, it, instance);
+        } catch (final Exception e) {
+            // no-op
+        } catch (final NoClassDefFoundError error) {
+            // no-op
+        }
+        return null;
+    }
+
+    private static class BeanManagerInfo {
+        private BeanManager loadTimeBm = null;
+        private BeanManager finalBm = null;
+        private Boolean cdi = null;
+    }
+
+    public static class Releasable<T> {
+        private final CreationalContext<T> context;
+        private final InjectionTarget<T> injectionTarget;
+        private final T instance;
+
+        private Releasable(final CreationalContext<T> context, final InjectionTarget<T> injectionTarget, final T instance) {
+            this.context = context;
+            this.injectionTarget = injectionTarget;
+            this.instance = instance;
+        }
+
+        public void release() {
+            try {
+                injectionTarget.preDestroy(instance);
+                injectionTarget.dispose(instance);
+                context.release();
+            } catch (final Exception e) {
+                // no-op
+            } catch (final NoClassDefFoundError e) {
+                // no-op
+            }
+        }
+
+        public T getInstance() {
+            return instance;
+        }
+    }
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,266 @@
+/*
+ * 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.cdi;
+
+import org.apache.bval.jsr.util.ClassHelper;
+import org.apache.bval.jsr.util.Proxies;
+
+import javax.annotation.Priority;
+import javax.inject.Inject;
+import javax.interceptor.AroundConstruct;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.Interceptor;
+import javax.interceptor.InvocationContext;
+import javax.validation.ConstraintViolation;
+import javax.validation.ConstraintViolationException;
+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;
+import java.util.concurrent.CopyOnWriteArraySet;
+
+@Interceptor
+@BValBinding
+@Priority(4800) // TODO: maybe add it through ASM to be compliant with CDI 1.0 containers using simply this class as a template to generate another one for CDI 1.1 impl
+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;
+
+    @Inject
+    private BValExtension globalConfiguration;
+
+    private ExecutableValidator executableValidator = null;
+
+    @AroundConstruct // TODO: see previous one
+    public Object construct(final InvocationContext context) throws Exception {
+        final Constructor constructor = context.getConstructor();
+        final Class<?> targetClass = constructor.getDeclaringClass();
+        if (!isConstructorValidated(targetClass, constructor)) {
+            return context.proceed();
+        }
+
+        final ConstructorDescriptor constraints = validator.getConstraintsForClass(targetClass).getConstraintsForConstructor(constructor.getParameterTypes());
+        if (constraints == null) { // surely implicit constructor
+            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 invoke(final InvocationContext context) throws Throwable {
+        final Method method = context.getMethod();
+        final Class<?> targetClass = Proxies.classFor(context.getTarget().getClass());
+        if (!isMethodValidated(targetClass, method)) {
+            return context.proceed();
+        }
+
+        final MethodDescriptor constraintsForMethod = validator.getConstraintsForClass(targetClass).getConstraintsForMethod(method.getName(), method.getParameterTypes());
+        if (constraintsForMethod == null) {
+            return context.proceed();
+        }
+
+        initExecutableValidator();
+
+        {
+            final Set<ConstraintViolation<Object>> violations = executableValidator.validateParameters(context.getTarget(), method, context.getParameters());
+            if (!violations.isEmpty()) {
+                throw new ConstraintViolationException(violations);
+            }
+        }
+
+        final Object result = context.proceed();
+
+        {
+            final Set<ConstraintViolation<Object>> violations = executableValidator.validateReturnValue(context.getTarget(), method, result);
+            if (!violations.isEmpty()) {
+                throw new ConstraintViolationException(violations);
+            }
+        }
+
+        return result;
+    }
+
+    private boolean isConstructorValidated(final Class<?> targetClass, final Constructor<?> constructor) throws NoSuchMethodException {
+        initClassConfig(targetClass);
+
+        if (constructorValidated == null) {
+            synchronized (this) {
+                if (constructorValidated == null) {
+                    final ValidateOnExecution annotation = targetClass.getConstructor(constructor.getParameterTypes()).getAnnotation(ValidateOnExecution.class);
+                    if (annotation == null) {
+                        constructorValidated = classConfiguration.contains(ExecutableType.CONSTRUCTORS);
+                    } else {
+                        final Collection<ExecutableType> types = Arrays.asList(annotation.type());
+                        constructorValidated = types.contains(ExecutableType.CONSTRUCTORS) || types.contains(ExecutableType.IMPLICIT) || types.contains(ExecutableType.ALL);
+                    }
+                }
+            }
+        }
+
+        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) {
+                    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 : validateOnExecution.type()) {
+                            if (ExecutableType.IMPLICIT.equals(type)) { // on method it just means validate, even on getters
+                                config.add(ExecutableType.NON_GETTER_METHODS);
+                                if (lastClassWithTheMethod == null) {
+                                    config.add(ExecutableType.GETTER_METHODS);
+                                } // else the annotation was not on the method so implicit doesn't mean getters
+                            } else if (ExecutableType.ALL.equals(type)) {
+                                config.add(ExecutableType.NON_GETTER_METHODS);
+                                config.add(ExecutableType.GETTER_METHODS);
+                                break;
+                            } else if (!ExecutableType.NONE.equals(type)) {
+                                config.add(type);
+                            }
+                        }
+                        methodConfig = doValidMethod(method, config);
+                    }
+                }
+                methodConfiguration.put(method, methodConfig);
+            }
+        }
+
+        return methodConfig;
+    }
+
+    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));
+    }
+
+    private static boolean isGetter(final Method method) {
+        final String name = method.getName();
+        return (name.startsWith("get") || name.startsWith("is")) && method.getReturnType() != Void.TYPE && method.getParameterTypes().length == 0;
+    }
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,145 @@
+/*
+ * 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.cdi;
+
+import javax.enterprise.context.Dependent;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Annotated;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.InjectionPoint;
+import javax.enterprise.inject.spi.InjectionTarget;
+import javax.enterprise.inject.spi.PassivationCapable;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Member;
+import java.lang.reflect.Type;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+public class BValInterceptorBean implements Bean<BValInterceptor>, PassivationCapable {
+    private final Set<Type> types;
+    private final Set<Annotation> qualifiers;
+    private final Set<InjectionPoint> injectionPoints;
+    private final InjectionTarget<BValInterceptor> injectionTarget;
+
+    public BValInterceptorBean(final BeanManager bm) {
+        types = new HashSet<Type>();
+        types.add(BValInterceptor.class);
+        types.add(Object.class);
+
+        qualifiers = new HashSet<Annotation>();
+        qualifiers.add(DefaultLiteral.INSTANCE);
+        qualifiers.add(AnyLiteral.INSTANCE);
+
+        injectionTarget = bm.createInjectionTarget(bm.createAnnotatedType(BValInterceptor.class));
+        injectionPoints = Collections.singleton(InjectionPoint.class.cast(new BValInterceptorInjectionPoint(this, injectionTarget.getInjectionPoints().iterator().next())));
+    }
+
+    public Set<Type> getTypes() {
+        return types;
+    }
+
+    public Set<Annotation> getQualifiers() {
+        return qualifiers;
+    }
+
+    public Class<? extends Annotation> getScope() {
+        return Dependent.class;
+    }
+
+    public String getName() {
+        return null;
+    }
+
+    public boolean isNullable() {
+        return false;
+    }
+
+    public Set<InjectionPoint> getInjectionPoints() {
+        return injectionPoints;
+    }
+
+    public Class<?> getBeanClass() {
+        return BValInterceptor.class;
+    }
+
+    public Set<Class<? extends Annotation>> getStereotypes() {
+        return Collections.emptySet();
+    }
+
+    public boolean isAlternative() {
+        return false;
+    }
+
+    public BValInterceptor create(final CreationalContext<BValInterceptor> context) {
+        final BValInterceptor produced = injectionTarget.produce(context);
+        injectionTarget.inject(produced, context);
+        injectionTarget.postConstruct(produced);
+        return produced;
+    }
+
+    public void destroy(final BValInterceptor instance, final CreationalContext<BValInterceptor> context) {
+        injectionTarget.preDestroy(instance);
+        injectionTarget.dispose(instance);
+        context.release();
+    }
+
+    public String getId() {
+        return "BValInterceptor-" + hashCode();
+    }
+
+    private static class BValInterceptorInjectionPoint implements InjectionPoint {
+        private final InjectionPoint delegate;
+        private final Bean<?> bean;
+
+        public BValInterceptorInjectionPoint(final Bean<?> bean, final InjectionPoint next) {
+            this.bean = bean;
+            delegate = next;
+        }
+
+        public Type getType() {
+            return delegate.getType();
+        }
+
+        public Set<Annotation> getQualifiers() {
+            return delegate.getQualifiers();
+        }
+
+        public Bean<?> getBean() {
+            return bean;
+        }
+
+        public Member getMember() {
+            return delegate.getMember();
+        }
+
+        public Annotated getAnnotated() {
+            return delegate.getAnnotated();
+        }
+
+        public boolean isDelegate() {
+            return delegate.isDelegate();
+        }
+
+        public boolean isTransient() {
+            return delegate.isTransient();
+        }
+    }
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/DefaultLiteral.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/DefaultLiteral.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/DefaultLiteral.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/DefaultLiteral.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,31 @@
+/*
+ * 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.cdi;
+
+import javax.enterprise.inject.Default;
+import javax.enterprise.util.AnnotationLiteral;
+
+public class DefaultLiteral extends AnnotationLiteral<Default> implements Default {
+    public static final DefaultLiteral INSTANCE = new DefaultLiteral();
+
+    @Override
+    public String toString() {
+        return "@javax.enterprise.inject.Default()";
+    }
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,97 @@
+/*
+ * 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.cdi;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.InjectionPoint;
+import javax.enterprise.inject.spi.PassivationCapable;
+import javax.validation.Validator;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+public class ValidatorBean implements Bean<Validator> , PassivationCapable{
+    private final Set<Type> types;
+    private final Set<Annotation> qualifiers;
+    private final Validator instance;
+
+    public ValidatorBean(Validator validator) {
+        this.instance = validator;
+
+        types = new HashSet<Type>();
+        types.add(Validator.class);
+        types.add(Object.class);
+
+        qualifiers = new HashSet<Annotation>();
+        qualifiers.add(DefaultLiteral.INSTANCE);
+        qualifiers.add(AnyLiteral.INSTANCE);
+    }
+
+    public Set<Type> getTypes() {
+        return types;
+    }
+
+    public Set<Annotation> getQualifiers() {
+        return qualifiers;
+    }
+
+    public Class<? extends Annotation> getScope() {
+        return ApplicationScoped.class;
+    }
+
+    public String getName() {
+        return null;
+    }
+
+    public boolean isNullable() {
+        return false;
+    }
+
+    public Set<InjectionPoint> getInjectionPoints() {
+        return Collections.emptySet();
+    }
+
+    public Class<?> getBeanClass() {
+        return Validator.class;
+    }
+
+    public Set<Class<? extends Annotation>> getStereotypes() {
+        return Collections.emptySet();
+    }
+
+    public boolean isAlternative() {
+        return false;
+    }
+
+    public Validator create(final CreationalContext<Validator> context) {
+        return instance;
+    }
+
+    public void destroy(final Validator instance, final CreationalContext<Validator> context) {
+        // no-op
+    }
+
+    public String getId() {
+        return "BValValidator-" + hashCode();
+    }
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,97 @@
+/*
+ * 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.cdi;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.InjectionPoint;
+import javax.enterprise.inject.spi.PassivationCapable;
+import javax.validation.ValidatorFactory;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+public class ValidatorFactoryBean implements Bean<ValidatorFactory> , PassivationCapable{
+    private final Set<Type> types;
+    private final Set<Annotation> qualifiers;
+    private final ValidatorFactory instance;
+
+    public ValidatorFactoryBean(final ValidatorFactory validatorFactory) {
+        this.instance = validatorFactory;
+
+        types = new HashSet<Type>();
+        types.add(ValidatorFactory.class);
+        types.add(Object.class);
+
+        qualifiers = new HashSet<Annotation>();
+        qualifiers.add(DefaultLiteral.INSTANCE);
+        qualifiers.add(AnyLiteral.INSTANCE);
+    }
+
+    public Set<Type> getTypes() {
+        return types;
+    }
+
+    public Set<Annotation> getQualifiers() {
+        return qualifiers;
+    }
+
+    public Class<? extends Annotation> getScope() {
+        return ApplicationScoped.class;
+    }
+
+    public String getName() {
+        return null;
+    }
+
+    public boolean isNullable() {
+        return false;
+    }
+
+    public Set<InjectionPoint> getInjectionPoints() {
+        return Collections.emptySet();
+    }
+
+    public Class<?> getBeanClass() {
+        return ValidatorFactory.class;
+    }
+
+    public Set<Class<? extends Annotation>> getStereotypes() {
+        return Collections.emptySet();
+    }
+
+    public boolean isAlternative() {
+        return false;
+    }
+
+    public ValidatorFactory create(final CreationalContext<ValidatorFactory> context) {
+        return instance;
+    }
+
+    public void destroy(final ValidatorFactory instance, final CreationalContext<ValidatorFactory> context) {
+        instance.close();
+    }
+
+    public String getId() {
+        return "BValValidatorFactory-" + hashCode();
+    }
+}

Added: bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/AssertFalseValidator.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/AssertFalseValidator.java?rev=1517540&view=auto
==============================================================================
--- bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/AssertFalseValidator.java (added)
+++ bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/constraints/AssertFalseValidator.java Mon Aug 26 13:59:15 2013
@@ -0,0 +1,37 @@
+/*
+ * 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.constraints;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.constraints.AssertFalse;
+
+/**
+ * Description: assert that value is false<br/>
+ */
+public class AssertFalseValidator implements ConstraintValidator<AssertFalse, Boolean> {
+
+    public void initialize(AssertFalse annotation) {
+    }
+
+    public boolean isValid(Boolean value, ConstraintValidatorContext context) {
+        return value == null || !value;
+    }
+
+}
\ No newline at end of file