[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