On Thursday, 17 January 2013, Gunnar Morling &lt;<a href="mailto:gunnar@hibernate.org">gunnar@hibernate.org</a>&gt; wrote:<br>&gt;&gt; I guess preferring consistency across projects rather than within them.<br>&gt; Ok, I see.<br>
&gt; I&#39;d expect a user typically to do several projects using one and the same of these integration technologies instead of using Bean Validation once with CDI, once with Spring etc. So wouldn&#39;t it be beneficial for a user for the sake of consistency to configure which methods are subject to interception according to the paradigms of their platform (CDI, Spring etc.)?<br>
<br><br>Yes, but I think it&#39;s a balance; I&#39;d probably expect more of a mixed picture rather than all one framework or no framework used more than once. Mileage will undoubtedly vary though and I certainly don&#39;t hold a strong preference on this thin basis.<br>
<br><br>&gt; To make a case against my own argument though, I think there is right now no way of globally configuring things such as &quot;include getters&quot; in CDI. This could be done using e.g. a property in beans.xml, but AFAIK there is no such thing as properties there as of today. Not sure whether time allows to try to get this in.<br>
&gt; Advantages I see of leaving this to integration technologies is that we don&#39;t have to deal with inheritance rules of the related configuration and from a BV perspective all methods would be handled equally during validation.<br>
&gt; --Gunnar<br>&gt;<br>&gt; 2013/1/16 Rich Midwinter &lt;<a href="mailto:rich.midwinter@gmail.com">rich.midwinter@gmail.com</a>&gt;<br>&gt;&gt;<br>&gt;&gt; I&#39;m torn on this one, Gunnar makes a good argument as ever. Defined by the BV spec would get my vote though, I guess preferring consistency across projects rather than within them.<br>
&gt;&gt;<br>&gt;&gt; Rich.<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; On Wednesday, 16 January 2013, Michael Nascimento &lt;<a href="mailto:misterm@gmail.com">misterm@gmail.com</a>&gt; wrote:<br>&gt;&gt; &gt; I think BV should fully specify the behaviour, i.e., it should be some<br>
&gt;&gt; &gt; sort of flag supported by our spec, not the technology consuming it.<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; Regards,<br>&gt;&gt; &gt; Michael<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; On Wed, Jan 16, 2013 at 7:08 AM, Emmanuel Bernard<br>
&gt;&gt; &gt; &lt;<a href="mailto:emmanuel@hibernate.org">emmanuel@hibernate.org</a>&gt; wrote:<br>&gt;&gt; &gt;&gt; Trying to summarize here: should the mechanism used to choose which method<br>&gt;&gt; &gt;&gt; is to be validated (all, non_getter, off) be defined by the integration<br>
&gt;&gt; &gt;&gt; technology or should it be defined by the Bean Validation spec.<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; I see Gunnar&#39;s argument and I am not sure where to stand. My arguments<br>&gt;&gt; &gt;&gt; against Gunnar&#39;s proposal are the following:<br>
&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; - the behavior would be different depending on the integration technology<br>&gt;&gt; &gt;&gt; used (Spring, CDI, JSR-303, possibly even managed beans - not sure of the<br>&gt;&gt; &gt;&gt; consequences for managed beans)<br>
&gt;&gt; &gt;&gt; - I find it easier for a user to have all the control tools at his disposal<br>&gt;&gt; &gt;&gt; from within the spec. In particular the global flag to set the default value<br>&gt;&gt; &gt;&gt; naturally fits in validation.xml which would not really be possible if the<br>
&gt;&gt; &gt;&gt; integration technology takes ownership of this.<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; You know our mantra has always been consistency across the whole app<br>&gt;&gt; &gt;&gt; development. Like a famous ring,<br>
&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; One Way to rule them all, One Way to constraint them,<br>&gt;&gt; &gt;&gt; One Way to validate them all and in the EE spec bind them.<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; On the other hands, inheritance rules for @ValidateOnCall across inherited<br>
&gt;&gt; &gt;&gt; methods, super types and the potentially future package level is really hard<br>&gt;&gt; &gt;&gt; to define. But I don&#39;t think the integration technologies define them in a<br>&gt;&gt; &gt;&gt; clear way either for our needs at least. In CDI, you can find the rules in<br>
&gt;&gt; &gt;&gt; chapter 4. <a href="http://docs.jboss.org/cdi/spec/1.1-PRD/pdf/cdi-spec.pdf">http://docs.jboss.org/cdi/spec/1.1-PRD/pdf/cdi-spec.pdf</a>. It&#39;s<br>&gt;&gt; &gt;&gt; very much &quot;chose whatever you want&quot; IMO.<br>
&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; Please, express your feedback even if not strong on the matter, we need to<br>&gt;&gt; &gt;&gt; make a decision quickly. The deadline is approaching fast.<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; Emmanuel<br>
&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; On 15 janv. 2013, at 19:56, Gunnar Morling &lt;<a href="mailto:gunnar@hibernate.org">gunnar@hibernate.org</a>&gt; wrote:<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; Hi all,<br>&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; As you know we&#39;re likely going to exclude getter methods from method<br>&gt;&gt; &gt;&gt; validation by default and provide means of configuring the exact behavior<br>&gt;&gt; &gt;&gt; (e.g. to have getters validated for individual types).<br>
&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; The question is now how this configuration should look like and where it<br>&gt;&gt; &gt;&gt; should be described. I think there is two separate components here:<br>&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 1) BV which provides the logic/engine for performing method validation<br>&gt;&gt; &gt;&gt; 2) Technologies integrating the method validation feature, e.g. CDI, Spring<br>&gt;&gt; &gt;&gt; etc. For CDI, the behavior of this integration is described in the BV spec<br>
&gt;&gt; &gt;&gt; (section 10.2 [1]) as per the Java EE conventions. For e.g. Spring, the<br>&gt;&gt; &gt;&gt; behavior would be described in the Spring documentation.<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; Regarding the configuration of including/excluding getters, one option would<br>
&gt;&gt; &gt;&gt; be to define a BV-specific mechanism for the configuration of (e.g. a global<br>&gt;&gt; &gt;&gt; option in validation.xml and/or an annotation like @ValidateOnCall). This<br>&gt;&gt; &gt;&gt; mechanism would have to be queried by the technologies integrating with<br>
&gt;&gt; &gt;&gt; method validation.<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; Alternatively, whether to include/exclude getters could be part of the<br>&gt;&gt; &gt;&gt; configuration of 2). For CDI, this might e.g. happen by adding an attribute<br>
&gt;&gt; &gt;&gt; &quot;validateGetters()&quot; to the interceptor binding annotation triggering method<br>&gt;&gt; &gt;&gt; validation, while e.g. Spring users might define an appropriate point cut<br>&gt;&gt; &gt;&gt; expression matching all those methods they want to validate. For CDI we<br>
&gt;&gt; &gt;&gt; would again describe the exact means in section 10.2 of the BV spec.<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; Personally I&#39;d favor the latter approach for the following reasons:<br>&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; * The configuratio<br>&gt;&gt; _______________________________________________<br>&gt;&gt; beanvalidation-dev mailing list<br>&gt;&gt; <a href="mailto:beanvalidation-dev@lists.jboss.org">beanvalidation-dev@lists.jboss.org</a><br>
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>&gt;&gt;<br>&gt;<br>&gt;