diff --git a/core/src/main/java/hudson/init/InitMilestone.java b/core/src/main/java/hudson/init/InitMilestone.java index 2653857f4df47b27db7b4e7b678cafd53b8dacd8..4ee9fa26f418dff4022b7a29b9c70ff43780d1c8 100644 --- a/core/src/main/java/hudson/init/InitMilestone.java +++ b/core/src/main/java/hudson/init/InitMilestone.java @@ -106,14 +106,15 @@ public enum InitMilestone implements Milestone { JOB_LOADED("Loaded all jobs"), /** - * By this milestone, any job configuration is adapted or updated just in case any plugin needs to update former/old configurations or init scripts + * By this milestone, any job configuration is adapted or updated just in case any plugin needs to update former/old configurations. + * It does not include {@link hudson.init.impl.GroovyInitScript}s which get executed later * @since 2.220 */ JOB_CONFIG_ADAPTED("Configuration for all jobs updated"), /** - * The very last milestone - * + * The very last milestone. + * All executions should be completed by it, including {@link hudson.init.impl.GroovyInitScript}s. * This is used in {@link Initializer#before()} since annotations cannot have null as the default value. */ COMPLETED("Completed initialization"); diff --git a/core/src/main/java/hudson/init/impl/GroovyInitScript.java b/core/src/main/java/hudson/init/impl/GroovyInitScript.java index 20cd1a481c006f82f2f69557f5a7fc1bcf72ccb0..b0ec56ddf3f8f293e42046b18275d84da7a41777 100644 --- a/core/src/main/java/hudson/init/impl/GroovyInitScript.java +++ b/core/src/main/java/hudson/init/impl/GroovyInitScript.java @@ -32,11 +32,12 @@ import static hudson.init.InitMilestone.*; /** * Run the initialization script, if it exists. + * It runs strictly after the initialization of other tasks during the last initialization milestone. * * @author Kohsuke Kawaguchi */ public class GroovyInitScript { - @Initializer(after=JOB_LOADED) + @Initializer(after=JOB_CONFIG_ADAPTED) public static void init(Jenkins j) { new GroovyHookScript("init", j.servletContext, j.getRootDir(), j.getPluginManager().uberClassLoader).run(); }