You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/02/14 14:46:59 UTC

svn commit: r1243918 - in /openejb/trunk/openejb/container/openejb-core/src: main/java/org/apache/openejb/assembler/classic/ test/java/org/apache/openejb/bval/ test/java/org/apache/openejb/bval/util/ test/resources/META-INF/services/

Author: rmannibucau
Date: Tue Feb 14 13:46:59 2012
New Revision: 1243918

URL: http://svn.apache.org/viewvc?rev=1243918&view=rev
Log:
OPENEJB-1773 using a custom valition provider to be able to switch easily at runtime of provider

Added:
    openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/util/
    openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/util/CustomValidatorProvider.java
Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
    openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/BeanValidationCustomProviderTest.java
    openejb/trunk/openejb/container/openejb-core/src/test/resources/META-INF/services/javax.validation.spi.ValidationProvider

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java?rev=1243918&r1=1243917&r2=1243918&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java Tue Feb 14 13:46:59 2012
@@ -96,7 +96,7 @@ public final class ValidatorBuilder {
 
         String providerClassName = info.providerClassName;
         if (providerClassName == null) {
-            providerClassName = System.getProperty(VALIDATION_PROVIDER_KEY, "org.apache.bval.jsr303.ApacheValidationProvider");
+            providerClassName = System.getProperty(VALIDATION_PROVIDER_KEY);
         }
 
         if (providerClassName != null) {

Modified: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/BeanValidationCustomProviderTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/BeanValidationCustomProviderTest.java?rev=1243918&r1=1243917&r2=1243918&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/BeanValidationCustomProviderTest.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/BeanValidationCustomProviderTest.java Tue Feb 14 13:46:59 2012
@@ -16,7 +16,9 @@
  */
 package org.apache.openejb.bval;
 
+import org.apache.bval.jsr303.ApacheValidationProvider;
 import org.apache.openejb.assembler.classic.ValidatorBuilder;
+import org.apache.openejb.bval.util.CustomValidatorProvider;
 import org.apache.openejb.jee.Empty;
 import org.apache.openejb.jee.StatelessBean;
 import org.apache.openejb.junit.ApplicationComposer;
@@ -31,19 +33,7 @@ import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import javax.ejb.TransactionAttribute;
 import javax.ejb.TransactionAttributeType;
-import javax.validation.ConstraintValidatorFactory;
-import javax.validation.ConstraintViolation;
-import javax.validation.MessageInterpolator;
-import javax.validation.TraversableResolver;
 import javax.validation.Validator;
-import javax.validation.ValidatorContext;
-import javax.validation.ValidatorFactory;
-import javax.validation.metadata.BeanDescriptor;
-import javax.validation.spi.BootstrapState;
-import javax.validation.spi.ConfigurationState;
-import javax.validation.spi.ValidationProvider;
-import java.io.InputStream;
-import java.util.Set;
 
 import static org.junit.Assert.assertTrue;
 
@@ -54,11 +44,13 @@ public class BeanValidationCustomProvide
 
     @BeforeClass
     public static void initProvider() {
+        CustomValidatorProvider.provider = new CustomValidatorProvider.NullValidatorProvider();
         System.setProperty(ValidatorBuilder.VALIDATION_PROVIDER_KEY, CustomValidatorProvider.class.getName());
     }
 
     @AfterClass
     public static void resetProvider() {
+        CustomValidatorProvider.provider = new ApacheValidationProvider();
         System.clearProperty(ValidatorBuilder.VALIDATION_PROVIDER_KEY);
     }
 
@@ -82,156 +74,6 @@ public class BeanValidationCustomProvide
 
     @Test
     public void valid() {
-        assertTrue(bean.getValidator() instanceof CustomValidator);
-    }
-
-    public static class CustomValidatorProvider implements ValidationProvider<NullConfig> {
-        @Override
-        public NullConfig createSpecializedConfiguration(BootstrapState state) {
-            return new NullConfig();
-        }
-
-        @Override
-        public javax.validation.Configuration<?> createGenericConfiguration(BootstrapState state) {
-            return new NullConfig();
-        }
-
-        @Override
-        public ValidatorFactory buildValidatorFactory(ConfigurationState configurationState) {
-            return null;
-        }
-    }
-
-    private static class NullConfig implements javax.validation.Configuration<NullConfig> {
-        @Override
-        public NullConfig ignoreXmlConfiguration() {
-            return null;
-        }
-
-        @Override
-        public NullConfig messageInterpolator(MessageInterpolator interpolator) {
-            return null;
-        }
-
-        @Override
-        public NullConfig traversableResolver(TraversableResolver resolver) {
-            return null;
-        }
-
-        @Override
-        public NullConfig constraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
-            return null;
-        }
-
-        @Override
-        public NullConfig addMapping(InputStream stream) {
-            return null;
-        }
-
-        @Override
-        public NullConfig addProperty(String name, String value) {
-            return null;
-        }
-
-        @Override
-        public MessageInterpolator getDefaultMessageInterpolator() {
-            return null;
-        }
-
-        @Override
-        public TraversableResolver getDefaultTraversableResolver() {
-            return null;
-        }
-
-        @Override
-        public ConstraintValidatorFactory getDefaultConstraintValidatorFactory() {
-            return null;
-        }
-
-        @Override
-        public ValidatorFactory buildValidatorFactory() {
-            return new CustomValidatorFactory();
-        }
-    }
-
-    private static class CustomValidatorFactory implements ValidatorFactory {
-        @Override
-        public Validator getValidator() {
-            return new CustomValidator();
-        }
-
-        @Override
-        public ValidatorContext usingContext() {
-            return new CustomValidatorContext();
-        }
-
-        @Override
-        public MessageInterpolator getMessageInterpolator() {
-            return null;
-        }
-
-        @Override
-        public TraversableResolver getTraversableResolver() {
-            return null;
-        }
-
-        @Override
-        public ConstraintValidatorFactory getConstraintValidatorFactory() {
-            return null;
-        }
-
-        @Override
-        public <T> T unwrap(Class<T> type) {
-            return null;
-        }
-    }
-
-    private static class CustomValidatorContext implements ValidatorContext {
-        @Override
-        public ValidatorContext messageInterpolator(MessageInterpolator messageInterpolator) {
-            return null;
-        }
-
-        @Override
-        public ValidatorContext traversableResolver(TraversableResolver traversableResolver) {
-            return null;
-        }
-
-        @Override
-        public ValidatorContext constraintValidatorFactory(ConstraintValidatorFactory factory) {
-            return null;
-        }
-
-        @Override
-        public Validator getValidator() {
-            return new CustomValidator();
-        }
-    }
-
-    private static class CustomValidator implements Validator {
-        @Override
-        public <T> Set<ConstraintViolation<T>> validate(T object, Class<?>... groups) {
-            return null;
-        }
-
-        @Override
-        public <T> Set<ConstraintViolation<T>> validateProperty(T object, String propertyName, Class<?>... groups) {
-            return null;
-        }
-
-        @Override
-        public <T> Set<ConstraintViolation<T>> validateValue(Class<T> beanType, String propertyName, Object value, Class<?>... groups) {
-            return null;
-        }
-
-        @Override
-        public BeanDescriptor getConstraintsForClass(Class<?> clazz) {
-            return null;
-        }
-
-        @Override
-        public <T> T unwrap(Class<T> type) {
-            return null;
-        }
+        assertTrue(bean.getValidator() instanceof CustomValidatorProvider.CustomValidator);
     }
 }

Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/util/CustomValidatorProvider.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/util/CustomValidatorProvider.java?rev=1243918&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/util/CustomValidatorProvider.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/bval/util/CustomValidatorProvider.java Tue Feb 14 13:46:59 2012
@@ -0,0 +1,195 @@
+package org.apache.openejb.bval.util;
+
+import org.apache.bval.jsr303.ApacheValidationProvider;
+import org.apache.bval.jsr303.ApacheValidatorConfiguration;
+import org.apache.bval.jsr303.ConfigurationImpl;
+
+import javax.validation.ConstraintValidatorFactory;
+import javax.validation.ConstraintViolation;
+import javax.validation.MessageInterpolator;
+import javax.validation.TraversableResolver;
+import javax.validation.Validator;
+import javax.validation.ValidatorContext;
+import javax.validation.ValidatorFactory;
+import javax.validation.metadata.BeanDescriptor;
+import javax.validation.spi.BootstrapState;
+import javax.validation.spi.ConfigurationState;
+import javax.validation.spi.ValidationProvider;
+import java.io.InputStream;
+import java.util.Set;
+
+// simply a provider which is by default apache validation provider
+// but it can be changed for test purpose
+public class CustomValidatorProvider implements ValidationProvider<ApacheValidatorConfiguration> {
+    public static ValidationProvider provider = new ApacheValidationProvider();
+
+    @Override
+    public ApacheValidatorConfiguration createSpecializedConfiguration(BootstrapState state) {
+        return (ApacheValidatorConfiguration) provider.createSpecializedConfiguration(state);
+    }
+
+    @Override
+    public javax.validation.Configuration<?> createGenericConfiguration(BootstrapState state) {
+        return provider.createGenericConfiguration(state);
+    }
+
+    @Override
+    public ValidatorFactory buildValidatorFactory(ConfigurationState configurationState) {
+        return provider.buildValidatorFactory(configurationState);
+    }
+
+    public static class NullValidatorProvider implements ValidationProvider<ApacheValidatorConfiguration> {
+        @Override
+        public ApacheValidatorConfiguration createSpecializedConfiguration(BootstrapState state) {
+            return new NullConfig(state, provider);
+        }
+
+        @Override
+        public javax.validation.Configuration<?> createGenericConfiguration(BootstrapState state) {
+            return new NullConfig(state, provider);
+        }
+
+        @Override
+        public ValidatorFactory buildValidatorFactory(ConfigurationState configurationState) {
+            return null;
+        }
+    }
+
+
+    public static class NullConfig extends ConfigurationImpl {
+        public NullConfig(BootstrapState aState, ValidationProvider<?> aProvider) {
+            super(aState, aProvider);
+        }
+
+        @Override
+        public NullConfig ignoreXmlConfiguration() {
+            return null;
+        }
+
+        @Override
+        public NullConfig messageInterpolator(MessageInterpolator interpolator) {
+            return null;
+        }
+
+        @Override
+        public NullConfig traversableResolver(TraversableResolver resolver) {
+            return null;
+        }
+
+        @Override
+        public NullConfig constraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
+            return null;
+        }
+
+        @Override
+        public NullConfig addMapping(InputStream stream) {
+            return null;
+        }
+
+        @Override
+        public NullConfig addProperty(String name, String value) {
+            return null;
+        }
+
+        @Override
+        public MessageInterpolator getDefaultMessageInterpolator() {
+            return null;
+        }
+
+        @Override
+        public TraversableResolver getDefaultTraversableResolver() {
+            return null;
+        }
+
+        @Override
+        public ConstraintValidatorFactory getDefaultConstraintValidatorFactory() {
+            return null;
+        }
+
+        @Override
+        public ValidatorFactory buildValidatorFactory() {
+            return new CustomValidatorFactory();
+        }
+    }
+
+    public static class CustomValidatorFactory implements ValidatorFactory {
+        @Override
+        public Validator getValidator() {
+            return new CustomValidator();
+        }
+
+        @Override
+        public ValidatorContext usingContext() {
+            return new CustomValidatorContext();
+        }
+
+        @Override
+        public MessageInterpolator getMessageInterpolator() {
+            return null;
+        }
+
+        @Override
+        public TraversableResolver getTraversableResolver() {
+            return null;
+        }
+
+        @Override
+        public ConstraintValidatorFactory getConstraintValidatorFactory() {
+            return null;
+        }
+
+        @Override
+        public <T> T unwrap(Class<T> type) {
+            return null;
+        }
+    }
+
+    public static class CustomValidatorContext implements ValidatorContext {
+        @Override
+        public ValidatorContext messageInterpolator(MessageInterpolator messageInterpolator) {
+            return null;
+        }
+
+        @Override
+        public ValidatorContext traversableResolver(TraversableResolver traversableResolver) {
+            return null;
+        }
+
+        @Override
+        public ValidatorContext constraintValidatorFactory(ConstraintValidatorFactory factory) {
+            return null;
+        }
+
+        @Override
+        public Validator getValidator() {
+            return new CustomValidator();
+        }
+    }
+
+    public static class CustomValidator implements Validator {
+        @Override
+        public <T> Set<ConstraintViolation<T>> validate(T object, Class<?>... groups) {
+            return null;
+        }
+
+        @Override
+        public <T> Set<ConstraintViolation<T>> validateProperty(T object, String propertyName, Class<?>... groups) {
+            return null;
+        }
+
+        @Override
+        public <T> Set<ConstraintViolation<T>> validateValue(Class<T> beanType, String propertyName, Object value, Class<?>... groups) {
+            return null;
+        }
+
+        @Override
+        public BeanDescriptor getConstraintsForClass(Class<?> clazz) {
+            return null;
+        }
+
+        @Override
+        public <T> T unwrap(Class<T> type) {
+            return null;
+        }
+    }
+}

Modified: openejb/trunk/openejb/container/openejb-core/src/test/resources/META-INF/services/javax.validation.spi.ValidationProvider
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/resources/META-INF/services/javax.validation.spi.ValidationProvider?rev=1243918&r1=1243917&r2=1243918&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/resources/META-INF/services/javax.validation.spi.ValidationProvider (original)
+++ openejb/trunk/openejb/container/openejb-core/src/test/resources/META-INF/services/javax.validation.spi.ValidationProvider Tue Feb 14 13:46:59 2012
@@ -1 +1 @@
-org.apache.openejb.bval.BeanValidationCustomProviderTest$CustomValidatorProvider
+org.apache.openejb.bval.util.CustomValidatorProvider