Author: epbernard
Date: 2009-09-24 12:55:13 -0400 (Thu, 24 Sep 2009)
New Revision: 17539
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/Configuration.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/common/TCKValidationProvider.java
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/common/TCKValidatorConfiguration.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/engine/ConfigurationImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/engine/ValidatorFactoryImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/util/LazyValidatorFactory.java
Log:
BVAL-182 Add getDefaultTraversableResolver and getDefaultConstraintValidatorFactory to
Configuration
BVAL-183 Add getTraversableResolver and getConstraintValidatorFactory to ValidatorFactory
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/Configuration.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/Configuration.java 2009-09-24
15:48:45 UTC (rev 17538)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/Configuration.java 2009-09-24
16:55:13 UTC (rev 17539)
@@ -164,6 +164,33 @@
MessageInterpolator getDefaultMessageInterpolator();
/**
+ * Return an implementation of the TraversableResolver interface following the
+ * default TraversableResolver defined in the specification:
+ * <ul>
+ * <li>if Java Persistence is available in the runtime environment,
+ * a property is considered reachable if Java Persistence considers
+ * the property as loaded</li>
+ * <li>if Java Persistence is not available in the runtime environment,
+ * all properties are considered reachable</li>
+ * <li>all properties are considered cascadable.</li>
+ * </ul>
+ *
+ * @return default TraversableResolver implementation compliant with the specification
+ */
+ TraversableResolver getDefaultTraversableResolver();
+
+ /**
+ * Return an implementation of the ConstraintValidatorFactory interface following the
+ * default ConstraintValidatorFactory defined in the specification:
+ * <ul>
+ * <li>uses the public no-arg constructor of the
<code>ConstraintValidator</code></li>
+ * </ul>
+ *
+ * @return default ConstraintValidatorFactory implementation compliant with the
specification
+ */
+ ConstraintValidatorFactory getDefaultConstraintValidatorFactory();
+
+ /**
* Build a ValidatorFactory implementation.
*
* @return ValidatorFactory
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java 2009-09-24
15:48:45 UTC (rev 17538)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java 2009-09-24
16:55:13 UTC (rev 17539)
@@ -52,6 +52,25 @@
MessageInterpolator getMessageInterpolator();
/**
+ * Returns the <code>TraversableResolver</code> instance configured
+ * at initialization time for the <code>ValidatorFactory<code>.
+ * This is the instance used by #getValidator().
+ *
+ * @return TraversableResolver instance.
+ */
+ TraversableResolver getTraversableResolver();
+
+ /**
+ * Returns the <code>ConstraintValidatorFactory</code> instance
+ * configured at initialization time for the
+ * <code>ValidatorFactory<code>.
+ * This is the instance used by #getValidator().
+ *
+ * @return ConstraintValidatorFactory instance.
+ */
+ ConstraintValidatorFactory getConstraintValidatorFactory();
+
+ /**
* Return an object of the specified type to allow access to the
* provider-specific API. If the Bean Validation provider
* implementation does not support the specified class, the
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/common/TCKValidationProvider.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/common/TCKValidationProvider.java 2009-09-24
15:48:45 UTC (rev 17538)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/common/TCKValidationProvider.java 2009-09-24
16:55:13 UTC (rev 17539)
@@ -22,6 +22,8 @@
import javax.validation.Validator;
import javax.validation.ValidatorContext;
import javax.validation.ValidatorFactory;
+import javax.validation.TraversableResolver;
+import javax.validation.ConstraintValidatorFactory;
import javax.validation.spi.BootstrapState;
import javax.validation.spi.ConfigurationState;
import javax.validation.spi.ValidationProvider;
@@ -57,6 +59,14 @@
throw new UnsupportedOperationException();
}
+ public TraversableResolver getTraversableResolver() {
+ throw new UnsupportedOperationException();
+ }
+
+ public ConstraintValidatorFactory getConstraintValidatorFactory() {
+ throw new UnsupportedOperationException();
+ }
+
public <T> T unwrap(Class<T> type) {
throw new UnsupportedOperationException();
}
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/common/TCKValidatorConfiguration.java
===================================================================
---
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/common/TCKValidatorConfiguration.java 2009-09-24
15:48:45 UTC (rev 17538)
+++
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/common/TCKValidatorConfiguration.java 2009-09-24
16:55:13 UTC (rev 17539)
@@ -67,6 +67,14 @@
throw new UnsupportedOperationException();
}
+ public TraversableResolver getDefaultTraversableResolver() {
+ throw new UnsupportedOperationException();
+ }
+
+ public ConstraintValidatorFactory getDefaultConstraintValidatorFactory() {
+ throw new UnsupportedOperationException();
+ }
+
public ValidatorFactory buildValidatorFactory() {
return provider.buildValidatorFactory( null );
}
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/engine/ConfigurationImpl.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/engine/ConfigurationImpl.java 2009-09-24
15:48:45 UTC (rev 17538)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/engine/ConfigurationImpl.java 2009-09-24
16:55:13 UTC (rev 17539)
@@ -55,7 +55,7 @@
private final MessageInterpolator defaultMessageInterpolator = new
ResourceBundleMessageInterpolator();
private final TraversableResolver defaultTraversableResolver = new
DefaultTraversableResolver();
- private final ConstraintValidatorFactory defaultValidatorFactory = new
ConstraintValidatorFactoryImpl();
+ private final ConstraintValidatorFactory defaultConstraintValidatorFactory = new
ConstraintValidatorFactoryImpl();
private final ValidationProviderResolver providerResolver;
private ValidationBootstrapParameters validationBootstrapParameters;
@@ -171,6 +171,14 @@
return defaultMessageInterpolator;
}
+ public TraversableResolver getDefaultTraversableResolver() {
+ return defaultTraversableResolver;
+ }
+
+ public ConstraintValidatorFactory getDefaultConstraintValidatorFactory() {
+ return defaultConstraintValidatorFactory;
+ }
+
private boolean isSpecificProvider() {
return validationBootstrapParameters.provider != null;
}
@@ -189,7 +197,7 @@
validationBootstrapParameters.traversableResolver = defaultTraversableResolver;
}
if ( validationBootstrapParameters.constraintValidatorFactory == null ) {
- validationBootstrapParameters.constraintValidatorFactory = defaultValidatorFactory;
+ validationBootstrapParameters.constraintValidatorFactory =
defaultConstraintValidatorFactory;
}
}
else {
@@ -224,7 +232,7 @@
validationBootstrapParameters.constraintValidatorFactory =
xmlParameters.constraintValidatorFactory;
}
else {
- validationBootstrapParameters.constraintValidatorFactory = defaultValidatorFactory;
+ validationBootstrapParameters.constraintValidatorFactory =
defaultConstraintValidatorFactory;
}
}
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/engine/ValidatorFactoryImpl.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/engine/ValidatorFactoryImpl.java 2009-09-24
15:48:45 UTC (rev 17538)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/engine/ValidatorFactoryImpl.java 2009-09-24
16:55:13 UTC (rev 17539)
@@ -73,6 +73,14 @@
return messageInterpolator;
}
+ public TraversableResolver getTraversableResolver() {
+ return traversableResolver;
+ }
+
+ public ConstraintValidatorFactory getConstraintValidatorFactory() {
+ return constraintValidatorFactory;
+ }
+
public <T> T unwrap(Class<T> type) {
throw new ValidationException( "Type " + type + " not supported"
);
}
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/util/LazyValidatorFactory.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/util/LazyValidatorFactory.java 2009-09-24
15:48:45 UTC (rev 17538)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/util/LazyValidatorFactory.java 2009-09-24
16:55:13 UTC (rev 17539)
@@ -23,6 +23,8 @@
import javax.validation.MessageInterpolator;
import javax.validation.Configuration;
import javax.validation.Validation;
+import javax.validation.TraversableResolver;
+import javax.validation.ConstraintValidatorFactory;
/**
* This class lazily initialize the ValidatorFactory on the first usage
@@ -85,6 +87,14 @@
return getDelegate().getMessageInterpolator();
}
+ public TraversableResolver getTraversableResolver() {
+ return getDelegate().getTraversableResolver();
+ }
+
+ public ConstraintValidatorFactory getConstraintValidatorFactory() {
+ return getDelegate().getConstraintValidatorFactory();
+ }
+
public <T> T unwrap(Class<T> clazz) {
return getDelegate().unwrap( clazz );
}
Show replies by thread