Not sure if the trick with the ThreadLocal would work (aside from being dog slow).
A->B->A should all lead to decorator invocations. Is this the case with your impl?
(B might be another Decorator or a simple Bean)
LieGrue,
strub
----- Original Message -----
From: Stuart Douglas <stuart.w.douglas(a)gmail.com>
To: Mark Struberg <struberg(a)yahoo.de>
Cc: Pete Muir <pmuir(a)redhat.com>; Romain Manni-Bucau <rmannibucau(a)gmail.com>;
"cdi-dev(a)lists.jboss.org" <cdi-dev(a)lists.jboss.org>
Sent: Monday, September 17, 2012 11:31 PM
Subject: Re: [cdi-dev] Subclassing?
Mark Struberg wrote:
> The main difference we get from subclassing is that even 'internal
invocations' (contrary to 'external invocations') will invoke the
decorator method
>
> example
>
> public Class A implements X {
>
>
> public void methA() {..}
> public void methB() { methA(); }
>
> }
>
> @Decorator
> public class Adecorator implements X {
> @Inject @Delegate X x;
>
> public void methA();
> }
>
> If we do _not_ apply subclassing but proxying, then invoking methB will NOT
trigger methA from Adecorator.
> If we DO force subclassing, then a call to methB will also trigger the
decorator!
>
> But that is contrary to all other EE proxying behaviour so far...
In weld we currently use a thread local to work around this, so self
invocation does not result in interceptors / decorators running again.
Stuart
>
>
> LieGrue,
> strub
>
>
>
> ----- Original Message -----
>> From: Pete Muir<pmuir(a)redhat.com>
>> To: Romain Manni-Bucau<rmannibucau(a)gmail.com>
>> Cc: "cdi-dev@lists.jboss.org"<cdi-dev(a)lists.jboss.org>
>> Sent: Monday, September 17, 2012 5:58 PM
>> Subject: Re: [cdi-dev] Subclassing?
>>
>> Romain,
>>
>> I agree, we can't specify to use subclassing. Please take a look at
>>
https://github.com/jboss/cdi/pull/117 where I've tried to address
this, in
>> terms of what effects people will see.
>>
>> On 17 Sep 2012, at 16:54, Romain Manni-Bucau wrote:
>>
>>> Hi,
>>>
>>> There is a bunch of jira to specify subclassing should be used in
some
>> cases so i mail here instead of answering all jira.
>>> IMO it is specifying too much the technical part: specify the
constructor
>> should be called twice is better for a spec IMHO (but this case is not
logical
>> at all ;))
>>> Why this need?
>>>
>>> - Romain
>>>
>>> _______________________________________________
>>> cdi-dev mailing list
>>> cdi-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/cdi-dev
>>
>> _______________________________________________
>> cdi-dev mailing list
>> cdi-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/cdi-dev
>>
>
> _______________________________________________
> cdi-dev mailing list
> cdi-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/cdi-dev