Hi Andy,
Possibly I need to know a bit more about specifics (the pointcut at least).
if the weaveinfo message comes out then the bytecode has been changed and
that changed form is what will run. However, if the weaveinfo indicates
weaving has happened 'with a runtime test' it means something about your
pointcut could not be purely statically evaluated and so a small test will
occur at runtime to determine if the advice should actually run - in this
situation you can see the weaveinfo but your advice not apparently
executing. Are the files and pointcuts something like this?
-- A.java --
interface I {
int foo();
}
class A implements I {
public int foo() { return 42; }
}
class Extender extends A {
public int foo() { return 67; }
}
-- End of A.java --
-- X.java --
aspect X {
before(): execution(* I+.*(..)) {}
}
-- End of X.java --
-- aop.xml --
<aspectj>
<aspects>
<aspect name="X"/>
</aspects>
<weaver options="-showWeaveInfo -verbose">
<include within="A"/>
<include within="I"/>
<include within="X"/>
<include within="Extender"/>
</weaver>
</aspectj>
-- End of aop.xml --
java -javaagent:aspectjweaver.jar A
[EMAIL PROTECTED] info AspectJ Weaver Version DEVELOPMENT built on
Wednesday Sep 24, 2008 at 20:57:28 GMT
[EMAIL PROTECTED] info register classloader
[EMAIL PROTECTED]
[EMAIL PROTECTED] info using configuration
/C:/asc/ws/aspects/META-INF/aop.xml
[EMAIL PROTECTED] info register aspect X
[EMAIL PROTECTED] weaveinfo Join point 'method-execution(int
A.foo())' in Type 'A' (A.java:6) advised by before advice from 'X'
(X.java:2)
[EMAIL PROTECTED] weaveinfo Join point 'method-execution(int
Extender.foo())' in Type 'Extender' (A.java:14) advised by before advice
from 'X' (X.java:2)
[EMAIL PROTECTED] info processing reweavable type X: \X.java
Advice running
I can remove the inclusion of A, I and X from the aop.xml and the same
output occurs....
Andy.
2008/9/26 <[EMAIL PROTECTED]>
> Hi.
> I have 3 classes:
> 1) Interface: myInterface
> 2) Class myClass (implements myInterface)
> 3) Extended myExtendedClass (extends myClass, and overrides a method)
>
> I have a pointcut defined on a method on myInterface, which at runtime, is
> executed via the extended class. The advice will be run ok whenever I dont
> add any includes to the weaver options.
> If however I add the names of the classes via an include eg <include
> within="com.morty.test.myInterface" />, then the advice is never executed.
>
> The files however are weaved, and the weaveInfo shows the advice being
> linked, with or without the <include>
> Obviously, there is a performance hit with having every class go through
> the weaver, and so i want to limit it.
>
> Any idea why this would happen?
>
> Many thanks in advance
>
> Andy
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users