From d17b0635f52027b6f49e2656523983959fc7df84 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Tue, 12 Jul 2022 20:05:10 +0000 Subject: [PATCH] Include compile options Co-authored-by: sigonasr2 --- bin/TestPlugin.jar | Bin 8422 -> 764 bytes plugins/TestPlugin.class | Bin 0 -> 357 bytes plugins/TestPlugin.jar | Bin 8422 -> 769 bytes src/sig/PluginLoader.java | 66 ++++++++++++++++++++++++++++++++++---- 4 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 plugins/TestPlugin.class diff --git a/bin/TestPlugin.jar b/bin/TestPlugin.jar index 4d3199fc985e8ec0aa2624688980a8d142a4516c..d521e0a65e30df891cd65b633809cb2b8d7686a7 100644 GIT binary patch delta 179 zcmaFn_=lAzz?+#xgn@&DgJJ4|i9FU!K+A&BX0@RKKZ%4MFc|hO-ONzzdb7>14AkhgG@kx8$c$^ypYu5k^r#TddWG7 V#l->MtZX2a%s_Y;NGmgecmVm#CEWl3 delta 7896 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 LE-Axl-Jg8}-quVP literal 0 HcmV?d00001 diff --git a/plugins/TestPlugin.jar b/plugins/TestPlugin.jar index 4d3199fc985e8ec0aa2624688980a8d142a4516c..2427e8ddcbea405801b0150ef7ab1db07c2e445d 100644 GIT binary patch delta 283 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 diff --git a/src/sig/PluginLoader.java b/src/sig/PluginLoader.java index 392110d..b51472e 100644 --- a/src/sig/PluginLoader.java +++ b/src/sig/PluginLoader.java @@ -1,33 +1,85 @@ package sig; +import java.io.BufferedReader; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStreamReader; import java.lang.reflect.InvocationTargetException; -import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; +import java.util.jar.JarEntry; +import java.util.jar.JarInputStream; public class PluginLoader { public static void LoadPlugins() { Path p = Path.of("..","plugins"); try { - Files.walk(p).filter((f)->Files.isRegularFile(f)&&f.getFileName().toString().contains(".jar")).forEach((f)->{ - LoadPlugin(f); + Files.walk(p).filter((f)->Files.isRegularFile(f)&&f.getFileName().toString().contains(".java")).forEach((f)->{ + System.out.println(LoadPlugin(f)); }); } catch (IOException e) { e.printStackTrace(); } } - private static void LoadPlugin(Path f) { + public static List getClasseNames(String jarName) { + boolean debug=true; + ArrayList classes = new ArrayList(); + + if (debug) + System.out.println("Jar " + jarName ); + try { + JarInputStream jarFile = new JarInputStream(new FileInputStream( + jarName)); + JarEntry jarEntry; + + while (true) { + jarEntry = jarFile.getNextJarEntry(); + if (jarEntry == null) { + break; + } + if (jarEntry.getName().endsWith(".class")) { + if (debug) + System.out.println("Found " + + jarEntry.getName().replaceAll("/", "\\.")); + classes.add(jarEntry.getName().replaceAll("/", "\\.")); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return classes; + } + + private static String LoadPlugin(Path f) { try { System.out.println("Loading "+f); - URL l = f.toUri().toURL(); + System.out.println(" Compiling "+f.getParent().toAbsolutePath()+"..."); + Process process = Runtime.getRuntime().exec(new String[]{"javac","../plugins/TestPlugin.java"}); + //Process process = Runtime.getRuntime().exec("jar cfm TestPlugin.jar ../manifest ."); + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + StringBuilder line=new StringBuilder(); + String lin; + while ((lin = reader.readLine()) != null) { + line.append(lin).append("\n"); + } + process = Runtime.getRuntime().exec(new String[]{"jar","cfm","TestPlugin.jar","../manifest","../plugins/TestPlugin.class"}); + reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + while ((lin = reader.readLine()) != null) { + line.append(lin).append("\n"); + } + URL l = Paths.get(f.getFileName().toString().replace(".java","")+".jar").toUri().toURL(); URLClassLoader loader = new URLClassLoader(new URL[]{l}); - Object newPlugin = Class.forName(f.getFileName().toString().replace(".jar",""),true,loader).getDeclaredConstructor().newInstance(); - } catch (MalformedURLException | InstantiationException | IllegalAccessException | ClassNotFoundException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { + Object newPlugin = Class.forName(f.getFileName().toString().replace(".java",""),true,loader).getDeclaredConstructor().newInstance(); + return line.toString(); + } catch (IllegalArgumentException | SecurityException | IOException | InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException | ClassNotFoundException e) { e.printStackTrace(); } + return ""; } }