Andy,

I took your advice (#2) below, and it's been working great in development for a 
month.  However, it turns out that there's something different in production 
(not sure what) that's preventing my harmless weaving from triggering, so my 
aspect is never instantiated.

So, I'm trying to add something to the aspect to dump out all constructors, so 
I can choose something else as my eager-weaving trigger.  But, so far, I either 
get no output, or I get org.aspectj.lang.NoAspectBoundException.

I don't know what class I want to trigger on, but I am 99% certain it's in a 
package somewhere beneath com.sonicsw.*.  Can you see what's wrong with this?

        pointcut init(Object o):
                this(o) &&
                within(com.sonicsw..*) &&
                initialization(*.new());

        after(Object o) returning: init(o) {
                System.out.println("*1* ctor: " + 
thisJoinPointStaticPart.getSignature()); 
        }

        after() returning(Object o): call(*.new(..)) {
                System.out.println("*2* ctor: " + 
thisJoinPointStaticPart.getSignature()); 
        } 

Thanks,
Lee


-----Original Message-----
From: aspectj-users-boun...@eclipse.org 
[mailto:aspectj-users-boun...@eclipse.org] On Behalf Of Andy Clement
Sent: Tuesday, February 22, 2011 12:22 PM
To: aspectj-users@eclipse.org
Subject: Re: [aspectj-users] Lazy weaving vs eager weaving?

Hi,

There is no direct control for this.  You kind of have two options:

(1) touch the aspect yourself much earlier, to cause it to be loaded up.  Just 
refer to something in it from one of your earlier loaded classes that will 
cause it to be loaded.
(2) Use it to 'harmlessly' weave something that is loaded much earlier, which 
kind of causes (1) to happen.

cheers
Andy

On 22 February 2011 08:57, Grey, Lee <lee.g...@ncr.com> wrote:
> Is there any way to control when an aspect gets loaded and initialized?
>
> Thanks,
> Lee
> ________________________________
> From: aspectj-users-boun...@eclipse.org 
> [mailto:aspectj-users-boun...@eclipse.org] On Behalf Of Grey, Lee
> Sent: Monday, February 21, 2011 12:58 PM
> To: aspectj-users@eclipse.org
> Subject: [aspectj-users] Lazy weaving vs eager weaving?
>
> I'm still working on the weaving of Sonic ESB container services, and 
> it's working perfectly with one exception.
>
> I'm instantiating a thread object in a static block of my aspect.
> Unfortunately, the static block doesn't execute until the first time a 
> message is received, even though the container JVM had started long ago.
> Aside from the fact that the thread doesn't start when it should, 
> there is also a very long hit for all the class loading and weaving on 
> receipt of that first message.
>
> Is there any way to have the weaving occur immediately, which I'm 
> assuming would be the way to have the static block execute prior to 
> receiving a message?
>
> Thanks,
> Lee Grey
>
> _______________________________________________
> 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
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to