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