[
https://issues.jboss.org/browse/WELD-905?page=com.atlassian.jira.plugin.s...
]
Marko Lukša commented on WELD-905:
----------------------------------
I've tested this on 7.1 and found that {{BeanA2}} plays no role here. Whether the
second bean archive is included in WEB-INF/lib or not, it is always {{BeanA}} that gets
injected into {{Page}}. And this appears to be the correct behavior according to section
5.1 of the spec:
{quote}
An alternative is not available for injection, lookup or EL resolution to classes or
JSP/JSF pages *in a module unless the module is a bean archive and the alternative is
explicitly selected in that bean archive*.
{quote}
Since the alternative is only selected in the first bean archive, and {{Page}} is located
in the war (and not inside the first bean archive), the injected bean should in fact be
{{BeanA}}. If you were to move {{Page}} into the first bean archive, only then would
{{BeanA1}} be injected into {{Page}}, since {{BeanA1}} is selected as an alternative only
in the first bean archive.
Can someone confirm this?
@Alternative broken if multiple implementations are in the classpath
--------------------------------------------------------------------
Key: WELD-905
URL:
https://issues.jboss.org/browse/WELD-905
Project: Weld
Issue Type: Bug
Components: Resolution (Typesafe and by Name)
Affects Versions: 1.1.1.Final
Reporter: Gerhard Petracek
Assignee: Marko Lukša
Priority: Critical
Attachments: WELD-905.zip
example (broken):
bean-archive #1:
- BeanA
- BeanA1 (@Alternative)
- beans.xml (activates BeanA1 as alternative)
bean-archive #2:
- BeanA2 (@Typed())
- beans.xml (empty)
BeanA1 doesn't get used (without an error or a warning BeanA is used instead - even
though BeanA1 is activated as alternative in the same bean-archive)
example (working):
bean-archive #1:
- BeanA
- BeanA1 (@Alternative)
- beans.xml (activates BeanA1 as alternative)
jar #2 (no bean-archive):
- BeanA2 (@Typed())
BeanA1 gets activated as alternative (as expected) because jar #2 isn't a
bean-archive (that's the difference compared to the broken example).
that prevents >e.g.< portable extensions from providing extension-points to work
around the broken @Alternative spec. section.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira