package org.owasp.webscarab;
import java.io.File;
import java.io.FilenameFilter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception {
File dir = new File("./plugins/");
List<URL> urls = new ArrayList<URL>();
findJars(dir, urls);
ClassLoader loader = ClassLoader.getSystemClassLoader();
if (urls.size() > 0) {
URL[] u = urls.toArray(new URL[urls.size()]);
System.out.println("Creating new ClassLoader");
Thread.currentThread().setContextClassLoader(new URLClassLoader(u, loader));
} else {
System.err.println("No plugins found!");
}
WebScarab.main(args);
}
private static void findJars(File dir, List<URL> urls) {
if (!dir.isDirectory())
return;
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".jar") || new File(dir, name).isDirectory();
}
};
String[] items = dir.list(filter);
if (items == null)
return;
for (int i=0; i<items.length; i++) {
File f = new File(dir, items[i]);
if (f.isDirectory()) {
findJars(f, urls);
} else {
try {
URL u = f.toURL();
System.err.println("Adding " + u);
urls.add(u);
} catch (MalformedURLException mue) {
mue.printStackTrace();
}
}
}
}
}