You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwebbeans.apache.org by "Antonin Stefanutti (JIRA)" <ji...@apache.org> on 2014/10/03 03:22:34 UTC

[jira] [Commented] (OWB-1004) Enable repeating qualifiers with binding attributes

    [ https://issues.apache.org/jira/browse/OWB-1004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14157555#comment-14157555 ] 

Antonin Stefanutti commented on OWB-1004:
-----------------------------------------

For information, repeating qualifiers support has already been implemented in Weld 3 alpha version as documented in http://weld.cdi-spec.org/news/2014/10/02/weld-300Alpha1/ since it is likely to be supported in CDI 2.0.

That'd be preferable to have it enabled, with the proposed warning, before releasing version {{1.5.0}} as it used to work for version {{1.2.1}} as reported by [~antoine] in https://docs.google.com/document/d/1KUaxXIXJ_r-h5UJGIij6I4vrLS7uXkeeeZr2SaRipWQ.

> Enable repeating 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: 1.5.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)