If I understand you correctly then the answer is: why the hack don't I get the
InjectionPoint info for @RequestScoped bean producer methods, right?
This has to do that NormalScoped Contexts always will result in creating a proxy which
will get injected. Which means that we could determine the injection point only for the
proxy (which is of no use) but not for the contextual instance which gets created by the
producer method.
You just have no way to determine where your contextual instance will gonna get used. In
fact, they will always only be accessed via proxies and thus from n different other beans.
In other words: there is not 1 InjectionPoint but multiple. And they are completely
undetermined at the time the contextual instance gets created.
You currently can only use the InjectionPoint info in produer methods for @Dependent
beans.
hth.
LieGrue,
strub
----- Original Message -----
From: Jozef Hartinger <jharting(a)redhat.com>
To: John D. Ament <john.d.ament(a)gmail.com>
Cc: cdi-dev(a)lists.jboss.org
Sent: Thursday, September 8, 2011 8:17 AM
Subject: Re: [cdi-dev] RequestScoped and Injection Points
On 09/07/2011 02:10 AM, John D. Ament wrote:
> CDI Experts
>
> Was wondering if you could help me understand rationale. In request
> scoped objects, when you create a producer method that creates request
> scoped instances, why is there no access to the underlying injection
> point?
>
> Let's say that you have a qualifier with a single String value
> attribute that is nonbinding; let's say @JmsDestination. You have the
> following injection points:
>
> @Inject @JmsDestination("jms/MyQueue") MessageProducer
queueProducer;
> @Inject @JmsDestination("jms/MyTopic") MessageProducer
topicProducer;
>
> In this case, two distinct MessageProducers should be injected. The
> CDI container should be able to differentiate the two, since they have
> different values on the qualifier.
The CDI container is be able to differentiate the two. By annotating the
qualifier's member with @NonBinding, you explicitly asked the container
it to ignore the difference.
> However, CDI disallows this since the producer methods used to create
> them would not have access to the injection point. If a second
> injection point is found, CDI should return the same instance.
>
> I hope it doesn't sound like I'm babbling, but I wanted to put the
> question out there to see if it's something that could be addressed.
>
> Regards,
>
> John
>
>
> _______________________________________________
> cdi-dev mailing list
> cdi-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/cdi-dev
_______________________________________________
cdi-dev mailing list
cdi-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/cdi-dev