[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] LTW, javaagent, JUnit and ANT integration
|
Hi
What build are you using ? There has been a fix and sun.reflect.*
classes are not weaved anymore - as those corresponds to JDK proxy and
have no bytecode representation accessible (aside that this
representation is actually VM / java version dependant).
For the C15a8d50e_0 issue, do you need to weave this class ? Else it
might be worth trying to configure the LTW with an include directive
in the aop.xml file to avoid looking at those.
Something like
...
<weaver ....>
<include within=" ! org.objectweb.fractal.julia.generated.*"/>
</weaver>
...
Alex
On 8/10/05, Valerio Schiavoni <ervalerio@xxxxxxxxxx> wrote:
> Hello Alexandre, thanks for your answer.
>
> Alexandre Vasseur :
> "-javaagent:externals/aspectjweaver.jar"
> corrected this one.
>
> If you do weave with ajc
> what else could I use to weave ?
>
> and are planning to use LTW, you must use the
> -Xreweavable option
>
> i followed your suggestion: i compiled the aspects with ajc -Xreweavable
> -source 1.5 MyAspect.aj
>
>
> -verbose and -showWeaveInfo should print something with LTW
> Another option that can help is a -Daj.weaving.verbose=true on the
> command line to see some lines of log before we actually figure that
> you asked for -verbose in the aop.xml file(s).
> now when i launch junit test i got a long log,which looks like the
> following:
>
> [junit] Running org.aormf.tests.AllTests
> [junit] error can't find type
> sun.reflect.GeneratedConstructorAccessor1
> [junit] WeavingAdaptor.weaveClass
> sun/reflect/GeneratedConstructorAccessor1
> [junit] WeavingAdaptor.weaveClass
> org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner
> [junit] WeavingAdaptor.weaveClass junit/framework/TestListener
> % ------------ CUT----------------%
> [junit] error can't find type
> org.objectweb.fractal.julia.generated.C15a8d50e_0
> [junit] WeavingAdaptor.weaveClass
> org/objectweb/fractal/julia/generated/C3bbeabff_0
>
>
> So, i suppose that LTW is turned on.
>
> Why do i get those can't find type ? I have an idea about the second one,
> but what about the first ?
>
> For the first one, here is the scenario: the C15a8d50e_0 is generated at
> runtime (its bytecode is generated using ASM): this class is a subclass of a
> given interface, which also contains a marker annotation on the class
> header.
> My aspect is defined so that it should intercept any class where an
> annotation is present:
>
> public aspect ExecutionMonitorAspect {
>
> /* intercept a call to an managed resource */
> pointcut annotatedResourceInvocation():
> call(* *(..)) &&
> @annotation(MemberOfMonitoredSet);
>
> before(): annotatedResourceInvocation(){
> System.out.println("EMAspect: before advice executed");
> }
> }
>
> Which is also the same one declared as concrete aspect in the aop.xml.
>
> As far as other generated classes are being "wrapped" by the LTW mechanism,
> i can't imagine why i'm getting that error.
>
> One more issue: when compiling my aspect in console, i get this warning:
>
> ajc -source 1.5 -Xreweavable -classpath
> ../../../../externals/aspectjrt.jar:../../../../output/build/org/aormf/util/:.
> ExecutionMonitorAspect.aj
>
> $~/workspace/aormf/src/org/aormf/aspects/ExecutionMonitorAspect.aj:11
> [warning] advice defined in
> org.aormf.aspects.ExecutionMonitorAspect has not been
> applied [Xlint:adviceDidNotMatch]
> before(): annotatedResourceInvocation(){
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 1 warning
>
> Which i suppose it is normal to get when not doing compile-time weaving...
>
> I hope i explained the situation clearly enough.
>
> Thanks for any help,
> Valerio
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
>