PlugInClassLoader

Ein PlugIn sollte m.E. mit nur einer Datei daher kommen. Java kann aber leider nicht von Hause aus JARs aus Containern heraus nutzen. Wenn das Wirtssystem aber nun gezwungenermaßen das PlugIn erst auspacken muss, um an die enthalten JARs ranzukommen, wächst der Verwaltungsaufwandt. Hier greift mein PlugInClassLoader - er ermöglicht es eingebettete JAR zu nutzen.

Lizenz: LPGL
Autor: Clemens Gogolin (Braunschweig 2008/02)

Version: 0.9b

 

Hier ein Beispiel wie man ihn einsetzt:

  1. File jarFile = new File("/myPlugIn.jar");
  2.  
  3. PlugInClassLoader plugInClassLoader = new PlugInClassLoader(jarFile.toURL());
  4.  
  5. // oder:
  6. // PlugInClassLoader plugInClassLoader = new PlugInClassLoader(jarFile.toURL(), (ClassLoader) myClassLoader);
  7. //
  8.  
  9. // dann kann man dem PlugInClassLoader sagen, welche JARs eingebettet sind:
  10. // WICHTIG: Die Pfadangabe des eingebetteten JAR muss absolut sein ohne beginnender Slash ("/").
  11. plugInClassLoader.addNestedJarPath("libs/driver.jar");
  12.  
  13. // Jetzt indiziert der PlugInClassLoader das eingebettete JAR-File (weil ist schneller...)
  14.  
  15.  
  16. // nun kann man die Klassen und Resourcen nutzen:
  17. Class hsqldbDriver = plugInClassLoader.loadClass("org.hsqldb.jdbcDriver");
  18. // oder
  19. InputStream _image = plugInClassLoader.getResourceAsStream("/images/picture.png");