<div dir="ltr">Then I&#39;m +1 on this change as well.<div><br></div><div>And no, I don&#39;t believe concrete class is defined.  Granted this is Java 8&#39;s JLS: <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html">https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html</a></div><div><br></div><div>John<br><br><div class="gmail_quote"><div dir="ltr">On Wed, May 4, 2016 at 8:11 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 4.5.2016 v 14:08 John D. Ament napsal(a):<br>
&gt; Just to confirm (because negatives always make things harder to digest)<br>
&gt;<br>
&gt; An abstract class annotated Decorator is a managed bean - correct?<br>
<br>
Yes.<br>
<br>
&gt;<br>
&gt; Because of this line: It is a non-abstract class, or is annotated<br>
&gt; `@Decorator`.<br>
<br>
It was previously:<br>
&quot;It is a concrete class, or is annotated @Decorator.&quot;<br>
<br>
But I believe the JLS does not define a &quot;concrete&quot; class... correct me<br>
if I&#39;m wrong.<br>
<br>
&gt;<br>
&gt; John<br>
&gt;<br>
&gt; On Wed, May 4, 2016 at 3:12 AM Tomas Remes &lt;<a href="mailto:tremes@redhat.com" target="_blank">tremes@redhat.com</a><br>
&gt; &lt;mailto:<a href="mailto:tremes@redhat.com" target="_blank">tremes@redhat.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;     Hi,<br>
&gt;<br>
&gt;     Yes this proposal is sufficient and reads better. I can change my PR<br>
&gt;     if there aren&#39;t any further objections?<br>
&gt;<br>
&gt;     Thank&#39;s<br>
&gt;     Tom<br>
&gt;<br>
&gt;     ----- Original Message -----<br>
&gt;     From: &quot;Martin Kouba&quot; &lt;<a href="mailto:mkouba@redhat.com" target="_blank">mkouba@redhat.com</a> &lt;mailto:<a href="mailto:mkouba@redhat.com" target="_blank">mkouba@redhat.com</a>&gt;&gt;<br>
&gt;     To: &quot;John D. Ament&quot; &lt;<a href="mailto:john.d.ament@gmail.com" target="_blank">john.d.ament@gmail.com</a><br>
&gt;     &lt;mailto:<a href="mailto:john.d.ament@gmail.com" target="_blank">john.d.ament@gmail.com</a>&gt;&gt;, <a href="mailto:cdi-dev@lists.jboss.org" target="_blank">cdi-dev@lists.jboss.org</a><br>
&gt;     &lt;mailto:<a href="mailto:cdi-dev@lists.jboss.org" target="_blank">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt;     Sent: Wednesday, May 4, 2016 8:12:44 AM<br>
&gt;     Subject: Re: [cdi-dev] CDI-508 - Which java classes can be managed beans<br>
&gt;<br>
&gt;     Hi all,<br>
&gt;<br>
&gt;     given that local and anonymous classes are special kinds of inner<br>
&gt;     classes, we could also simply change the sentence to:<br>
&gt;<br>
&gt;     &quot;It is not an inner class.&quot;<br>
&gt;<br>
&gt;     Anyway, I think the change of the first sentence is much more important,<br>
&gt;     i.e. removing the &quot;top-level&quot;...<br>
&gt;<br>
&gt;     Maybe we should also remove &quot;top-level&quot; from the next sentence:<br>
&gt;     &quot;It is a top-level non-abstract class, or is annotated `@Decorator`.&quot;<br>
&gt;<br>
&gt;     So that we would end up with:<br>
&gt;<br>
&gt;     A Java class is a managed bean if it meets all of the following<br>
&gt;     conditions:<br>
&gt;     * It is not an inner class.<br>
&gt;     * It is a non-abstract class, or is annotated `@Decorator`.<br>
&gt;     * It does not implement `javax.enterprise.inject.spi.Extension`.<br>
&gt;     * It is not annotated `@Vetoed` or in a package annotated `@Vetoed`.<br>
&gt;     * It has an appropriate constructor - either:<br>
&gt;<br>
&gt;     What do you think?<br>
&gt;<br>
&gt;     Martin<br>
&gt;<br>
&gt;<br>
&gt;     Dne 4.5.2016 v 02:32 John D. Ament napsal(a):<br>
&gt;      &gt; All,<br>
&gt;      &gt;<br>
&gt;      &gt; I think I had an action item to get this clarified, not 100%<br>
&gt;     sure, but<br>
&gt;      &gt; let me give this a shot.<br>
&gt;      &gt;<br>
&gt;      &gt; Tomas raised a PR for CDI-508 to clarify which classes are meant<br>
&gt;     to be<br>
&gt;      &gt; managed beans.  You can find that PR here:<br>
&gt;      &gt; <a href="https://github.com/cdi-spec/cdi/pull/282/" rel="noreferrer" target="_blank">https://github.com/cdi-spec/cdi/pull/282/</a><br>
&gt;      &gt;<br>
&gt;      &gt; The line that doesn&#39;t sound right to me in the change is to go from:<br>
&gt;      &gt;<br>
&gt;      &gt; It is not a non-static inner class.<br>
&gt;      &gt;<br>
&gt;      &gt; to<br>
&gt;      &gt;<br>
&gt;      &gt; It is not a non-static nested class.<br>
&gt;      &gt;<br>
&gt;      &gt; I&#39;ll use the java programming language tutorial as a point of<br>
&gt;     reference,<br>
&gt;      &gt; you can read the page I&#39;ll refer to here:<br>
&gt;      &gt; <a href="https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html" rel="noreferrer" target="_blank">https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html</a><br>
&gt;      &gt;<br>
&gt;      &gt; Basically, non-static nested classes are AKA inner classes.  The term<br>
&gt;      &gt; &quot;non-static inner class&quot; shouldn&#39;t exist, and that means the original<br>
&gt;      &gt; text doesn&#39;t make sense, and should probably be inferred as &quot;It<br>
&gt;     is not<br>
&gt;      &gt; an inner class&quot;<br>
&gt;      &gt;<br>
&gt;      &gt;  From reading this part of the spec, it becomes unreadable due to the<br>
&gt;      &gt; double negative (probably why the aka exists).  My proposal was to<br>
&gt;      &gt; change the line to instead read (in a positive way) &quot;It is a static<br>
&gt;      &gt; nested class&quot; but I can also understand if we want to do this in an<br>
&gt;      &gt; exclusion pattern rather than an inclusion pattern.<br>
&gt;      &gt;<br>
&gt;      &gt; Thoughts?<br>
&gt;      &gt;<br>
&gt;      &gt; John<br>
&gt;      &gt;<br>
&gt;      &gt;<br>
&gt;      &gt; _______________________________________________<br>
&gt;      &gt; cdi-dev mailing list<br>
&gt;      &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;      &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<br>
&gt;     licenses 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;      &gt;<br>
&gt;<br>
&gt;     --<br>
&gt;     Martin Kouba<br>
&gt;     Software Engineer<br>
&gt;     Red Hat, Czech Republic<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>
<br>
--<br>
Martin Kouba<br>
Software Engineer<br>
Red Hat, Czech Republic<br>
</blockquote></div></div></div>