package org.mobicents.slee.container.component.deployment.classloading;
import javax.slee.ComponentID;
/**
* The SLEE component class loader implementation.
*
* A component needs to have it's own class loader due to unique JNDI context
* but in reality it just delegates to the related component jar class loader.
*
* @author martins
*
*/
public class ComponentClassLoader extends ClassLoader {
/**
* the component id, used to make this class loader unique
*/
private final ComponentID componentID;
/**
* the class loader pointing to component jar url related with the component
*/
private final URLClassLoaderDomain parent;
/**
*
* @param componentID
* @param parent
*/
public ComponentClassLoader(ComponentID componentID, URLClassLoaderDomain parent) {
super(parent);
this.parent = parent;
this.componentID = componentID;
}
/**
* Loads a class locally, i.e., from managed URLs or URLs managed by dependencies.
* @param name
* @return
* @throws ClassNotFoundException
*/
public Class<?> loadClassLocally(String name) throws ClassNotFoundException {
return parent.loadClassLocally(name);
}
@Override
public String toString() {
return "ComponentClassLoader[ componentID = " + componentID + " ]";
}
}