Skip to content
Snippets Groups Projects
Commit e94c0869 authored by Nils Christian Ehmke's avatar Nils Christian Ehmke
Browse files

Quality modifications

parent eab45439
No related branches found
No related tags found
No related merge requests found
......@@ -27,8 +27,6 @@ import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import kieker.analysis.AnalysisController;
import kieker.analysis.model.analysisMetaModel.MIDependency;
......@@ -53,7 +51,7 @@ public final class PluginClassLoader extends ClassLoader {
*/
private static PluginClassLoader instance;
private final List<URL> list = new ArrayList<URL>();
private final List<URL> urlList = new ArrayList<URL>();
private URLClassLoader classLoader = null;
......@@ -61,7 +59,7 @@ public final class PluginClassLoader extends ClassLoader {
* The default constructor of this class. During the creation all available libraries will be added to the class loader.
*/
private PluginClassLoader() {
this.classLoader = new URLClassLoader(new URL[]{}, AnalysisController.class.getClassLoader());
this.classLoader = new URLClassLoader(new URL[] {}, AnalysisController.class.getClassLoader());
/* Make sure that all libs are loaded. */
final List<MIDependency> libs = FileManager.getInstance().loadAllDependencies();
for (final MIDependency lib : libs) {
......@@ -80,9 +78,15 @@ public final class PluginClassLoader extends ClassLoader {
* The URL of the dependency to be added.
*/
public void addURL(final URL url) {
this.list.add(url);
this.urlList.add(url);
this.classLoader = new URLClassLoader(this.list.toArray(new URL[this.list.size()]), AnalysisController.class.getClassLoader());
this.classLoader = (URLClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
@Override
public Object run() {
return new URLClassLoader(PluginClassLoader.this.urlList.toArray(new URL[PluginClassLoader.this.urlList.size()]), AnalysisController.class
.getClassLoader());
}
});
}
/**
......@@ -92,9 +96,15 @@ public final class PluginClassLoader extends ClassLoader {
* The URL of the dependency to be added.
*/
public void removeURL(final URL url) {
this.list.remove(url);
this.urlList.remove(url);
this.classLoader = new URLClassLoader(this.list.toArray(new URL[this.list.size()]), AnalysisController.class.getClassLoader());
this.classLoader = (URLClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
@Override
public Object run() {
return new URLClassLoader(PluginClassLoader.this.urlList.toArray(new URL[PluginClassLoader.this.urlList.size()]), AnalysisController.class
.getClassLoader());
}
});
}
/**
......
......@@ -66,7 +66,7 @@ public final class PluginFinder {
*/
public static List<Class<AbstractRepository>> getAllRepositoriesWithinJar(final URL url) {
// TODO: Merge this with the other method
final List<Class<AbstractRepository>> repositoryClasses = (List<Class<AbstractRepository>>) REPOSITORY_CACHE.get(url);
final List<Class<AbstractRepository>> repositoryClasses = (List<Class<AbstractRepository>>) PluginFinder.REPOSITORY_CACHE.get(url);
if (repositoryClasses != null) {
return repositoryClasses;
}
......@@ -96,7 +96,7 @@ public final class PluginFinder {
}
}
jarFile.close();
REPOSITORY_CACHE.put(url, result);
PluginFinder.REPOSITORY_CACHE.put(url, result);
return result;
} catch (final IOException ex) {
ex.printStackTrace();
......@@ -113,7 +113,7 @@ public final class PluginFinder {
* @return A list containing all available plugin-classes or null, if an exception occurred.
*/
public static List<Class<AbstractPlugin>> getAllPluginsWithinJar(final URL url) {
final List<Class<AbstractPlugin>> pluginClasses = (List<Class<AbstractPlugin>>) PLUGIN_CACHE.get(url);
final List<Class<AbstractPlugin>> pluginClasses = (List<Class<AbstractPlugin>>) PluginFinder.PLUGIN_CACHE.get(url);
if (pluginClasses != null) {
return pluginClasses;
}
......@@ -146,7 +146,7 @@ public final class PluginFinder {
}
}
jarFile.close();
PLUGIN_CACHE.put(url, result);
PluginFinder.PLUGIN_CACHE.put(url, result);
return result;
} catch (final IOException ex) {
ex.printStackTrace();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment