[hibernate-dev] Fail fast feature for Hibernate Validator

Emmanuel Bernard emmanuel at hibernate.org
Wed Oct 6 03:41:30 EDT 2010


> 
> Too sad, that javax.validation.ValidatorContext is not defined as
> 
> public interface ValidatorContext <V extends ValidatorContext<V>> {
> 
> }
> 
> If it were, we wouldn't need a dedicated method HibernateValidatorFactory#usingHibernateContext(), but HibernateValidatorFactory could be defined as
> 
> public interface HibernateValidatorFactory extends ValidatorFactory {
> 
>     HibernateValidatorContext usingContext();   
>     
> }
> 
> then, allowing the validator to be retrieved like that:
> 
> failFastValidator =
>                 factory.unwrap(HibernateValidatorFactory.class)
>                     .usingContext()
>                         .maxConstraintViolationCount(5)
>                     .getValidator();
> 

Yes I've hesitated back in the days and thought unwrap was enough :(
I wonder if we can retroactively enhance it without breaking clients.

> note that we can also envision something like
> 
> ailFastValidator = regularValidator.unwrap(HibernateValidatorFactory.class)
>                                        .usingHibernateContext()
>                                                .failFast(true)
>                                        .getValidator();
> 
> I don't quite understand this approach, you want to unwrap a validator into a validator factory? Or do you think of re-configuring a once retrieved validator? Retrieving a new validator from an existing one seems akward to me.

The former: unwrap a ValidatorFactory out of an existing Validator without changing the existing validator behavior.


More information about the hibernate-dev mailing list