Correct, if Foo is not injected into an actual injection point but
instead BeanManager.getReference() is used instead, it is OK for Foo to
get null as the InjectionPoint
Another issue is what if there is @inject InjectionPoint ip, in
Foo? This should work (validated in TCKs)
Yes, same as above.
Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau
2014-11-21 10:31 GMT+01:00 Jozef Hartinger <jharting(a)redhat.com>:
> 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.
>>>>>