[
https://issues.jboss.org/browse/CDI-610?page=com.atlassian.jira.plugin.sy...
]
Martin Kouba edited comment on CDI-610 at 9/20/17 2:58 AM:
-----------------------------------------------------------
Maybe we don't need to extend the API but instead clarify that for a {{@Dependent}}
bean it should be possible to obtain {{InjectionPoint}} from within
{{Contextual.create()}} (e.g. using
[
BeanManager.createInstance().select(InjectionPoint.class).get()|https://g...])
and during invocation of a callback specified by {{BeanConfigurator.produceWith()}} (e.g.
https://github.com/weld/core/blob/master/tests-arquillian/src/test/java/o...).
Note that {{CreationalContext}} is currently bound to a bean instance, not an injection
point, e.g. an instance might be reused when resolving all injection points of a bean
instance. (of course this is just an impl detail)
was (Author: mkouba):
Maybe we don't need to extend the API but instead clarify that for a {{@Dependent}}
bean it should be possible to obtain {{InjectionPoint}} from within
{{Contextual.create()}} (e.g. using
{{BeanManager.createInstance().select(InjectionPoint.class).get()}}) and during invocation
of a callback specified by {{BeanConfigurator.produceWith()}}
(
https://github.com/weld/core/blob/master/tests-arquillian/src/test/java/o...).
Note that {{CreationalContext}} is currently bound to a bean instance, not an injection
point, e.g. an instance might be reused when resolving all injection points of a bean
instance. (of course this is just an impl detail)
Add API to obtain current injection point from Bean#create
----------------------------------------------------------
Key: CDI-610
URL:
https://issues.jboss.org/browse/CDI-610
Project: CDI Specification Issues
Issue Type: Feature Request
Components: Portable Extensions
Reporter: arjan tijms
There's currently not a clear way on how to obtain the *current* injection point (if
any) from {{Bean<T>#create}}.
A previously somewhat accepted way (though not specified) was:
{code}
Bean<? extends Object> bean =
beanManager.resolve(beanManager.getBeans(InjectionPoint.class));
InjectionPoint injectionPoint = (InjectionPoint) beanManager.getReference(bean,
InjectionPoint.class, creationalContext);
{code}
This however broke in some version of Weld.
Since getting the injection point is an often used feature in producers, I'd like to
propose to introduce an easy API for this, so {{Bean<T>}} implementations can use
this just as easily. E.g. something like: {{BeanManager#getCurrentInjectionPoint()}}.
Also see:
http://cdi-development-mailing-list.1064426.n5.nabble.com/Getting-injecti...
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)