[
https://issues.apache.org/jira/browse/OWB-1004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14128756#comment-14128756
]
Romain Manni-Bucau commented on OWB-1004:
-----------------------------------------
Not sure.
You are right we can break java but then the app is broken in term of
maintainance (I know that's not cause you can that you should but...).
Regarding your quote it is not opposed. I never said what you think. My
proposal was to do the same as what we'd do with java in CDI:
{code}
@MyCamelQualifier
@Contexts({ "ctx1", "ctx2" }) // pure metadata
public class XXX {
}
{code}
or to use non binding which is possible IIRC.
Issue about logical abstraction is when it is too much abstracted then it is
100% useless. That's why I think we should keep our behavior by default. We can
support a flag for this feature but I really think it should be tackled at spec
level.
> Enable repeatable qualifiers with binding attributes
> ----------------------------------------------------
>
> Key: OWB-1004
> URL: https://issues.apache.org/jira/browse/OWB-1004
> Project: OpenWebBeans
> Issue Type: Improvement
> Components: Core
> Affects Versions: 2.0.0
> Reporter: Antonin Stefanutti
>
> While having multiple annotations of the same type declared on a member or
> type is not permitted in the Java language prior to Java 8, the CDI
> specification does not set any particular restriction in its SPI that enables
> to alter bean metadata, e.g. in {{Annotated.getAnnotations()}} and
> {{BeanAttributes.getQualifiers()}}, in a way to add multiple annotations of
> the same type.
> Having multiple CDI qualifiers of the same type can prove to be useful when
> this type declares binding attributes.
> Unfortunately, in such situation, the following exception is thrown by OWB
> version 2.0-SNASHOT:
> {code}
> javax.enterprise.inject.spi.DefinitionException:
> java.lang.IllegalArgumentException: Manager.resolveDecorators() method
> parameter qualifiers array argument can not define duplicate qualifier
> annotation with name : @org.apache.camel.cdi.ContextName
> at
> org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:284)
> at
> org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication(AbstractLifeCycle.java:138)
> at
> org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:104)
> at
> org.apache.webbeans.arquillian.standalone.OwbStandaloneContainer.deploy(OwbStandaloneContainer.java:122)
> {code}
> IMO, preventing the ability to add multiple annotations of the same type via
> the CDI SPI restricts powerful use cases (I can share more details on these
> use cases if needed). Last but not least, having this ability built-in in the
> Java 8 language is another incentive to provide that support.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)