[cdi-dev] [JBoss JIRA] (CDI-614) Review all read methods at configurators

Martin Kouba (JIRA) issues at jboss.org
Tue Jun 7 05:00:00 EDT 2016

    [ https://issues.jboss.org/browse/CDI-614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13248773#comment-13248773 ] 

Martin Kouba commented on CDI-614:

bq. AFAIK the InjectionPointConfigurator is available only during ProcessInjectionPoint lifecycle event.

Yes, it is. We've discussed the possibilities to use the {{InjectionPointConfigurator}} within {{BeanConfigurator}}, but in fact, all those injection point-related methods on {{BeanConfigurator}} are disputable as well (note that {{Bean.getInjectionPoints()}} is only used for validation, not for injection).

> Review all read methods at configurators
> ----------------------------------------
>                 Key: CDI-614
>                 URL: https://issues.jboss.org/browse/CDI-614
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>    Affects Versions: 2.0-EDR2
>            Reporter: Tomas Remes
> Currently there are several read methods used to initialize given configurator. These methods are at:
> * {{BeanConfigurator}}
> * {{InjectionPointConfigurator}}
> * {{ObserverMethodConfigurator}}
> I think we should review all of them. I don't understand to usage or let say additional value of the following ones:
> * {{ObserverMethodConfigurator#read(javax.enterprise.inject.spi.ObserverMethod<T>)}}
> This allows you to add new observer method based on exsiting one. Although when you want to define some observed type (of this new method) you need to specify subtype of the original type or you will end up with ClassCastException.
> Then there are those at {{InjectionPointConfigurator}} which appears to me completely useless:
> * {{InjectionPointConfigurator#read(java.lang.reflect.Field)}}
> * {{InjectionPointConfigurator#read(java.lang.reflect.Parameter)}}
> * {{InjectionPointConfigurator#read(javax.enterprise.inject.spi.AnnotatedField<?>)}}
> * {{InjectionPointConfigurator#read(javax.enterprise.inject.spi.AnnotatedParameter<?>)}}
> * {{InjectionPointConfigurator#read(javax.enterprise.inject.spi.InjectionPoint)}}
> AFAIK the {{InjectionPointConfigurator}} is available only during {{ProcessInjectionPoint}} lifecycle event. My question is why should I use any of these during this lifecycle event since I can easily call {{event.configureInjectionPoint()}}? Do we want to allow to configure different injection point in non corresponding {{ProcessInjectionPoint}} lifecycle event? 

This message was sent by Atlassian JIRA

More information about the cdi-dev mailing list