diff options
author | jeffpk <[email protected]> | 2003-06-26 00:06:25 +0000 |
---|---|---|
committer | jeffpk <[email protected]> | 2003-06-26 00:06:25 +0000 |
commit | 7c855cd9e9fc34c5387ea121653fac1a1461d388 (patch) | |
tree | b9136c62dea0302c6fdcd3fd93759f6566e82e5e | |
parent | 875c9f608e147e91840e8722e7a60c91cdbe84b7 (diff) |
Improved plugin scanning so that if you attempt to create a Plugins instance with a
non-existant plugins directory path, it throws an IO exception.
git-svn-id: file:///home/sven/projects/JOGL/git-svn/svn-server-sync/jutils/trunk@9 052365b4-98e0-4bc5-a281-465471b020e0
-rw-r--r-- | build.xml | 13 | ||||
-rw-r--r-- | src/java/net/java/games/util/plugins/Plugins.java | 10 | ||||
-rw-r--r-- | src/java/net/java/games/util/plugins/test/PluginTest.java | 9 |
3 files changed, 28 insertions, 4 deletions
@@ -84,6 +84,19 @@ <!-- <arg file="myfile.txt"/> --> </java> </target> + <target name="testnodir" depends="init,all" description="Try running it."> + <java classname="net.java.games.util.plugins.test.PluginTest" + fork="true" dir="." failonerror="true"> + <classpath> + <!-- <pathelement location= "classes" /> --> + <pathelement location="bin/jutils.jar"/> + </classpath> + <!-- Pass some args, perhaps: --> + <!-- <arg value="-myfile"/> --> + <!-- Will be given as an absolute path: --> + <!-- <arg file="myfile.txt"/> --> + </java> + </target> <target name="javadoc" depends="init" description="Javadoc for input API."> <javadoc packagenames="net.java.games.util.plugins.*" diff --git a/src/java/net/java/games/util/plugins/Plugins.java b/src/java/net/java/games/util/plugins/Plugins.java index 7a7e5f4..87e6146 100644 --- a/src/java/net/java/games/util/plugins/Plugins.java +++ b/src/java/net/java/games/util/plugins/Plugins.java @@ -69,12 +69,16 @@ public class Plugins { * @param pluginRoot The root od the directory tree to scan for Jars * containing plugins. */ - public Plugins(File pluginRoot) { - scanPlugins(pluginRoot); + public Plugins(File pluginRoot) throws IOException { + scanPlugins(pluginRoot); } - private void scanPlugins(File dir) { + private void scanPlugins(File dir) throws IOException { File[] files = dir.listFiles(); + if (files == null) { + throw new FileNotFoundException("Plugin directory "+dir.getName()+ + " not found."); + } for(int i=0;i<files.length;i++){ File f = files[i]; if (f.getName().endsWith(".jar")) { // process JAR file diff --git a/src/java/net/java/games/util/plugins/test/PluginTest.java b/src/java/net/java/games/util/plugins/test/PluginTest.java index a5ea39d..af7ef82 100644 --- a/src/java/net/java/games/util/plugins/test/PluginTest.java +++ b/src/java/net/java/games/util/plugins/test/PluginTest.java @@ -82,11 +82,18 @@ class ListUpdater implements Runnable{ public class PluginTest { static final boolean DEBUG = false; - Plugins plugins = new Plugins(new File("test_plugins")); + + Plugins plugins; JList plist; Class[] piList; // holder for current list of plugins /** Creates a new instance of PluginTest */ public PluginTest() { + try { + plugins = new Plugins(new File("test_plugins")); + } catch (IOException e) { + e.printStackTrace(); + System.exit(1); + } JFrame f = new JFrame("PluginTest"); plist = new JList(new DefaultListModel()); plist.setCellRenderer(new ClassRenderer()); |