[cdi-dev] Proposal: Improve producer method signature capability by accepting qualifier annotations

Mark Paluch mpaluch at paluch.biz
Fri Aug 1 14:16:17 EDT 2014


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.

Best regards, Mark

--

PALUCH.biz
Heckenpfad 14 // 69469 Weinheim
T. 0 62 01/65 04 24-0 // F. 0 62 01/65 04 24-9
mpaluch at paluch.biz
http://www.paluch.biz

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/cdi-dev/attachments/20140801/42cd724e/attachment.html 


More information about the cdi-dev mailing list