[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