From ebb3ea4edb5712fa1a0d7f3746df0193d87f1696 Mon Sep 17 00:00:00 2001 From: Niklas Date: Sun, 19 Mar 2023 20:28:26 +0100 Subject: [PATCH] add custom plugin library loader 2 --- .../modules/libraryModule/StemClassLoader.java | 2 +- .../pluginModule/PluginClassLoader.java | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/main/java/de/stem/stemSystem/modules/libraryModule/StemClassLoader.java b/src/main/java/de/stem/stemSystem/modules/libraryModule/StemClassLoader.java index 03f48b6..a615462 100644 --- a/src/main/java/de/stem/stemSystem/modules/libraryModule/StemClassLoader.java +++ b/src/main/java/de/stem/stemSystem/modules/libraryModule/StemClassLoader.java @@ -19,7 +19,7 @@ public class StemClassLoader extends URLClassLoader { public StemClassLoader() { super(new URL[]{}, ClassLoader.getSystemClassLoader()); - STEMSystemApp.LOGGER.CORE("Loading custom classloader for library and plugin support"); + STEMSystemApp.LOGGER.CORE("Loading custom classloader for common jar libraries"); } @Override diff --git a/src/main/java/de/stem/stemSystem/modules/pluginModule/PluginClassLoader.java b/src/main/java/de/stem/stemSystem/modules/pluginModule/PluginClassLoader.java index 8581ce8..9c0c643 100644 --- a/src/main/java/de/stem/stemSystem/modules/pluginModule/PluginClassLoader.java +++ b/src/main/java/de/stem/stemSystem/modules/pluginModule/PluginClassLoader.java @@ -46,10 +46,10 @@ private STEMPlugin initPlugin(String pluginName, String classPath, String versio } catch (ClassCastException ex) { throw new InvalidPluginException("Main class `" + classPath + "' does not extend Plugin"); } - this.loadPluginLibraryFiles(pluginName); STEMPlugin plugin = pluginClass.getDeclaredConstructor().newInstance(); plugin.setUp(pluginName, version, buildJobName, buildNumber, classPath); + this.loadPluginLibraryFiles(plugin); return plugin; } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { throw new InvalidPluginException("No public constructor"); @@ -60,19 +60,19 @@ private STEMPlugin initPlugin(String pluginName, String classPath, String versio } } - public synchronized void loadPluginLibraryFiles(String pluginName) throws MalformedURLException { - File pluginDirectory = new File(PluginModule.pluginDirectory, pluginName); + public synchronized void loadPluginLibraryFiles(STEMPlugin plugin) throws MalformedURLException { + File pluginDirectory = plugin.getDataFolder(); if (pluginDirectory.exists() && pluginDirectory.isDirectory()) { File dependencyDirectory = new File(pluginDirectory, "libraries"); if (dependencyDirectory.exists() && dependencyDirectory.isDirectory()) { if (dependencyDirectory.exists() && dependencyDirectory.isDirectory()) { File[] files = dependencyDirectory.listFiles(); - STEMSystemApp.LOGGER.INFO("Library directory found for plugin: " + pluginName); + STEMSystemApp.LOGGER.INFO("Library directory found for plugin: " + plugin.getPluginName()); for (File file : files) { if (file.isFile()) { if (file.getName().endsWith(".jar")) { - STEMSystemApp.LOGGER.INFO("Loading library " + file.getName() + " for plugin: " + pluginName); - this.addJarFileToPlugin(file); + STEMSystemApp.LOGGER.INFO("Loading library " + file.getName() + " for plugin: " + plugin.getPluginName()); + this.addURL(file.toURI().toURL()); } } } @@ -80,10 +80,4 @@ public synchronized void loadPluginLibraryFiles(String pluginName) throws Malfor } } } - - - public synchronized void addJarFileToPlugin(File jarFile) throws MalformedURLException { - this.addURL(jarFile.toURI().toURL()); - STEMSystemApp.LOGGER.DEBUG("LOAD PLUGIN LIBRARY FILE: " + jarFile.getName()); - } }