Sorry, I meant to say:
!within(org.apache.struts..*)
This is for Struts 1. If you use Struts 2 maybe you need to use
!within(org.apache.struts2..*) && !within(com.opensymphony..*)
--
Alexander Kriegisch
https://scrum-master.de
Alexander Kriegisch schrieb am 21.08.2016 18:46:
Hi Eric.
What is the problem with approach #1? That Struts classes are not loaded correctly anymore? Do you even want to advse them? If that is not necessary why not just exclude them by !within(org.apache.struts)?
Yes, class-loading sequence is relevant for AspectJ LTW.
Using call() instead of execution() does not solve the root cause of your problem, I assume. It only bloats the bytecode because many more joinpoints need to be woven.
Regards
--
Alexander Kriegisch
https://scrum-master.deEric B schrieb am 21.08.2016 15:03:I have a "fragile" legacy app that is running on JBoss 4. That is to say, that any changes to the app require a full manual regression test which are long and expensive. I'm trying to add some specific logging to the app, so I figured that using AOP to intercept method executions would be the simplest way without altering the binaries.But here is where I am running into classloading problems when I am trying to advise classes that are already loaded by the classloader by the time my ear gets loaded.My EAR is structured as the follows:EAR- webapp.war\ WEB-INF/lib- webstuff.jar- WebClasses.jar- struts.jar- EJB.jar- utils.jarJBoss is set to load as parent-first, and modifying the sequence isn't an option.So I have a few problems here:1) If I drop my aspect.jar in my EAR/lib folder, and enable LTW on the command line, it is able to successfully advise all my classes in EJB.jar, utils.jar and webstuff.jar. I am even able to advise methods in struts.jar, but unable to use any struts classes as the classloader for the aspect doesn't "see" anything in struts.jar (I get ClassDefNotFoundException).2) If I move my aspect.jar into my WEB-INF/lib folder, it doesn't successfully advise anything in EJB.jar or utils.jar, I suspect b/c they are loaded prior to the aspect being loaded by the classloader.My pointcuts are all "execution" pointcuts.Similarly if I try to advise container classes with "execution" pointcuts, they never seem to trigger.Is there a simple solution for this? Does one need to take the class-loading sequence into account when using LTW? Thinking outloud, would changing all my "execution" pointcuts to "call" make a difference?My aop.xml is fairly basic:<aspectj> <aspects> <aspect name="com.security.logger.LoginLogger"/> <aspect name="com.security.logger.EJBAccessErrorLogger"/> </aspects><weaver options="-verbose"> </weaver> </aspectj>Do I need to specify <includes> to the aspectj compiler? I thought all classes were "included" by default.Thanks!
Eric
_______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/aspectj-users