public void registerThrowAwayClassloader()

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);
        }
    }