[bv-dev] BVAL-238 Dependency injection in ConstraintViolation

Sebastian Thomschke sebastian.thomschke at web.de
Sat Oct 22 13:17:57 EDT 2011


In OVal the advantage is, that we can control when an object is 
instantiated. If I would leave that to e.g. Spring and rely on 
ApplicationContext.getBean(...) it might be that Spring reuses objects 
and gives me the same instance twice if wrongly configured (not as a 
prototype bean).

Regards,
Seb

On 22.10.2011 10:46, Emmanuel Bernard wrote:
> BTW, Sebastian, do you have a reason to still control the object 
> instantiation in OVal?
>
> I wonder if there are any additional advantages besides the ability to 
> chain initialization listeners.
>
> On 22 oct. 2011, at 10:39, Emmanuel Bernard <emmanuel at hibernate.org 
> <mailto:emmanuel at hibernate.org>> wrote:
>
>> Indeed that's a typo for ConstraintViolationFactory.
>>
>> In your approach, the object cannot use constructor injection, correct?
>> What does Spring Framework do in this case, raise an exception?
>>
>> On 22 oct. 2011, at 01:33, Sebastian Thomschke 
>> <sebastian.thomschke at web.de <mailto:sebastian.thomschke at web.de>> wrote:
>>
>>> Hi Emmanuel,
>>>
>>> the proposal talks about a ConstraintViolationFactory. I guess you 
>>> meant ConstraintValidatorFactory?
>>>
>>> In OVal dependency injection works like this: OVal instantiates the 
>>> validator (check) object itself and then passes it to an optional 
>>> CheckInitializationListener which can wire required dependencies. So 
>>> the DI system does not create the validator instances but configures 
>>> the dependencies.
>>>
>>> For Spring DI in OVal you do:
>>>   ClassPathXmlApplicationContext ctx = new 
>>> ClassPathXmlApplicationContext("SpringInjectorTest.xml", 
>>> SpringInjectorTest.class);
>>>   AnnotationsConfigurer myConfigurer = new AnnotationsConfigurer();
>>>   myConfigurer.addCheckInitializationListener(new 
>>> BeanInjectingCheckInitializationListener());
>>>   Validator v = new Validator(myConfigurer);
>>>
>>> Where the BeanInjectingCheckInitializationListener is implemented like:
>>>
>>>   public class BeanInjectingCheckInitializationListener implements 
>>> CheckInitializationListener {
>>>     public void onCheckInitialized(final Check newCheck) {
>>>         // wire the dependencies
>>>         SpringInjector.get().inject(newCheck);
>>>       }
>>>   }
>>>
>>> For Bean Validation this could look like:
>>> |ValidatorFactory factory = Validation
>>>    .byDefaultProvider()
>>>    .configure()
>>>    .addValidatiorInitializationListener(new SpringBeanInjectingValidatorInitializationListener())
>>>    .buildValidatorFactory();
>>>
>>> Regards,
>>>
>>> Seb
>>> |
>>>
>>> On 21.10.2011 23:55, Emmanuel Bernard wrote:
>>>> Hi team,
>>>> I've been thinking about BVAL-238 and came up with a first round of ideas and open questions.
>>>> It is available herehttp://beanvalidation.org/proposals/BVAL-238/
>>>>
>>>> Please give me your feedback. I think this issue can be closed quite quickly.
>>>>
>>>> I've also created a proposals section on the website that will contain such work in progress proposals before inclusion in the spec proper. Check outhttp://beanvalidation.org/proposals
>>>>
>>>> On a side note, for casual website editing, you can use GitHub's `Edit this file` button (seehttps://github.com/beanvalidation/beanvalidation.org/blob/master/proposals/BVAL-238.md  ). It's not quite a wiki but that's pretty close. One thing you cannot do is create a new file unfortunately. Anyone that have asked for write access should see this button.
>>>>
>>>> Emmanuel
>>>> _______________________________________________
>>>> beanvalidation-dev mailing list
>>>> beanvalidation-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>>>
>>> _______________________________________________
>>> beanvalidation-dev mailing list
>>> beanvalidation-dev at lists.jboss.org 
>>> <mailto:beanvalidation-dev at lists.jboss.org>
>>> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>> _______________________________________________
>> beanvalidation-dev mailing list
>> beanvalidation-dev at lists.jboss.org 
>> <mailto:beanvalidation-dev at lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>
>
> _______________________________________________
> beanvalidation-dev mailing list
> beanvalidation-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/beanvalidation-dev/attachments/20111022/439931e3/attachment.html 


More information about the beanvalidation-dev mailing list