[weld-dev] Question about the spec for BeanManager.getBeans

Benjamin Confino BENJAMIC at uk.ibm.com
Fri Aug 24 09:10:05 EDT 2018


Hello

I was made aware of the difference on the return of 
beanManager.getBeans(Object.class) between OWB and Weld

In OWB, it returns all beans, unless there is an enabled @alternative 
within the application. If there is an enabled @alternative getBeans() 
only returns beans annotated @alternative.

However, in Weld, it returns all beans even with an enabled @alternative.

The JavaDoc for BeanMnanager says "according to the rules of typesafe 
resolution" and in the CDI 1.0 spec under typesafe resolution I find one 
mention of alternatives: “When an ambiguous dependency exists, the 
container attempts to resolve the ambiguity. The container eliminates all 
eligible beans that are not alternatives, except for producer methods and 
fields of beans that are alternatives.” (This text is also in the CDI 1.2 
spec)

However this would imply that if there are no enabled @Alternatives an 
ambiguous resolution like beanManager.getBeans(Object.class) should 
discard everything. In this case, the Weld behaviour is incorrect. 
beanManager.getBeans() should only return the resolved or enabled beans.

Regards
Benjamin

Can someone verify this?
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20180824/2b2c000c/attachment-0001.html 


More information about the weld-dev mailing list