Thanks for the quick response. You da man!!
Initially, I added the inclusion pattern to just the aspect tag
<aspect>
<!-- other stuff -- >
<include within="foo.bar.*"/> <!-- aspect class XYZ is in
the foo.bar package -->
</aspect>.
As per your suggestion, I added the same to the weaver tag as well
:meaning: the Aspect has to be weaved with the aspectOf method. It works
!!!
<weaver>
<!-- other stuff -- >
<include within="foo.bar.*"/>
</weaver>
Thanks again,
Sunder
From: Andy Clement <andrew.clem...@xxxxxxxxx
<mailto:[email protected]> >
Date: Thu, 11 Mar 2010 21:17:51 -0800
Delivered-to: [email protected]
Hello,
There should be no need to add that method yourself. Are you by any
chance excluding the aspect type in your LTW aop.xml configuration?
That method (aspectOf) is added during weaving. If your original
annotation style aspect was built with javac rather than ajc, then it
will not have it in when the JVM starts because the weaver hasn't yet
run - thus the type must go to the load time weaver in order to be
finished off. If the patterns for inclusion/exclusion in the aop.xml
fail to include the aspect it will not be finished off and you will
get that NoSuchMethod problem.
Let me know what your aop.xml says and the fully qualified name of the
aspect.
cheers,
Andy
________________________________
From: Tatta, Sunder
Sent: Thursday, March 11, 2010 8:22 PM
To: '[email protected]'
Subject: Hack to get around NoSuchMethodError aspectOf exception using
LTW - Aspectj 1.6.8
In response to an earlier post --> [aspectj-users] NoSuchMethod
aspectOf exception using LTW.
I have an aspect class which kept constantly failing with the above
NoSuchMethodError. To get around it,
I just added the method it was unable to find. See below
@Aspect
Class XYZ
{
@Around("execution(* foo.bar(..))")
public Object applyAround(ProceedingJoinPoint jp)
throws Throwable
{
// some code
}
// added this method and things were back to normal
public static XYZ aspectOf()
{
return new XYZ();
}
// tried this but the method took for ever to return and finally the
application ran out of memory
/*
public static XYZ aspectOf()
{
return Aspects.aspectOf(XYZ.class);
}
*/
}
Not sure if there is a better long term fix (like a setting in aop.xml).
I don't want to add this method for every aspect I'm writing nor do I
want to use "compile time weaving (ajc)" for the aspects. Can anyone
provide a better solution?
Please Note:
When Mr. Andrew Clement fixed the issue below, he released a Dev version
(please refer to the comments in the bug report - 1.6.4 Dev) which was
working perfectly. None of the later versions out there seem to work
without the hack.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=279298
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users