[cdi-dev] [JBoss JIRA] (CDI-468) Extend javax.interceptor.InvocationContext

Matěj Novotný (Jira) issues at jboss.org
Mon Oct 21 11:02:01 EDT 2019


    [ https://issues.jboss.org/browse/CDI-468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13802159#comment-13802159 ] 

Matěj Novotný commented on CDI-468:
-----------------------------------

Those bindings shouldn't be empty, sounds like Weld bug indeed, I am curious to see the reproducer.
Meanwhile, note that Weld also stores those bindings into {{InvocationContext}}, you can use:

{code}
    // for the record, this key is stored under WeldInvocationContext in the API
    String INTERCEPTOR_BINDINGS_KEY = "org.jboss.weld.interceptor.bindings";

    @AroundInvoke
    public Object someInterceptor(InvocationContext invocationContext) throws Exception {

        final Set<Annotation> interceptorBindings = (Set<Annotation>)invocationContext.getContextData().get(INTERCEPTOR_BINDINGS_KEY);
}
{code}

I wonder if this way you'll see the bindings?

> 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