[cdi-dev] [javaee-spec users] Re: About Interceptors's enabling
Mark Struberg
struberg at yahoo.de
Wed Oct 23 13:40:07 EDT 2013
having @Priority on an interceptor basically disables the 'BDA enablement' and enables 'global enablemant' as per the spec (CDI-18).
Since defining an interceptor in beans.xml was originally specifically for 'BDA enablement', I have expected the ordering to only follow the @Priority rules in this case..
But of course this could be made clearer in the spec.
Pete, what is your take on this?
LieGrue,
strub
>________________________________
> From: Jozef Hartinger <jozefhartinger at gmail.com>
>To: Mark Struberg <struberg at yahoo.de>
>Cc: "users at javaee-spec.java.net" <users at javaee-spec.java.net>; Tang Yong <tangyong at cn.fujitsu.com>; Pete Muir <pete.muir at gmail.com>; Bill Shannon <bill.shannon at oracle.com>; cdi-dev <cdi-dev at lists.jboss.org>
>Sent: Wednesday, 23 October 2013, 16:58
>Subject: [javaee-spec users] Re: About Interceptors's enabling
>
>
>
>If an interceptor is enabled by both @Priority and in beans.xml then:
>
>1) The priority defines the position of the interceptor in the
interceptor chain
>2) The position of the interceptor declaration in beans.xml
defines the position of the interceptor in the interceptor chain
(which is possibly different from (1))
>
>Unless I am wrong the spec does not define which of these should
take precedence nor forbids this case. As this case is unspecified
I would consider "calling the interceptor twice" a possible
implementation.
>
>Jozef
>
>On 10/18/2013 06:13 PM, Mark Struberg wrote:
>
>I'd say that's an impl bug.
>>
>>beans.xml and @Priority only say IF and in which order the
interceptor is enabled. But it still is there only once.
>>
>>LieGrue,
>>strub
>>
>>
>>
>>
>>
>>
>>>________________________________
>>> From: John D. Ament <john.d.ament at gmail.com>
>>>To: users at javaee-spec.java.net
>>>Cc: Tang Yong <tangyong at cn.fujitsu.com>; Pete Muir <pete.muir at gmail.com>; Bill Shannon <bill.shannon at oracle.com>
>>>Sent: Thursday, 17 October 2013, 15:24
>>>Subject: [javaee-spec users] Re: About Interceptors's enabling
>>>
>>>
>>>I wonder if this is somehow related to an issue I saw
pop up on SO recently.
>>>
>>>Basically, there's an issue where if an interceptor is
annotated
>>>@Priority and listed in beans.xml, it gets invoked
twice.
>>>
>>>Is this the expected behavior?
>>>
>>>John
>>>
>>>
>>>On Thu, Oct 17, 2013 at 9:12 AM, Pete Muir <pmuir at bleepbleep.org.uk> wrote:
>>>> Hi Tang,
>>>>
>>>> I'm afraid I don't quite understand your question
:-(
>>>>
>>>> Perhaps you could provide a concrete example of
what you would prefer?
>>>>
>>>> Pete
>>>>
>>>> On 17 Oct 2013, at 09:03, Tang Yong <tangyong at cn.fujitsu.com> wrote:
>>>>
>>>>> Pete
>>>>> CC: Bill
>>>>>
>>>>> I have a question about Interceptors's
enabling.
>>>>>
>>>>> The story should come from [1] and [2], and
from "5.3 Ordering
>>>>> Interceptors using the Priority Annotation"
of JSR 318.
>>>>>
>>>>> "An interceptor bound to a component, a
component method, or constructor
>>>>> using interceptor binding may be enabled for
the entire application by
>>>>> applying the Priority annotation, along with
a priority value, on the
>>>>> interceptor class."
>>>>>
>>>>> From another fact, Interceptors are
deployment-specific and are disabled
>>>>> by default. Like alternatives, interceptors
have to be
>>>>> enabled by using the CDI deployment
descriptor beans.xml of the jar.
>>>>>
>>>>> Well, if I uses interceptors binding, I will
meet two cases,
>>>>>
>>>>> 1) I must enable interceptors in beans.xml
explicitly if I am not ready
>>>>> to use @Priority.
>>>>>
>>>>> 2) Once I uses @Priority, I need to take care
of whether to need to
>>>>> declare interceptors in beans.xml becase this
may break/override
>>>>> invocation order of interceptors.
>>>>>
>>>>> Based on such facts, enable interceptors in
beans.xml explicitly has
>>>>> brought two different resposibilities for
interceptors binding, so, for
>>>>> an user, this has caused some puzzles just as
I made a mistake in [2].
>>>>>
>>>>> My question is that why we can not make
"enable interceptors in
>>>>> beans.xml explicitly" bring *only one*
resposibility?
>>>>>
>>>>> Thanks
>>>>> Tang
>>>>>
>>>>> [1]:
>>>>> https://java.net/projects/javaee-spec/lists/jsr342-experts/archive/2012-12/message/15
>>>>> [2]: https://issues.jboss.org/browse/WELD-1528
>>>>>
>>>>>
>>>>> --
>>>>> ----------------------
>>>>> Tang Yong
>>>>> Senior Engineer
>>>>> GlassFish Committer (OSGi & OSGi-JavaEE)
>>>>> OSGi Alliance Supporter
>>>>> Blog: http://osgizone.typepad.com/tangyong/
>>>>>
>>>>> Nanjing Fujitsu NanDa Software Tec CO.,LTD
>>>>> http://www.fujitsu.com/cn/fnst
>>>>> Tel: +86-25-86630566-8310
>>>>> Fax: +86-25-83317685
>>>>> ----------------------
>>>>>
>>>>
>>>
>>>
>
>
>
More information about the cdi-dev
mailing list