提交 15e2ff24 编写于 作者: K kohsuke

Added JobListener.onLoaded callback.


git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@1388 71c3de6d-444a-0410-be80-ed276b4c234a
上级 41e35fc0
...@@ -2,25 +2,24 @@ package hudson.model; ...@@ -2,25 +2,24 @@ package hudson.model;
import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.XStream;
import groovy.lang.GroovyShell; import groovy.lang.GroovyShell;
import hudson.FeedAdapter;
import hudson.Launcher; import hudson.Launcher;
import hudson.Plugin; import hudson.Plugin;
import hudson.PluginManager; import hudson.PluginManager;
import hudson.PluginWrapper; import hudson.PluginWrapper;
import hudson.Util; import hudson.Util;
import hudson.XmlFile; import hudson.XmlFile;
import hudson.Functions;
import hudson.FeedAdapter;
import hudson.model.Descriptor.FormException; import hudson.model.Descriptor.FormException;
import hudson.model.listeners.JobListener; import hudson.model.listeners.JobListener;
import hudson.scm.CVSSCM; import hudson.scm.CVSSCM;
import hudson.scm.SCM; import hudson.scm.SCM;
import hudson.scm.SCMS; import hudson.scm.SCMS;
import hudson.tasks.BuildStep; import hudson.tasks.BuildStep;
import hudson.tasks.Builder;
import hudson.tasks.Publisher;
import hudson.tasks.BuildWrappers;
import hudson.tasks.BuildWrapper; import hudson.tasks.BuildWrapper;
import hudson.tasks.BuildWrappers;
import hudson.tasks.Builder;
import hudson.tasks.Mailer; import hudson.tasks.Mailer;
import hudson.tasks.Publisher;
import hudson.triggers.Trigger; import hudson.triggers.Trigger;
import hudson.triggers.Triggers; import hudson.triggers.Triggers;
import hudson.util.FormFieldValidator; import hudson.util.FormFieldValidator;
...@@ -34,10 +33,10 @@ import org.kohsuke.stapler.StaplerResponse; ...@@ -34,10 +33,10 @@ import org.kohsuke.stapler.StaplerResponse;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Cookie; import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File; import java.io.File;
import java.io.FileFilter; import java.io.FileFilter;
import java.io.FileInputStream; import java.io.FileInputStream;
...@@ -52,9 +51,11 @@ import java.text.ParseException; ...@@ -52,9 +51,11 @@ import java.text.ParseException;
import java.util.AbstractList; import java.util.AbstractList;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.GregorianCalendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
...@@ -65,10 +66,8 @@ import java.util.Set; ...@@ -65,10 +66,8 @@ import java.util.Set;
import java.util.TreeMap; import java.util.TreeMap;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.Vector; 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.Level;
import java.util.logging.LogRecord;
/** /**
* Root object of the system. * Root object of the system.
...@@ -150,7 +149,7 @@ public final class Hudson extends JobCollection implements Node { ...@@ -150,7 +149,7 @@ public final class Hudson extends JobCollection implements Node {
/** /**
* List of reigstered {@link JobListener}s. * List of reigstered {@link JobListener}s.
*/ */
private transient List<JobListener> jobListeners = new Vector<JobListener>(); private transient final List<JobListener> jobListeners = new Vector<JobListener>();
public static Hudson getInstance() { public static Hudson getInstance() {
return theInstance; return theInstance;
...@@ -171,6 +170,11 @@ public final class Hudson extends JobCollection implements Node { ...@@ -171,6 +170,11 @@ public final class Hudson extends JobCollection implements Node {
updateComputerList(); updateComputerList();
getQueue().load(); getQueue().load();
synchronized(jobListeners) {
for (JobListener l : jobListeners)
l.onLoaded();
}
} }
/** /**
......
...@@ -19,6 +19,15 @@ public abstract class JobListener { ...@@ -19,6 +19,15 @@ public abstract class JobListener {
public void onCreated(Job j) { 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. * Called right before a job is going to be deleted.
* *
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册