Marius Bogoevici wrote:
> On 2011-01-07, at 12:17 PM, Scott Ferguson wrote:
>
>   
>> Marius Bogoevici wrote:
>>     
>>> I don't see a particular issue with the test. The rules on what business 
>>> method invocations are and aren't should make it clear that invocations on 
>>> the instance acquired via getTarget() are intercepted, or, for that matter, 
>>> decorated.  Those are *not* business method invocations (in the same way as 
>>> calls to 'this' are not business method invocations).
>>>       
>> That behavior is not defined by any specification, unless you can find the 
>> section and cite it.
>>     
>
> Section 7.2 of the CDI specification. 
>   

Then there needs to be an explicit test for that behavior. Not an 
implicit one buried in another test.

-- Scott
>   
>> -- Scott
>>
>>     
>>> Weld implements interception/decoration via subclassing and observes this 
>>> exact rule (invocations on this and instances acquired by getTarget() are 
>>> not intercepted/decorated).
>>>
>>> Also, this has been previously discussed here (a couple of links from an 
>>> older weld-dev thread)
>>> http://lists.jboss.org/pipermail/weld-dev/2010-May/002517.html
>>> http://lists.jboss.org/pipermail/weld-dev/2010-May/002519.html
>>>
>>> On 2011-01-06, at 12:34 PM, Scott Ferguson wrote:
>>>
>>>       
>>>> Jozef Hartinger wrote:
>>>>         
>>>>> Could you file a CDITCK issue and assign it to me? Thanks.
>>>>>
>>>>>           
>>>> Thanks Jozef,
>>>>
>>>> It's at https://issues.jboss.org/browse/CDITCK-203.
>>>>
>>>> I'm pretty sure I don't have permission to assign you tasks, though. :)
>>>>
>>>> -- Scott
>>>>
>>>>         
>>>>> On 01/06/2011 03:24 AM, Scott Ferguson wrote:
>>>>>           
>>>>>> This test has a implementation-dependency on how interception is
>>>>>> implemented (requires proxy implementation), but the proxy
>>>>>> implementation is not mandated by the spec (and the EJB spec has always
>>>>>> allowed both implementation methods.)
>>>>>>
>>>>>> The test calls SimpleBean.getId(), which is intercepted by Interceptor1.
>>>>>>
>>>>>> Interceptor1's aroundInvoke calls target.getId(), which is a circular
>>>>>> reference for extension and only works for proxy-based interception:
>>>>>>
>>>>>> class SimpleBean {
>>>>>>   @Interceptors(Interceptor1.class)
>>>>>>   public int getId()
>>>>>>   {
>>>>>>      return id;
>>>>>>   }
>>>>>>   ...
>>>>>> }
>>>>>>
>>>>>> class Interceptor1 {
>>>>>>   @AroundInvoke
>>>>>>   public Object aroundInvoke(InvocationContext ctx) throws Exception
>>>>>>   {
>>>>>>      SimpleBean target = (SimpleBean) ctx.getTarget();
>>>>>>      int id1 = target.getId();
>>>>>>      ...
>>>>>>    }
>>>>>> }
>>>>>>
>>>>>> The only change needed to the test is to create a SimpleBean.getBareId()
>>>>>> which is not an intercepted method.
>>>>>>
>>>>>> (Or, if the spec is re-interpreted to require a proxy implementation,
>>>>>> there should be an explicit test for it, not an implicit dependency like
>>>>>> this test.)
>>>>>>
>>>>>> -- Scott
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> weld-dev mailing list
>>>>>> [email protected] <mailto:[email protected]>
>>>>>> https://lists.jboss.org/mailman/listinfo/weld-dev
>>>>>>             
>>>>>
>>>>>           
>>>> _______________________________________________
>>>> weld-dev mailing list
>>>> [email protected] <mailto:[email protected]>
>>>> https://lists.jboss.org/mailman/listinfo/weld-dev
>>>>         
>
>
>
>
>   

_______________________________________________
weld-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-dev

Reply via email to