[
https://issues.apache.org/jira/browse/OWB-658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13246261#comment-13246261
]
Andreas Erne commented on OWB-658:
----------------------------------
Our case is even simpler than the one you described:
>public class @Service MyBeanA extends BaseBean implements A ...
>public class @Service MyBeanB extends BaseBean implements B ...
>public class @Service @Alternative MyBeanBAlt extends BaseBean implements B ...
beanManager.getBeans(BaseBean.class, new ServiceQualifier()) should return
MyBeanA and MyBeanBAlt
I understand that it is quite hard to define for which bean type filter
criteria an alternative should be evaluated or not. For example:
>Example 1: beanManager.getBeans(Object.class)
>Example 2: beanManager.getBeans(BaseBean.class)
>Example 3: beanManager.getBeans(A.class)
>...
One solution could be to return all matching beans (inclusive alternatives) if
the bean type filter criteria is not an interface (examples 1 and 2). For
example 3, the alternatives for A are evaluated.
> BeanManager.getBeans(Type, Annotation...) can not be used to query all known
> beans
> ----------------------------------------------------------------------------------
>
> Key: OWB-658
> URL: https://issues.apache.org/jira/browse/OWB-658
> Project: OpenWebBeans
> Issue Type: Bug
> Components: Injection and Lookup
> Affects Versions: 1.1.3
> Reporter: Andreas Erne
> Assignee: Mark Struberg
> Fix For: 1.1.4
>
>
> Expected behaviour: beanManager.getBeans(Object.class, new
> ServiceQualifier()) finds all beans that are qualified as "Service",
> regardless of the beans implementation type
> Effective behaviour: The BeanManager fails if a base type (Object in this
> example) is provided instead of a leaf type. In theses cases, the BeanManager
> finds the Alternative beans only and forgets about all beans that lack of an
> Alternative
> Reason: The BeanManager's helper
> org.apache.webbeans.container.InjectionResolver fails in method
> implResolveByType method as it can not handle collections of beans of
> different types. It treats all beans as if they where of the same type (and
> therefore have the same Alternative)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira