<div dir="ltr">&gt;In this particular case it concerns the javax.faces.jar for JSF 2.3.<br>&gt;Some vendors split up this archive in two, an API jar and an impl, jar<br>&gt;(although for JSF 2.3 we don&#39;t really encourage this).<br><div class="gmail_extra"><br></div><div class="gmail_extra">Could you explain, why the JSF 2.3 API and RI are molded together?</div><div class="gmail_extra">If the API JAR is no longer separate from the RI (as it was till <a href="http://search.maven.org/remotecontent?filepath=javax/faces/javax.faces-api/2.2/javax.faces-api-2.2.jar" target="_blank" style="margin:0px;color:rgb(0,51,102);font-family:arial,helvetica,&#39;sans serif&#39;;font-size:12px;line-height:22px">javax.faces-api-2.2.jar</a>) it seems, every vendor has to build that API JAR from scratch, or carry a 3-4 MB JAR where the API in 2.2 was just a little under 700kB ?;-|</div><div class="gmail_extra"><br></div><div class="gmail_extra">Not to mention often bizarre side-effects if you (accidentially in that case) mix multiple JSF implementations in some web-apps. I had to resolve many of those myself between e.g. the JBoss implementation and Apache RichFaces. </div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><p style="margin:0px;font-size:13px;border-collapse:collapse"><span lang="EN-US" style="font-family:Calibri">Werner</span></p></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On Wed, Aug 12, 2015 at 11:07 AM,  <span dir="ltr">&lt;<a href="mailto:cdi-dev-request@lists.jboss.org" target="_blank">cdi-dev-request@lists.jboss.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Send cdi-dev mailing list submissions to<br>
        <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
        <a href="mailto:cdi-dev-request@lists.jboss.org">cdi-dev-request@lists.jboss.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:cdi-dev-owner@lists.jboss.org">cdi-dev-owner@lists.jboss.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of cdi-dev digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
   1. getBeanClass return value for build-in beans? (arjan tijms)<br>
   2. CDI 2.0 EDR: Questions on asynchronous observers (Nigel Deakin)<br>
   3. Re: getBeanClass return value for build-in beans?<br>
      (Jozef Hartinger)<br>
   4. Re: getBeanClass return value for build-in beans? (Martin Kouba)<br>
   5. Re: CDI 2.0 EDR: Questions on asynchronous observers<br>
      (Jozef Hartinger)<br>
   6. Re: getBeanClass return value for build-in beans? (arjan tijms)<br>
   7. Re: getBeanClass return value for build-in beans? (arjan tijms)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>Message: 6<br>
Date: Wed, 12 Aug 2015 11:07:04 +0200<br>
From: arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;<br>
Subject: Re: [cdi-dev] getBeanClass return value for build-in beans?<br>
To: Jozef Hartinger &lt;<a href="mailto:jharting@redhat.com">jharting@redhat.com</a>&gt;<br>
Cc: &quot;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&quot; &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
Message-ID:<br>
        &lt;CAE=-AhAkfzsxZ1pAC6t8bB_4sQ95wWierz_=hGavs7-C0B+2=<a href="mailto:g@mail.gmail.com">g@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=UTF-8<br>
<br>
Hi,<br>
<br>
On Wed, Aug 12, 2015 at 10:10 AM, Jozef Hartinger &lt;<a href="mailto:jharting@redhat.com">jharting@redhat.com</a>&gt; wrote:<br>
&gt; Therefore, you are free to use any class as a bean class that:<br>
&gt; 1) properly identifies the bean archive (i.e. is located in the bean archive<br>
&gt; where you want the custom bean to belong)<br>
<br>
In this particular case it concerns the javax.faces.jar for JSF 2.3.<br>
Some vendors split up this archive in two, an API jar and an impl, jar<br>
(although for JSF 2.3 we don&#39;t really encourage this). Therefor it<br>
looks like it does make a difference if the Bean&lt;T&gt; implementation<br>
will return this.class (an implementation type, like Weld does) or say<br>
Flash.class (an API class).<br>
<br>
&gt; What you indicated in the previous e-mails - that Weld does not work<br>
&gt; properly if the bean class is an abstract class looks like a bug in Weld<br>
&gt; that I will be investigating.<br>
<br>
I&#39;m not 100% sure what the intend is. Is the proxy supposed to only<br>
implement methods of the Types that are returned by the Bean&lt;T&gt;<br>
implementation, or should it be smart enough to look at the super<br>
types of whatever Type is returned?<br>
<br>
So given:<br>
<br>
public abstract class AbstractClass implements Interface { ... }<br>
<br>
If getTypes returns only Abstract.class, then only the methods defined<br>
by AbstractClass itself are implemented by the proxy. Those from<br>
Interface throw exceptions when called.<br>
<br>
If getTypes returns both Abstract.class and Interface.class, then all<br>
methods defined by AbstractClass and Interface are implemented by the<br>
proxy.<br>
<br>
Is this how things should be, or should the proxy generator see for<br>
itself that AbstractClass implements Interface?<br>
<br>
Kind regards,<br>
Arjan Tijms<br>
<br>
<br>
&gt;<br>
&gt; HTH,<br>
&gt;<br>
&gt; Jozef<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On 11.8.2015 12:26, arjan tijms wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; This is split-off from the thread &quot;Bean&lt;T&gt; that only qualifies super<br>
&gt;&gt; types?&quot;, where the question came up what a Bean&lt;T&gt; should return from<br>
&gt;&gt; the getBeanClass() method for the case of build-in beans.<br>
&gt;&gt;<br>
&gt;&gt; The JavaDoc for getBeanClass() currently says the following:<br>
&gt;&gt;<br>
&gt;&gt; &quot;The bean class of the managed bean or session bean or of the bean<br>
&gt;&gt; that declares the producer method or field.&quot;<br>
&gt;&gt;<br>
&gt;&gt; See:<br>
&gt;&gt; <a href="https://javaee-spec.java.net/nonav/javadocs/javax/enterprise/inject/spi/Bean.html#getBeanClass()" rel="noreferrer" target="_blank">https://javaee-spec.java.net/nonav/javadocs/javax/enterprise/inject/spi/Bean.html#getBeanClass()</a><br>
&gt;&gt;<br>
&gt;&gt; The case where a Bean&lt;T&gt; instance is directly created and added as<br>
&gt;&gt; bean to AfterBeanDiscovery in an extension does not seem to be covered<br>
&gt;&gt; by this documentation.<br>
&gt;&gt;<br>
&gt;&gt; Weld returns &quot;this.class&quot; here.<br>
&gt;&gt;<br>
&gt;&gt; See<br>
&gt;&gt; <a href="http://grepcode.com/file/repo1.maven.org/maven2/org.jboss.weld.se/weld-se/2.2.12.Final/org/jboss/weld/bean/builtin/AbstractDecorableBuiltInBean.java#71" rel="noreferrer" target="_blank">http://grepcode.com/file/repo1.maven.org/maven2/org.jboss.weld.se/weld-se/2.2.12.Final/org/jboss/weld/bean/builtin/AbstractDecorableBuiltInBean.java#71</a><br>
&gt;&gt;<br>
&gt;&gt; Is that what build-in beans should always do, and if so, should the<br>
&gt;&gt; JavaDoc/spec be clarified for this?<br>
&gt;&gt;<br>
&gt;&gt; Kind regards,<br>
&gt;&gt; Arjan Tijms<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" rel="noreferrer" target="_blank">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<br>
&gt;&gt; code under the Apache License, Version 2<br>
&gt;&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 ideas<br>
&gt;&gt; provided on this list, the provider waives all patent and other intellectual<br>
&gt;&gt; property rights inherent in such information.<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
------------------------------<br>
<br>
Message: 7<br>
Date: Wed, 12 Aug 2015 11:07:51 +0200<br>
From: arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;<br>
Subject: Re: [cdi-dev] getBeanClass return value for build-in beans?<br>
To: Martin Kouba &lt;<a href="mailto:mkouba@redhat.com">mkouba@redhat.com</a>&gt;<br>
Cc: &quot;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&quot; &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
Message-ID:<br>
        &lt;CAE=-AhDy_B+mt4kPJqVtP+FAyFEJdzMGC7AS2Qga7=<a href="mailto:q3iVwmcA@mail.gmail.com">q3iVwmcA@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=UTF-8<br>
<br>
Hi Martin,<br>
<br>
On Wed, Aug 12, 2015 at 10:22 AM, Martin Kouba &lt;<a href="mailto:mkouba@redhat.com">mkouba@redhat.com</a>&gt; wrote:<br>
&gt; please create a new spec issue. This should be definitely clarified.<br>
<br>
I&#39;ll do that, thanks!<br>
<br>
Kind regards,<br>
Arjan Tijms<br>
<br>
<br>
<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Martin<br>
&gt;<br>
&gt; Dne 12.8.2015 v 10:10 Jozef Hartinger napsal(a):<br>
&gt;<br>
&gt;&gt; Hi Arjan,<br>
&gt;&gt;<br>
&gt;&gt; the bean class in CDI is used for two purposes:<br>
&gt;&gt;<br>
&gt;&gt; 1) to identify the bean archive the bean belongs to (this is crucial for<br>
&gt;&gt; inter-module injection)<br>
&gt;&gt; 2) if the bean is an alternative, interceptor or decorator the bean<br>
&gt;&gt; class is used for matching with beans.xml enablement entries<br>
&gt;&gt;<br>
&gt;&gt; Other than these, there are no restrictions imposed by the spec. Note<br>
&gt;&gt; that there is absolutely no requirement that the bean class is part of<br>
&gt;&gt; the bean types (as demonstrated by producer method/fields for example).<br>
&gt;&gt;<br>
&gt;&gt; Therefore, you are free to use any class as a bean class that:<br>
&gt;&gt; 1) properly identifies the bean archive (i.e. is located in the bean<br>
&gt;&gt; archive where you want the custom bean to belong)<br>
&gt;&gt; 2) if the bean is an alternative, interceptor or decorator then choose<br>
&gt;&gt; the class whose name you want people to put to beans.xml when enabling it<br>
&gt;&gt;<br>
&gt;&gt; What you indicated in the previous e-mails - that Weld does not work<br>
&gt;&gt; properly if the bean class is an abstract class looks like a bug in Weld<br>
&gt;&gt; that I will be investigating.<br>
&gt;&gt;<br>
&gt;&gt; HTH,<br>
&gt;&gt;<br>
&gt;&gt; Jozef<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 11.8.2015 12:26, arjan tijms wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This is split-off from the thread &quot;Bean&lt;T&gt; that only qualifies super<br>
&gt;&gt;&gt; types?&quot;, where the question came up what a Bean&lt;T&gt; should return from<br>
&gt;&gt;&gt; the getBeanClass() method for the case of build-in beans.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The JavaDoc for getBeanClass() currently says the following:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &quot;The bean class of the managed bean or session bean or of the bean<br>
&gt;&gt;&gt; that declares the producer method or field.&quot;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; See:<br>
&gt;&gt;&gt; <a href="https://javaee-spec.java.net/nonav/javadocs/javax/enterprise/inject/spi/Bean.html#getBeanClass()" rel="noreferrer" target="_blank">https://javaee-spec.java.net/nonav/javadocs/javax/enterprise/inject/spi/Bean.html#getBeanClass()</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The case where a Bean&lt;T&gt; instance is directly created and added as<br>
&gt;&gt;&gt; bean to AfterBeanDiscovery in an extension does not seem to be covered<br>
&gt;&gt;&gt; by this documentation.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Weld returns &quot;this.class&quot; here.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; See<br>
&gt;&gt;&gt; <a href="http://grepcode.com/file/repo1.maven.org/maven2/org.jboss.weld.se/weld-se/2.2.12.Final/org/jboss/weld/bean/builtin/AbstractDecorableBuiltInBean.java#71" rel="noreferrer" target="_blank">http://grepcode.com/file/repo1.maven.org/maven2/org.jboss.weld.se/weld-se/2.2.12.Final/org/jboss/weld/bean/builtin/AbstractDecorableBuiltInBean.java#71</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Is that what build-in beans should always do, and if so, should the<br>
&gt;&gt;&gt; JavaDoc/spec be clarified for this?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Kind regards,<br>
&gt;&gt;&gt; Arjan Tijms<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" rel="noreferrer" target="_blank">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<br>
&gt;&gt;&gt; code under the Apache License, Version 2<br>
&gt;&gt;&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 ideas<br>
&gt;&gt;&gt; provided on this list, the provider waives all patent and other intellectual<br>
&gt;&gt;&gt; property rights inherent in such information.<br>
&gt;&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" rel="noreferrer" target="_blank">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<br>
&gt;&gt; code under the Apache License, Version 2<br>
&gt;&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 ideas<br>
&gt;&gt; provided on this list, the provider waives all patent and other intellectual<br>
&gt;&gt; property rights inherent in such information.<br>
&gt;&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Martin Kouba<br>
&gt; Software Engineer<br>
&gt; Red Hat, Czech Republic<br>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
cdi-dev mailing list<br>
<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
<br>
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>
<br>
End of cdi-dev Digest, Vol 57, Issue 6<br>
**************************************<br>
</blockquote></div><br></div></div>