<div dir="ltr">Not sure if we want to pollute the vote thread, so changing titles.<div><br></div><div>I think to summarize my feelings, think about the relationship between interface Foo and implementation FooImpl.  Foo is defined:</div><div><br></div><div>interface Foo {</div><div>   String doWork();</div><div>}<br><br>FooImpl is defined as:</div><div><br></div><div>public class FooImpl implements Foo {</div><div>   public String doWork() { return &quot;i&#39;m done&quot;; }</div><div><br></div><div>   public final String doSomethingElse() { return &quot;something else&quot;; }</div><div><br></div><div>}</div><div><br></div><div>The way CDI impls work right now, the proxy is created for the impl.  The way EJBs proxy right now, they proxy the interface.  If CDI proxied both the interface and impl separately, and substituted based on the injection point, this would work.</div><div><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Feb 10, 2016 at 8:07 AM Martin Kouba &lt;<a href="mailto:mkouba@redhat.com">mkouba@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dne 10.2.2016 v 13:48 John D. Ament napsal(a):<br>
&gt; +1 for adding this feature to the spec.<br>
&gt;<br>
&gt; -1 for adding it the way it is written currently.  This isn&#39;t to say<br>
&gt; that Mark&#39;s idea is bad, its just that it puts too much onus on the<br>
&gt; application developer to know the structure of its classes, both<br>
&gt; internally developed and externally provided.<br>
&gt;<br>
&gt; We should follow a pattern closer to EJB (in my opinion) where the<br>
&gt; non-proxyable methods are just not proxied - you won&#39;t get transactions,<br>
&gt; etc available.<br>
<br>
-1<br>
<br>
I think you cannot declare a final method on a NIV session bean (you get<br>
validation error) and it&#39;s easy to create a proxy for local/remote<br>
interface - no such methods. I also think we cannot implement this in<br>
Weld as we&#39;re using subclassing for client proxies. If you don&#39;t<br>
override (i.e. if you ignore) such a method than it will not be invoked<br>
upon the contextual instance but upon the clien proxy instance (subclass).<br>
<br>
&gt;<br>
&gt; John<br>
&gt;<br>
&gt; On Tue, Feb 9, 2016 at 11:37 AM Antoine Sabot-Durand<br>
&gt; &lt;<a href="mailto:antoine@sabot-durand.net" target="_blank">antoine@sabot-durand.net</a> &lt;mailto:<a href="mailto:antoine@sabot-durand.net" target="_blank">antoine@sabot-durand.net</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     Hi all,<br>
&gt;<br>
&gt;     There have been a lot of discussion around CDI-527 in the last weeks:<br>
&gt;     <a href="https://issues.jboss.org/browse/CDI-527" rel="noreferrer" target="_blank">https://issues.jboss.org/browse/CDI-527</a><br>
&gt;<br>
&gt;     Mark proposed a PR:<br>
&gt;     <a href="https://github.com/cdi-spec/cdi/pull/271" rel="noreferrer" target="_blank">https://github.com/cdi-spec/cdi/pull/271</a><br>
&gt;<br>
&gt;     But we don&#39;t agree on adding this feature to the spec.<br>
&gt;     This vote is to decide if we should add this feature at the spec<br>
&gt;     level now, or not.<br>
&gt;     Should we vote this feature down, that won&#39;t mean it will be<br>
&gt;     completely dropped: it could be implemented as non portable feature<br>
&gt;     in both Spec or even be included as experimental feature in the spec<br>
&gt;     (in annexes) as describe in the PR comments<br>
&gt;     Vote starts now, only vote from EG members are binding (but you can<br>
&gt;     give your opinion if not part of the EG) and will last 72 hours.<br>
&gt;<br>
&gt;     You vote with the following values:<br>
&gt;     +1 : I&#39;m favorable for adding this feature in the spec<br>
&gt;     -1 : I&#39;m against adding this feature in the spec<br>
&gt;     0 : I don&#39;t care<br>
&gt;<br>
&gt;     Thank you for your attention and your vote.<br>
&gt;<br>
&gt;     Antoine Sabot-Durand<br>
&gt;     _______________________________________________<br>
&gt;     cdi-dev mailing list<br>
&gt;     <a href="mailto:cdi-dev@lists.jboss.org" target="_blank">cdi-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:cdi-dev@lists.jboss.org" target="_blank">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt;     <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt;<br>
&gt;     Note that for all code provided on this list, the provider licenses<br>
&gt;     the code under the Apache License, Version 2<br>
&gt;     (<a href="http://www.apache.org/licenses/LICENSE-2.0.html" rel="noreferrer" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other<br>
&gt;     ideas provided on this list, the provider waives all patent and<br>
&gt;     other intellectual property rights inherent in such information.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; cdi-dev mailing list<br>
&gt; <a href="mailto:cdi-dev@lists.jboss.org" target="_blank">cdi-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt;<br>
&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" rel="noreferrer" target="_blank">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>
<br>
--<br>
Martin Kouba<br>
Software Engineer<br>
Red Hat, Czech Republic<br>
</blockquote></div></div></div>