diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 7aa8a6202f..3e75ab608d 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -443,6 +443,14 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas session.addAll(g.discoverTasks(session)); } }); + + // All plugins are loaded. Now we can figure out who depends on who. + requires(PLUGINS_PREPARED).attains(COMPLETED).add("Resolving Dependant Plugins Graph", new Executable() { + @Override + public void run(Reactor reactor) throws Exception { + resolveDependantPlugins(); + } + }); }}); } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 9e5bdf8afa..d97527c1cf 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -896,9 +896,6 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve System.currentTimeMillis()-itemListenerStart,l.getClass().getName())); } - // All plugins are loaded. Now we can figure out who depends on who. - resolveDependantPlugins(); - if (LOG_STARTUP_PERFORMANCE) LOGGER.info(String.format("Took %dms for complete Jenkins startup", System.currentTimeMillis()-start)); @@ -907,19 +904,6 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve } } - private void resolveDependantPlugins() throws InterruptedException, ReactorException, IOException { - TaskGraphBuilder graphBuilder = new TaskGraphBuilder(); - - graphBuilder.add("Resolving Dependant Plugins Graph", new Executable() { - @Override - public void run(Reactor reactor) throws Exception { - pluginManager.resolveDependantPlugins(); - } - }); - - executeReactor(null, graphBuilder); - } - /** * Maintains backwards compatibility. Invoked by XStream when this object is de-serialized. */