Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [ajdt-dev] ASM hierarchy model

Excellent!  That screenshot tells a really nice story about AJDT showing
crosscutting consistently no matter what syntax you choose to declare it in
:) 

Mik

> -----Original Message-----
> From: ajdt-dev-bounces@xxxxxxxxxxx [mailto:ajdt-dev-bounces@xxxxxxxxxxx]
> On Behalf Of Alexandre Vasseur
> Sent: Tuesday, July 05, 2005 4:52 AM
> To: AspectJ Development Tools developer discussions
> Subject: Re: [ajdt-dev] ASM hierarchy model
> 
> Thanks so much Andy and Mik !
> 
> I have added the offset info to MethodDeclarationAttribute. The point
> is that I was grabbing this one from the line break information, hence
> loosing the exact offset when reading the @Aj annotation in the
> weaver, while ajdt core was having the correct one when dealing with
> the ASM model.
> 
> Here we go :
> http://blogs.codehaus.org/people/avasseur/archives/001128_aspectj_in_ajdt_
> a_world_premiere_.html
> 
> Matt, can you tell me when the AspectJ ajde.jar from AspectJ build
> snapshots will be in the AJDT build snapshots (for Eclipse 3.1) ?
> 
> Alex
> 
> 
> 
> On 7/4/05, Mik Kersten <beatmik@xxxxxxx> wrote:
> > Seems like right now the simplest and most clear thing to do is to get
> the
> > offsets right for @AJ.  Changing the equivalence matching makes sense,
> but
> > could get confusing to debug down the road, especially since we may want
> to
> > treat those declarations separately at one point (e.g. use Collections
> can
> > get confusing with a lenient equals method).
> >
> > Mik
> >
> > > -----Original Message-----
> > > From: ajdt-dev-bounces@xxxxxxxxxxx [mailto:ajdt-dev-
> bounces@xxxxxxxxxxx]
> > > On Behalf Of Andrew Clement
> > > Sent: Monday, July 04, 2005 7:02 AM
> > > To: AspectJ Development Tools developer discussions
> > > Subject: Re: [ajdt-dev] ASM hierarchy model
> > >
> > >
> > >
> > >
> > >
> > > >From a very quick look at the debug files - the gutter stuff is still
> > > missing because the offsets don't match.
> > >
> > >
> > > In the working case I can see this handle for a piece of advice:
> > >
> > > before(): <anonymous pointcut>  [advice]
> > > SingletonAspectBindingsTest2.aj:112::3677
> > >
> > > and then this relationship:
> > >
> > > Hid:2:(targets=1) SingletonAspectBindingsTest2.aj|112|0|3677 (advises)
> > > SingletonAspectBindingsTest2.aj|45|0|1511
> > >
> > > ===
> > >
> > > In the failing case, I see this handle:
> > >
> > > before(JoinPoint.StaticPart): <anonymous pointcut>  [advice]
> > > SingletonAspectBindingsTest.java:113::3742
> > >
> > > and then this relationship:
> > >
> > > Hid:1:(targets=1) SingletonAspectBindingsTest.java|113|0|3777
> (advises)
> > > SingletonAspectBindingsTest.java|45|0|1509
> > >
> > > with different offsets there is no match.  i.e. if I use the handle
> for
> > > the
> > > advice (offset 3742) as an index into the relationships, it will
> return
> > > zero matching entries.
> > >
> > > Whether the fix is to get the offsets right for @AJ or make handle
> > > equivalence testing more lenient, I'm not sure.
> > >
> > > Andy.
> > >
> > >
> > >
> > >
> > >
> > >
> > >              Alexandre Vasseur
> > >              <avasseur@gmail.c
> > >              om>
> To
> > >              Sent by:                  AspectJ Development Tools
> developer
> > >              ajdt-dev-bounces@         discussions <ajdt-
> dev@xxxxxxxxxxx>
> > >              eclipse.org
> cc
> > >
> > >
> Subject
> > >              04/07/2005 14:35          Re: [ajdt-dev] ASM hierarchy
> model
> > >
> > >
> > >              Please respond to
> > >              Alexandre Vasseur
> > >              <avasseur@gmail.c
> > >                 om>; Please
> > >                 respond to
> > >                   AspectJ
> > >                 Development
> > >               Tools developer
> > >                 discussions
> > >              <ajdt-dev@eclipse
> > >                    .org>
> > >
> > >
> > >
> > >
> > >
> > >
> > > Mik, I am not sure to follow.
> > >
> > > I have just commited in AspectJ a bunch of fix that makes the
> > > AsmManager...setReporting happy when it encounters @AJ aspect. I had
> > > no more luck with AJDT though (ie showWeaveInfo is fine but no gutter
> > > or cross reference view appears)
> > >
> > > If you want to dig further what needs to perhaps be done in AspectJ,
> > > you may check the "AtAjSyntaxTests.testSingletonAspectBindings()" that
> > > runs some simple aspect written in both style (ie 2 run) and dump the
> > > Asm model if you uncomment some lines.
> > > I am also attaching the dump file if in any case you can spot
> something
> > > obvious.
> > > debug-aj.txt is the one for code style, debug.txt is the one for
> > > annotation style.
> > >
> > > Alex
> > >
> > >
> > >
> > > On 6/29/05, Mik Kersten <beatmik@xxxxxxx> wrote:
> > > > Good question.  It definitely feels wrong for them to have the plain
> > > Java
> > > > kind, because the programmer and tools should treat them as advice.
> But
> > > > there will be cases where the fact that they're annotated as advice
> > > needs
> > > to
> > > > be differentiated.  Also, it is feasible that down the road we could
> > > want
> > > > the annotation to be a separate program element.  I'm curious to see
> how
> > > the
> > > > JDT's IJavaModel ends up handling annotations and am not aware of
> any
> > > > mechanism for going from a declaration to an annotation.  Matt, do
> you
> > > know?
> > > >
> > > > For now I suggest adding an isAnnotated() method to IProgramElement
> to
> > > > indicate whether or not this advice/pointcut/etc. is specified as an
> > > > annotation or as code.  Then simply setting the kind to be the AOP
> kind
> > > not
> > > > the OOP kind.  Not that you may be tempted to put this method and
> field
> > > on
> > > > the IProgramElement.Kind calss, which would be fine, but that
> typesafe
> > > enum
> > > > pattern should be switched to a Java 5 enum at some point.  If you
> > > agree,
> > > > and would like me to make the change just let me know.
> > > >
> > > > Mik
> > > >
> > > > > -----Original Message-----
> > > > > From: ajdt-dev-bounces@xxxxxxxxxxx
> > > [mailto:ajdt-dev-bounces@xxxxxxxxxxx]
> > > > > On Behalf Of Alexandre Vasseur
> > > > > Sent: Thursday, June 23, 2005 7:59 AM
> > > > > To: AspectJ Development Tools developer discussions
> > > > > Subject: [ajdt-dev] ASM hierarchy model
> > > > >
> > > > > A question for Mik I guess.
> > > > >
> > > > > For IDE support to work correctly, should the Hierarchy and
> > > > > Relationship model output by the weaver have correct "kind" for
> > > > > @AspectJ style member ie be flagged as
> IProgramElement.Kind.Advice,
> > > > > Aspect, Pointcut etc. ?
> > > > >
> > > > > f.e. with
> > > > >
> > > > >       SingletonAspectBindingsTest  [class]
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java:30::1063
> > > > >         TestAspect  [aspect]
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java:74::2495
> > > > >           s  [field]
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java:76::2530
> > > > >           ...  [initializer]
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java:78::2555
> > > > >           TestAspect()  [constructor]
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java:82::2604
> > > > >           aaround(ProceedingJoinPoint)  [method]
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java:90::2901
> > > > >           around2(ProceedingJoinPoint, Object)  [method]
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java:101::3273
> > > > >           before(JoinPoint.StaticPart)  [advice]
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java:113::3742
> > > > > ....
> > > > > === RELATIONSHIPS REPORT ========= After a batch build
> > > > > Hid:1:(targets=1)
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java|49|0|1568
> > > > > (advised by)
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java|128|0|4563
> > > > > Hid:2:(targets=1)
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java|90|0|2935
> > > > > (advises)
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java|45|0|1509
> > > > > Hid:3:(targets=1)
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java|101|0|3317
> > > > > (advises)
> > > > >
> > >
> C:\Temp\ajcSandbox\ajcTest36518.tmp\ataspectj\SingletonAspectBindingsTest.
> > > > > java|45|0|1509
> > > > > ...
> > > > > === Properties of the model and relationships map =====
> > > > > method=13
> > > > > import reference=19
> > > > > aspect=1
> > > > > constructor=1
> > > > > class=2
> > > > > advice=2
> > > > > ...
> > > > > we can see that TestAspect.java is flagged to be an aspect.
> > > > > Same for the method before, flagged to be an advice.
> > > > > But since I am in the middle of doing some changes, you can see
> that
> > > > > aaround(..) are flagged as methods.
> > > > >
> > > > > Is AJDT supposed to work only from the advised-by / advises info
> or
> > > > > does this things matters ? (this because it means changing some in
> the
> > > > > ajdt.core to check if there are the @Aspect, @Before and so on
> > > > > annotations).
> > > > > (BTW with that, AJDT does not show up the markers and the cross
> > > > > cutting structure better, despite the advised by is correct in the
> > > > > problem view (when turned on).
> > > > >
> > > > > Alex
> > > > > _______________________________________________
> > > > > ajdt-dev mailing list
> > > > > ajdt-dev@xxxxxxxxxxx
> > > > > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> > > >
> > > > _______________________________________________
> > > > ajdt-dev mailing list
> > > > ajdt-dev@xxxxxxxxxxx
> > > > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> > > >
> > > (See attached file: debug.txt)(See attached file: debug-aj.txt)
> > > _______________________________________________
> > > ajdt-dev mailing list
> > > ajdt-dev@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> >
> > _______________________________________________
> > ajdt-dev mailing list
> > ajdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> >
> _______________________________________________
> ajdt-dev mailing list
> ajdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/ajdt-dev



Back to the top