Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] change in runtime execution order

Hallo!

I am a graduate student and I am working on a project to determine the actual
runtime execution order of advice at a given joinpoint.
Up to now I used AspectJ 1.5.0M2 for my examination. Now I updated to AspectJ
1.5.0M3 and it seems to me that in this release there are major changes in the
way in which the order of pieces of advice are excuted if more than one aspect
applies to a joinpoint.

I know that officially precedence between two concrete aspects is undefined if
there is no explicit order defined.
But in M2, if precedence between two concrete aspects could not be determined by
a 'declare precedence' statement, precedence was resolved by the names of
aspects, e.g. aspects A and B, so all advice in aspect B had precedence over
advice in A.
This seemed to be a default order if there was no explicit order defined by a
'declare precedence' statement..
In M3 this default order for aspects seems to be replaced by another method. The
names of aspects do not play a role in determining precedence between them
anymore. Instead it is the position of  the first piece of advice in the source
file that seems to have influence on aspect precedence.

Could someone please explain these new rules to me!
Thank you!



Back to the top