[FIXED HUDSON-5427] recognize @Initializer marked tasks from plugins

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@35980 71c3de6d-444a-0410-be80-ed276b4c234a
This commit is contained in:
kohsuke committed 2010-10-15 17:35:24 +00:00
1 parent 84a923ea22
commit aded9afbe6
3 files changed
+19 -2

No files matched your search

+12 -1
View File
@@ -29,6 +29,7 @@ import static hudson.init.InitMilestone.PLUGINS_LISTED;
import hudson.PluginWrapper.Dependency;
import hudson.init.InitStrategy;
import hudson.init.InitializerFinder;
import hudson.model.AbstractModelObject;
import hudson.model.Failure;
import hudson.model.Hudson;
@@ -249,8 +250,11 @@ public abstract class PluginManager extends AbstractModelObject {
builder = TaskBuilder.EMPTY_BUILDER;
}
final InitializerFinder initializerFinder = new InitializerFinder(uberClassLoader); // misc. stuff
// lists up initialization tasks about loading plugins.
return TaskBuilder.union(builder,new TaskGraphBuilder() {{
return TaskBuilder.union(initializerFinder, // this scans @Initializer in the core once
builder,new TaskGraphBuilder() {{
requires(PLUGINS_LISTED).attains(PLUGINS_PREPARED).add("Loading plugins",new Executable() {
/**
* Once the plugins are listed, schedule their initialization.
@@ -292,6 +296,13 @@ public abstract class PluginManager extends AbstractModelObject {
});
}
g.followedBy().attains(PLUGINS_STARTED).add("Discovering plugin initialization tasks", new Executable() {
public void run(Reactor reactor) throws Exception {
// rescan to find plugin-contributed @Initializer
reactor.addAll(initializerFinder.discoverTasks(reactor));
}
});
// register them all
session.addAll(g.discoverTasks(session));
}