Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » AJDT » Multiple instances of the same class woven against different aspects in an Eclipse plugin [Cross-pos
Multiple instances of the same class woven against different aspects in an Eclipse plugin [Cross-pos [message #57996] Fri, 28 October 2005 13:36
Didier Villevalois is currently offline Didier VillevaloisFriend
Messages: 86
Registered: July 2009

[Sorry, i cross-posted this in,, because i did not
know exactely who could answer this.]

I try to write an RCP app in which i need multiple instances of the same
classes woven against different aspects.

I don't know how classloading works into the Eclipse OSGi runtime and i
did not find any articles about it on the web.

I tried to use the org.aspectj.weawer.loadtime.WeavingURLClassLoader
provided with AspectJ5 but i can't succeed making it to work inside a
plugin. It seems that my class is already loaded by a parent classloader
(the one of the plugin maybe).

I took care no other reference is made to the classes to weave. I just
refer to those classes via the reflective API via my weaving classloader
like this :

public class TestClassFactory
public static TestInterface newTestClass(URL[] aspectURLs,
ClassLoader parent) throws ClassNotFoundException
ClassLoader loader = createClassLoader(aspectURLs, parent);
Class testClass =

Constructor constructor = testClass.getConstructor(new
Class[] {});
return (TestInterface) constructor.newInstance();
catch (Exception e)
// Should note occur
return null;

private static ClassLoader createClassLoader(URL[] aspectURLs,
ClassLoader parent)
if (parent == null)
parent = TestClassFactory.class.getClassLoader();
return new MyWeavingClassLoader(aspectURLs, parent);

private static class MyWeavingClassLoader extends WeavingURLClassLoader
public MyWeavingClassLoader(URL[] aspectURLs, ClassLoader parent)
m_aspectURLs = aspectURLs;


private URL[] m_aspectURLs;

public URL[] getAspectURLs()
return m_aspectURLs;

Does someone knows how to do this ?

I can send my test with three minimal plugins if someone wants.

Thanks for your help,
Previous Topic:Capturing annotations
Next Topic:org.aspectj.ajdt.core.prefs file and environment variables expansion
Goto Forum:

Current Time: Wed Apr 25 18:47:13 GMT 2018

Powered by FUDForum. Page generated in 0.01775 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software