]
Antoine Sabot-Durand updated CDI-471:
-------------------------------------
Sprint: Sprint 1
Support repeating qualifiers in typesafe resolution mechanism
-------------------------------------------------------------
Key: CDI-471
URL:
https://issues.jboss.org/browse/CDI-471
Project: CDI Specification Issues
Issue Type: Feature Request
Components: Resolution
Reporter: Antonin Stefanutti
Labels: F2F2016
Fix For: 2.0 .Final
As Java 8 provides improved support for [repeating
annotations|http://docs.oracle.com/javase/tutorial/java/annotations/repea...], it
would be valuable to percolate that support into the CDI typesafe resolution mechanism.
For example, one could write:
{code}
@Qualifier
@Repeatable(ContextNames.class)
public interface @ContextName {
String value;
}
public @interface ContextNames {
ContextName[] value();
}
{code}
And then:
{code}
@ContextName("ctx1")
class CamelContext1 {
}
@ContextName("ctx2")
class CamelContext2 {
}
@Uri("")
@Produces
@ContextName("ctx1")
@ContextName("ctx2")
static ProducerTemplate producerTemplate(InjectionPoint ip, @Any
Instance<CamelContext> instance) {
}
{code}
That enables to use annotations both as a CDI qualifiers and a metadata providers while
still be relying on standard typesafe resolution mechanism during the deployment phase to
detect unsatisfied or ambiguous dependencies.
Support of the annotation container / list for backward compatibility could be provided
as well.