package net.contextfw.web.application.internal.development;
import java.security.AccessController;
import java.security.PrivilegedAction;
public class ClassLoaderProvider {
private final ReloadingClassLoaderConf conf;
private ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
public ClassLoaderProvider(ReloadingClassLoaderConf conf) {
this.conf = conf;
}
public boolean isReloadable() {
return conf != null;
}
public ClassLoader get() {
return classLoader;
}
public ClassLoader reload() {
if (isReloadable() && conf != null) {
classLoader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
@Override
public ClassLoader run() {
return new ReloadingClassLoader(conf);
}
});
}
return classLoader;
}
}