[cdi-dev] Getting injection point from Bean#create

Arne Limburg arne.limburg at openknowledge.de
Sat Nov 22 05:23:13 EST 2014


Hi Arjan,

I¹ve verified, that this is a bug in OpenWebBeans.
I've created 
https://issues.apache.org/jira/browse/OWB-1030
and I¹m going to fix it.

Btw.: You have to use the CreationalContext of the bean (the way OWB
currently throws the "Inconsistent injection point stack" exception)

Cheers,
Arne


Am 21.11.14 12:58 schrieb "arjan tijms" unter <arjan.tijms at gmail.com>:

>Hi,
>
>On Fri, Nov 21, 2014 at 10:31 AM, Jozef Hartinger <jharting at redhat.com>
>wrote:
>> Here is my understanding of Arjan's
>> setup:
>> [...]
>>
>> This is no different from a producer method injecting InjectionPoint
>> directly.
>
>That's indeed the exact setup.
>
>On Fri, Nov 21, 2014 at 11:34 AM, Romain Manni-Bucau
><rmannibucau at gmail.com> wrote:
>> PS: BTW should work on OWB 1.5.0-SNAPSHOT now
>
>Wow, I'll look at the latest SNAPSHOT of OWB then. Thanks Romain!
>
>Kind regards,
>Arjan
>
>
>
>
>>
>>
>> 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 at 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 at 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 at 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 at 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.
>>>>>>
>>>>>>
>>
>_______________________________________________
>cdi-dev mailing list
>cdi-dev at 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.




More information about the cdi-dev mailing list