[freenet-cvs] r13575 - trunk/freenet/src/freenet/pluginmanager

nextgens at freenetproject.org nextgens at freenetproject.org
Wed Jun 13 18:40:37 UTC 2007


Author: nextgens
Date: 2007-06-13 18:40:36 +0000 (Wed, 13 Jun 2007)
New Revision: 13575

Modified:
   trunk/freenet/src/freenet/pluginmanager/PluginManager.java
Log:
indent

Modified: trunk/freenet/src/freenet/pluginmanager/PluginManager.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginManager.java	2007-06-13 18:37:30 UTC (rev 13574)
+++ trunk/freenet/src/freenet/pluginmanager/PluginManager.java	2007-06-13 18:40:36 UTC (rev 13575)
@@ -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.BufferedInputStream;
@@ -42,15 +42,15 @@
 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;
 	private PluginRespirator pluginRespirator = null;
@@ -58,7 +58,7 @@
 	private final NodeClientCore core;
 	SubConfig pmconfig;
 	private boolean logMINOR;
-	
+
 	public PluginManager(Node node) {
 		pluginInfo = new HashMap();
 		toadletList = new HashMap();
@@ -66,7 +66,7 @@
 		this.core = node.clientCore;
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		pluginRespirator = new PluginRespirator(node, this);
-		
+
 		pmconfig = new SubConfig("pluginmanager", node.config);
 		// Start plugins in the config
 		pmconfig.register("loadplugin", null, 9, true, false, "PluginManager.loadedOnStartup", "PluginManager.loadedOnStartupLong",
@@ -79,8 +79,8 @@
 						// FIXME
 						throw new InvalidConfigValueException(L10n.getString("PluginManager.cannotSetOnceLoaded"));
 					}
-		});
-		
+				});
+
 		String fns[] = pmconfig.getStringArr("loadplugin");
 		if (fns != null) {
 			for (int i = 0 ; i < fns.length ; i++) {
@@ -88,33 +88,33 @@
 				startPlugin(fns[i], false);
 			}
 		}
-			
+
 		pmconfig.finishedInitialization();
 		/*System.err.println("=================================");
-		pmconfig.finishedInitialization();
-		fns = pmconfig.getStringArr("loadplugin");
-		for (int i = 0 ; i < fns.length ; i++)
-			System.err.println("Load: " + StringArrOption.decode(fns[i]));
-		System.err.println("=================================");
-		*/
+		  pmconfig.finishedInitialization();
+		  fns = pmconfig.getStringArr("loadplugin");
+		  for (int i = 0 ; i < fns.length ; i++)
+		  System.err.println("Load: " + StringArrOption.decode(fns[i]));
+		  System.err.println("=================================");
+		  */
 	}
-	
+
 	private String[] getConfigLoadString() {
 		try{
 			Iterator it = getPlugins().iterator();
 
 			Vector v = new Vector();
-			
+
 			while(it.hasNext())
 				v.add(((PluginInfoWrapper)it.next()).getFilename());
-			
+
 			return (String[]) v.toArray(new String[v.size()]);
 		}catch (NullPointerException e){
 			Logger.error(this, "error while loading plugins: disabling them:"+e);
 			return new String[0];
 		}
 	}
-	
+
 	public void startPlugin(String filename, boolean store) {
 		if (filename.trim().length() == 0)
 			return;
@@ -124,14 +124,14 @@
 			plug = LoadPlugin(filename);
 			PluginInfoWrapper pi = PluginHandler.startPlugin(this, filename, plug, pluginRespirator);
 			// handles FProxy? If so, register
-			
+
 			if (pi.isPproxyPlugin())
 				registerToadlet(plug);
 
 			if(pi.isIPDetectorPlugin()) {
 				node.ipDetector.registerIPDetectorPlugin((FredPluginIPDetector) plug);
 			}
-			
+
 			synchronized (pluginInfo) {
 				pluginInfo.put(pi.getThreadName(), pi);
 			}
@@ -147,14 +147,14 @@
 				System.err.println("Plugin "+filename+" appears to require a later JVM");
 				Logger.error(this, "Plugin "+filename+" appears to require a later JVM");
 				core.alerts.register(new SimpleUserAlert(true, 
-						l10n("pluginReqNewerJVMTitle", "name", filename),
-						l10n("pluginReqNewerJVM", "name", filename),
-						UserAlert.ERROR));
+							l10n("pluginReqNewerJVMTitle", "name", filename),
+							l10n("pluginReqNewerJVM", "name", filename),
+							UserAlert.ERROR));
 			}
 		}
 		if(store) core.storeConfig();
 	}
