[
https://issues.jboss.org/browse/CDI-471?page=com.atlassian.jira.plugin.sy...
]
Martin Kouba commented on CDI-471:
----------------------------------
[~meetoblivion] The set of qualifiers of the producer method {{producerTemplate()}} from
the description above should just contain both {{@ContextName("ctx1")}} and
{{@ContextName("ctx2")}}. So all the following injection points should resolve
to the producer method as the bean has all the required qualifiers: {{@Inject
@ContextName("ctx1") ProducerTemplate}}, {{@Inject
@ContextName("ctx2") ProducerTemplate}} , {{@Inject
@ContextName("ctx1") @ContextName("ctx2") ProducerTemplate}}.
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 (proposed)
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.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)