+1<div><br></div><div>regards,</div><div>gerhard<br clear="all"><br><br><br><div class="gmail_quote">2011/12/2 Gunnar Morling <span dir="ltr">&lt;<a href="mailto:gunnar.morling@googlemail.com">gunnar.morling@googlemail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Yes, I see. I&#39;m not really sure, what we can do about this except<br>
making this very clear in the spec/documentation.<br>
<br>
After all it&#39;s the same thing with &quot;normal&quot; constraints, such as<br>
property constraints. Only adding a constraint to a property doesn&#39;t<br>
cause it to be validated automatically.<br>
<br>
Or did you have something else in mind?<br>
<br>
<br>
2011/12/1 Emmanuel Bernard &lt;<a href="mailto:emmanuel@hibernate.org">emmanuel@hibernate.org</a>&gt;:<br>
<div><div></div><div class="h5">&gt; Yes. That concerns me a bit to be honest especially when more technologies will offer BV integrations. We need to think this through before opening pandora&#39;s box even more :)<br>
&gt;<br>
&gt; On 1 déc. 2011, at 21:48, Sebastian Thomschke &lt;<a href="mailto:sebastian.thomschke@web.de">sebastian.thomschke@web.de</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; Ok gotcha.Maybe we should make it clear in the specs that adding<br>
&gt;&gt; parameter constraints does not necessarily mean when such a<br>
&gt;&gt; constructor/method is invoked from somewhere in unmanaged code that an<br>
&gt;&gt; instant validation will happen, but that the time of validation and if a<br>
&gt;&gt; validation happens at all depends on the validator implementation.<br>
&gt;&gt;<br>
&gt;&gt; Regards,<br>
&gt;&gt; Seb<br>
&gt;&gt;<br>
&gt;&gt; On 01.12.2011 21:32, Gunnar Morling wrote:<br>
&gt;&gt;&gt; Hi Sebastian,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; is this really something which we should consider in BV?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; From my point of view we should only provide an API for<br>
&gt;&gt;&gt; method/constructor validation (by adding<br>
&gt;&gt;&gt; Validator#validateMethodParameters() for instance), but we shouldn&#39;t<br>
&gt;&gt;&gt; provide a trigger/hook executing this validation. I&#39;d see this as the<br>
&gt;&gt;&gt; responsibility of technologies integrating with BV (similar to the<br>
&gt;&gt;&gt; existing validate() methods which are invoked by JSF/JPA if<br>
&gt;&gt;&gt; applicable).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; So whether method validation is triggered via a proxy, CDI/Spring AOP<br>
&gt;&gt;&gt; interceptor etc. should be transparent for BV IMO.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I wasn&#39;t sure about whether there is an actual need for constructor<br>
&gt;&gt;&gt; validation, but Emmanuel&#39;s answer about JAX-RS confirmed that need :)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --Gunnar<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 2011/12/1 Sebastian Thomschke&lt;<a href="mailto:sebastian.thomschke@web.de">sebastian.thomschke@web.de</a>&gt;:<br>
&gt;&gt;&gt;&gt; Supporting constructor parameter validation as well as validation of<br>
&gt;&gt;&gt;&gt; parameters of methods not part of an interface requires some sort of<br>
&gt;&gt;&gt;&gt; byte code enhancements and cannot be done via JDK proxying.<br>
&gt;&gt;&gt;&gt; So if we find a sufficient solution how to achieve method parameter<br>
&gt;&gt;&gt;&gt; validation without JDK proxies I do not see why we should not support<br>
&gt;&gt;&gt;&gt; constructor parameter validation too.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt;&gt; Seb<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On 30.11.2011 19:59, Gunnar Morling wrote:<br>
&gt;&gt;&gt;&gt;&gt; Hi experts,<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Emmanuel asked me to take the lead on the method validation feature,<br>
&gt;&gt;&gt;&gt;&gt; so be prepared for related questions, API proposals and requests for<br>
&gt;&gt;&gt;&gt;&gt; feedback via the mailing list :)<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; The first issue I&#39;d like to discuss is the validation of constructor<br>
&gt;&gt;&gt;&gt;&gt; arguments. Is this something which we want to support at all? I don&#39;t<br>
&gt;&gt;&gt;&gt;&gt; think there are that many interception solutions which enable<br>
&gt;&gt;&gt;&gt;&gt; constructor interception at all (for instance CDI interceptors don&#39;t,<br>
&gt;&gt;&gt;&gt;&gt; AFAIK).<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; So personally I&#39;d be fine with focussing on actual method validation<br>
&gt;&gt;&gt;&gt;&gt; in BV 1.1, waiting for user demand for constructor validation and<br>
&gt;&gt;&gt;&gt;&gt; adding it possibly in a later release. WDYT?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; If we decide to include constructor validation, should we support the<br>
&gt;&gt;&gt;&gt;&gt; validation of newly created objects (similar to return value<br>
&gt;&gt;&gt;&gt;&gt; validation), e.g. like that:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; public class Foo {<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;    @Valid<br>
&gt;&gt;&gt;&gt;&gt;    public Foo() {<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;    }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Here @Valid would trigger a validation of the newly instantiated Foo<br>
&gt;&gt;&gt;&gt;&gt; object (whether to use @Valid or another annotation still needs to be<br>
&gt;&gt;&gt;&gt;&gt; discussed). Any thoughts?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; --Gunnar<br>
&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; beanvalidation-dev mailing list<br>
&gt;&gt;&gt;&gt;&gt; <a href="mailto:beanvalidation-dev@lists.jboss.org">beanvalidation-dev@lists.jboss.org</a><br>
&gt;&gt;&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; beanvalidation-dev mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:beanvalidation-dev@lists.jboss.org">beanvalidation-dev@lists.jboss.org</a><br>
&gt;&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; beanvalidation-dev mailing list<br>
&gt;&gt;&gt; <a href="mailto:beanvalidation-dev@lists.jboss.org">beanvalidation-dev@lists.jboss.org</a><br>
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
&gt;&gt;<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" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; beanvalidation-dev mailing list<br>
&gt; <a href="mailto:beanvalidation-dev@lists.jboss.org">beanvalidation-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
<br>
_______________________________________________<br>
beanvalidation-dev mailing list<br>
<a href="mailto:beanvalidation-dev@lists.jboss.org">beanvalidation-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
</div></div></blockquote></div><br></div>