Hi, it's me again. Andy, you just made my day! The pointcut is the culprit. It worked in the small example I tried at the command line, since I wrote some stupid classes lying in com.example. Now the weaving works and I can see first results. For some classes AspectJ creates illegal bytecode after weaving, because a jump offset gets too large. This "bug" has already been reported and I have to create a workaround for my solution.
Nevertheless, you are all doing a great job! Bernhard On Mi, 2011-05-25 at 08:16 -0700, Andy Clement wrote: > Hi, > > Seeing 'debug weaving' but no 'weaveinfo' suggests your pointcuts just > don't match. > > Actually, if I go back to your pointcut it says: > > within(com.example.*) && call(* *(..)); > > Which means 'any call made from inside com.example.*'. Because you > used .* and not ..* it will not be including subpackages of > com.example.<anything> - I hope that is what you intended to do? As > you mentioned it was doing what you expect on the command line, I > assumed the pointcuts were OK. Maybe try something even more simple > to check the mechanism is ok? something like > > before(): staticinitialization(*) { > System.out.println("staticinitialization"); } > > Andy > > 2011/5/24 Bernhard Berger <ber...@tzi.de>: > > Thank you very much, Andy, for the link. I added to the configuration > > -debug as well as -showWeaveInfo. This results in a long list of > > messages where he tells that he weaves the application classes, for > > instance: > > > > [UnifiedClassLoader@...] debug weaving 'com.example.foo.Bar' > > > > But he does not apply the aspect I have defined (there is no weaveinfo > > in the log). > > > > Bernhard > > > > On Di, 2011-05-24 at 22:45 -0700, Andy Clement wrote: > >> Hi Bernhard, > >> > >> You could refer to my article here for all the debug options around ltw: > >> > >> http://andrewclement.blogspot.com/2009/02/load-time-weaving-basics.html > >> > >> Beyond -verbose it talks about -debug - this option will actually tell > >> you what classes are being passed to the weaver for weaving. > >> > >> I'm sorry I can't answer specific info about JBoss though, there may > >> be something extra that needs configuring if it is using some kind > >> of unusual classloader hierarchies. > >> > >> Andy > >> > >> 2011/5/24 Bernhard Berger <ber...@tzi.de>: > >> > On Di, 2011-05-24 at 16:31 +0200, Pasturel wrote: > >> >> Le 24/05/2011 15:37, Bernhard Berger a écrit : > >> >> > Hi, > >> >> > > >> >> > I have some problems with instrumenting a java enterprise application, > >> >> > which perhaps is not a AspectJ issue. Maybe someone of you can help > >> >> > me. > >> >> > Currently I'm trying to trace an enterprise application deployed to a > >> >> > JBoss 4 server. My idea is to add a trace aspect to every call within > >> >> > a > >> >> > certain package to extract a run-time call-graph. > >> >> > I have implemented a small aspect and created a pointcut matching all > >> >> > classes: > >> >> > pointcut myMethodCalls(): within(com.example.*)&& call(* *(..)); > >> >> > > >> >> > The aspect snippets call a tracer class before and after the call: > >> >> > before() : myMethodCalls() { > >> >> > TraceMonitor.enterMethod(thisJoinPoint, > >> >> > thisEnclosingJoinPointStaticPart); > >> >> > } > >> >> > > >> >> > after() : myMethodCalls() { > >> >> > TraceMonitor.leaveMethod(thisJoinPoint); > >> >> > } > >> >> > > >> >> > When instrumenting a commandline application, everything is working > >> >> > fine > >> >> > and I receive the result I expect. But when I copy this to JBoss the > >> >> > aspect is not added to the classes. BTW: I'm using LTW because I want > >> >> > AspectJ to add the aspect to all classes (even to the one that are > >> >> > generated at runtime). > >> >> > > >> >> > The only result I can see are tons of log messages like this: > >> >> > [2@63cd66ea] info AspectJ Weaver Version 1.6.11 built on Tuesday Mar > >> >> > 15, > >> >> > 2011 at 15:31:04 GMT > >> >> > [2@63cd66ea] info register classloader org.jboss.mx.util.MBeanProxyExt > >> >> > $2@63cd66ea > >> >> > [2@63cd66ea] info using configuration /C:/test/bin/aop.xml > >> >> > [2@63cd66ea] info register aspect > >> >> > de.uni_bremen.st.berber.aspectj.Trace > >> >> > > >> >> > which shows me that AspectJ is running but the fact that the classes > >> >> > are > >> >> > not instrumented shows me, that I missed something. Perhaps some > >> >> > configuration settings for JBoss. Can someone give me a hint? > >> >> > > >> >> > Thanks in advance > >> >> > > >> >> > Bernhard > >> >> > >> >> I suppose that the file /C:/test/bin/aop.xml declares the aspect. turn > >> >> on verbose mode in aop.xml > >> >> > >> >> Other way, JBoss has its own AOP weaver, => javassist . Perhaps a > >> >> precedence between aspectj and javassist > >> > > >> > My aop.xml contains the line: > >> > > >> > <weaver options="-verbose" /> > >> > > >> > and I'm enhanced the run script to add the following parameters to > >> > jboss: > >> > > >> > -javaagent:c:\test\aspectjweaver.jar -Daj.weaving.verbose=true > >> > -Dorg.aspectj.weaver.showWeaveInfo=true -Daj.weaving.debug=true > >> > -Daj.weaving.trace=true > >> > -Dorg.aspectj.weaver.loadtime.configuration=aop.xml -classpath "% > >> > JBOSS_CLASSPATH%;c:\test\bin" > >> > > >> > The aop.xml and the aspect can be found in c:\test\bin. And in the log > >> > there are very often the lines: > >> > > >> > 2011-05-25 06:32:35,277 ERROR [STDERR] [2@41d47b2b] info AspectJ Weaver > >> > Version 1.6.11 built on Tuesday Mar 15, 2011 at 15:31:04 GMT > >> > 2011-05-25 06:32:35,277 ERROR [STDERR] [2@41d47b2b] info register > >> > classloader org.jboss.mx.util.MBeanProxyExt$2@41d47b2b > >> > 2011-05-25 06:32:35,277 ERROR [STDERR] [2@41d47b2b] info using > >> > configuration /C:/test/bin/aop.xml > >> > 2011-05-25 06:32:35,292 ERROR [STDERR] [2@41d47b2b] info register aspect > >> > de.uni_bremen.st.berber.aspectj.Trace > >> > > >> > ... > >> > > >> > 2011-05-25 06:32:36,135 ERROR [STDERR] [2@4ca68fd8] info AspectJ Weaver > >> > Version 1.6.11 built on Tuesday Mar 15, 2011 at 15:31:04 GMT > >> > 2011-05-25 06:32:36,135 ERROR [STDERR] [2@4ca68fd8] info register > >> > classloader org.jboss.mx.util.MBeanProxyExt$2@4ca68fd8 > >> > 2011-05-25 06:32:36,135 ERROR [STDERR] [2@4ca68fd8] info using > >> > configuration /C:/test/bin/aop.xml > >> > 2011-05-25 06:32:36,150 ERROR [STDERR] [2@4ca68fd8] info register aspect > >> > de.uni_bremen.st.berber.aspectj.Trace > >> > > >> > ... > >> > > >> > 2011-05-25 06:34:08,809 ERROR [STDERR] [JasperLoader@331a0501] info > >> > AspectJ Weaver Version 1.6.11 built on Tuesday Mar 15, 2011 at 15:31:04 > >> > GMT > >> > 2011-05-25 06:34:08,809 ERROR [STDERR] [JasperLoader@331a0501] info > >> > register classloader org.apache.jasper.servlet.JasperLoader@331a0501 > >> > 2011-05-25 06:34:08,825 ERROR [STDERR] [JasperLoader@331a0501] info > >> > using configuration /C:/test/bin/aop.xml > >> > 2011-05-25 06:34:08,825 ERROR [STDERR] [JasperLoader@331a0501] info > >> > register aspect de.uni_bremen.st.berber.aspectj.Trace > >> > > >> > Entries that he advises some joinpoints is missing. I even deleted the > >> > javassist.jar from the deployment directory to make sure he isn't using > >> > it. > >> > > >> > Regards > >> > > >> > Bernhard > > > > > > _______________________________________________ > > aspectj-users mailing list > > aspectj-users@eclipse.org > > https://dev.eclipse.org/mailman/listinfo/aspectj-users > > > _______________________________________________ > aspectj-users mailing list > aspectj-users@eclipse.org > https://dev.eclipse.org/mailman/listinfo/aspectj-users -- Dipl. Inf. Bernhard Berger TZI – Universität Bremen, AG Softwaretechnik E-Mail ber...@tzi.de Telefon +49 421 218-4862 _______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org https://dev.eclipse.org/mailman/listinfo/aspectj-users