I have no strong GutFeeling(tm) either way on this.

But perhaps slightly more inclined towards;

* All declared concerns and side-effects are executed for public
methods regardless of where the call is originating from.

Seems to be easiest to explain that way.

On 6/4/10, Rickard Öberg <[email protected]> wrote:
> On 2010-06-04 18.41, Niclas Hedhman wrote:
>> On 6/4/10, Stanislav Muhametsin<[email protected]>  wrote:
>>> Quoting Rickard Öberg<[email protected]>:
>>>
>>>> So now there's a decision to be made:
>>>> Either calls within a mixin will cause concerns to be invoked, or
>>>> not. If not, then to force them to be invoked you have to do a @This
>>>> injection and then call that instead, to ensure that the call goes
>>>> through the proxy.
>>>>
>>>> What makes the most sense? I guess we have to also remember that
>>>> code like this will not work if methods are not routed through the
>>>> composite within the mixin:
>>>
>>> In my app, I'm also invoking all my calls to "myself" through
>>> @This-injected fields. IIRC there was some tutorial or something on
>>> the qi4j.org site, which urged to this kind of behaviour, saying
>>> specifically that if i just to "this.foo(...)" it might not execute
>>> mixins. Guess someone was a psychic. :)
>>
>> That is because originally (2007) we didn't have any Magic. IIRC,
>> first came the abstract fragment which got subclassed and much later
>> the in-mixin method call interception. So it is a matter of out-dated
>> docs.
>
> Right. So the question is: do I opt for a consistently magical model
> (where in-mixin calls are routed through proxy), or should I only "fill
> in" abstract methods that are missing? Then if you want
> concerns/sideeffects/constraints to be invoked you *have* to use a @This
> injection.
>
> I'm looking through the code-generation now, and it was actually easy to
> add the "_" prefixed methods. What is not so easy is to get them to be
> called throughout the proxy chain, but that's mostly a matter of hacking it.
>
> But should I continue that or not is the question. What do we *want*?
>
> For myself, we exploit the fact that in-mixin calls are routed all the
> time, and would have to change every single mixin if we remove the
> CGLIB-semantics. But.. I don't know. Again, what do we want? What gives
> the least surprise, I suppose?
>
> /Rickard
>
> _______________________________________________
> qi4j-dev mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/qi4j-dev
>


-- 
Niclas Hedhman, Software Developer
http://www.qi4j.org - New Energy for Java

I  live here; http://tinyurl.com/2qq9er
I  work here; http://tinyurl.com/2ymelc
I relax here; http://tinyurl.com/2cgsug

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to