[ 
https://issues.jboss.org/browse/WELD-930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jozef Hartinger updated WELD-930:
---------------------------------

    Fix Version/s: 2.0.0.Alpha2

    
> Producer is made an alternative if the declaring bean class is an alternative
> -----------------------------------------------------------------------------
>
>                 Key: WELD-930
>                 URL: https://issues.jboss.org/browse/WELD-930
>             Project: Weld
>          Issue Type: Bug
>          Components: Producers (Methods, Fields and Disposers)
>    Affects Versions: 1.1.0.Final
>            Reporter: Alexey Kazakov
>            Assignee: Marko Lukša
>             Fix For: 1.2.0.Beta1, 2.0.0.Alpha2
>
>
> I'm looking at examples from 
> https://github.com/pmuir/jboss-as-developer-guide/tree/master/quickstarts
> There is org.jboss.as.quickstarts.login.EJBUserManager:
> {code:title=org.jboss.as.quickstarts.login.EJBUserManager|borderStyle=solid}
> ...
> @Named("userManager")
> @RequestScoped
> @Alternative
> @Stateful
> public class EJBUserManager implements UserManager {
> ...
>     @Produces
>     @Named
>     @RequestScoped
>     public List<User> getUsers() throws Exception {
>         ...
>     }
> ...
> }
> {code}
> And there is also another bean 
> org.jboss.as.quickstarts.login.ManagedBeanUserManager:
> {code:title=org.jboss.as.quickstarts.login.ManagedBeanUserManager|borderStyle=solid}
> ...
> @Named("userManager")
> @RequestScoped
> public class ManagedBeanUserManager implements UserManager {
>    @SuppressWarnings("unchecked")
>    @Produces
>    @Named
>    @RequestScoped
>    public List<User> getUsers() throws Exception {
>        ...
>    }
> ...
> }
> {code}
> This code works in Weld even if EJBUserManager.getUsers() is not annotated 
> @Alternative. But regarding the spec such a method has an ambiguous EL name 
> "users":
> {quote}
> 5.3.1. Ambiguous EL names
> An ambiguous EL name exists in an EL expression when an EL name resolves to 
> multiple beans. When an ambiguous EL
> name exists, the container attempts to resolve the ambiguity. If any of the 
> beans are alternatives, the container eliminates
> all beans that are not alternatives, *except for producer methods and fields 
> of beans that are alternatives*. If there is exactly
> one bean remaining, the container will select this bean, and the ambiguous EL 
> name is called resolvable.
> {quote}
> There is a comment from Pete Muir:
> {quote}
> This looks to me like a bug in Weld (one that crept in from a pre-final spec 
> revision) - that it checks if the declaring bean class is an alternative, and 
> if it is, makes the producer an alternative. Can you file a WELD issue for 
> this? I'll update the quickstart to explicitly make the producer an 
> alternative.
> Pete
> {quote}

--
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

       

_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to