From fcbb405a2eacf97c6c4077494da5337183b6a6f7 Mon Sep 17 00:00:00 2001 From: zacharias Date: Tue, 16 Jun 2026 17:58:33 +0200 Subject: [PATCH] Updated Plugin-API version as it has recived updates since 0.1.0, but yet dine to be in 1.0 release Updeaded the RPCP loader to use JarFile instead of a virtual FS Signed-off-by: zacharias --- Core/src/main/java/me/neurodock/core/Core.java | 2 +- .../main/java/me/neurodock/plugin/loader/Loader.java | 12 ++++++++---- Plugin-API/build.gradle | 3 ++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Core/src/main/java/me/neurodock/core/Core.java b/Core/src/main/java/me/neurodock/core/Core.java index 0643a8a..bd5f04a 100644 --- a/Core/src/main/java/me/neurodock/core/Core.java +++ b/Core/src/main/java/me/neurodock/core/Core.java @@ -849,7 +849,7 @@ public class Core { pluginJsonData.append(tmp); } JSONObject pluginJson = new JSONObject(pluginJsonData.toString()); - LoadedPlugin plugin = loader.loadPlugin(pluginJson, file.toPath(), data); + LoadedPlugin plugin = loader.loadPlugin(pluginJson, jar, file.toPath(), data); data.addPlugin(plugin); diff --git a/Core/src/main/java/me/neurodock/plugin/loader/Loader.java b/Core/src/main/java/me/neurodock/plugin/loader/Loader.java index 2b2b3c5..6124c55 100644 --- a/Core/src/main/java/me/neurodock/plugin/loader/Loader.java +++ b/Core/src/main/java/me/neurodock/plugin/loader/Loader.java @@ -28,6 +28,8 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; import static me.neurodock.plugin.Plugin.UNKNOWN_PLUGIN; @@ -79,7 +81,9 @@ public class Loader { @Override public String toString() { - // Replaces the toString which is used thru out the Core and OllamaObject to get the JSON representation of a Function Tool + // Replaces the toString which is used throughout the Core and OllamaObject to get the JSON representation of a Function Tool + // Ideally the toString method SHULD NOT be used like this, while yes a JSON representation is better than a Java Hash representation + // the toString should not be utilized or overwritten in this manner return tool.getToolJSON(); } }); @@ -89,13 +93,13 @@ public class Loader { } - public LoadedPlugin loadPlugin(JSONObject pluginJson, Path pluginJar, Data data) { + public LoadedPlugin loadPlugin(JSONObject pluginJson, JarFile jar, Path pluginJar, Data data) { if(!pluginJson.has("name") || !(pluginJson.get("name") instanceof String pluginName)) throw new PluginLoadingException("Malformed plugin json", UNKNOWN_PLUGIN); if(!pluginJson.has("entryPoint") || !(pluginJson.get("entryPoint") instanceof String pluginEntryPoint)) throw new PluginLoadingException("Malformed plugin json", pluginName); - Path pluginEntryPointFile = fs.getPath("/"+pluginEntryPoint.replaceAll("\\.", "/")+".class"); - if(!Files.exists(pluginEntryPointFile)) throw new PluginLoadingException("Missing plugin entrypoint", pluginName); + JarEntry entry = jar.getJarEntry(pluginEntryPoint.replaceAll("\\.", "/")); + if(entry == null) throw new PluginLoadingException("Missing plugin entrypoint", pluginName); Plugin plugin = null; URLClassLoader classLoader; diff --git a/Plugin-API/build.gradle b/Plugin-API/build.gradle index 0c884df..6d3239f 100644 --- a/Plugin-API/build.gradle +++ b/Plugin-API/build.gradle @@ -2,7 +2,7 @@ plugins { id 'java-library' } -version = '0.1.0' +version = '0.1.2' repositories { mavenCentral() @@ -12,6 +12,7 @@ dependencies { implementation 'io.github.classgraph:classgraph:4.8.184' api "org.json:json:20250107" + api "org.jetbrains:annotations:23.1.0" testImplementation platform('org.junit:junit-bom:6.0.0')