I'm trying to use LTW in Wildfly 10, and running into an interesting quandry with the classloader/module structure. In WF10, class loading is based on modules that have to define explicit dependencies on other modules (similar in concept to Jigsaw classloader I believe).
So in order to launch my EAR with LTW enabled, I need to first define the javaagent as a JAVA_OPTS passed to Wildfly on startup. Which means the aspectjweaver.jar has to be available somewhere. However, when my application itself loads, the classloader also needs a visibility on the aspectjweaver.jar file. Without it, I get the following error message. 15:13:36,849 ERROR [stderr] (MSC service thread 1-1) [ModuleClassLoader@17d1e6a3] warning define generated class failed -- (NoClassDefFoundError) org/aspectj/runtime/internal/AroundClosure 15:13:36,850 ERROR [stderr] (MSC service thread 1-1) org/aspectj/runtime/internal/AroundClosure 15:13:36,850 ERROR [stderr] (MSC service thread 1-1) java.lang.NoClassDefFoundError: org/aspectj/runtime/internal/AroundClosure 15:13:36,850 ERROR [stderr] (MSC service thread 1-1) at java.lang.ClassLoader.defineClass1(Native Method) That make sense to me, since by default, the classloader for my application will not have visibility to the container classloader, unless defined explicitly. Plus, I do not have the aspectjweaver.jar bundled in my application. So I have 2 choices: 1) bundle the ajweaver.jar in my EAR/lib folder 2) add ajweaver.jar as a module in Wildfly and create a dependency on it for my application What is the recommended approach? In case: 1) I still have to make the jar available to the container for the javaagent weaver to be available to the JVM on container startup. 2) I could potentially have different EARs each with different AJ versions bundled Am I able to use the javaagent of one version of AJ with a different version of AJ bundled with the EAR? Does it make more logical sense to have the LTW library (ie: ajweaver.jar) bundled in the container and exposed, or simply wrapped up in the EAR itself? Or am I just splitting hairs? Thanks, Eric
_______________________________________________ aspectj-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/aspectj-users
