<p dir="ltr"><br>
Le 14 févr. 2016 00:04, &quot;Mark Struberg&quot; &lt;<a href="mailto:struberg@yahoo.de">struberg@yahoo.de</a>&gt; a écrit :<br>
&gt;<br>
&gt; &gt; Am 13.02.2016 um 23:30 schrieb Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;:<br>
&gt; &gt;<br>
&gt; &gt; You can also extend 3rd party classes - no producer but same constraint - so needs to be global - ie not limited to producers - or doesnt help.<br>
&gt;<br>
&gt; I also think it should be an option which is not only required for producer methods but more generic. Also extending a 3rd party class in a bean archive creates this restriction.<br>
&gt;<br>
&gt; @David:<br>
&gt; that comes pretty close to my original proposal to have a @AllowProxying anntation on the producer field/method or managed bean. I like Pete’s last comment and we of course could also simply rename this to @ContainsNonBusinessMethods or something similar. It would avoid the term ‚proxy‘ which some people seem to think is too low level. But I thin that not many user would grasp what that does in the end. It’s not as self-explaining as @AllowProxying imo.<br>
&gt; We probably would also need to extend the SPI in that case to allow Extensions to have full control.<br>
&gt;<br>
&gt; One more thing:<br>
&gt; This also hits already existing apps which move from Java6 to 7/8. I’m fine with supporting those on a non-portable basis.<br>
&gt;</p>
<p dir="ltr">If in a SPI we can probably accept to write a custom &quot;migration&quot; Extension then. Important is to not touch existing codebase.</p>
<p dir="ltr">&gt; @John<br>
&gt; &gt; The gotcha that I still see is around interceptor bindings.  They need to be explicitly disallowed on final methods, and big ole warning put in when you have interceptors on classes with final methods.<br>
&gt; That could be a good thing to do. Of course it only is possible if the interceptor is applied on a method and not on the whole class. In the later case the final methods would simply not work on the proxy.<br>
&gt;<br>
&gt;<br>
&gt; LieGrue,<br>
&gt; strub<br>
&gt;<br>
&gt;<br>
&gt; &gt; Am 13.02.2016 um 23:30 schrieb Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;:<br>
&gt; &gt;<br>
&gt; &gt; You can also extend 3rd party classes - no producer but same constraint - so needs to be global - ie not limited to producers - or doesnt help.<br>
&gt; &gt;<br>
&gt; &gt; Le 13 févr. 2016 23:25, &quot;John D. Ament&quot; &lt;<a href="mailto:john.d.ament@gmail.com">john.d.ament@gmail.com</a>&gt; a écrit :<br>
&gt; &gt; Some comments in line.<br>
&gt; &gt;<br>
&gt; &gt; On Sat, Feb 13, 2016 at 4:22 PM David Blevins &lt;<a href="mailto:david.blevins@gmail.com">david.blevins@gmail.com</a>&gt; wrote:<br>
&gt; &gt; Read what I could get my hands on.  Unfortunately the JIRA itself has 36 comments which won’t load/expand in Safari or Chrome.  But I think I get the summary.<br>
&gt; &gt;<br>
&gt; &gt; Sounds like a not too responsive UI.  I wonder if Atlassian has a test for 36 comments. XD<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; High level, I agree with both Mark and Martin.<br>
&gt; &gt;<br>
&gt; &gt;  - Agree with Mark: Where I see this feature being important is in our EJB/CDI alignment efforts.  This appears to be the rare case where the CDI spec is more strict than the EJB spec and a speed bump in someone’s efforts to port an EJB application to CDI.  For that reason, this to me upgrades from nice-to-have to we-must-find-a-way.<br>
&gt; &gt;<br>
&gt; &gt; Yep, and in thinking about past jobs have run into the issue.  People don&#39;t read every line of a spec, and don&#39;t always understand why something stopped working.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;  - Agree with Martin: I also strongly dislike the use of beans.xml in any fashion and system properties even more.  Aside from being cumbersome for users, I’m particularly against setting a trend of using system properties to bail us out of hard API design issues.  This concern trumps the above and I would -1 this vote as-is.<br>
&gt; &gt;<br>
&gt; &gt; That said, I’m not sure if this approach is workable in any way, but here goes:<br>
&gt; &gt;<br>
&gt; &gt; We keep the default rule of beans with final methods being unproxyable unless explicit action in code is taken and the class is:<br>
&gt; &gt;<br>
&gt; &gt;    - explicitly produced via @Produces<br>
&gt; &gt;    - added explicitly via an extension<br>
&gt; &gt;<br>
&gt; &gt; I don&#39;t see a reason that the bean manager needs to ignore classes with final methods.  More-so, I don&#39;t see the strategy as being comprehensible to the typical developer that they need a producer.  Sure, for 3PL&#39;s you&#39;re probably already creating a producer.  For cases where I just made my class with a final method, I shouldn&#39;t be penalized.<br>
&gt; &gt;<br>
&gt; &gt; Less boilerplate, that&#39;s one of the goals right?  If so, I don&#39;t see why we can&#39;t just deal with a final method in a proxy - don&#39;t extend it.<br>
&gt; &gt;<br>
&gt; &gt; The gotcha that I still see is around interceptor bindings.  They need to be explicitly disallowed on final methods, and big ole warning put in when you have interceptors on classes with final methods.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Effectively the BeanManager would continue to ignore beans with final methods as proxyable in a classpath scan, but the application could “go back” and explicitly put them into the BeanManager as proxyable.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Thoughts?  Big holes in there?<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; -David<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;&gt; On Feb 12, 2016, at 9:19 AM, Antoine Sabot-Durand &lt;<a href="mailto:antoine@sabot-durand.net">antoine@sabot-durand.net</a>&gt; wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Hi Guys,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Some EG members (like David Blevins) asked to have until the ned of the week-end to vote here.<br>
&gt; &gt;&gt; I find interesting to have the more possible input but as the rules were to end the vote tonight, I wanted to be sure that nobody has any objection for closing the vote on sunday 11:59pm CET.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Regards,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Antoine<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Le ven. 12 févr. 2016 à 17:23, Mark Struberg &lt;<a href="mailto:struberg@yahoo.de">struberg@yahoo.de</a>&gt; a écrit :<br>
&gt; &gt;&gt; Sure, that might probably be a viable way to do it.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Oki, here are the two use cases which we need to solve:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 1.)<br>
&gt; &gt;&gt; @Produces<br>
&gt; &gt;&gt; @ApplicationScoped<br>
&gt; &gt;&gt; public SomeWeirdThirdPartyClassWithFinalMethods createIt() {return …};<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 2.)<br>
&gt; &gt;&gt; @ApplicationSCoped<br>
&gt; &gt;&gt; public class MySubclass extends SomeWeirdThirdPartyClassWithFinalMethods {}<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Any other use case?<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Can you please elaborate how your idea will look like? Just a few ideas so we can get it running.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; txs and LieGrue,<br>
&gt; &gt;&gt; strub<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; PS: Again: I’m NOT interested to get my approach in. All I’m interested in is a _solution_ for this real world problem. But there was simply no alternative proposed so far…<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt; Am 12.02.2016 um 17:12 schrieb Pete Muir &lt;<a href="mailto:pmuir@redhat.com">pmuir@redhat.com</a>&gt;:<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; -1<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; The problem seems real, but proposed approach doesn&#39;t sit right with<br>
&gt; &gt;&gt; &gt; me. I think it would be better to follow the EJB approach, and add a<br>
&gt; &gt;&gt; &gt; way to be able to declare a method as &quot;not a business method&quot; (a<br>
&gt; &gt;&gt; &gt; business method is also a thing in CDI IIRC).<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; For example, e.g. using beans.xml and an annotation. This then allows<br>
&gt; &gt;&gt; &gt; the spec to consistently treat this public method as not a business<br>
&gt; &gt;&gt; &gt; method.<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; On 9 February 2016 at 16:36, Antoine Sabot-Durand<br>
&gt; &gt;&gt; &gt; &lt;<a href="mailto:antoine@sabot-durand.net">antoine@sabot-durand.net</a>&gt; wrote:<br>
&gt; &gt;&gt; &gt;&gt; Hi all,<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; There have been a lot of discussion around CDI-527 in the last weeks:<br>
&gt; &gt;&gt; &gt;&gt; <a href="https://issues.jboss.org/browse/CDI-527">https://issues.jboss.org/browse/CDI-527</a><br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; Mark proposed a PR:<br>
&gt; &gt;&gt; &gt;&gt; <a href="https://github.com/cdi-spec/cdi/pull/271">https://github.com/cdi-spec/cdi/pull/271</a><br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; But we don&#39;t agree on adding this feature to the spec.<br>
&gt; &gt;&gt; &gt;&gt; This vote is to decide if we should add this feature at the spec level now,<br>
&gt; &gt;&gt; &gt;&gt; or not.<br>
&gt; &gt;&gt; &gt;&gt; Should we vote this feature down, that won&#39;t mean it will be completely<br>
&gt; &gt;&gt; &gt;&gt; dropped: it could be implemented as non portable feature in both Spec or<br>
&gt; &gt;&gt; &gt;&gt; even be included as experimental feature in the spec (in annexes) as<br>
&gt; &gt;&gt; &gt;&gt; describe in the PR comments<br>
&gt; &gt;&gt; &gt;&gt; Vote starts now, only vote from EG members are binding (but you can give<br>
&gt; &gt;&gt; &gt;&gt; your opinion if not part of the EG) and will last 72 hours.<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; You vote with the following values:<br>
&gt; &gt;&gt; &gt;&gt; +1 : I&#39;m favorable for adding this feature in the spec<br>
&gt; &gt;&gt; &gt;&gt; -1 : I&#39;m against adding this feature in the spec<br>
&gt; &gt;&gt; &gt;&gt; 0 : I don&#39;t care<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; Thank you for your attention and your vote.<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; Antoine Sabot-Durand<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt; &gt;&gt; &gt;&gt; cdi-dev mailing list<br>
&gt; &gt;&gt; &gt;&gt; <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt; &gt;&gt; &gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; Note that for all code provided on this list, the provider licenses the code<br>
&gt; &gt;&gt; &gt;&gt; under the Apache License, Version 2<br>
&gt; &gt;&gt; &gt;&gt; (<a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas<br>
&gt; &gt;&gt; &gt;&gt; provided on this list, the provider waives all patent and other intellectual<br>
&gt; &gt;&gt; &gt;&gt; property rights inherent in such information.<br>
&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt; &gt;&gt; &gt; cdi-dev mailing list<br>
&gt; &gt;&gt; &gt; <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt; &gt;&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (<a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; _______________________________________________<br>
&gt; &gt;&gt; cdi-dev mailing list<br>
&gt; &gt;&gt; <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt; &gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (<a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; cdi-dev mailing list<br>
&gt; &gt; <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt; &gt;<br>
&gt; &gt; Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (<a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; cdi-dev mailing list<br>
&gt; &gt; <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt; &gt;<br>
&gt; &gt; Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (<a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; cdi-dev mailing list<br>
&gt; &gt; <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt; &gt;<br>
&gt; &gt; Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (<a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.<br>
&gt;<br>
</p>