[cdi-dev] [JBoss JIRA] (CDI-712) Clarify whether is should be possible to "override" built-in Instance/Provider

Mark Struberg (JIRA) issues at jboss.org
Tue Aug 8 09:12:00 EDT 2017


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

Mark Struberg commented on CDI-712:
-----------------------------------

> Hm, why is it preferable?
A Long Bean would also work but then it would go through the whole CDI stack for EACH and every invocation!
With a custom Provider we can do any direct resolution. 

Also the spec does NOT state that one cannot provide an Alternative for built-in beans.
It should also be very easy for Weld to provide exactly that.
Note that it is also important to allow custom implementations of javax.inject.Provider as the Container would otherwise not be able to implement JSR-330 afaict.

> Clarify whether is should be possible to "override" built-in Instance/Provider
> ------------------------------------------------------------------------------
>
>                 Key: CDI-712
>                 URL: https://issues.jboss.org/browse/CDI-712
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>            Reporter: Martin Kouba
>
> In theory, an extension could register an alternative custom bean to override the built-in Instance/Provider bean for injection points such as {{@Inject Provider<String>}}. 
> It is not forbidden at the moment. The spec only states that there must be a built-in bean eligible for any injection point with Instance/Provider required type and any qualifier. See also https://docs.jboss.org/cdi/spec/2.0/cdi-spec.html#builtin_instance.
> It seems to be a powerful feature. On the other hand, it might be a source of confusion. Take for example this injection point:
> {code:java}
> @Inject
> @MyQualifier
> Instance<String> instance;
> {code}
> The qualifier is now considered when calling {{instance.get()}} and NOT when resolving the injection point.
> Note that the spec already allows to decorate built-in beans.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the cdi-dev mailing list