Antonin Stefanutti created OWB-1004:
---------------------------------------

             Summary: 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)

Reply via email to