-	
+
 	private String l10n(String key, String pattern, String value) {
 		return L10n.getString("PluginManager."+key, pattern, value);
 	}
@@ -166,7 +166,7 @@
 		}
 		Logger.normal(this, "Added HTTP handler for /plugins/"+pl.getClass().getName()+ '/');
 	}
-	
+
 	public void removePlugin(Thread t) {
 		Object removeKey = null;
 		synchronized (pluginInfo) {
@@ -187,21 +187,21 @@
 					}
 				}
 			}
-			
+
 			if (removeKey != null)
 				pluginInfo.remove(removeKey);
 		}
 		if(removeKey != null)
 			core.storeConfig();
 	}
-	
+
 	public void addToadletSymlinks(PluginInfoWrapper pi) {
 		synchronized (toadletList) {
 			try {
 				String targets[] = pi.getPluginToadletSymlinks();
 				if (targets == null)
 					return;
-				
+
 				for (int i = 0 ; i < targets.length ; i++) {
 					toadletList.remove(targets[i]);
 					Logger.normal(this, "Removed HTTP symlink: " + targets[i] +
@@ -212,7 +212,7 @@
 			}
 		}
 	}
-	
+
 	public void removeToadletSymlinks(PluginInfoWrapper pi) {
 		synchronized (toadletList) {
 			String rm = null;
@@ -220,7 +220,7 @@
 				String targets[] = pi.getPluginToadletSymlinks();
 				if (targets == null)
 					return;
-				
+
 				for (int i = 0 ; i < targets.length ; i++) {
 					rm = targets[i];
 					toadletList.remove(targets[i]);
@@ -246,7 +246,7 @@
 		}
 		return out.toString();
 	}
-	
+
 	public Set getPlugins() {
 		HashSet out = new HashSet();
 		synchronized (pluginInfo) {
@@ -258,37 +258,37 @@
 		}
 		return out;
 	}
-	
+
 	public String handleHTTPGet(String plugin, HTTPRequest request) throws PluginHTTPException {
 		FredPlugin handler = null;
 		synchronized (toadletList) {
 			handler = (FredPlugin)toadletList.get(plugin);
 		}
 		/*if (handler == null)
-			return null;
-			*/
-		
+		  return null;
+		  */
+
 		if (handler instanceof FredPluginHTTP)
 			return ((FredPluginHTTP)handler).handleHTTPGet(request);
-		
+
 		throw new NotFoundPluginHTTPException("Plugin not found!", "/plugins");
 	}
-	
+
 	public String handleHTTPPost(String plugin, HTTPRequest request) throws PluginHTTPException {
 		FredPlugin handler = null;
 		synchronized (toadletList) {
 			handler = (FredPlugin)toadletList.get(plugin);
 		}
 		/*if (handler == null)
-			return null;
-			*/
-		
+		  return null;
+		  */
+
 		if (handler instanceof FredPluginHTTP)
 			return ((FredPluginHTTP)handler).handleHTTPPost(request);
-		
+
 		throw new NotFoundPluginHTTPException("Plugin not found!", "/plugins");
 	}
-	
+
 	public void killPlugin(String name) {
 		PluginInfoWrapper pi = null;
 		boolean found = false;
@@ -306,18 +306,18 @@
 			else
 				pi.stopPlugin();
 	}
-	
-	
+
+
 	/**
-	* 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;
@@ -334,41 +334,41 @@
 			}
 			String pluginname = filename.substring(0, filename.length()-1);
 			filename = null;
-			
+
 			URL url;
 			DataInputStream dis;
-            InputStream is = null;
-            BufferedInputStream bis = null;
-            FileOutputStream fos = null;
-            BufferedOutputStream bos = null;
-			
+			InputStream is = null;
+			BufferedInputStream bis = null;
+			FileOutputStream fos = null;
+			BufferedOutputStream bos = null;
+
 			try {
 				url = new URL("http://downloads.freenetproject.org/alpha/plugins/" + pluginname + ".jar.url");
 				if(logMINOR) Logger.minor(this, "Downloading "+url);
 				is = url.openStream();
 				bis = new BufferedInputStream(is);
-                dis = new DataInputStream(bis);
-                
-                File pluginsDirectory = new File("plugins");
-                if(!pluginsDirectory.exists()) {
-                	Logger.normal(this, "The plugin directory hasn't been found, let's create it");
-                	if(!pluginsDirectory.mkdir())
-                		return null;
-                }
-                
-                File finalFile = new File("plugins/" + pluginname + ".jar");
-                File f = File.createTempFile(pluginname, ".tmp", pluginsDirectory);
-                fos = new FileOutputStream(f);
-                bos = new BufferedOutputStream(fos);
-                int len = 0, writenBytes = 0;
-                byte[] buffer = new byte[4096];
-                while ((len = dis.read(buffer)) != -1) {
-                        bos.write(buffer, writenBytes, len);
-                        writenBytes +=len;
-                }
-                f.renameTo(finalFile);
-    			filename = "*@file://" + FileUtil.getCanonicalFile(f);
-    			if(logMINOR) Logger.minor(this, "Rewritten to "+filename);
+				dis = new DataInputStream(bis);
+
+				File pluginsDirectory = new File("plugins");
+				if(!pluginsDirectory.exists()) {
+					Logger.normal(this, "The plugin directory hasn't been found, let's create it");
+					if(!pluginsDirectory.mkdir())
+						return null;
+				}
+
+				File finalFile = new File("plugins/" + pluginname + ".jar");
+				File f = File.createTempFile(pluginname, ".tmp", pluginsDirectory);
+				fos = new FileOutputStream(f);
+				bos = new BufferedOutputStream(fos);
+				int len = 0, writenBytes = 0;
+				byte[] buffer = new byte[4096];
+				while ((len = dis.read(buffer)) != -1) {
+					bos.write(buffer, writenBytes, len);
+					writenBytes +=len;
+				}
+				f.renameTo(finalFile);
+				filename = "*@file://" + FileUtil.getCanonicalFile(f);
+				if(logMINOR) Logger.minor(this, "Rewritten to "+filename);
 			} catch (MalformedURLException mue) {
 				Logger.error(this, "MAlformedURLException has occured : "+ mue, mue);
 				return null;
@@ -390,7 +390,7 @@
 			if(filename == null)
 				return null;
 		}
-		
+
 		BufferedReader in = null;
 		InputStream is = null;
 		if ((filename.indexOf("@") >= 0)) {
@@ -400,7 +400,7 @@
 				try {
 					String realURL = null;
 					String realClass = null;
-					
+
 					// Load the jar-file
 					String[] parts = filename.split("@");
 					if (parts.length != 2) {
@@ -409,7 +409,7 @@
 					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
@@ -417,7 +417,7 @@
 							URLConnection uc = url.openConnection();
 							in = new BufferedReader(
 									new InputStreamReader(uc.getInputStream()));
-							
+
 							realURL = in.readLine();
 							if(realURL == null)
 								throw new PluginNotFoundException("Initialization error: " + url +
@@ -428,21 +428,21 @@
 						}
 						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...
@@ -450,12 +450,12 @@
 						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;
@@ -468,14 +468,14 @@
 						}
 						//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) {}
@@ -495,10 +495,10 @@
 				throw new PluginNotFoundException(filename);
 			}
 		}
-		
+
 		if(cls == null)
 			throw new PluginNotFoundException("Unknown error");
-		
+
 		// Class loaded... Objectize it!
 		Object o = null;
 		try {
@@ -507,12 +507,12 @@
 			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