[freenet-cvs] r13160 - trunk/freenet/src/freenet/pluginmanager
juiceman at freenetproject.org
juiceman at freenetproject.org
Sun May 6 20:47:45 UTC 2007
Author: juiceman
Date: 2007-05-06 20:47:45 +0000 (Sun, 06 May 2007)
New Revision: 13160
Modified:
trunk/freenet/src/freenet/pluginmanager/PluginManager.java
Log:
Spaces -> tabs
Modified: trunk/freenet/src/freenet/pluginmanager/PluginManager.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginManager.java 2007-05-05 22:13:56 UTC (rev 13159)
+++ trunk/freenet/src/freenet/pluginmanager/PluginManager.java 2007-05-06 20:47:45 UTC (rev 13160)
@@ -1,6 +1,6 @@
/* This code is part of Freenet. It is distributed under the GNU General
- * Public License, version 2 (or at your option any later version). See
- * http://www.gnu.org/ for further details of the GPL. */
+* Public License, version 2 (or at your option any later version). See
+* http://www.gnu.org/ for further details of the GPL. */
package freenet.pluginmanager;
import java.io.BufferedReader;
@@ -33,14 +33,14 @@
public class PluginManager {
/*
- *
- * TODO: Synchronize
- * TODO: Synchronize
- * TODO: Synchronize
- * TODO: Synchronize
- * TODO: Synchronize
- *
- */
+ *
+ * TODO: Synchronize
+ * TODO: Synchronize
+ * TODO: Synchronize
+ * TODO: Synchronize
+ * TODO: Synchronize
+ *
+ */
private HashMap toadletList;
private HashMap pluginInfo;
@@ -60,8 +60,8 @@
pmconfig = new SubConfig("pluginmanager", node.config);
// Start plugins in the config
- pmconfig.register("loadplugin", null, 9, true, false, "PluginManager.loadedOnStartup", "PluginManager.loadedOnStartupLong",
- new StringArrCallback() {
+ pmconfig.register("loadplugin", null, 9, true, false, "PluginManager.loadedOnStartup", "PluginManager.loadedOnStartupLong",
+ new StringArrCallback() {
public String[] get() {
return getConfigLoadString();
}
@@ -70,7 +70,7 @@
// FIXME
throw new InvalidConfigValueException("Cannot set the plugins that's loaded.");
}
- });
+ });
String fns[] = pmconfig.getStringArr("loadplugin");
if (fns != null) {
@@ -295,148 +295,148 @@
/**
- * Method to load a plugin from the given path and return is as an object.
- * Will accept filename to be of one of the following forms:
- * "classname" to load a class from the current classpath
- * "classame at file:/path/to/jarfile.jar" to load class from an other jarfile.
- *
- * @param filename The filename to load from
- * @return An instanciated object of the plugin
- * @throws PluginNotFoundException If anything goes wrong.
- */
+ * Method to load a plugin from the given path and return is as an object.
+ * Will accept filename to be of one of the following forms:
+ * "classname" to load a class from the current classpath
+ * "classame at file:/path/to/jarfile.jar" to load class from an other jarfile.
+ *
+ * @param filename The filename to load from
+ * @return An instanciated object of the plugin
+ * @throws PluginNotFoundException If anything goes wrong.
+ */
private FredPlugin LoadPlugin(String filename) throws PluginNotFoundException {
logMINOR = Logger.shouldLog(Logger.MINOR, this);
- Class cls = null;
- if (filename.endsWith("*")) {
- filename = "*@http://downloads.freenetproject.org/alpha/plugins/" +
- filename.substring(filename.lastIndexOf(".")+1, filename.length()-1) +
- ".jar.url";
- //System.out.println(filename);
- if(logMINOR) Logger.minor(this, "Rewritten to "+filename);
- }
-
- BufferedReader in = null;
- InputStream is = null;
- if ((filename.indexOf("@") >= 0)) {
- boolean assumeURLRedirect = true;
- // Open from external file
- for (int tries = 0 ; (tries <= 5) && (cls == null) ; tries++)
- try {
- String realURL = null;
- String realClass = null;
-
- // Load the jar-file
- String[] parts = filename.split("@");
- if (parts.length != 2) {
- throw new PluginNotFoundException("Could not split at \"@\".");
- }
- realClass = parts[0];
- realURL = parts[1];
- if(logMINOR) Logger.minor(this, "Class: "+realClass+" URL: "+realURL);
-
- if (filename.endsWith(".url")) {
- if(!assumeURLRedirect) {
- // Load the txt-file
- URL url = new URL(parts[1]);
- URLConnection uc = url.openConnection();
- in = new BufferedReader(
- new InputStreamReader(uc.getInputStream()));
-
- realURL = in.readLine();
- if(realURL == null)
- throw new PluginNotFoundException("Initialization error: " + url +
- " isn't a plugin loading url!");
- realURL = realURL.trim();
- if(logMINOR) Logger.minor(this, "Loaded new URL: "+realURL+" from .url file");
- in.close();
- }
- assumeURLRedirect = !assumeURLRedirect;
- }
-
- // Load the class inside file
- URL[] serverURLs = new URL[]{new URL(realURL)};
- ClassLoader cl = new URLClassLoader(serverURLs);
-
-
- // Handle automatic fetching of pluginclassname
- if (realClass.equals("*")) {
-
- // Clean URL
- URI liburi = URIPreEncoder.encodeURI(realURL);
- if(logMINOR)
- Logger.minor(this, "cleaned url: "+realURL+" -> "+liburi.toString());
- realURL = liburi.toString();
-
- URL url = new URL("jar:"+realURL+"!/");
- JarURLConnection jarConnection = (JarURLConnection)url.openConnection();
- // Java seems to cache even file: urls...
- jarConnection.setUseCaches(false);
- JarFile jf = jarConnection.getJarFile();
- //URLJarFile jf = new URLJarFile(new File(liburi));
- //is = jf.getInputStream(jf.getJarEntry("META-INF/MANIFEST.MF"));
-
- //BufferedReader manifest = new BufferedReader(new InputStreamReader(cl.getResourceAsStream("/META-INF/MANIFEST.MF")));
-
- //URL url = new URL(parts[1]);
- //URLConnection uc = cl.getResource("/META-INF/MANIFEST.MF").openConnection();
-
- is = jf.getInputStream(jf.getJarEntry("META-INF/MANIFEST.MF"));
- in = new BufferedReader(new InputStreamReader(is));
- String line;
- while ((line = in.readLine())!=null) {
- // System.err.println(line + "\t\t\t" + realClass);
- if (line.startsWith("Plugin-Main-Class: ")) {
- realClass = line.substring("Plugin-Main-Class: ".length()).trim();
- if(logMINOR) Logger.minor(this, "Found plugin main class "+realClass+" from manifest");
- }
- }
- //System.err.println("Real classname: " + realClass);
- }
-
- cls = cl.loadClass(realClass);
-
- } catch (Exception e) {
- if (tries >= 5)
- throw new PluginNotFoundException("Initialization error:"
- + filename, e);
-
- try {
- Thread.sleep(100);
- } catch (Exception ee) {}
- } finally {
- try {
- if(is != null)
- is.close();
- if(in != null)
- in.close();
- } catch (IOException ioe){}
- }
- } else {
- // Load class
- try {
- cls = Class.forName(filename);
- } catch (ClassNotFoundException e) {
- throw new PluginNotFoundException(filename);
- }
- }
-
- if(cls == null)
- throw new PluginNotFoundException("Unknown error");
-
- // Class loaded... Objectize it!
- Object o = null;
- try {
- o = cls.newInstance();
- } catch (Exception e) {
- throw new PluginNotFoundException("Could not re-create plugin:" +
- filename, e);
- }
-
- // See if we have the right type
- if (!(o instanceof FredPlugin)) {
- throw new PluginNotFoundException("Not a plugin: " + filename);
- }
-
- return (FredPlugin)o;
+ Class cls = null;
+ if (filename.endsWith("*")) {
+ filename = "*@http://downloads.freenetproject.org/alpha/plugins/" +
+ filename.substring(filename.lastIndexOf(".")+1, filename.length()-1) +
+ ".jar.url";
+ //System.out.println(filename);
+ if(logMINOR) Logger.minor(this, "Rewritten to "+filename);
+ }
+
+ BufferedReader in = null;
+ InputStream is = null;
+ if ((filename.indexOf("@") >= 0)) {
+ boolean assumeURLRedirect = true;
+ // Open from external file
+ for (int tries = 0 ; (tries <= 5) && (cls == null) ; tries++)
+ try {
+ String realURL = null;
+ String realClass = null;
+
+ // Load the jar-file
+ String[] parts = filename.split("@");
+ if (parts.length != 2) {
+ throw new PluginNotFoundException("Could not split at \"@\".");
+ }
+ realClass = parts[0];
+ realURL = parts[1];
+ if(logMINOR) Logger.minor(this, "Class: "+realClass+" URL: "+realURL);
+
+ if (filename.endsWith(".url")) {
+ if(!assumeURLRedirect) {
+ // Load the txt-file
+ URL url = new URL(parts[1]);
+ URLConnection uc = url.openConnection();
+ in = new BufferedReader(
+ new InputStreamReader(uc.getInputStream()));
+
+ realURL = in.readLine();
+ if(realURL == null)
+ throw new PluginNotFoundException("Initialization error: " + url +
+ " isn't a plugin loading url!");
+ realURL = realURL.trim();
+ if(logMINOR) Logger.minor(this, "Loaded new URL: "+realURL+" from .url file");
+ in.close();
+ }
+ assumeURLRedirect = !assumeURLRedirect;
+ }
+
+ // Load the class inside file
+ URL[] serverURLs = new URL[]{new URL(realURL)};
+ ClassLoader cl = new URLClassLoader(serverURLs);
+
+
+ // Handle automatic fetching of pluginclassname
+ if (realClass.equals("*")) {
+
+ // Clean URL
+ URI liburi = URIPreEncoder.encodeURI(realURL);
+ if(logMINOR)
+ Logger.minor(this, "cleaned url: "+realURL+" -> "+liburi.toString());
+ realURL = liburi.toString();
+
+ URL url = new URL("jar:"+realURL+"!/");
+ JarURLConnection jarConnection = (JarURLConnection)url.openConnection();
+ // Java seems to cache even file: urls...
+ jarConnection.setUseCaches(false);
+ JarFile jf = jarConnection.getJarFile();
+ //URLJarFile jf = new URLJarFile(new File(liburi));
+ //is = jf.getInputStream(jf.getJarEntry("META-INF/MANIFEST.MF"));
+
+ //BufferedReader manifest = new BufferedReader(new InputStreamReader(cl.getResourceAsStream("/META-INF/MANIFEST.MF")));
+
+ //URL url = new URL(parts[1]);
+ //URLConnection uc = cl.getResource("/META-INF/MANIFEST.MF").openConnection();
+
+ is = jf.getInputStream(jf.getJarEntry("META-INF/MANIFEST.MF"));
+ in = new BufferedReader(new InputStreamReader(is));
+ String line;
+ while ((line = in.readLine())!=null) {
+ // System.err.println(line + "\t\t\t" + realClass);
+ if (line.startsWith("Plugin-Main-Class: ")) {
+ realClass = line.substring("Plugin-Main-Class: ".length()).trim();
+ if(logMINOR) Logger.minor(this, "Found plugin main class "+realClass+" from manifest");
+ }
+ }
+ //System.err.println("Real classname: " + realClass);
+ }
+
+ cls = cl.loadClass(realClass);
+
+ } catch (Exception e) {
+ if (tries >= 5)
+ throw new PluginNotFoundException("Initialization error:"
+ + filename, e);
+
+ try {
+ Thread.sleep(100);
+ } catch (Exception ee) {}
+ } finally {
+ try {
+ if(is != null)
+ is.close();
+ if(in != null)
+ in.close();
+ } catch (IOException ioe){}
+ }
+ } else {
+ // Load class
+ try {
+ cls = Class.forName(filename);
+ } catch (ClassNotFoundException e) {
+ throw new PluginNotFoundException(filename);
+ }
+ }
+
+ if(cls == null)
+ throw new PluginNotFoundException("Unknown error");
+
+ // Class loaded... Objectize it!
+ Object o = null;
+ try {
+ o = cls.newInstance();
+ } catch (Exception e) {
+ throw new PluginNotFoundException("Could not re-create plugin:" +
+ filename, e);
+ }
+
+ // See if we have the right type
+ if (!(o instanceof FredPlugin)) {
+ throw new PluginNotFoundException("Not a plugin: " + filename);
+ }
+
+ return (FredPlugin)o;
}
}
More information about the cvs
mailing list