* @param userJar
* @param userPluginList
*/
private void processUserJar(ExecutorService executor, final Map<String, File> descriptors, final File userJar,
final StringBuilder userPluginList) {
final PluginTask task = (PluginTask) parent;
executor.execute(new Runnable() {
public void run() {
final String jarName = userJar.getName();
final String pluginId;
if (userJar.isFile()) {
pluginId = jarName.substring(0, jarName.length() - 4); // remove ".jar"
} else {
pluginId = jarName; // use directory name as plugin id
}
userPluginList.append(pluginId + ",");
// replace ".jar" by ".xml"
final String pluginDesc = pluginId + ".xml";
path.createPathElement().setLocation(userJar);
// create the lib alias
final String alias = pluginId + ".jar";
LibAlias libAlias = task.createLibAlias();
libAlias.setName(alias);
libAlias.setAlias(userJar);
final File descriptorFile = new File(userJar.getParent(), pluginDesc);
if (!descriptorFile.exists()) {
// build the descriptor from scratch
buildDescriptor(userJar, descriptorFile, pluginId, alias);
}
if (userJar.isDirectory()) {
ScriptBuilder.build(userJar, getProperties());
}
task.buildPlugin(descriptors, descriptorFile);
}
});
}