Where does WF know where to find the corresponding jar that contains that
package name? Does it take it from the jvm startup classpath parameters?
Does it matter if it's -cp or -Xbootclasspath/a?
On Oct 23, 2017 3:07 PM, "Stuart Douglas" <stuart.w.douglas(a)gmail.com>
On Tue, Oct 24, 2017 at 2:04 AM, Eric B <ebenzacar(a)gmail.com> wrote:
> Thanks for the tips, but i'm still struggling with this. Here's what
> I've done so far.
> I've added the module name under -Djboss.modules.system.pkgs and added it
> as a cp argument as :
This is not a module name, but a package name. You should not be creating
a aspectj modules.
> -classpath "D:\jboss-eap-7.0\modules\system\layers\base\org\aspectj\
> My org.aspectj module is defined as:
> <module xmlns="urn:jboss:module:1.3" name="org.aspectj">
> <resource-root path="aspectjweaver-1.8.10.jar"/>
> <resource-root path="aspectj-0.0.1-SNAPSHOT.jar"/>
> Now when I start Wildfly, I still don't see it trying to weave any of the
> base Wildfly/undertow modules. If I define the org.aspectj as a global
> module in the standalone.xml, the I see the weaver attempting to weave my
> application deployment but none of the base WF classes.
> Does the jboss.modules.system.pkgs argument relate to the module name or
> to the package naming of the libraries? ie: do my aspects in
> aspectj-0.0.1-SNAPSHOT.jar also have to be in an 'org.aspectj' java
> package or am I free to use any package naming structure I want as long as
> they are part of the org.aspectj WF module definition? My aspect is
> actually in a test package called "aspectj". I even tried added
> to the jboss.modules.system.pkgs variable, but to no avail.
> How does WF know where to find classes/packages defined in
> On Sun, Oct 22, 2017 at 7:09 PM, Stuart Douglas <
> stuart.w.douglas(a)gmail.com> wrote:
>> I think you probably want to modify the classpath and also
>> add -Djboss.modules.system.pkgs=org.aspectj (or whatever package
>> aspectj classes are under). This system property is a comma separated list
>> of non-modular packages that JBoss modules will just pass straight through
>> to the system class loader.
>> On Sat, Oct 21, 2017 at 1:29 AM, Eric B <ebenzacar(a)gmail.com> wrote:
>>> I'm trying to use AspectJ to advise some core classes in
>>> Wildfly/undertow. Specifically, I'm trying to advise some of the
>>> HttpSession methods to get some more detailed logging when Sessions are
>>> I've added AspectJ as a -javaagent which is launched on startup of
>>> Wildfly. I had to follow some of the steps listed at:
>>> .0-with-AspectJ-1.8-LTW. But it works; I can see that the AJ weaver
>>> is loaded and present.
>>> My problem now is that I don't know where to put my jar of aspects for
>>> it to be loaded/visible by the weaver for all modules. I've managed to
>>> it to work by modifying the io.undertow.servlet module, adding my jar in
>>> the folder and modifying the module.xml, but that only advises the
>>> io.undertow.servlet.* classes. And it seems like quite an ugly hack to get
>>> to that.
>>> I tried creating an independent module for it, and declaring it as a
>>> global module in my standalone.xml, but that didn't seem to work. Nor
>>> modifying the servlet module.xml and specifying my module as a dependency.
>>> I tried to add it to the startup parameters in the standalone.conf
>>> file, specifying it as -classpath path/to/myaspect.jar, but that only
>>> advised the startup WF (org.jboss) classes and none of the modules.
>>> At the moment, I'm looking to advise any implementation of
>>> javax.servlet.http.HttpSession.invalidate(). In AJ language, the
>>> pointcut is simple: execution(*
>>> will match any implementation of the HttpSession interface. However, to
>>> make it active, I need to get that Aspect in the classpath of every module
>>> loaded and visible to the AJ weaver.
>>> Is there a "generic" place I can declare the the aspects.jar so
>>> is part of the classpath of every module loaded or is my only choice to
>>> modify every module.xml in the system?
>>> wildfly-dev mailing list