/*
* Now find plug-ins! Check directories and jar.
*/
try {
DefaultPluginsCollector collector = new DefaultPluginsCollector();
ExtendedProperties ep = new ExtendedProperties();
List<File> directoriesToSearch = new LinkedList<File>();
directoriesToSearch.add(new File("./src/plugins"));
directoriesToSearch.add(new File("./plugins"));
directoriesToSearch.add(userPluginDir);
try {
File parent = new File(PluginCore.class.getProtectionDomain()
.getCodeSource().getLocation().toURI()).getParentFile();
if (!parent.getCanonicalFile().equals(
new File(".").getCanonicalFile())) {
directoriesToSearch.add(new File(parent, "/src/plugins"));
directoriesToSearch.add(new File(parent, "/plugins"));
}
} catch (Exception e) {
// no problem, we just use paths relative to current dir.
}
StringBuilder sb = new StringBuilder();
for (File directory : directoriesToSearch) {
// We don't want warnings if the default plug-in paths don't
// exist, we do that below
if (directory.exists()) {
if (sb.length() > 0)
sb.append(',');
sb.append(directory.getPath());
}
}
ep.setProperty("org.java.plugin.boot.pluginsRepositories", sb
.toString());
collector.configure(ep);
Collection<PluginLocation> plugins = collector
.collectPluginLocations();
/**
* I know the following is really, really ugly, but I have found no
* way to automatically discover multiple plugin.xmls in JARs