[hibernate-commits] Hibernate SVN: r16369 - beanvalidation/trunk/validation-api/src/main/java/javax/validation/spi and 2 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Apr 21 05:55:35 EDT 2009


Author: epbernard
Date: 2009-04-21 05:55:35 -0400 (Tue, 21 Apr 2009)
New Revision: 16369

Modified:
   beanvalidation/trunk/validation-api/src/main/java/javax/validation/Validation.java
   beanvalidation/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java
   validator/trunk/hibernate-validator/pom.xml
   validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConfigurationImpl.java
Log:
BVAL-149 Provide access to the ValidationProviderResolver via BootstrapState

Modified: beanvalidation/trunk/validation-api/src/main/java/javax/validation/Validation.java
===================================================================
--- beanvalidation/trunk/validation-api/src/main/java/javax/validation/Validation.java	2009-04-21 09:51:00 UTC (rev 16368)
+++ beanvalidation/trunk/validation-api/src/main/java/javax/validation/Validation.java	2009-04-21 09:55:35 UTC (rev 16369)
@@ -199,13 +199,16 @@
 						"builder is mandatory. Use Validation.byDefaultProvider() to use the generic provider discovery mechanism"
 				);
 			}
+			GenericBootstrapImpl state = new GenericBootstrapImpl();
 			if ( resolver == null ) {
-				resolver = new DefaultValidationProviderResolver();
+				resolver = state.getDefaultValidationProviderResolver();
 			}
+			else {
+				//stay null if no resolver is defined
+				state.providerResolver( resolver );
+			}
 			for ( ValidationProvider provider : resolver.getValidationProviders() ) {
 				if ( provider.isSuitable( configurationType ) ) {
-					GenericBootstrapImpl state = new GenericBootstrapImpl();
-					state.providerResolver( resolver );
 					return provider.createSpecializedConfiguration( state, configurationType );
 				}
 			}
@@ -217,6 +220,7 @@
 	private static class GenericBootstrapImpl implements GenericBootstrap, BootstrapState {
 
 		private ValidationProviderResolver resolver;
+		private ValidationProviderResolver defaultResolver;
 
 		public GenericBootstrap providerResolver(ValidationProviderResolver resolver) {
 			this.resolver = resolver;
@@ -227,9 +231,16 @@
 			return resolver;
 		}
 
+		public ValidationProviderResolver getDefaultValidationProviderResolver() {
+			if (defaultResolver == null) {
+				defaultResolver = new DefaultValidationProviderResolver();
+			}
+			return defaultResolver;
+		}
+
 		public Configuration<?> configure() {
 			ValidationProviderResolver resolver = this.resolver == null ?
-					new DefaultValidationProviderResolver() :
+					getDefaultValidationProviderResolver() :
 					this.resolver;
 
 			if ( resolver.getValidationProviders().size() == 0 ) {

Modified: beanvalidation/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java
===================================================================
--- beanvalidation/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java	2009-04-21 09:51:00 UTC (rev 16368)
+++ beanvalidation/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java	2009-04-21 09:55:35 UTC (rev 16369)
@@ -9,10 +9,17 @@
  */
 public interface BootstrapState {
 	/**
-	 * returns the user defined ValidationProviderResolver strategy instance or <code>null</code>
+	 * User defined ValidationProviderResolver strategy instance or <code>null</code>
 	 * if undefined.
 	 *
 	 * @return ValidationProviderResolver instance or null
 	 */
 	ValidationProviderResolver getValidationProviderResolver();
+
+	/**
+	 * Specification default ValidationProviderResolver strategy instance
+	 * 
+	 * @return default implementation of ValidationProviderResolver
+	 */
+	ValidationProviderResolver getDefaultValidationProviderResolver();
 }

Modified: validator/trunk/hibernate-validator/pom.xml
===================================================================
--- validator/trunk/hibernate-validator/pom.xml	2009-04-21 09:51:00 UTC (rev 16368)
+++ validator/trunk/hibernate-validator/pom.xml	2009-04-21 09:55:35 UTC (rev 16369)
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>javax.validation</groupId>
             <artifactId>validation-api</artifactId>
-            <version>1.0.CR1</version>
+            <version>1.0.CR2-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>

Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConfigurationImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConfigurationImpl.java	2009-04-21 09:51:00 UTC (rev 16368)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConfigurationImpl.java	2009-04-21 09:55:35 UTC (rev 16369)
@@ -78,7 +78,7 @@
 
 	public ConfigurationImpl(BootstrapState state) {
 		if ( state.getValidationProviderResolver() == null ) {
-			this.providerResolver = new DefaultValidationProviderResolver();
+			this.providerResolver = state.getDefaultValidationProviderResolver();
 		}
 		else {
 			this.providerResolver = state.getValidationProviderResolver();




More information about the hibernate-commits mailing list