Thanks Mark. 

Sent from my iPhone

On Oct 18, 2012, at 14:00, Mark Struberg <strub...@yahoo.de> wrote:

> I forwarded the question to the EJB EG which maintains the interceptors 
> specification.
> 
> Will ping back once they know more about it.
> 
> LieGrue,
> strub
> 
> 
> 
> 
> ----- Original Message -----
>> From: Mark Struberg <strub...@yahoo.de>
>> To: "deltaspike-users@incubator.apache.org" 
>> <deltaspike-users@incubator.apache.org>
>> Cc: 
>> Sent: Thursday, October 18, 2012 8:25 PM
>> Subject: Re: @Transactional interceptor ignores derived methods
>> 
>> Yes, that seems to be the most expected interpretation.
>> This is also what OWB is doing right now.
>> 
>> But by reading the interceptors spec I was not able to find any paragraph 
>> which 
>> exactly defines this behaviour.
>> 
>> So we might better reach out to the EJB EG with this question.
>> 
>> LieGrue,
>> strub
>> 
>> 
>> 
>> 
>> ----- Original Message -----
>>> From: Arne Limburg <arne.limb...@openknowledge.de>
>>> To: "deltaspike-users@incubator.apache.org" 
>> <deltaspike-users@incubator.apache.org>
>>> Cc: 
>>> Sent: Thursday, October 18, 2012 8:20 PM
>>> Subject: Re: @Transactional interceptor ignores derived methods
>>> 
>>> Answer to question 2.: methodA() should be intercepted on an instance of
>>> B, but not on an instance of A.
>>> 
>>> 
>>> Cheers,
>>> Arne
>>> 
>>> Am 18.10.12 17:41 schrieb "Martin Kouba" unter 
>>> <mko...@redhat.com>:
>>> 
>>>> Re question 1: yes, both methods should be intercepted (provided
>>>> @Transactional has @Inherited) - see 4.1. "Inheritance of 
>> type-level
>>>> metadata":
>>>> If X is annotated with a qualifier type, stereotype or interceptor
>>>> binding type Z then Y inherits the annotation if and only if Z declares
>>>> the @Inherited meta-annotation and neither Y nor any intermediate class
>>>> that is a subclass of X and a superclass of Y declares an annotation of
>>>> type Z.
>>>> 
>>>> AFIAK we have a test in CDI TCK 1.1 for this.
>>>> 
>>>> M
>>>> 
>>>> Dne 18.10.2012 17:34, Mark Struberg napsal(a):
>>>>>   I think there are 2 different questions to answer here:
>>>>> 
>>>>> 
>>>>>   @Transactional
>>>>>   public class A {
>>>>>     public void methodA();
>>>>>   }
>>>>> 
>>>>> 
>>>>> 
>>>>>   public class B extends A {
>>>>>     public void methodB();
>>>>>   }
>>>>> 
>>>>>   Question 1: does the @Transactional interceptor get inherited and 
>> both
>>>>> methodA() and methodB() get intercepted, or will only methodA() get
>>>>> intercepted? I assume the Transactional annotation itself is marked 
>> as
>>>>> inherited.
>>>>> 
>>>>> 
>>>>>   And now for the other case:
>>>>> 
>>>>> 
>>>>>   public class A {
>>>>>     public void methodA();
>>>>>   }
>>>>> 
>>>>> 
>>>>>   @Transactional
>>>>>   public class B extends A {
>>>>>     public void methodB();
>>>>>   }
>>>>> 
>>>>>   Question 2: does the @Transactional interceptor also affect 
>> inherited
>>>>> methods and both methodA() and methodB() get intercepted, or will 
>> only
>>>>> methodB() get intercepted?
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>   LieGrue,
>>>>>   strub
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>   ----- Original Message -----
>>>>>>   From: Marius Bogoevici <marius.bogoev...@gmail.com>
>>>>>>   To: deltaspike-users@incubator.apache.org
>>>>>>   Cc: Martin Kouba <mko...@redhat.com>
>>>>>>   Sent: Thursday, October 18, 2012 5:17 PM
>>>>>>   Subject: Re: @Transactional interceptor ignores derived 
>> methods
>>>>>> 
>>>>>>   IMO the way in which the specification should be interpreted 
>> is by
>>>>>> taking into
>>>>>>   account the whole set of metadata (inherited and defined on) 
>> of a
>>>>>> particular
>>>>>>   bean class.
>>>>>> 
>>>>>>   Therefore: @Transactional being @Inherited IIRC, the binding 
>> will 
>>> be
>>>>>> technically
>>>>>>   present on the derived class, so its methods will be 
>> considered 
>>> bound,
>>>>>>   regardless whether they are defined on the class itself, 
>> inherited
>>>>>> from the
>>>>>>   annotated class, or even inherited from a superclass of the 
>>> annotated
>>>>>> class.
>>>>>> 
>>>>>>   On 2012-10-18 10:43 AM, Martin Kouba wrote:
>>>>>>>    I think this should work and works for my quick and 
>> dirty 
>>> test.
>>>>>>> 
>>>>>>>    Actually the CDI spec only covers inherited interceptor 
>>> bindings
>>>>>>> (9.5.
>>>>>>   Interceptor resolution).
>>>>>>> 
>>>>>>>    Dirk, could you provide the source code of your test 
>> case so 
>>> that
>>>>>>> we could
>>>>>>   check it?
>>>>>>> 
>>>>>>>    Martin
>>>>>>> 
>>>>>>>    Dne 16.10.2012 21:13, Jason Porter napsal(a):
>>>>>>>>    That's probably a good place to send it yes. I 
>> still 
>>> think an exact
>>>>>>   test
>>>>>>>>    case would be helpful (yes, I know you can't add 
>> to a 
>>> testsuite or
>>>>>>   see
>>>>>>>>    what's in there).
>>>>>>>> 
>>>>>>>>    On Tue, Oct 16, 2012 at 12:25 PM, Mark Struberg
>>>>>>   <strub...@yahoo.de> wrote:
>>>>>>>> 
>>>>>>>>>    Yes, I also have the gut feeling that it should 
>> work. 
>>> I read
>>>>>>   through the
>>>>>>>>>    interceptors spec though and didn't find any 
>> 
>>> explicit wording.
>>>>>>>>>    We should redirect this question to the EJB EG 
>> which 
>>> handles the
>>>>>>>>>    interceptors spec, isn't?
>>>>>>>>> 
>>>>>>>>>    I remember David saying that for _some_ kind of 
>>> interceptors it
>>>>>>   does not
>>>>>>>>>    work that way. But I don't remember exactly 
>> which 
>>> one.
>>>>>>>>> 
>>>>>>>>>    LieGrue,
>>>>>>>>>    strub
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>    ----- Original Message -----
>>>>>>>>>>    From: Jason Porter 
>>> <lightguard...@gmail.com>
>>>>>>>>>>    To: deltaspike-users@incubator.apache.org
>>>>>>>>>>    Cc:
>>>>>>>>>>    Sent: Tuesday, October 16, 2012 8:05 PM
>>>>>>>>>>    Subject: Re: @Transactional interceptor 
>> ignores 
>>> derived methods
>>>>>>>>>> 
>>>>>>>>>>    Dirk,
>>>>>>>>>> 
>>>>>>>>>>     From my understanding of the specs and also 
>> from 
>>> talking with
>>>>>>   Pete Muir
>>>>>>>>>    and
>>>>>>>>>>    Mark Struberg because this is an Interceptor 
>> it 
>>> should work
>>>>>>   correctly. If
>>>>>>>>>>    it is not, chances are this is a bug in the 
>>> container and
>>>>>>   should be
>>>>>>>>>>    reported.
>>>>>>>>>> 
>>>>>>>>>>    We'd love to have some feedback and some 
>> 
>>> contributions in
>>>>>>   this area, I
>>>>>>>>>    just
>>>>>>>>>>    went through the test code and it 
>> doesn't 
>>> look like we have
>>>>>>   a test with
>>>>>>>>>>    your scenario Dirk. Would you be able to 
>>> contribute one for us,
>>>>>>   please?
>>>>>>>>>> 
>>>>>>>>>>    On Tue, Oct 16, 2012 at 9:15 AM, Pete Muir
>>>>>>   <pm...@redhat.com> wrote:
>>>>>>>>>> 
>>>>>>>>>>>      IMO it should apply to superclasses as 
>> 
>>> well.
>>>>>>>>>>> 
>>>>>>>>>>>      On 16 Oct 2012, at 14:02, Dirk Weil 
>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>      > Hi everybody,
>>>>>>>>>>>      >
>>>>>>>>>>>      >
>>>>>>>>>>>      >
>>>>>>>>>>>      > I started a discussion at
>>>>>>>>>>>     
>>> https://community.jboss.org/message/764873#764873
>>>>>>>>>>>      > about the seam transaction 
>>> interceptor, which is not
>>>>>>   handling derived
>>>>>>>>>>>      > methods (see original post 
>> further 
>>> down). Jason
>>>>>>   Porter pointed me to
>>>>>>>>>>    this
>>>>>>>>>>>      > mail list, stating that 
>> DeltaSpikes 
>>> Transactional
>>>>>>   Interceptor behaves
>>>>>>>>>>    in
>>>>>>>>>>>      the
>>>>>>>>>>>      > same way. What are the reasons 
>> for 
>>> this? Isn't
>>>>>>   it normally the
>>>>>>>>>>    case that
>>>>>>>>>>>      a
>>>>>>>>>>>      > user wants transactional behavior 
>> 
>>> regardless of
>>>>>>   where the method is
>>>>>>>>>>>      defined
>>>>>>>>>>>      > (base class or derived class)?
>>>>>>>>>>>      >
>>>>>>>>>>>      > Additionally I regard it 
>> dangerous if 
>>> an interceptor
>>>>>>   does not behave
>>>>>>>>>>>      like an
>>>>>>>>>>>      > ordinal interceptor (I know: 
>>> Transactional
>>>>>>   intercepts every call, but
>>>>>>>>>>    it
>>>>>>>>>>>      > does different things depending 
>> on the 
>>> class
>>>>>>   defining the method
>>>>>>>>>>>      > intercepted).
>>>>>>>>>>>      >
>>>>>>>>>>>      >
>>>>>>>>>>>      >
>>>>>>>>>>>      > Please give me some hint, why the 
>> 
>>> implementation of
>>>>>>   Transactional was
>>>>>>>>>>>      done
>>>>>>>>>>>      > in that way.
>>>>>>>>>>>      >
>>>>>>>>>>>      >
>>>>>>>>>>>      >
>>>>>>>>>>>      > Thank you very much and best 
>> regards
>>>>>>>>>>>      >
>>>>>>>>>>>      > Dirk Weil
>>>>>>>>>>>      >
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>    -- Jason Porter
>>>>>>>>>>   http://lightguard-jp.blogspot.com
>>>>>>>>>>   http://twitter.com/lightguardjp
>>>>>>>>>> 
>>>>>>>>>>    Software Engineer
>>>>>>>>>>    Open Source Advocate
>>>>>>>>>> 
>>>>>>>>>>    PGP key id: 926CCFF5
>>>>>>>>>>    PGP key available at: keyserver.net, 
>> pgp.mit.edu
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>> 
>>>> -- 
>>>> Martin Kouba
>>>> JBoss Quality Assurance Engineer
>>>> CDI TCK lead
>>>> E-mail: mko...@redhat.com
>>>> Web: www.cz.redhat.com
>>>> Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic
>>> 
>> 

Reply via email to