From e94c0869d9f6e8268a85ab1733954c2fab4eee99 Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Fri, 6 Apr 2012 13:26:06 +0200 Subject: [PATCH] Quality modifications --- .../webgui/common/PluginClassLoader.java | 26 +++++++++++++------ .../kieker/webgui/common/PluginFinder.java | 8 +++--- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginClassLoader.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginClassLoader.java index bf3d7911..d8416880 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginClassLoader.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginClassLoader.java @@ -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()); + } + }); } /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java index 5ec6c855..5d3619c2 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java @@ -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(); -- GitLab