[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[List Home]
|
[aspectj-users] problems using LTW and WeavingClassLoader
|
- From: atharva chauthaiwale <atharva.chau@xxxxxxxxx>
- Date: Fri, 1 Oct 2010 15:39:10 +0530
- Delivered-to: aspectj-users@eclipse.org
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:from:date :message-id:subject:to:content-type; bh=BnYEY8jMPA4Pjt+z8o0huu2R0pj6Jr9IYpATAuiwn1w=; b=Z36heKidnbhFXnkF1eKgYRZOjSktuQoxNcilJ/ZhZrlPekwhVc6MDCShOw0v8Sduq+ DT/c2pxXje7l3Cf3aDVsPyMg2+hD4aP/TrR4SAQrLTymznPkcNsBOQtKVtIAmjwI/9B6 JygdneNYYDgT/8/6AS/O5qsV8S0Fca2+igh6Y=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=gmtwc1MsJSGuCnSoavf1YepOmI/eo9VArVlBO4Vg8NPS/seZLrzgNM2YJlI+uHy8/h PCRTxdmxpDM/M/SAMIcDI6ZrgQsrMxfeXP3tgIMhjmURXmrCudsucDRcJyVHZELZ9pSZ Ad8NuMa2YzBtvooEgLSFmPgIXlGRnS0A4G+Do=
Hi , I think this question has already been asked on this mailing list but I could not find satisfactory answer.. So here is my problem...
I am trying to use LTW using command line aj script as follows :
I have
Aspect file : TraceAspect.aj
public aspect TraceAspect {
pointcut trace()
: call (* *.printH*(..));
before() : trace() {
System.out.println("Printing from aspects : hello...................");
}
}
java file : Hello.java
public class Hello{
int i;
String s;
Hello()
{
this.i=0;
this.s="";
}
public void printHello()
{
System.out.println("hello from printHello" );
}
}
Main.java :
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
*
* @author lnvidyad
*/
public class Main {
public static void main(String[] args) {
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
System.out.println("my loader " + classLoader.toString() );
try {
//load class...
Class myClass = classLoader.loadClass("hello");
System.out.println("Class loaded:" + myClass.getName());
//get the array of methods...
Method m[] = myClass.getMethods();
//make object...
Object p = null;
try {
//actually, make object here...
p = myClass.newInstance();
try {
//invoke the first method...
m[0].invoke(p,null);
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
} catch (InvocationTargetException ex) {
ex.printStackTrace();
}
} catch (InstantiationException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
basically i want to use WeavingURLClassLoader at runtime to load my classes just like URLCLassLoader
So , I did following steps: (all files in same directory)
1. ajc TraceAspect.java -outjar tracelib.jar
2. ajc Hello.java
3. ajc Main.java
4. set ASPECTPATH=tracelib.jar
5. aj Hello
Since aj replaces system classloader with WeavingURLCLassLoader, when I load Hello class it should also perform weaving of TraceAspect
However, TraceAspect is not getting woven and hence I am not able to print message from TraceAspect...
1. Can someone please explain me what is the problem ?
2 .What is the alternate way of using WeavingURLClassLoader at runtime ?
Thanks
Regards,
Atharva