[cdi-dev] Subclassing?

Mark Struberg struberg at yahoo.de
Mon Sep 17 18:04:25 EDT 2012


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 at gmail.com>
> To: Mark Struberg <struberg at yahoo.de>
> Cc: Pete Muir <pmuir at redhat.com>; Romain Manni-Bucau <rmannibucau at gmail.com>; "cdi-dev at lists.jboss.org" <cdi-dev at 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 at redhat.com>
>>>  To: Romain Manni-Bucau<rmannibucau at gmail.com>
>>>  Cc: "cdi-dev at lists.jboss.org"<cdi-dev at 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 at lists.jboss.org
>>>>   https://lists.jboss.org/mailman/listinfo/cdi-dev
>>> 
>>>  _______________________________________________
>>>  cdi-dev mailing list
>>>  cdi-dev at lists.jboss.org
>>>  https://lists.jboss.org/mailman/listinfo/cdi-dev
>>> 
>> 
>>  _______________________________________________
>>  cdi-dev mailing list
>>  cdi-dev at lists.jboss.org
>>  https://lists.jboss.org/mailman/listinfo/cdi-dev
> 



More information about the cdi-dev mailing list