[cdi-dev] [JBoss JIRA] (CDI-469) Allow nonbinding producer methods to have scopes

John Ament (JIRA) issues at jboss.org
Mon Sep 15 08:00:16 EDT 2014

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

John Ament commented on CDI-469:

Sure, suppose I have this qualifier:

public @interface Converter {
   @Nonbind String value();

I can define a producer field like so:

private Function<A,B> aToBConv = new AToBFunction();

If however these were lazily instantiated, or I had a map or looked up values via DB call, I need to add a producer method.  In this case, I want it to be generic and reusable, however the instances that it returns should be proxied, scope aware (e.g. not unique for each invocation, as is the current behaviour).

// @ApplicationScoped <-- scope is not valid here
public Function<?,?> createOrFindFunction(InjectionPoint ip) {
// work to look up the function

Scope isnt' valid here as the injection point could be different.  What I'm proposing is that we lift this restriction, in cases where the qualifiers are the same.

> Allow nonbinding producer methods to have scopes
> ------------------------------------------------
>                 Key: CDI-469
>                 URL: https://issues.jboss.org/browse/CDI-469
>             Project: CDI Specification Issues
>          Issue Type: Feature Request
>          Components: Beans, Contexts
>    Affects Versions: 1.2.Final
>            Reporter: John Ament
> Currently, you cannot have a nonbinding producer method, e.g. one where the annotation is read at runtime, with a scope.  This means that repeated injections always happen.  It would be better if you could scope the nonbinding producer methods, so that the results were bound, e.g. to a request scope, so that look ups can be done once.
> The current way to avoid this is to use a holder object with the proper scope.

This message was sent by Atlassian JIRA

More information about the cdi-dev mailing list