[weld-dev] Generic Decorator
Marius Bogoevici
mariusb at redhat.com
Fri Dec 11 13:28:13 EST 2009
Gavin King wrote:
> Yes, this is an ambiguous dependency.
>
Thanks, Gavin.
I am wondering if the spec could consider a special
stereotype/annotation to indicate beans which would normally be eligible
to be managed beans, but shouldn't, because there is no intent of using
them directly like that.
Something like @Unmanaged (bad name, perhaps), similar to how
javax.persistent.Transient indicates that a field is not persistent and
should not be managed by the container. Of course, I am aware that
careful design could avoid this type of situation :).
Apart from disambiguation per se, for which perhaps a stereotype would
be more suitable, this could also help optimizing the behaviour of the
container at runtime (by never considering certain classes as managed
beans, when it is clear that there is absolutely no chance of using them
that way).
> On Fri, Dec 11, 2009 at 12:57 PM, Marius Bogoevici <mariusb at redhat.com> wrote:
>
>> Pete Muir wrote:
>>
>>> This looks like an out of date check...
>>>
>>>
>>>
>> OK, thanks. Actually, I just noticed that the example in the
>> introduction of the specification is showing exactly this use case.
>>
>> I would, however, like to clarify whether the following use case is
>> acceptable (was driven to this while handling @Inject GenericBean<T>):
>>
>> class Receiver
>> {
>> @Inject Injected<String> injected;
>> }
>>
>> @Dependent
>> class Injected<T>
>> {
>> public void Injected() {} // making clear that this satisfies the
>> conditions for a generic managed bean
>> }
>>
>> class StringInjectedProducer
>> {
>> @Produces Injected<String> produce() { ... }
>> }
>>
>> Looking carefully, it shouldn't, since Receiver.injected has ambiguous
>> dependencies (on one hand Injected per se, on the other hand, the
>> producer method). A qualifier can help disambiguating between the two
>> situations.
>>
>> If the statement above is correct, then ProducerFieldDefinitionTest in
>> the TCK could be adjusted, since FunnelWeaver and pals
>> (FunnelWeaverSpiderProducer and FunnelWeaverSpiderConsumer) illustrate
>> exactly this behaviour (simple qualification will solve the ambiguity).
>>
>> Marius
>>
>>
>>
>>
>> _______________________________________________
>> weld-dev mailing list
>> weld-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/weld-dev
>>
>>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20091211/17ec1f75/attachment.html
More information about the weld-dev
mailing list