[wildfly-dev] Dynamically attaching AspectJ LTW weaver from EAR

Stuart Douglas stuart.w.douglas at gmail.com
Wed Oct 18 10:55:42 EDT 2017


So one possibility that comes to mind would be to create a small deployment
that does the aspectJ attach on deploy (e.g. in a @PostConstruct method of
an @Startup EJB).

You could then add an inter-deployment dependency on this deployment to all
your other deployments, which should ensure that this code is run before
other modules are created/loaded.

Stuart

On Wed, Oct 18, 2017 at 4:00 AM, Eric B <ebenzacar at gmail.com> wrote:

> Hi,
>
> I'm looking to use AspectJ Load Time Weaving with Wildfly 10.  Looking
> around at some posts, it is a little complicated to get Wildfly launched
> properly with the AJ weaver due to the way the AJ library intializes the
> logging subsystem differently than WF.
>
> Digging around, I found a config that actually works.  It is documented
> here (obviously some of the class names/versions have to change):
> https://github.com/ChienChingLee/How-to-launch-
> Wildfly-9.0-with-AspectJ-1.8-LTW
>
> But I'm not a fan of changing my conf file to something that has hardcoded
> paths/jar names in it - for example adding:
>  -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/
> base/org/jboss/logmanager/main/jboss-logmanager-2.0.0.Final.jar
>
>
> Digging around some more in AJ, I saw that as of AJ 1.8.7, there is a way
> to dynamically attach the weaver to the JVM.  Very cool.
> https://www.eclipse.org/aspectj/doc/released/README-187.html
> But in order to use the LTW effectively, I need to ensure that the weaver
> is loaded prior to WF scanning and loading any of my classes (EJB,
> annotated beans, pojos, etc).  But I have no ideas how to do that.
>
> In the case of a console application, it is pretty straight forward - make
> it the first item in the application's main() method.  But in the case of a
> JEE app, I don't know of any main() equivalent.
>
>
> Is there a way to hook into the classloading mechanism of WF instead to
> tell it to load the weaver if it isn't already loaded?  Can this be done
> from within the EAR deployment?  Or is there a single point of entry that
> WF accesses before scanning any of the classes in the EAR?  Or is there a
> simpler way of configuring or attaching the AJ Weaver?  I did find an old
> ticket (https://issues.jboss.org/browse/WFLY-895) that related to this
> issue, but it is marked as WONT FIX.
>
> Am not sure of the best approach at this point.
>
>
> Thanks,
>
> Eric
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/wildfly-dev/attachments/20171018/213d29d6/attachment.html 


More information about the wildfly-dev mailing list