From 15e2ff24583b50f3d18973626510b9adc22c6d5f Mon Sep 17 00:00:00 2001 From: kohsuke Date: Tue, 19 Dec 2006 18:10:17 +0000 Subject: [PATCH] Added JobListener.onLoaded callback. git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@1388 71c3de6d-444a-0410-be80-ed276b4c234a --- core/src/main/java/hudson/model/Hudson.java | 26 +++++++++++-------- .../hudson/model/listeners/JobListener.java | 9 +++++++ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/hudson/model/Hudson.java b/core/src/main/java/hudson/model/Hudson.java index 546bc89c9f..2bdb4af3dd 100644 --- a/core/src/main/java/hudson/model/Hudson.java +++ b/core/src/main/java/hudson/model/Hudson.java @@ -2,25 +2,24 @@ package hudson.model; import com.thoughtworks.xstream.XStream; import groovy.lang.GroovyShell; +import hudson.FeedAdapter; import hudson.Launcher; import hudson.Plugin; import hudson.PluginManager; import hudson.PluginWrapper; import hudson.Util; import hudson.XmlFile; -import hudson.Functions; -import hudson.FeedAdapter; import hudson.model.Descriptor.FormException; import hudson.model.listeners.JobListener; import hudson.scm.CVSSCM; import hudson.scm.SCM; import hudson.scm.SCMS; import hudson.tasks.BuildStep; -import hudson.tasks.Builder; -import hudson.tasks.Publisher; -import hudson.tasks.BuildWrappers; import hudson.tasks.BuildWrapper; +import hudson.tasks.BuildWrappers; +import hudson.tasks.Builder; import hudson.tasks.Mailer; +import hudson.tasks.Publisher; import hudson.triggers.Trigger; import hudson.triggers.Triggers; import hudson.util.FormFieldValidator; @@ -34,10 +33,10 @@ import org.kohsuke.stapler.StaplerResponse; import javax.servlet.ServletContext; import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; @@ -52,9 +51,11 @@ import java.text.ParseException; import java.util.AbstractList; import java.util.ArrayList; import java.util.Arrays; +import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.GregorianCalendar; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -65,10 +66,8 @@ import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; import java.util.Vector; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.logging.LogRecord; import java.util.logging.Level; +import java.util.logging.LogRecord; /** * Root object of the system. @@ -150,7 +149,7 @@ public final class Hudson extends JobCollection implements Node { /** * List of reigstered {@link JobListener}s. */ - private transient List jobListeners = new Vector(); + private transient final List jobListeners = new Vector(); public static Hudson getInstance() { return theInstance; @@ -171,6 +170,11 @@ public final class Hudson extends JobCollection implements Node { updateComputerList(); getQueue().load(); + + synchronized(jobListeners) { + for (JobListener l : jobListeners) + l.onLoaded(); + } } /** diff --git a/core/src/main/java/hudson/model/listeners/JobListener.java b/core/src/main/java/hudson/model/listeners/JobListener.java index 0c5511c221..cea4c5a173 100644 --- a/core/src/main/java/hudson/model/listeners/JobListener.java +++ b/core/src/main/java/hudson/model/listeners/JobListener.java @@ -19,6 +19,15 @@ public abstract class JobListener { public void onCreated(Job j) { } + /** + * Called after all the jobs are loaded from disk into {@link Hudson} + * object. + * + * @since 1.68 + */ + public void onLoaded() { + } + /** * Called right before a job is going to be deleted. * -- GitLab