[FIXED JENKINS-19976] Merged #1054: fix class loading from dynamically installed optional dependencies.

This commit is contained in:
Jesse Glick committed 2014-03-24 09:52:32 -04:00
commit df8df45c27
6 files changed
+195

No files matched your search

@@ -453,6 +453,23 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
} catch (ReactorException e) {
throw new IOException("Failed to initialize "+ sn +" plugin",e);
}
// recalculate dependencies of plugins optionally depending the newly deployed one.
for (PluginWrapper depender: plugins) {
if (depender.equals(p)) {
// skip itself.
continue;
}
for (Dependency d: depender.getOptionalDependencies()) {
if (d.shortName.equals(p.getShortName())) {
// this plugin depends on the newly loaded one!
// recalculate dependencies!
getPluginStrategy().updateDependency(depender, p);
break;
}
}
}
LOGGER.info("Plugin " + sn + " dynamically installed");
}