[cdi-dev] [JBoss JIRA] (CDI-451) Improve producer method signature capability by accepting qualifier annotations

Mark Paluch (JIRA) issues at jboss.org
Tue Aug 5 08:32:29 EDT 2014


Mark Paluch created CDI-451:
-------------------------------

             Summary: Improve producer method signature capability by accepting qualifier annotations
                 Key: CDI-451
                 URL: https://issues.jboss.org/browse/CDI-451
             Project: CDI Specification Issues
          Issue Type: Feature Request
          Components: Beans
            Reporter: Mark Paluch
            Priority: Optional


CDI supports producer methods which accept the InjectionPoint as argument which allows to access all metadata to the injection point. The InjectionPoint approach adds a certain complexity which is not needed when only qualifier metadata has to be processed. I propose to allow annotation types within the producer method signatures. Code example for a use case: 

{code}
@HttpParam("username") @Inject String username
{code}

{code}
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;

class HttpParams
  @Produces

  String getParamValue(HttpParam httpParam) {

     ServletRequest request = (ServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
	  
     return request.getParameter(httpParam.value());
	  
     // current support looks like:
     // String getParamValue(InjectionPoint ip) {
     // return request.getParameter(ip.getAnnotated().getAnnotation(HttpParam.class).value());

  }
}
{code}

Producer methods accepting qualifier annotations ensure to have always an annotation instance, this helps to prevent null pointer access since InjectionPoint.getAnnotated().getAnnotation(java.lang.Class<T>) may return null.



--
This message was sent by Atlassian JIRA
(v6.2.6#6264)


More information about the cdi-dev mailing list