Hi all, <br>See comments below.<br><br><div class="gmail_quote">On Tue, Dec 29, 2009 at 3:44 PM, Gavin King <span dir="ltr"><<a href="mailto:gavin.king@gmail.com" target="_blank">gavin.king@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
++ Clarify that scope types should not have members<br>
<br>
The spec should mention that @ScopeType annotations should not have<br>
annotation members. Perhaps this should be a definition error.<br>
javax.inject.Scope already mentions this.<br></blockquote><div><br>I'm sure you meant @NormalScope.<br>Can I ask what the motivation is for preventing annotation members on scope annotations? I could imagine some custom scopes needing some extra metadata, and the scope annotation seems like a handy place to put it.<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
++ Clarify that interceptors/decorators don't apply to producers in<br>
resolution rules<br>
<br></blockquote><div><br>I don't understand. 7.2 seems to explicitly state that interceptors/decorators *do* apply to producer methods. Can you clarify?<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
++ Producers and beans that are under construction<br>
<br>
I think we need the spec to say something about cases where an<br>
injection point of a bean resolves to a producer method of the same<br>
bean. The implementation should detect that this is a definition<br>
error. It shouldn't try to call a producer method on a<br>
non-fully-initialized bean.<br></blockquote><div><br>This is good, but I think we should be able to say something more general. We'd also want to outlaw this:<br><br>class Foo {<br> @Inject @BarProduct Baz;<br><br>
@Produces @FooProduct Baz produceBaz() { ... }<br>}<br><br>class Bar {<br> @Inject @FooProduct Baz;<br><br> @Produces @BarProduct Baz produceBaz() { ... }<br>}<br><br>So, I think it'd be very helpful to have a section devoted to cyclic dependencies. Some kind of cyclic dependencies are ok while others are not, and I think we can enumerate these. <br>
<br><br>On a related note, I had asked once about how this is handled:<br><br>@RequestScoped<br>class Foo {<br> @Inject Bar bar;<br><br> @PostConstruct void init() {<br> bar.doSomething();<br> }<br> ...<br>}<br>
<br>@RequestScoped<br>class Bar<br>{<br> @Inject Foo foo;<br><br> @PostConstruct void init() {<br> foo.doSomethingElse();<br> }<br> ...<br>}<br><br>Is this maintenance release an appropriate time to address this question? <br>
(I haven't yet checked how Weld handles this)<br> <br><br>Also, I'm a little surprised your list didn't contain a ConversationManager API. Is this too big of a thing for a maintenance release? It seems pretty important to me.<br>
And even if we can't address it for the MR, maybe we can at least start a discussion to nail down the API. Sooner is better than later, I think.<br><br>Thanks,<br>-Matt<br><br></div>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<font color="#888888"><br>
<br>
--<br>
Gavin King<br>
<a href="mailto:gavin.king@gmail.com" target="_blank">gavin.king@gmail.com</a><br>
<a href="http://in.relation.to/Bloggers/Gavin" target="_blank">http://in.relation.to/Bloggers/Gavin</a><br>
<a href="http://hibernate.org" target="_blank">http://hibernate.org</a><br>
<a href="http://seamframework.org" target="_blank">http://seamframework.org</a><br>
</font></blockquote></div><br>