package org.wamblee.crawler.kiss.main;
import java.io.File;
-import java.io.IOException;
-import org.wamblee.general.ClassPathHacker;
+import org.wamblee.general.ClassLoaderUtils;
/**
* Bootstrapper for the kiss crawler which adds all files in the directory
if ( !libdir.isDirectory() ) {
throw new IllegalArgumentException("'" + aArgs[0] + "' is not a directory.");
}
- ClassPathHacker.addJarsInDirectory(libdir);
+ ClassLoaderUtils.addJarsInDirectory(libdir);
String[] args = new String[2];
args[0] = aArgs[1];
args[1] = aArgs[2];
<artifactId>wamblee-support</artifactId>
</dependency>
<dependency>
- <groupId>jfreechart</groupId>
+ <groupId>jfree</groupId>
<artifactId>jfreechart</artifactId>
</dependency>
<dependency>
- <groupId>jcommon</groupId>
+ <groupId>jfree</groupId>
<artifactId>jcommon</artifactId>
</dependency>
<version>1.1.2</version>
</dependency>
<dependency>
- <groupId>jfreechart</groupId>
+ <groupId>jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
- <groupId>jcommon</groupId>
+ <groupId>jfree</groupId>
<artifactId>jcommon</artifactId>
<version>1.0.0</version>
</dependency>
import java.net.URL;
import java.lang.reflect.Method;
-public class ClassPathHacker {
-
- private static final Class[] PARAMETERS = new Class[] { URL.class };
+/**
+ * Utility for working with the class loader. Based on the ClassPathHacker
+ * example found on the internet.
+ */
+public class ClassLoaderUtils {
+
+ // No logging in this class to keep the required class libraries
+ // limited to the standard java classes. This allows use of the
+ // utilities in an environment with a very limited classpath.
private static final String JAR_SUFFIX = ".jar";
+ /**
+ * Adds all jars in the given directory to the class path.
+ * @param aDirectory Directory.
+ * @throws IOException
+ */
public static void addJarsInDirectory(File aDirectory) throws IOException {
System.out.println("directory '" + aDirectory + "'");
}
}
- public static void addFile(String s) throws IOException {
- File f = new File(s);
+ /**
+ * Adds a file to the classpath.
+ * @param aFilename Filename to add.
+ * @throws IOException
+ */
+ public static void addFile(String aFilename) throws IOException {
+ File f = new File(aFilename);
addFile(f);
}
- public static void addFile(File f) throws IOException {
- addURL(f.toURL());
+ /**
+ * Adds a file to the classpath.
+ * @param aFile File to add.
+ * @throws IOException
+ */
+ public static void addFile(File aFile) throws IOException {
+ addURL(aFile.toURL());
}
- public static void addURL(URL u) throws IOException {
+ /**
+ * Adds a url to the classpath.
+ * @param aUrl Url to add.
+ * @throws IOException
+ */
+ public static void addURL(URL aUrl) throws IOException {
URLClassLoader sysloader = (URLClassLoader) ClassLoader
.getSystemClassLoader();
Class sysclass = URLClassLoader.class;
try {
- Method method = sysclass.getDeclaredMethod("addURL", PARAMETERS);
+ Method method = sysclass.getDeclaredMethod("addURL", new Class[]{ URL.class } );
method.setAccessible(true);
- method.invoke(sysloader, new Object[] { u });
+ method.invoke(sysloader, new Object[] { aUrl });
} catch (Throwable t) {
t.printStackTrace();
throw new IOException(