[PRL] aspects to eliminate aspects
Pengcheng Wu
wupc at ccs.neu.edu
Wed May 18 12:50:10 EDT 2005
Yes, you are right.
--Pengcheng
On Wed, 18 May 2005, Therapon Skotiniotis wrote:
> On Wed, May 18, 2005 at 12:12:52PM -0400, Pengcheng Wu wrote:
> >
> > I bet you wanted the answers to both of the questions to be 'no'.
> >
> > On Wed, 18 May 2005, Matthias Felleisen wrote:
> >
> > > Question 1: Is it possible to write an aspect that monitors a class to
> > > discover the intervention of _other_ aspects?
> >
> > I think a dynamic checker is easy to implement. You can have something
> > like:
> >
> > aspect CheckerAspect {
> > pointcut adviceinanotheraspects(): adviceexecution() && within(!CheckerAspect); //or you can always enumerate all
> > other aspects
> > before(): adviceinanotheraspects() {
> > if(thisJoinPoint.getThis().getClass() is the class you want to check with)
>
> This will give you the "class" of the aspect not the one you want to
> monitor. "thisJoinPoint" at an advicexecution pcd holds the Aspect not the
> underlying class. Look at:
>
> http://www.ccs.neu.edu/home/skotthe/pub/Code/
>
>
>
>
>
> > error("A undesired intervention detected!");
> > }
> > }
> >
> > Basically, you capture all advice execution in aspects other than the
> > CheckerAspect and if the method calls those advice are operating on are
> > from the class you are checking with, then raise an error.
> >
> > I am not sure how a static checker can be easily implemented. But I feel
> > that with my language extension proposal called Statically Executable
> > Advice (AOSD'2003), it won't be too hard either.
> >
> > --Pengcheng
> >
> >
> >
> > _______________________________________________
> > PRL mailing list
> > PRL at lists.ccs.neu.edu
> > https://lists.ccs.neu.edu/bin/listinfo/prl
>
More information about the PRL
mailing list