[cdi-dev] CDI and generics
Arne Limburg
arne.limburg at openknowledge.de
Sun Jul 7 10:04:35 EDT 2013
Hi all,
At the OpenWebBeans list we are currently discussing handling of generics in CDI.
I found a test in the CDI 1.1 TCK, which imho has a bug. The test is org.jboss.cdi.tck.tests.inheritance.generics.MemberLevelInheritanceTest and the (simplified) deployment scenario is the following:
public class Baz<T> {
}
public class Qux extends Baz<String> {
}
@Vetoed
public class Bar<T1, T2> {
@Inject
private Baz<T1> baz;
@Inject
private Baz<List<T2>> t2BazList;
}
@RequestScoped
public class Foo extends Bar<String, Qux> {
}
public class Producer {
@Produces
@Amazing
public String produceString() {
return "ok";
}
@Produces
public String[] produceStringArray() {
return new String[0];
}
@Produces
public Baz<Baz<Qux>> produceBazBazQux() {
return new Baz();
}
}
The class Bar has some more injection points, but that does not matter.
Due to the TCK this deployment should work, but I don't know how.
Question: Is Baz a Bean (I suppose so) and may it be injected into Bean Foo, more precisely into the second injection point of class Bar?
- If yes, it also should be injected into the first injection point, right? This would lead to an AmbiguousResolutionException since Qux may also be injected into the first injection point.
- If no, the deployment should fail with a UnsatisfiedResolutionException since there is no Bean that can be injected into that injection point.
Is this a bug in the TCK and if not, how is this supposed to work?
Cheers,
Arne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/cdi-dev/attachments/20130707/4ef662a0/attachment.html
More information about the cdi-dev
mailing list