Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Intertype declaration name mangling - for or against?

Hi Andy,

You mentioned that the annotation directive might be placed on the aspect itself. Would it not be better to control the name mangling through config passed to the weaver? The reason I mention this is because often the developer of the aspect is not the end user and only the end user can know if this is a safe operation.

Jeff

----- Reply message -----
From: "Andy Clement" <andrew.clement@xxxxxxxxx>
Date: Thu, Nov 19, 2009 18:54
Subject: [aspectj-users] Intertype declaration name mangling - for or against?
To: <aspectj-users@xxxxxxxxxxx>

I'm possibly going to review our approach to intertype declaration
naming. The names are currently mangled deliberately to preserve some
of the 'rules' that AspectJ defines. For example, private field itds
have mangled names because the field is private to the aspect and
shouldn't be visible as a 'regular' private field in the target. This
also enables two aspects to ITD the same private field and there is no
clash in the target type.

However, since those rules were defined a long time ago, things have
changed and various frameworks are looking at members via reflection,
for purposes of invocation or automatic persistence. The mangling is
unhelpful here.

I *thinking* about allowing non-mangled names, possibly with a
directive annotation in the aspect that says "do not mangle these, I
know what I'm doing and there won't be a problem".

Basically I wanted to collect any thoughts from you guys?

I suspect that the some of the scenarios AspectJ worries about rarely
happen in practice - have you ever ITD'd the same named private field
from two aspects onto the same type? (AspectJ can continue to
warn/error when it sees this about to happen of course)

cheers,
Andy
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



Back to the top