[cdi-dev] [JBoss JIRA] (CDI-673) Revisit manipulation with InjectionPoint(s) in ProducerConfigurator

Antoine Sabot-Durand (JIRA) issues at jboss.org
Mon Jan 9 06:01:00 EST 2017

     [ https://issues.jboss.org/browse/CDI-673?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on CDI-673 started by Antoine Sabot-Durand.
> Revisit manipulation with InjectionPoint(s) in ProducerConfigurator
> -------------------------------------------------------------------
>                 Key: CDI-673
>                 URL: https://issues.jboss.org/browse/CDI-673
>             Project: CDI Specification Issues
>          Issue Type: Bug
>    Affects Versions: 2.0.Beta1
>            Reporter: Matej Novotny
>            Assignee: Antoine Sabot-Durand
>             Fix For: 2.0 .Final
> Currently, {{ProducerConfigurator}} allows to add or replace injection points.
> Firstly, {{addInjectionPoints}} - if you think about this, it does not really make sense. You already have producer method defined, it has some body and uses its parameter within that method body. So if you add any IP, the method would not make use of it anyway.
> Secondly, replacing IP with {{injectionPoints}} - now this seems useful, but in fact it won't work. As it stands, replacing them in Weld only affects validation phase, not the injection itself. This means that if you have following producer:
> {code}
> @Produces public Foo produceIt (@Default Bar) { //do stuff}
> {code}
> and meant to replace the parameter with, say, {{@MyCustom Bar}}, you would in the end still end up with {{@Default Bar}}.
> The problem here is that [spec|http://docs.jboss.org/cdi/spec/2.0.EDR2/cdi-spec.html#injectiontarget] states the following:
> bq. Implementations of Producer and InjectionTarget must ensure that the set of injection points returned by getInjectionPoints() are injected by produce() or inject().
> However, spec says nothing about what should happen when you change implementation's set on IPs later.
> Note: I think we bumped into similar issue with {{BeanConfigurator}} (or some other configurator as well). I will try to dig up that discussion.

This message was sent by Atlassian JIRA

More information about the cdi-dev mailing list