in extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/adapters/ClassLoaderServiceImpl.java [37:60]
public void registerThrowAwayClassloader()
{
//we do not have the luxury of a pluggable classloading extensions like in myfaces
// instead we have to provide our own classloader which is hooked in from time to time into the running system
ClassLoader loader = ClassLoaderUtils.getDefaultClassLoader();
boolean found = false;
ClassLoader parent = loader;
while(parent != null && !found) {
found = parent instanceof CDIThrowAwayClassloader;
if(!found) {
parent = parent.getParent();
}
}
if(found) {
return;
}
//in case of an unchanged classloader we can recycle our old throw away classloader
if(_oldClassLoader != null && loader.equals(_oldClassLoader.getParent())) {
Thread.currentThread().setContextClassLoader(_oldClassLoader);
} else {
_oldClassLoader = new CDIThrowAwayClassloader(loader);
Thread.currentThread().setContextClassLoader(_oldClassLoader);
}
}