[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Debug aspect


I tried setting the inline compilation. See here:

But no difference. So I add my projects here as a zip if someone is interested.





Från: aspectj-users-bounces@xxxxxxxxxxx <aspectj-users-bounces@xxxxxxxxxxx> för Eric B <ebenzacar@xxxxxxxxx>
Skickat: den 14 augusti 2018 11:35
Till: aspectj-users@xxxxxxxxxxx
Ämne: Re: [aspectj-users] Debug aspect
Depending on your aspect, ajc may try to compile in inline in your class.  I'm not sure what conditions the compiler checks for inline compilation.  The surest way is to use a decompiler to check the output class file and see if you aspect has been inlined or not.  If it has, there is an experimental flag you can set in your plugin definition XnoInline (https://www.mojohaus.org/aspectj-maven-plugin/compile-mojo.html#XnoInline).  

Additionally, if I remember correctly, there is also a setting in ellipse ajdt that configures the same.



On Tue, Aug 14, 2018, 6:58 AM Mikael Petterson, <mikaelpetterson@xxxxxxxxxxx> wrote:
Just adding a picture of my setup.



Från: aspectj-users-bounces@xxxxxxxxxxx <aspectj-users-bounces@xxxxxxxxxxx> för Mikael Petterson <mikaelpetterson@xxxxxxxxxxx>
Skickat: den 14 augusti 2018 08:46
Till: aspectj-users@xxxxxxxxxxx
Ämne: [aspectj-users] Debug aspect

I have an application A in Eclipse that uses another library  that has an aspect implemented. Purpose of of aspect is to see when application A
calls deprecated methods in the library.

Both application A and library are java maven projects in Eclipse. Application A has a dependency to the library and I can see that in Eclipse. So I have the source
available for both projects. In eclipse the library is also a aspect project so I can see when it builds it output saying "woven class".

What I want to accomplish is , when I run a class in application A that calls a deprecated method in the library, I want the debugger to halt in my aspect.

Here is where I set my breakpoint:

pointcut deprecated() :
        @annotation(Deprecated) && (call(public * *(..)) || call(*.new(..)));

    pointcut beta() :

    pointcut deprecatedMethods() :
        deprecated() && !beta();

before() : deprecatedMethods() {
        DeprecatedMethodData deprecatedMethodData = new DeprecatedMethodData();
                "Deprecated method " + thisJoinPoint.getSignature() +
                        " called by " + thisEnclosingJoinPointStaticPart.getSignature());

But there is no halt on:

  DeprecatedMethodData deprecatedMethodData = new DeprecatedMethodData();

where I put my breakpoint on.

Any ideas what I am lacking?





aspectj-users mailing list
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

Attachment: example_aspect.zip
Description: example_aspect.zip