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)