We may not be on the same page here. Here is my understanding of Arjan's
setup:
There is a custom Bean e.g. "FooBean implements Bean<Foo>" producing
instances of Foo. I assume the bean is @Dependent.
Then, there is a Bar class e.g.
public class Bar {
@Inject Foo foo;
}
If FooBean#create() calls "InjectionPoint ip =
getBean(InjectionPoint.class);" it means "I want to see an
InjectionPoint representing where I am being injected". In our case this
would be InjectionPoint representing Bar.foo field.
This is no different from a producer method injecting InjectionPoint
directly.
On 11/21/2014 10:23 AM, Romain Manni-Bucau wrote:
yes but what would mean any of the values? Not bound to any
injection
it doesn't mean anything
Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau
2014-11-21 10:19 GMT+01:00 Jozef Hartinger <jharting(a)redhat.com>:
> It means "give me an instance of type InjectionPoint and @Default
> qualifier". In default setup this should be served by the built-in
> Bean<InjectionPoint>".
>
>
> On 11/21/2014 10:12 AM, Romain Manni-Bucau wrote:
>> @Jozef: InjectionPoint ip = getBean(InjectionPoint.class); doesn't
>> mean anything in the absolute. So why should it be allowed?
>>
>>
>> Romain Manni-Bucau
>> @rmannibucau
>>
http://www.tomitribe.com
>>
http://rmannibucau.wordpress.com
>>
https://github.com/rmannibucau
>>
>>
>> 2014-11-21 9:57 GMT+01:00 Jozef Hartinger <jharting(a)redhat.com>:
>>> The workaround is very ugly. Instead of going that path OWB should be
>>> fixed
>>> to support the simple way.
>>>
>>>
>>> On 11/20/2014 11:22 PM, arjan tijms wrote:
>>>> Hi,
>>>>
>>>> On Thu, Nov 20, 2014 at 11:07 PM, Romain Manni-Bucau
>>>> <rmannibucau(a)gmail.com> wrote:
>>>>> Not sure what it means actually. InjectionPoint is highly contextual
so
>>>>> having an exception (not a npe of course) would make sense to me.
>>>>>
>>>>> Bean#create is a "you know what you do" from my
understanding since
>>>>> interceptors/decorators are not supported for instance so it
shouldnt
>>>>> rely
>>>>> of things like that, no?
>>>> Sure, no interceptor/decorators, but the injection point -is- there of
>>>> course. I can see it being set in OWB as a special property on the
>>>> creational context if I walk down the stack trace in a debugger when
>>>> my Bean#create method is being called. An injection point is something
>>>> that implementations of Bean could always need, for instance to
>>>> retrieve the name of the field into which injection is taking place.
>>>>
>>>> Of course, it being a "you know what you do", it's okay
that it's not
>>>> as simple as having it injected into the Bean, and that some extra
>>>> code is needed to obtain it. As long as there is at least -a- way to
>>>> get hold of it.
>>>>
>>>> The method I posted in the openings post does in fact work, but it
>>>> feels slightly hacky. If that's an acceptable way to get the
injection
>>>> point, then so be it. But just wondering if it's not something that
>>>> works by chance and may break later.
>>>>
>>>> Kind regards,
>>>> Arjan
>>>> _______________________________________________
>>>> cdi-dev mailing list
>>>> cdi-dev(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/cdi-dev
>>>>
>>>> Note that for all code provided on this list, the provider licenses the
>>>> code under the Apache License, Version 2
>>>> (
http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas
>>>> provided on this list, the provider waives all patent and other
>>>> intellectual
>>>> property rights inherent in such information.
>>>