Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Weaving into Java System Libs

Hi,

1st problem solved. There was a little error in the pointcut! Sorry for that.

But there still is an open question. Why is the thisJoinPoint.getTarget in the following example always null? And yes, I double checked...it's not only the toString() method that delivers null results ;-)

pointcut init() : call(new()) && !within(TestAspect) && !within(setup..*);
after(): init() {
   System.out.println(thisJoinPoint.getTarget());
}
Cheers,
Nikolas

Nikolas Nehmer schrieb:
Hi,

I'm wondering if it is possible to monitor every constructor call in my application e.g. including calls to java.lang.*. In my understanding, this would only imply weaving code into "my" application and not into java system libs.

But if I use something like:
pointcut init() : call(new())...;
constructor calls within myApp are aspectized but constructor calls to system libs are not. I understand that an initialization advice only works in myApp but using call-advice should also work for system lib calls? Am I wrong?

Best Nikolas

Alex Villazon schrieb:
Hi,
In fact ajc does not restrict weaving into the class library, but the resulting code may break the VM bootstrapping or crash the VM...

For LTW, you could implement your own weaving agent using the WeavingAdaptor, and use

bcelWorld.performExtraConfiguration("weaveJavaPackages=true,weaveJavaxPackages=true");

However, this solution does not apply if you need to weave classes loaded during VM bootstrapping.... and before the agent starts instrumentation.

Be aware that you could easily have problems of infinite recursions if your advices use woven classes of the Java class library.

These problems are discussed in pdf <http://www.inf.unisi.ch/projects/ferrari/Publications_files/pppj08.pdf>

Hope that helps.

Cheers,

Alex


On Jul 27, 2009, at 11:58 AM, Nikolas Nehmer wrote:

Even LTW seems to stop at the boundary to the java system libs. How
exactly did you solve that problem?

cheers Nikolas

FraGMenT schrieb:
As far as I know you are looking for the Load-Time Weaving. I had more
or less the same problem and solved it with LTW. I'm afraid you cannot
weave system libraries at compile time.

Hope this helped you.

2009/7/22 Nikolas Nehmer <nnehmer@xxxxxxxxxxxxxxxxxxxx <mailto:nnehmer@xxxxxxxxxxxxxxxxxxxx>
<mailto:nnehmer@xxxxxxxxxxxxxxxxxxxx>>

   Hi there,

   I'm new to AOP and AspectJ in particular. Today I started
   exploring some simple HelloWorld style example aspects. As far as
   I can tell, everything seems to work smoothly. But currently I
   have one issue. Is there any chance of weaving bytecode into the
   java systems libraries (e.g. java.lang.System,…) by “exploiting”
   AspectJ? I’m trying to circumvent writing my own bytecode
   instrumentation component. Any ideas?

   Best regards,

   Nick

   _______________________________________________
   aspectj-users mailing list
   aspectj-users@xxxxxxxxxxx <mailto:aspectj-users@xxxxxxxxxxx>
   https://dev.eclipse.org/mailman/listinfo/aspectj-users


------------------------------------------------------------------------

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx <mailto:aspectj-users@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/aspectj-users



--
Dipl.-Inf. Nikolas Nehmer,
Dept. of Computer Science. University of Kaiserslautern
P.O. Box 3049, 67653 Kaiserslautern, Germany.
room 36/308, phone: +49 (0) 631 - 205 2644, fax: +49 (0) 631 - 205 3299
mail: nnehmer@xxxxxxxxxxxxxxxxxxxx <mailto:nnehmer@xxxxxxxxxxxxxxxxxxxx>

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx <mailto:aspectj-users@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/aspectj-users

------------------------------------------------------------------------

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users




--
Dipl.-Inf. Nikolas Nehmer,
Dept. of Computer Science. University of Kaiserslautern P.O. Box 3049, 67653 Kaiserslautern, Germany.
room 36/308, phone: +49 (0) 631 - 205 2644, fax: +49 (0) 631 - 205 3299
mail: nnehmer@xxxxxxxxxxxxxxxxxxxx



Back to the top