[cdi-dev] [JBoss JIRA] (CDI-468) Extend javax.interceptor.InvocationContext
David Prevost (Jira)
issues at jboss.org
Sun Oct 20 14:50:00 EDT 2019
[ https://issues.jboss.org/browse/CDI-468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13801781#comment-13801781 ]
David Prevost edited comment on CDI-468 at 10/20/19 2:49 PM:
-------------------------------------------------------------
Any updates on this, I seem to currently encounter this problem using wildfly 17 and weld 3.1.final.
I dynamicaly inject an annotation in a javax.enterprise.inject.spi.Extension like below:
{code:java}
processAnnotatedType.configureAnnotatedType()
.filterMethods(RestHttpAnnotationUtils::isGetOrPostOrPutOrDelete)
.forEach(method -> method.add(new ModelClassOperationSecurityValidationImpl(
ClassOperationPermissionMapping.map(method.getAnnotated()))));
{code}
And the binding is empty in the interceptor surrounded by @AroundInvoke:
{code:java}
@AroundInvoke
public Object modelClassOperationSecurity(InvocationContext invocationContext) throws Exception {
// interceptorBindings is empty
final Set<Annotation> interceptorBindings = ((WeldInvocationContext) invocationContext)
.getInterceptorBindings();
}
{code}
was (Author: plum117):
Any updates on this, I seem to currently encounter this problem using wildfly 17 and weld 3.1.final
> Extend javax.interceptor.InvocationContext
> ------------------------------------------
>
> Key: CDI-468
> URL: https://issues.jboss.org/browse/CDI-468
> Project: CDI Specification Issues
> Issue Type: Feature Request
> Reporter: Arne Limburg
> Priority: Major
> Fix For: 2.1 (Discussion)
>
>
> Currently there is no easy way to obtain the interceptor binding annotation for an interceptor call. The interceptor binding annotation is needed to access @Nonbinding attributes and behave accordingly.
> I propose to extend the javax.interceptor.InvocationContext interface with a method
> public Annotation getInterceptorBinding() or
> public <A extends Annotation> A getInterceptorBinding(Class<A> type)
> The @AroundInvoke method of CDI Interceptors may use this extended interface as parameter instead of the original one to obtain the interceptor binding annotation.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the cdi-dev
mailing list